gstreamer merge requestshttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests2022-10-04T02:49:58Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3114Release 1.21.12022-10-04T02:49:58ZTim-Philipp Müllertim@centricular.comRelease 1.21.11.21.1https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3110queue2: Hold the lock when modifying sinkresult2022-10-04T00:25:02ZEdward Herveyqueue2: Hold the lock when modifying sinkresultAs it's done elsewhere. Avoids a potential race of the field being modified in
the meantime.As it's done elsewhere. Avoids a potential race of the field being modified in
the meantime.1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3109qtdemux: Don't stop task when resetting2022-12-15T20:14:29ZEdward Herveyqtdemux: Don't stop task when resettingThis is a regression that was introduced in
cca2f555d14b5751f7f9d466b66127544dad5138 (yes, 9 years ago).
The only place where a demuxer streaming thread should be stopped is when the
sinkpad is deactivated from pull mode (i.e. PAUSED->R...This is a regression that was introduced in
cca2f555d14b5751f7f9d466b66127544dad5138 (yes, 9 years ago).
The only place where a demuxer streaming thread should be stopped is when the
sinkpad is deactivated from pull mode (i.e. PAUSED->READY).
Attempting to stop the task in this function would cause this to happen when a
FLUSH_STOP or STREAM_START event is received... which can cause deadlocks.1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3108playsink: Hold a reference to the soft volume element2023-03-27T09:00:43ZJan Schmidtplaysink: Hold a reference to the soft volume elementAlways hold a reference to the soft volume element
provided by the playsinkaudioconvert bin helper, the
same as when volume is provided by a sink element,
or the soft volume element gets unreffed too soon.Always hold a reference to the soft volume element
provided by the playsinkaudioconvert bin helper, the
same as when volume is provided by a sink element,
or the soft volume element gets unreffed too soon.1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3107uridecodebin3, decodebin3, urisourcebin: Event handling fixes2022-10-08T09:42:41ZJan Schmidturidecodebin3, decodebin3, urisourcebin: Event handling fixescommit a2afb94a2cc46089bc23e775058f4e200439b452
Author: Jan Schmidt <jan@centricular.com>
Date: Sat Oct 1 04:41:06 2022 +1000
decodebin3: Make sure event is writable before modifying
Make sure we're operating on a private...commit a2afb94a2cc46089bc23e775058f4e200439b452
Author: Jan Schmidt <jan@centricular.com>
Date: Sat Oct 1 04:41:06 2022 +1000
decodebin3: Make sure event is writable before modifying
Make sure we're operating on a private copy of an event when
modifying it.
commit 770043c4a9be9205b3ef9b353b0e8cd436cfa633
Author: Jan Schmidt <jan@centricular.com>
Date: Sat Oct 1 04:40:09 2022 +1000
urisourcebin: Make sure event is writable before modifying.
Make sure we're operating on a private copy of an event before
modifying it.
commit c32b4033f3ca777f1bceb0aff91bd61c58034347
Author: Jan Schmidt <jan@centricular.com>
Date: Sat Oct 1 04:37:05 2022 +1000
decodebin3: Don't lose a ref on EOS event
Make sure not to give away the ref on the final EOS
event for which the probe handler is returning GST_PAD_PROBE_REMOVE
when pushing the event manually.1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3103avauddec: fix unnecessary reconfiguration if the audio layout isn't specified2022-10-04T00:24:59ZTim-Philipp Müllertim@centricular.comavauddec: fix unnecessary reconfiguration if the audio layout isn't specifiedIt would constantly want to renegotiate (and spam the debug log) even
though the channel layout hasn't actually changed. We use the same
fallback in gst_ffmpegauddec_negotiate() already.
This happens with WMA files for example:
<detail...It would constantly want to renegotiate (and spam the debug log) even
though the channel layout hasn't actually changed. We use the same
fallback in gst_ffmpegauddec_negotiate() already.
This happens with WMA files for example:
<details><summary>Debug log</summary>
```
gstavauddec.c:671:gst_ffmpegauddec_handle_frame:<avdec_wmav2-0> Received new data of size 5945, offset:18446744073709551615, ts:0:03:39.149000000, dur:0:00:00.368156500
gstavauddec.c:394:gst_ffmpegauddec_negotiate:<avdec_wmav2-0> Renegotiating audio from 44100Hz@2channels (28, interleaved=0) to 44100Hz@2channels (28, interleaved=0)
gstavauddec.c:496:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> Creating output buffer
gstavauddec.c:520:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> Buffer created. Size: 131072
gstavauddec.c:546:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> return flow 0, out 0x7fb8d8003b40, got_frame 1
gstavauddec.c:573:gst_ffmpegauddec_frame:<avdec_wmav2-0> Decoded data, buffer buffer: 0x7fb8d8003b40, pts 99:99:99.999999999, dts 99:99:99.999999999, dur 99:99:99.999999999, size 131072, offset none, offset_end none, flags 0x0
gstavauddec.c:546:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> return flow 0, out (nil), got_frame 0
gstavauddec.c:578:gst_ffmpegauddec_frame:<avdec_wmav2-0> We didn't get a decoded buffer
gstavauddec.c:671:gst_ffmpegauddec_handle_frame:<avdec_wmav2-0> Received new data of size 5945, offset:18446744073709551615, ts:0:03:39.521000000, dur:0:00:00.368156500
gstavauddec.c:394:gst_ffmpegauddec_negotiate:<avdec_wmav2-0> Renegotiating audio from 44100Hz@2channels (28, interleaved=0) to 44100Hz@2channels (28, interleaved=0)
gstavauddec.c:496:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> Creating output buffer
gstavauddec.c:520:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> Buffer created. Size: 131072
gstavauddec.c:546:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> return flow 0, out 0x7fb8d8003120, got_frame 1
gstavauddec.c:573:gst_ffmpegauddec_frame:<avdec_wmav2-0> Decoded data, buffer buffer: 0x7fb8d8003120, pts 99:99:99.999999999, dts 99:99:99.999999999, dur 99:99:99.999999999, size 131072, offset none, offset_end none, flags 0x0
gstavauddec.c:546:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> return flow 0, out (nil), got_frame 0
gstavauddec.c:578:gst_ffmpegauddec_frame:<avdec_wmav2-0> We didn't get a decoded buffer
gstavauddec.c:671:gst_ffmpegauddec_handle_frame:<avdec_wmav2-0> Received new data of size 5945, offset:18446744073709551615, ts:0:03:39.892000000, dur:0:00:00.368156500
gstavauddec.c:394:gst_ffmpegauddec_negotiate:<avdec_wmav2-0> Renegotiating audio from 44100Hz@2channels (28, interleaved=0) to 44100Hz@2channels (28, interleaved=0)
gstavauddec.c:496:gst_ffmpegauddec_audio_frame:<avdec_wmav2-0> Creating output buffer
```
</details>1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3100xvimagesink: Several fixes for memory leaks and a spurious crash2022-10-08T09:51:32ZJan Schmidtxvimagesink: Several fixes for memory leaks and a spurious crashcommit 0a385bbfe697cf9cba6d86f83a1147b227b4f116
Author: Jan Schmidt <jan@centricular.com>
Date: Sat Oct 1 04:51:21 2022 +1000
xvimagesink: Don't leak XvShmImage
If allocating an XvShmImage generates an X error, but
st...commit 0a385bbfe697cf9cba6d86f83a1147b227b4f116
Author: Jan Schmidt <jan@centricular.com>
Date: Sat Oct 1 04:51:21 2022 +1000
xvimagesink: Don't leak XvShmImage
If allocating an XvShmImage generates an X error, but
still returns some allocated memory, make sure to free it
so it doesn't leak.
commit f215aa09788230edb443acdb64bd40b1a5127f18
Author: Jan Schmidt <jan@centricular.com>
Date: Sat Oct 1 04:49:16 2022 +1000
xvimagesink: Zero initialize mask array
Clear the stack array before setting bits to pass to
XISelectEvents(). Fixes spurious crash from an X error:
X Error of failed request: BadValue (integer parameter out of range for operation)
commit f7e4f10523eb45198b9295c30a129f320feb8e92
Author: Jan Schmidt <jan@centricular.com>
Date: Sat Oct 1 04:47:31 2022 +1000
xvimagesink: Don't leak temporary
Use a stack variable instead of a temporarily
malloced variable that wasn't being freed
properly. Fixes a small leak of a GstXvTouchDevice1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3099splitmuxsrc: don't consider unlinked pads when deactivating part2022-10-08T09:49:35ZMathieu Duponchellesplitmuxsrc: don't consider unlinked pads when deactivating partIf splitmuxsrc exposes multiple pads, but only one is linked, part pads
will never see an EOS event. This shouldn't prevent the part from being
eventually deactivated.If splitmuxsrc exposes multiple pads, but only one is linked, part pads
will never see an EOS event. This shouldn't prevent the part from being
eventually deactivated.1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3094pbutils: descriptions: fix gst_pb_utils_get_caps_description_flags()2022-10-04T00:24:57ZTim-Philipp Müllertim@centricular.compbutils: descriptions: fix gst_pb_utils_get_caps_description_flags()And add a little unit test.
No sniggering at the back!And add a little unit test.
No sniggering at the back!1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3092xmptag: Call gst_tag_register_musicbrainz_tags during init2022-10-04T00:24:56ZJames Cowgillxmptag: Call gst_tag_register_musicbrainz_tags during initWe need to call this to register the MusixBrainz tags before we use
them in an XMP schema.
Fixes this critical when attempting to run jpegparse on a JPEG
containing MusicBrainz XMP tags:
GStreamer-CRITICAL **: 20:41:07.885: gst_tag_g...We need to call this to register the MusixBrainz tags before we use
them in an XMP schema.
Fixes this critical when attempting to run jpegparse on a JPEG
containing MusicBrainz XMP tags:
GStreamer-CRITICAL **: 20:41:07.885: gst_tag_get_type: assertion 'info != NULL' failed1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3091gaussblur, test-effect-switch example: Fix some minor memory leaks2022-10-04T00:24:55ZSebastian Drögegaussblur, test-effect-switch example: Fix some minor memory leaks1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3088v4l2codecs: Warn user when no media devices are found2022-10-04T00:24:54ZChristopher Obbardv4l2codecs: Warn user when no media devices are foundCurrently if the user is not able to access the devices under /dev/media*,
either due to no media devices present on the system or simply no permission
to access the device, v4l2codecs initialises with no features or debug messages.
Sin...Currently if the user is not able to access the devices under /dev/media*,
either due to no media devices present on the system or simply no permission
to access the device, v4l2codecs initialises with no features or debug messages.
Since calling `GST_DEBUG="v4l2*:7" gst-inspect-1.0 v4l2codecs` is a typical way
to diagnose why element(s) failed to enumerate, we should be more verbose here
when the user is not able to access any /dev/media* device. So print a simple
debug message in this case to aid debugging.1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3086meson: Remove builtin variable datadir from pkgconfig variables2022-10-04T00:24:49ZNirbheek Chauhannirbheek.chauhan@gmail.commeson: Remove builtin variable datadir from pkgconfig variablesFixes warning with meson 0.62:
gst-plugins-bad| subprojects/gst-plugins-bad/meson.build:546: WARNING: Project targets '>= 0.62' but uses feature deprecated since '0.62.0': pkgconfig.generate variable for builtin directories. They will b...Fixes warning with meson 0.62:
gst-plugins-bad| subprojects/gst-plugins-bad/meson.build:546: WARNING: Project targets '>= 0.62' but uses feature deprecated since '0.62.0': pkgconfig.generate variable for builtin directories. They will be automatically included when referenced
and more.1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3084qtdemux: guard against timestamp calculation overflow in gap event loop2022-10-04T00:24:48ZTim-Philipp Müllertim@centricular.comqtdemux: guard against timestamp calculation overflow in gap event loopCould possibly cause an endless loop.
Fixes #1400.Could possibly cause an endless loop.
Fixes #1400.1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3083decodebin3: Fix memory issues with active selection list2022-10-04T00:25:00ZEdward Herveydecodebin3: Fix memory issues with active selection listThis had a couple of issues:
* The backing strings (from GstStream) could disappear
* The actual list wasn't properly reset/freed when decodebin3 was re-usedThis had a couple of issues:
* The backing strings (from GstStream) could disappear
* The actual list wasn't properly reset/freed when decodebin3 was re-used1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3079examples: Support multiple video streams in JS webrtc sendrecv2022-10-04T00:24:50ZNirbheek Chauhannirbheek.chauhan@gmail.comexamples: Support multiple video streams in JS webrtc sendrecv1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3076gsturi: When setting the same string again do nothing2022-10-12T12:16:08ZSebastian Drögegsturi: When setting the same string again do nothingOtherwise code like gst_uri_set_host(uri, gst_uri_get_host(uri)) would
first free the string, then create a copy of the freed string and then
assigned that.Otherwise code like gst_uri_set_host(uri, gst_uri_get_host(uri)) would
first free the string, then create a copy of the freed string and then
assigned that.1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3074gst-docs: update macOS new project instructions2022-10-07T09:41:17ZAleix Conchillo Flaquégst-docs: update macOS new project instructions1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orghttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3068ci: Move non-image-tag variables back to .gitlab-ci.yml2022-10-04T00:24:42ZNirbheek Chauhannirbheek.chauhan@gmail.comci: Move non-image-tag variables back to .gitlab-ci.ymlhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3065#note_1563706https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3065#note_15637061.21.1Nirbheek Chauhannirbheek.chauhan@gmail.comNirbheek Chauhannirbheek.chauhan@gmail.comhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3067vp9: check if libvpx supports high bit depth2022-11-03T20:33:53ZJakub Adamvp9: check if libvpx supports high bit depthDetect at runtime if libvpx is compiled with --enable-vp9-highbitdepth and enable 10bit video formats in element caps accordingly.Detect at runtime if libvpx is compiled with --enable-vp9-highbitdepth and enable 10bit video formats in element caps accordingly.1.21.1GStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.orgGStreamer Marge Botgitlab-merge-bot@gstreamer-foundation.org