Matthew Waters
203e34fb75
discoverer: chain up to parent finalize methods in all our types
...
Fixes a memory leak:
Direct leak of 32 byte(s) in 1 object(s) allocated from:
#0 0x5ac5cd in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:129:3
#1 0x1007007 in g_malloc /work/glib-2.72.0/_builddir/../glib/gmem.c:125:13
#2 0xf82e82 in g_data_set_internal /work/glib-2.72.0/_builddir/../glib/gdataset.c:464:8
#3 0xf833f7 in g_datalist_id_set_data_full /work/glib-2.72.0/_builddir/../glib/gdataset.c:670:3
#4 0xef81be in g_object_notify_queue_freeze /work/glib-2.72.0/_builddir/../gobject/gobject.c:295:7
#5 0xef79c6 in g_object_unref /work/glib-2.72.0/_builddir/../gobject/gobject.c:3632:16
#6 0x5e58bf in LLVMFuzzerTestOneInput /src/gstreamer/ci/fuzzing/gst-discoverer.c:132:5
#7 0x4dd1a2 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:611:15
#8 0x4dc98a in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:514:3
#9 0x4de6c4 in fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:809:5
#10 0x4dea29 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:857:3
#11 0x4ce4a0 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:912:6
#12 0x4f6f52 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
#13 0x7f1c709980b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x240b2)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1984 >
2022-03-18 17:49:08 +00:00
Jakub Adam
df55700f44
d3d11screencapturesrc: Allow capturing screen sub-area
...
Adds crop-x, crop-y, crop-width, crop-height properties specifying the
screen area to capture.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1932 >
2022-03-18 13:56:51 +01:00
Nirbheek Chauhan
253ee75a72
webrtcbin: Warn when offer didn't intersect with transceiver caps
...
We were silently falling back to creating a recvonly offer if the caps
didn't intersect.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:46 +00:00
Nirbheek Chauhan
0007fa38e0
webrtc-sendrecv: Fix create-answer caps negotiation
...
We need to parse the payload type map provided by the offer SDP and
set those values on the payloader, otherwise webrtcbin will create
a recvonly answer SDP and we won't send anything to the browser.
Fixed it for both C and Python sendrecv examples.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:46 +00:00
Nirbheek Chauhan
3c0d582b7c
webrtc_sendrecv.py: Add picture-id-mode to rtpvp8pay
...
This doesn't just make TWCC stats perform better, it also fixes
stuttery video playback in Chrome.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:46 +00:00
Nirbheek Chauhan
e0378f9913
webrtc_sendrecv.py: Print an error on unknown JSON message
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:46 +00:00
Nirbheek Chauhan
90da0e1d1e
webrtc_sendrecv.py: Add missing copyright headers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:46 +00:00
Nirbheek Chauhan
583408c312
webrtc_sendrecv.py: Implement all negotiation modes
...
Earlier, the example only supported one negotiation mode:
* Browser client is running, gstreamer starts a call and sends offer
Now these three modes are also supported:
* Browser client is running, gstreamer starts a call and sends an
offer request
* gstreamer connects and waits for browser client to start a call and
send an offer
* gstreamer connects and waits for browser client to start a call and
send an offer request
The following features are still missing:
* Data channel support
* TWCC support + stats logging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:46 +00:00
Nirbheek Chauhan
0b1438cc97
webrtc_sendrecv.py: Make it executable
...
Why wasn't it already. Tired of typing 'python webrtc_sendrecv.py'.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:45 +00:00
Nirbheek Chauhan
2294356d9b
webrtc_sendrecv.py: Fix event loop usage for messages
...
Instead of creating a new loop, we should just be fetching the running
loop, then doing a blocking network call inside the callback, schedule
it on the event loop. This is what the C example does too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:45 +00:00
Nirbheek Chauhan
ee4ca699a0
webrtc_sendrecv.py: Use default arg for server URL
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1864 >
2022-03-18 08:16:45 +00:00
Matthew Waters
f0e5c8e0f2
ci/fuzzing: update glib version to 2.72.0
...
Fixes an issue where on configure, glib's internal gnulib was tripping
up the undefined behaviour sanitizer with a divide by 0.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1976 >
2022-03-18 18:35:05 +11:00
Vivienne Watermeier
2b85e5f99c
glvideomixerelement: send translated navigation events to the relevant sink pads
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1495 >
2022-03-18 06:22:02 +00:00
Vivienne Watermeier
6fd7e7699d
compositor: send translated navigation events to the relevant sink pads
...
Fixes #888
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1495 >
2022-03-18 06:22:02 +00:00
Matthew Waters
03ff52ee69
ci/fuzzling: fix oss-fuzz build
...
gst-plugins-base doesn't have a cairo option anymore.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1975 >
2022-03-18 13:16:42 +11:00
Thibault Saunier
1a5d2ce98c
validate: Cleanup ABI and make it ready to be stabilized this cycle
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Thibault Saunier
5089139e57
validate: Introspect gst-validate-runner.c
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Thibault Saunier
2ef203e659
validate: Add getters for ValidateReports
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Philippe Normand
5ea0c20a33
validate: Change IssueId type to guint32
...
Which is a bit more bindings-friendly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Philippe Normand
616d1dd6ba
validate: ssim: Respect requested dump recurrence parameter
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Philippe Normand
c275b5c678
validate: Keep scenario alive enough when executing actions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Philippe Normand
a9e3b05055
validate: Introspection annotation cleanups
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Philippe Normand
d07f2323fe
validate: Fix padding and constants
...
Without this the Rust -sys validate crate tests don't pass.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Philippe Normand
8780da3ffe
validate: Expose all public headers in main header
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Philippe Normand
aa917a9d9a
validate: Fix pkgconfig name
...
Making it consistent with the reset of GStreamer. This also means that
anyone wanting to target -validate >= 1.22 needs to change the way they
link against it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1810 >
2022-03-17 14:48:34 +00:00
Sangchul Lee
7691c6776a
rtpjitterbuffer: Fix invalid memory access in rtp_jitter_buffer_pop()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1973 >
2022-03-17 12:46:14 +00:00
Vivienne Watermeier
8cb5d9f49e
documentation: improve misleading wording
...
The documentation for several gst_*_writable_structure functions stated
that they would never return NULL, without making clear that the passed
object is required to be writable. This changes the wording in those
cases to make that requirement more clear.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1784 >
2022-03-17 11:56:37 +00:00
Matthew Waters
098ff9a453
ccconverter: drop data with a warning if scratch buffers overflow
...
Instead of asserting which could bring down the entire application.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1972 >
2022-03-17 21:46:44 +11:00
Hou Qi
b962126b06
v4l2videodec: set frame duration according to framerate
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1953 >
2022-03-16 14:15:04 +00:00
Philippe Normand
4277af3219
uri: Build doubly-linked list by prepending items
...
As outlined in the API documentation, g_list_append() iterates over the whole
list, which can quickly introduce performance issues when the list becomes very
big, such as for data URIs for instance.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1909 >
2022-03-16 11:39:28 +00:00
Philippe Normand
b8ccf7f802
typefind: Skip parsing of data URIs
...
Commit a46ab2ced2
introduced a regression,
breaking typefinding for media content muxed in mp4 container and serialized to
data URIs. For this case it doesn't make sense to look for a file extension, so
skip URI parsing.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1909 >
2022-03-16 11:39:28 +00:00
Corentin Noël
a451b66479
basesink: Fix annotations
...
We should annotate the Class and not the object itself.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1965 >
2022-03-16 10:37:44 +00:00
Corentin Noël
a5249f7c5f
gst-plugins-base: Fix several annotations
...
Add annotations for virtual methods when possible.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1965 >
2022-03-16 10:37:44 +00:00
Corentin Noël
15a75b99df
validate: Fix typo in get_reports
...
Return without s isn't taken into account for the introspection.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1965 >
2022-03-16 10:37:44 +00:00
Tim-Philipp Müller
7895bf38ad
rtspsrc: proxy new "add-reference-timestamp-meta" property from rtpjitterbuffer
...
When syncing to an RFC7273 clock this will add the original
reconstructed reference clock timestamp to buffers in form
of a GstReferenceTimestampMeta.
This is useful when we want to process or analyse data based
on the original timestamps untainted by any local adjustments,
for example reconstruct AES67 audio streams with sample accuracy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1964 >
2022-03-16 09:52:58 +00:00
Tim-Philipp Müller
c29d741c0e
rtpbin: proxy new "add-reference-timestamp-meta" property from rtpjitterbuffer
...
When syncing to an RFC7273 clock this will add the original
reconstructed reference clock timestamp to buffers in form
of a GstReferenceTimestampMeta.
This is useful when we want to process or analyse data based
on the original timestamps untainted by any local adjustments,
for example reconstruct AES67 audio streams with sample accuracy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1964 >
2022-03-16 09:52:58 +00:00
Tim-Philipp Müller
c88bfc0b3e
rtpjitterbuffer: add "add-reference-timestamp-meta" property
...
When syncing to an RFC7273 clock this will add the original
reconstructed reference clock timestamp to buffers in form
of a GstReferenceTimestampMeta.
This is useful when we want to process or analyse data based
on the original timestamps untainted by any local adjustments,
for example reconstruct AES67 audio streams with sample accuracy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1964 >
2022-03-16 09:52:58 +00:00
Philippe Normand
3e3ba1772c
wpe: Reintroduce persistent WebContext
...
A WebContext leak was introduced in MR
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2252 .
If we wanted one WebContext per WebView we should also unref the
WebKitWebContext when destroying the WebView.
This patch reintroduces the persistent WebContext, initially part of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1484 .
Fixes #1084
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1933 >
2022-03-16 09:07:21 +00:00
Tim-Philipp Müller
a525a76e54
opusenc: change default bitrate-type from cbr to constrained-vbr
...
Which is the default in libopus itself as well, with a comment
that constrained-vbr is considered "safer for real-time use".
Unclear why CBR was the default in the first place.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1451 >
2022-03-16 07:12:30 +00:00
Mathieu Duponchelle
30d028317b
webrtcbin: fix deadlock when setting up FEC encoder
...
We bind transceivers' fec_percentage property to the FEC encoder
percentage property, and with the binding bidirectional a deadlock
was introduced by the latest changes from !1762 :
We take hold of the transceiver's object lock, then add the binding
and set the property to its initial value on the encoder, which causes
set_property to deadlock in the transceiver when the binding kicks in.
Changing the binding type to DEFAULT (source to target) is enough
to address the deadlock and still serves the original intent.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1967 >
2022-03-16 06:06:39 +00:00
MGlolenstine
5c54cad469
doc: handy-elements: fix audiotestsrc description
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1966 >
2022-03-16 06:00:08 +00:00
Sangchul Lee
2f7c843f2b
webrtcbin: Check data channel transport for notifying 'ice-gathering-state'
...
Previously, it did not care about data channel's. It is fixed by adding
some conditions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1957 >
2022-03-16 03:31:08 +00:00
Nirbheek Chauhan
1ae7ea508d
rtpbuffer: The out args for rtp extension data are optional
...
The code checks that these are != NULL before dereferencing them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1962 >
2022-03-16 02:48:34 +00:00
Hou Qi
738dbf1cb7
v4l2videodec: safely retrun from video_dec_loop with stream unlock
...
This is to avoid decoder hang when doing trick play between
different resolutions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1960 >
2022-03-16 02:13:00 +00:00
Sebastian Dröge
5ca39060f4
rtpjitterbuffer: Improve accuracy of RFC7273 clock time calculations
...
Previously the result of the calculations included inaccuracies caused
by the NTP clock estimation, which caused the timestamps to jitter
+/- 1/clockrate.
By reorganizing the calculations it is possible to get rid of this
inaccuracy and calculate deterministic and exact packet timestamps based
on the actual NTP clock as long as the estimation is not off by more
than 2**31 clockrate units.
The only remaining inaccuracy that is introduced now is caused by the
conversion from the NTP clock to the pipeline clock.
Also split up debug output, demote many messages to the trace debug
level and output more intermediate results.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1955 >
2022-03-15 23:33:37 +00:00
Nirbheek Chauhan
8c2ef0f025
twcc: Add some logging to debug TWCC feedback
...
This should allow people to debug when TWCC feedback is not enabled
because they haven't set the extmap in the caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1952 >
2022-03-15 22:32:07 +00:00
Nirbheek Chauhan
a6bb63dcd7
twcc: Note that packet-loss-pct can count reordering as loss
...
This is difficult to encounter in ordinary networks, but is
encountered when using tc-netem to add random delays to packets, and
also when your UDP stream is bonded over multiple links with varying
characteristics.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1952 >
2022-03-15 22:32:07 +00:00
Seungha Yang
c08ce58753
nvcodec: Move CUDA <-> GL, D3D11, NVMM copy function to utils
...
This method can be used in other elements as well.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1945 >
2022-03-15 21:51:50 +00:00
Seungha Yang
b3df58add1
nvh265sldec: Add support for delayed output
...
Delay 4 frames in case of non-live to improve throughput
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1937 >
2022-03-15 21:08:06 +00:00
Seungha Yang
1a0d5bff61
h265decoder: Add support for delayed output
...
Functionally identical to the other decoder baseclasses.
Delayed output can improve throughput depending on decoding APIs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1937 >
2022-03-15 21:08:06 +00:00