GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2022-11-10T09:21:15Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1365rtmpsrc bus error on Mac OSX2022-11-10T09:21:15ZScott Fairbairnrtmpsrc bus error on Mac OSX### Describe your issue
On Mac OSX, in both version 18 and 20 of gstreamer, the rtmpsrc element will not process the stream.
Instead, it gives a bus error.
If the same stream is pulled in by ffmpeg, it works.
If the same syntax is used...### Describe your issue
On Mac OSX, in both version 18 and 20 of gstreamer, the rtmpsrc element will not process the stream.
Instead, it gives a bus error.
If the same stream is pulled in by ffmpeg, it works.
If the same syntax is used by gstreamer under Linux, it works.
But under OSX, rtmpsrc always generates a bus error.
<!-- For any GStreamer usage question, please contact the community using the #gstreamer channel on IRC https://www.oftc.net/ or the mailing list on https://gstreamer.freedesktop.org/lists/ -->
#### Expected Behavior
<!-- What did you expect to happen -->
I expected it to read the rtmp source and proceed without a bus error.
#### Observed Behavior
<!-- What actually happened -->
```
gst-launch-1.0 rtmpsrc location=rtmp://127.0.0.1:1935/live/whatever ! fakesink
Setting pipeline to PAUSED ...
[1] 5798 bus error gst-launch-1.0 rtmpsrc location=rtmp://127.0.0.1:1935/live/whatever
```
#### Setup
- **Operating System: Mac OSX Monterey **
- **Device:** Computer <!-- Delete as appropriate !-->
- **GStreamer Version: 18 and 20 exhibits the same behavior **
- **Command line:**
The RTMP stream is sourced by an NGINX server, but we've tried pulling from other services, including CDNs, no difference.
Example..
```
gst-launch-1.0 rtmpsrc location=rtmp://192.168.64.9:1935/live/whatever
```
### Steps to reproduce the bug
<!-- please fill in exact steps which reproduce the bug on your system, for example: -->
Have an RTMP source.
### How reproducible is the bug?
<!-- The reproducibility of the bug is Always/Intermittent/Only once after doing a very specific set of steps-->
We've tried every known combination, including live=1 trailing the rtmp uri, no difference.
We've tried versions 18 and 20.
We've uninstalled everything relating to gstreamer from the machine, reinstalled 20 clean from the site, no difference.
### Screenshots if relevant
### Solutions you have tried
### Related non-duplicate issues
### Additional Information
<!-- Any other information such as logs. Make use of <details> for long output -->https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1339v4l2: need support for Apple's full-range color variant of bt7092022-11-10T09:21:15ZF. Duncanhv4l2: need support for Apple's full-range color variant of bt709maybe @ndufresne could review PR !2793 ?
Apple AirPlay streams use the "uncommon" but apparently-allowed "full-range 0_255" color variant of bt709 color, with colorimetry 1:3:5:1
(instead of 2:3:5:1, limited-range 16_235) (These video ...maybe @ndufresne could review PR !2793 ?
Apple AirPlay streams use the "uncommon" but apparently-allowed "full-range 0_255" color variant of bt709 color, with colorimetry 1:3:5:1
(instead of 2:3:5:1, limited-range 16_235) (These video streams are not intended for tv broadcasts, but for AppleTV boxes or smart tv's that partially emulate them)
EDITED:
The following change at [v4l2/gstv4l2object.c#L2443](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-good/sys/v4l2/gstv4l2object.c#L2443)
from
```
if (colorspace == req_cspace) {
if (gst_v4l2_object_get_colorspace (v4l2object, &fmt, &cinfo))
gst_v4l2_object_fill_colorimetry_list (&list, &cinfo);
}
```
to
```
if (colorspace == req_cspace) {
if (gst_v4l2_object_get_colorspace (v4l2object, &fmt, &cinfo))
gst_v4l2_object_fill_colorimetry_list (&list, &cinfo);
if (colorspace == V4L2_COLORSPACE_REC709) { /* add support for full-range bt709 variant */
fmt.fmt.pix_mp.quantization = V4L2_QUANTIZATION_FULL_RANGE;
if (gst_v4l2_object_get_colorspace (v4l2object, &fmt, &cinfo))
gst_v4l2_object_fill_colorimetry_list (&list, &cinfo);
fmt.fmt.pix_mp.quantization = 0;
}
}
```
successfully adds 1:3:5:1 to the colorimetry list.
is this an acceptable way to add it?
Note: I dont see any color difference when the video plays, so this is probably just a way to
allow successful caps negotiation.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1336GStreamer 1.20.4 release tracker2022-11-10T09:21:15ZTim-Philipp Müllertim@centricular.comGStreamer 1.20.4 release tracker# Milestone 1.20.4
- Milestone 1.20.4 Overview: %1.20.4
# Todo
- [x] **Fix 1.20 branch CI**
- [x] **Fix 1.20 branch CI (October edition)** - subproject update in documentation job always fails in MRs -> https://gitlab.freedesktop.org/...# Milestone 1.20.4
- Milestone 1.20.4 Overview: %1.20.4
# Todo
- [x] **Fix 1.20 branch CI**
- [x] **Fix 1.20 branch CI (October edition)** - subproject update in documentation job always fails in MRs -> https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3139
- [x] [Merge Requests with `Needs backport` label](https://gitlab.freedesktop.org/groups/gstreamer/-/merge_requests?scope=all&state=merged&label_name[]=Needs%20backport¬[label_name][]=Backported%20into%201.20)
- [x] [Issues with `Needs backport` label](https://gitlab.freedesktop.org/groups/gstreamer/-/issues?scope=all&utf8=%E2%9C%93&state=all&label_name[]=Needs%20backport)
- [x] [Merge Requests with `Maybe backport` label](https://gitlab.freedesktop.org/groups/gstreamer/-/merge_requests?scope=all&utf8=%E2%9C%93&state=all&label_name[]=Maybe%20backport)
- [x] [Merge Requests with `1.20.4` milestone](https://gitlab.freedesktop.org/groups/gstreamer/-/merge_requests?milestone_title=1.20.4)
- [x] [Issues with `1.20.4` milestone](https://gitlab.freedesktop.org/groups/gstreamer/-/issues?milestone_title=1.20.4)
- [x] [Ensure all Merge Requests on the 1.20 branch have a milestone set or are labelled as `No milestone`](https://gitlab.freedesktop.org/groups/gstreamer/-/merge_requests?scope=all&utf8=%E2%9C%93&state=all&target_branch=1.20&milestone_title=None¬[label_name][]=No%20milestone)
- [x] [Issues with `Security` label](https://gitlab.freedesktop.org/groups/gstreamer/-/issues?scope=all&utf8=%E2%9C%93&state=all&label_name[]=Security)
- [x] Blockers
- [x] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1348 should ideally be fixed
- [x] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2928 should ideally be fixed
- [x] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2865
- [x] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2890 (custom meta copy structure refcount issue)
- [x] leak tracer fixes would be nice to get in
# Prep
- [x] www: add release note entry and add contributors
- [x] ~~update translations (to make sure we don't forget during release)~~
# GStreamer
- [x] MR / commit for release - https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3166
- [x] tag release
- [x] upload tarballs (plus checksums and GPG signatures)
- [x] back to dev
# Cerbero
- [x] build 1.20.4 tag - https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/961
- [x] binaries
- [x] Windows x86 MinGW (@nirbheek)
- [x] Windows x86_64 MinGW (@nirbheek)
- [x] Windows x86 MSVC (@nirbheek)
- [x] Windows x86_64 MSVC (@nirbheek)
- [x] Windows UWP release-crt (@nirbheek)
- [x] Windows UWP debug-crt (@nirbheek)
- [x] Android (@thaytan)
- [x] macOS (@ystreet)
- [x] iOS (@ystreet)
- [x] source bundle (@thaytan)
- [x] check for sha265sums for binaries
- [x] check for GPG signatures for binaries
- [x] tag cerbero (@tpm)
- [x] build 1.20 branch again - https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/963
- [x] update download section on website
- [x] announce binaries (twitter, gstreamer-devel)
# Announce
- [x] Mailing lists
- [x] Website: news item + release notes - https://gitlab.freedesktop.org/gstreamer/www/-/merge_requests/57
- [x] Twitter
- [x] IRC channel topic1.20.4Tim-Philipp Müllertim@centricular.comTim-Philipp Müllertim@centricular.com2022-10-12https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1303Dynamic removing webrtcbin from GstTee cause total pipeline paused2022-11-10T09:21:14ZZhuChaselDynamic removing webrtcbin from GstTee cause total pipeline pausedI use one tee for maybe 5 webrtcbins as receiver, and one appsrc as sender. Between appsrc and tee, I have GstQueue, named queue1. I try to remove one webrtcbin frequently. Then i found queue1 paused sometimes, then block all the pipelin...I use one tee for maybe 5 webrtcbins as receiver, and one appsrc as sender. Between appsrc and tee, I have GstQueue, named queue1. I try to remove one webrtcbin frequently. Then i found queue1 paused sometimes, then block all the pipeline.
I even use GST_PAD_PROBE_TYPE_IDLE to unlink teepad using gst_pad_unlink before removing webrtcbin, code like,
gst_pad_add_probe(sink->teepad, GST_PAD_PROBE_TYPE_IDLE, unlink_cb, sink, (GDestroyNotify)g_free);
But I can still produce pipeline block, queue1 paused. I dig into the source code, when peer(chrome) leaves, I find teepad change to GST_FLOW_FLUSHING(-2) state even without removing webrtcbin from pipeline, I think changing to GST_FLOW_FLUSHING state is inevitable. Below is the state related log:
tee gsttee.c:940:gst_tee_handle_data:<videotee:src_4> Starting to push buffer 0000027DC865E000
0:00:03.219030000 9820 0000027DC5905800 INFO GST_SCHEDULING gstpad.c:4860:gst_pad_push_data:<videotee:src_4> error pushing events, return flushing
0:00:03.219759000 9820 0000027DC5905800 INFO tee gsttee.c:945:gst_tee_handle_data:<videotee:src_4> Pushing item 0000027DC865E000 yielded result flushing pad src_4
0:00:03.220583000 9820 0000027DC5905800 INFO tee gsttee.c:1013:gst_tee_handle_data:<videotee> received error flushing
0:00:03.222496000 9820 0000027DC5905800 INFO GST_PADS gstpad.c:4468:gst_pad_chain_data_unchecked:<videotee> chainfunc return2 queue videotee return -2 funcname gst_tee_chain pad sink
0:00:03.223200000 9820 0000027DC5905800 INFO GST_SCHEDULING gstpad.c:4478:gst_pad_chain_data_unchecked:<videotee:sink> called chainfunction &gst_tee_chain with buffer 0000027DC865E000, returned flushing
0:00:03.223904000 9820 0000027DC5905800 INFO GST_PADS gstpad.c:4511:gst_pad_chain_data_unchecked:<videotee> chainfunc return queue videotee pad sink return -2
0:00:03.227789000 9820 0000027DC5905800 INFO GST_SCHEDULING gstpad.c:4478:gst_pad_chain_data_unchecked:<caps:sink> called chainfunction &gst_base_transform_chain with buffer 0000027DC865E000, returned flushing
0:00:03.228397000 9820 0000027DC5905800 INFO GST_PADS gstpad.c:4511:gst_pad_chain_data_unchecked:<caps> chainfunc return queue caps pad sink return -2
0:00:03.228885000 9820 0000027DC5905800 INFO GST_SCHEDULING gstpad.c:4500:gst_pad_chain_data_unchecked:<caps:sink> called chainlistfunction &gst_pad_chain_list_default, returned flushing ret -2
0:00:03.229151000 9820 0000027DC5905800 INFO GST_PADS gstpad.c:4511:gst_pad_chain_data_unchecked:<caps> chainfunc return queue caps pad sink return -2
0:00:03.229579000 9820 0000027DC5905800 INFO task gsttask.c:733:gst_task_set_state_unlocked:<queuebb:src> Changing task 0000027DC5907290 to state 2
0:00:03.230532000 9820 0000027DC5905800 INFO queue_dataflow gstqueue.c:1660:gst_queue_loop:<queuebb> pause task, reason: flushing
0:00:03.231669000 9820 0000027DC5905800 INFO task gsttask.c:369:gst_task_func:<queuebb:src> Task 0000027DC5907290 going to paused
from function gst_tee_handle_data,
while (pads) {
GstPad *pad;
/* stop pushing more buffers when we have a fatal error */
if (G_UNLIKELY (ret != GST_FLOW_OK && ret != GST_FLOW_NOT_LINKED))
goto error;
pads = g_list_next (pads);
}
if one pad is not OK, then all pads will be affected. How about move goto error out? So, what can I do to dynamically remove webrtcbin from tee without affect other webrtcbin? Please advise.
Thanks.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1302info audioresample2022-11-10T09:21:14ZFilippo raciinfo audioresampleHi,
I'm trying to resample audio files, I use a shell script and the command I use is this.
But I'm not sure if the parameters I write are right, whatever I write as parameters never gives me an error, so I can't tell if I'm right:
the...Hi,
I'm trying to resample audio files, I use a shell script and the command I use is this.
But I'm not sure if the parameters I write are right, whatever I write as parameters never gives me an error, so I can't tell if I'm right:
the string is this:
`gst-launch-1.0 -v filesrc location="$file" ! decodebin ! audioconvert ! audioresample ! audio/x-raw, format=S24LE,rate=176400,dithering=tpdf_hf,dithering-threshold=24,noise-shaping=high,quality=10,resample-method=blackman-nuttall,sinc-filter-interpolation=linear,sinc-filter-mode=full ! alsasink device=hw:1,0`https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1300gst-launch-1.0 pipeline freezes after recording of rapidly changing images2022-11-10T09:21:14ZSzczempusgst-launch-1.0 pipeline freezes after recording of rapidly changing images### Describe your issue
<!-- a clear and concise summary of the bug. -->
<!-- For any GStreamer usage question, please contact the community using the #gstreamer channel on IRC https://www.oftc.net/ or the mailing list on https://gstream...### Describe your issue
<!-- a clear and concise summary of the bug. -->
<!-- For any GStreamer usage question, please contact the community using the #gstreamer channel on IRC https://www.oftc.net/ or the mailing list on https://gstreamer.freedesktop.org/lists/ -->
UDP pipeline gets frozen after a fast-changing image (ie. while waving a hand in front of camera or shaking). The internal clock is working, but pipeline clock stops without state changing. Only pipeline restart helps.
#### Expected Behavior
The pipeline should still transmit video
#### Observed Behavior
The pipeline does not send any video data and is still in a playing state with a stopped pipeline clock.
#### Setup
- **Operating System:** Debian 11 aarch64
- **Device:** Raspberry Pi3B+ 1 GB, EM7455 LTE Modem (1Mbit/s real speed), PS3 Eye webcam
- **GStreamer Version:** 1.0
### Steps to reproduce the bug
host pipeline:
`
gst-launch-1.0 -ve v4l2src device=/dev/video0 ! video/x-raw,width=640,height=480,framerate=\(fraction\)30/1 ! clockoverlay ! v4l2h264enc extra-controls=s,video_bitrate=250000 capture-io-mode=4 output-io-mode=4 ! "video/x-h264,level=(string)4" ! rtph264pay config-interval=1 ! multiudpsink clients="127.0.0.1:5006,10.123.0.2:5006" sync=false
`
client pipeline:
`
udpsrc port=5006 do-timestamp=true ! application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96 ! rtpjitterbuffer latency=100 drop-on-latency=true drop-messages-interval=100000000 ! queue max-size-buffers=20000 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! glupload ! qmlglsink name=qmlglsink sync=false
`
### Solutions you have tried
Modifying pipeline in many ways. Modifying rtpjitter buffer, queue, camera bitrate and resolution. Tried to change h264 encoder, but pipeline starts only with hardware v4l2h264enc. Connecting via ethernet also doesn't resolve the problem.
For testing, I lunch a simple ffmpeg pipeline and it worked without any problems so that excludes hardware problems.
### Additional Information
For more information, I enclose a log file. Pay attention to what happens after the last sent video frame. It falls into the loop while sending a query and in v4l2src0 gets a timeout. [zipped log file](/uploads/4016b85eaf33171a0949c8fc9222b6a4/gst.zip)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1299souphttpsrc unable to parse response2022-11-10T09:21:14ZSzymon Mikuliczsouphttpsrc unable to parse response### Describe your issue
I am unable to open any http stream using souphttpsrc (I noticed it while trying to use mopidy)
#### Expected Behavior
The stream starts to play
#### Observed Behavior
With proxy ON: I get "Unable to parse respo...### Describe your issue
I am unable to open any http stream using souphttpsrc (I noticed it while trying to use mopidy)
#### Expected Behavior
The stream starts to play
#### Observed Behavior
With proxy ON: I get "Unable to parse response"<br>
With proxy OFF: Crash (SIGABRT)
#### Setup
- **Operating System:** Fedora 36
- **Device:** Computer
- **GStreamer Version:** 1.20
### Steps to reproduce the bug
`gst-launch-1.0 -v souphttpsrc method='get' location='https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3' ! decodebin ! audioconvert ! autoaudiosink`
### How reproducible is the bug?
Always
### Additional Information
Logs attached for proxy/noproxy cases
[gst_proxy.log](/uploads/e42233bfc73b4c7190b6bd3aa4544bdc/gst_proxy.log)
[gst_noproxy.log](/uploads/5714bd0016800ac61408fb1f24fc49ab/gst_noproxy.log)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1274rtph264pay: delta-unit flag set on non-delta frames.2022-11-10T09:21:14ZPatricia Muscalurtph264pay: delta-unit flag set on non-delta frames.Problem:
rtph264pay sets a delta unit flag on non-delta buffers, when config-interval is set. Only SPS is not marked as delta-unit.
The provided unit test exposes the problem:
[rtph264pay-delta-unit-test-check.patch](/uploads/8378fc4cd...Problem:
rtph264pay sets a delta unit flag on non-delta buffers, when config-interval is set. Only SPS is not marked as delta-unit.
The provided unit test exposes the problem:
[rtph264pay-delta-unit-test-check.patch](/uploads/8378fc4cdc6eeaae35b5a03698a85822/rtph264pay-delta-unit-test-check.patch)
Steps to reproduce:
GST_DEBUG=check:5 GST_CHEKS=test_rtph264pay_avc_delta_unit_check meson test -v -C build --suite gst-plugins-good elements_rtph264
Notice, the following debug output from the test:
DEBUG check rtph264.c:1411:test_rtph264pay_avc_delta_unit_check: nal_type=7, delta_unit=0
DEBUG check rtph264.c:1411:test_rtph264pay_avc_delta_unit_check: nal_type=8, delta_unit=1
DEBUG check rtph264.c:1411:test_rtph264pay_avc_delta_unit_check: nal_type=5, delta_unit=1
DEBUG check rtph264.c:1411:test_rtph264pay_avc_delta_unit_check: nal_type=7, delta_unit=0
DEBUG check rtph264.c:1411:test_rtph264pay_avc_delta_unit_check: nal_type=8, delta_unit=1
DEBUG check rtph264.c:1411:test_rtph264pay_avc_delta_unit_check: nal_type=5, delta_unit=1
DEBUG check rtph264.c:1411:test_rtph264pay_avc_delta_unit_check: nal_type=1, delta_unit=1https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1273vaapi: VP8 videos played as grayscale and compressed on left when vaapi is in...2022-11-10T09:21:14ZSebastienvaapi: VP8 videos played as grayscale and compressed on left when vaapi is installedThe issue has been reported on https://launchpad.net/bugs/1978153 using gstreamer 1.20.1 stack
Example of video (screencast from GNOME)
https://bugs.launchpad.net/ubuntu/+source/gstreamer-vaapi/+bug/1978153/+attachment/5596047/+files/Sc...The issue has been reported on https://launchpad.net/bugs/1978153 using gstreamer 1.20.1 stack
Example of video (screencast from GNOME)
https://bugs.launchpad.net/ubuntu/+source/gstreamer-vaapi/+bug/1978153/+attachment/5596047/+files/Screencast%20from%2009-06-2022%2020%3A40%3A36.webm
Screenshot showing the issue
https://launchpadlibrarian.net/606292186/Screenshot%20from%202022-06-10%2005-51-07.png
Using
$ gst-play-1.0 --videosink="glsinkbin sink=gtkglsink" video.webm
shows the same issue than totem
The video plays fine if gstreamer1.0-vaapi is uninstalled.
Trying gstreamer1.0-vaapi 1.20.2 doesn't resolve ithttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1271Unable to cross-compile gst-omx2022-11-10T09:21:14ZVincent FortierUnable to cross-compile gst-omx### Describe your issue
<!-- a clear and concise summary of the bug. -->
<!-- For any GStreamer usage question, please contact the community using the #gstreamer channel on IRC https://www.oftc.net/ or the mailing list on https://gstream...### Describe your issue
<!-- a clear and concise summary of the bug. -->
<!-- For any GStreamer usage question, please contact the community using the #gstreamer channel on IRC https://www.oftc.net/ or the mailing list on https://gstreamer.freedesktop.org/lists/ -->
#### Expected Behavior
<!-- What did you expect to happen -->
#### Observed Behavior
<!-- What actually happened -->
#### Setup
- **Operating System:** Synology Linux DSM version 6.x and 7.x
- **Device:** NAS
- **GStreamer Version:** 1.20.2
- **Command line:** N/A
### Steps to reproduce the bug
Configuration step below. Note that it fails at every arch (armv5, v7, v8, ppc, i686 and x64).
```
===> Extracting for gst-omx
tar -xJpf /home/spksrc/gstreamer/spksrc/cross/gst-omx/../../distrib/gst-omx-1.20.2.tar.xz -C /home/spksrc/gstreamer/spksrc/cross/gst-omx/work-x64-6.1
===> Patching for gst-omx
===> Configuring for gst-omx
===> - Configure ARGS: -Dbuildtype=release --cross-file /home/spksrc/gstreamer/spksrc/mk/meson/x86_64.cfg
===> - Install prefix: /usr/local/gst-omx
===> - Install prefix [var]: /usr/local/gst-omx/var
===> - Meson configure
===> - Dependencies = cross/gstreamer cross/gst-plugins-base
===> - Build path = /home/spksrc/gstreamer/spksrc/cross/gst-omx/work-x64-6.1/gst-omx-1.20.2/builddir
===> - Configure ARGS = -Dbuildtype=release --cross-file /home/spksrc/gstreamer/spksrc/mk/meson/x86_64.cfg
===> - Install prefix = /usr/local/gst-omx
cd /home/spksrc/gstreamer/spksrc/cross/gst-omx/work-x64-6.1/gst-omx-1.20.2 && env PARALLEL_MAKE=max PKG_CONFIG=/usr/bin/pkg-config PKG_CONFIG_LIBDIR=/home/spksrc/gstreamer/spksrc/cross/gst-omx/work-x64-6.1/install//usr/local/gst-omx/lib/pkgconfig WORK_DIR=/home/spksrc/gstreamer/spksrc/cross/gst-omx/work-x64-6.1 INSTALL_PREFIX=/usr/local/gst-omx TC=syno-x64-6.1 LD="/home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-ld" LDSHARED="/home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-gcc -shared" CPP="/home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-cpp" NM="/home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-nm" CC="/home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-gcc" AS="/home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-as" RANLIB="/home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-ranlib" CXX="/home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-g++" AR="/home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-ar" STRIP="/home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-strip" OBJDUMP="/home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-objdump" READELF="/home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-readelf" CFLAGS="-I/home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/include -I/home/spksrc/gstreamer/spksrc/cross/gst-omx/work-x64-6.1/install//usr/local/gst-omx/include " CPPFLAGS="-I/home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/include -I/home/spksrc/gstreamer/spksrc/cross/gst-omx/work-x64-6.1/install//usr/local/gst-omx/include " CXXFLAGS="-I/home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/include -I/home/spksrc/gstreamer/spksrc/cross/gst-omx/work-x64-6.1/install//usr/local/gst-omx/include " LDFLAGS="-L/home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/lib -L/home/spksrc/gstreamer/spksrc/cross/gst-omx/work-x64-6.1/install//usr/local/gst-omx/lib -Wl,--rpath-link,/home/spksrc/gstreamer/spksrc/cross/gst-omx/work-x64-6.1/install//usr/local/gst-omx/lib -Wl,--rpath,/usr/local/gst-omx/lib " meson builddir -Dprefix=/usr/local/gst-omx -Dbuildtype=release --cross-file /home/spksrc/gstreamer/spksrc/mk/meson/x86_64.cfg
The Meson build system
Version: 0.62.1
Source dir: /home/spksrc/gstreamer/spksrc/cross/gst-omx/work-x64-6.1/gst-omx-1.20.2
Build dir: /home/spksrc/gstreamer/spksrc/cross/gst-omx/work-x64-6.1/gst-omx-1.20.2/builddir
Build type: cross build
Project name: gst-omx
Project version: 1.20.2
C compiler for the host machine: /home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-gcc (gcc 4.9.3 "x86_64-pc-linux-gnu-gcc (crosstool-NG 1.20.0) 4.9.3 20150311 (prerelease)")
C linker for the host machine: /home/spksrc/gstreamer/spksrc/toolchain/syno-x64-6.1/work/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-gcc ld.bfd 1.20.0
C compiler for the build machine: cc (gcc 8.3.0 "cc (Debian 8.3.0-6) 8.3.0")
C linker for the build machine: cc ld.bfd 2.31.1
Build machine cpu family: x86_64
Build machine cpu: x86_64
Host machine cpu family: x86_64
Host machine cpu: x86_64
Target machine cpu family: x86_64
Target machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29)
Run-time dependency gstreamer-1.0 found: YES 1.20.2
Run-time dependency gstreamer-base-1.0 found: YES 1.20.2
Run-time dependency gstreamer-controller-1.0 found: YES 1.20.2
Run-time dependency gstreamer-allocators-1.0 found: YES 1.20.2
Run-time dependency gstreamer-pbutils-1.0 found: YES 1.20.2
Run-time dependency gstreamer-audio-1.0 found: YES 1.20.2
Run-time dependency gstreamer-fft-1.0 found: YES 1.20.2
Run-time dependency gstreamer-tag-1.0 found: YES 1.20.2
Run-time dependency gstreamer-video-1.0 found: YES 1.20.2
Found CMake: NO
Run-time dependency gstreamer-gl-1.0 found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency gstreamer-gl-1.0
Neither a subproject directory nor a gst-plugins-base.wrap file was found.
Subproject gst-plugins-base is buildable: NO (disabling)
Dependency gstreamer-gl-1.0 from subproject gst-plugins-base found: NO (subproject failed to configure)
Run-time dependency x11 found: NO (tried pkgconfig and cmake)
Run-time dependency gstreamer-check-1.0 found: YES 1.20.2
Library m found: YES
Run-time dependency glib-2.0 found: YES 2.66.4
Run-time dependency gio-2.0 found: YES 2.66.4
Run-time dependency gmodule-2.0 found: YES 2.66.4
meson.build:227:2: ERROR: Problem encountered: Unsupported omx target specified. Use the -Dtarget option
A full log can be found at /home/spksrc/gstreamer/spksrc/cross/gst-omx/work-x64-6.1/gst-omx-1.20.2/builddir/meson-logs/meson-log.txt
make[2]: *** [../../mk/spksrc.cross-meson.mk:28: meson_configure_target] Error 1
make[2]: Leaving directory '/home/spksrc/gstreamer/spksrc/cross/gst-omx'
make[1]: *** [../../mk/spksrc.cross-cc.mk:111: build-arch-x64-6.1] Error 1
make[1]: Leaving directory '/home/spksrc/gstreamer/spksrc/cross/gst-omx'
make: *** [../../mk/spksrc.cross-cc.mk:106: arch-x64-6.1] Error 2
```
### How reproducible is the bug?
Really using spksrc SynoCommunity framework. Part of undergoing PR to provide gstreamer package https://github.com/SynoCommunity/spksrc/pull/5298
### Solutions you have tried
I'm able to cross-compile every single "standard" gstreamer sources (including gst-plugins-* & rtsp-server) using that exact same recipe. But it fails for omx.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1260GstGLColorConvert ignores color range, transfer function and primaries2022-11-10T09:21:14ZSebastian WickGstGLColorConvert ignores color range, transfer function and primaries`GstGLColorConvert` only converts from YUV to RGB (or the other way around) and chooses the color model matrix (`GstVideoColorMatrix`) to be either `bt709` or `bt601`. Any color conversion where the in and out colorimetry have different ...`GstGLColorConvert` only converts from YUV to RGB (or the other way around) and chooses the color model matrix (`GstVideoColorMatrix`) to be either `bt709` or `bt601`. Any color conversion where the in and out colorimetry have different color range, transfer function or primaries is broken. Any color conversion which has a color model matrix other than `bt709` and `bt601` is broken.
`GstGLColorConvert` however claims to support all those conversions which is clearly wrong. Constraining the caps however will result in pipelines which worked before (even though with wrong colors) to stop working at all. The only sensible way to fix this is to implement correct and exhaustive color conversions.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1239Memory leak in main (1.21), FLAC module suspected2022-11-10T09:21:13ZLászló KárolyiMemory leak in main (1.21), FLAC module suspectedFor the record:
As discussed on IRC, here's a placeholder issue for a memory leak I'm experiencing with gstreamer 1.21, compiled directly from the main branch. Last commit fedb48c68fc432392d7966ea6acaa889482e09a1, on May 14 2022.
I'm u...For the record:
As discussed on IRC, here's a placeholder issue for a memory leak I'm experiencing with gstreamer 1.21, compiled directly from the main branch. Last commit fedb48c68fc432392d7966ea6acaa889482e09a1, on May 14 2022.
I'm using gstreamer in my [IceGStreamer](https://gitea.ksol.io/karolyi/IceGStreamer) project, an icecast source client I created. Up until 1.20.2 there was no significant RES increase when using it for days, ~115MB RES usage was normal. Ever since I started using `main`, memory usage keeps increasing. RES was yesterday (after ~2 days of running) 250MB, and it is 306M now, after ~8hrs. VIRT values are also higher than before, although I wasn't following those closely. It's the first time I changed to `main` compilation, so I can't tell at which point this memleak got introduced.
I suspect that the FLAC module is at fault, as other IceGStreamer instances that don't play (as much) .flac files, don't reflect the same increasingly expanding RES usage, although I see them consuming more over time. I also get weird artifacts in the log when FLAC playback starts:
```
60:49:12.719821448 95818 0x802c07c00 ERROR libav :0:: invalid sync code
60:49:12.719830054 95818 0x802c07c00 ERROR libav :0:: invalid frame header
60:49:12.719832378 95818 0x802c07c00 ERROR libav :0:: decode_frame() failed
60:49:12.720092488 95818 0x802c07c00 ERROR libav :0:: invalid sync code
60:49:12.720096084 95818 0x802c07c00 ERROR libav :0:: invalid frame header
60:49:12.720097678 95818 0x802c07c00 ERROR libav :0:: decode_frame() failed
60:49:12.720103919 95818 0x802c07c00 ERROR libav :0:: invalid sync code
60:49:12.720105823 95818 0x802c07c00 ERROR libav :0:: invalid frame header
60:49:12.720107336 95818 0x802c07c00 ERROR libav :0:: decode_frame() failed
```
Suggestions on how to debug this problem, copied over from IRC, for later reference (mostly for myself when I have time to tend to this):
> perhaps you could run your code through valgrind --leak-check=yes (with the various .supp suppression files from gstreamer repos) or valgrind heaptrack or you could try the GStreamer leak tracer to see if it's GStreamer objects that are being leaked
> or any other C heap allocation tracing toolhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1237GstAudioEncoder: PTS/DTS reset to 0 on new segment2022-11-10T09:21:13ZXavier Claessensxclaesse@gmail.comGstAudioEncoder: PTS/DTS reset to 0 on new segmentI have a live audio source that can switch to an audiotestsrc when nothing is received for a while. That source is then encoded with opusenc. I made sure that PTS/DTS on the source keeps continuous when switching to/from audiotestsrc, bu...I have a live audio source that can switch to an audiotestsrc when nothing is received for a while. That source is then encoded with opusenc. I made sure that PTS/DTS on the source keeps continuous when switching to/from audiotestsrc, but the switch generates SEGMENT event that gets catched by GstAudioEncoder that calls `gst_audio_encoder_reset()` which causes `priv->base_ts` to be reset to `GST_CLOCK_TIME_NONE`. That means that after SEGMENT event, the PTS/DTS of output buffers are reset to 0 instead of continuing from previous value. Even more weird is that video encoders does not do that.
I'm not sure what's the proper fix.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1219webrtc: Incoming data-channel starts processing before the app was notified t...2022-11-10T09:21:13ZPhilippe Normandwebrtc: Incoming data-channel starts processing before the app was notified through on-data-channelThis log shows that the newly created data channel receives samples before the app had time to connect to the on-message-* signals (`Connecting to signals on data-channel` is a log from app side).
```
0:00:00.327238596 56 0x7f9a54002...This log shows that the newly created data channel receives samples before the app had time to connect to the on-message-* signals (`Connecting to signals on data-channel` is a log from app side).
```
0:00:00.327238596 56 0x7f9a54002060 DEBUG webrtcdatachannel webrtcdatachannel.c:976:gst_webrtc_data_channel_constructed: New channel 0x117b1c0 constructed
0:00:00.327606429 56 0x7f9a30008cc0 FIXME default gstutils.c:4026:gst_pad_create_stream_id_internal:<appsrc1:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.328079790 56 0x7f9a30008d20 FIXME basesink gstbasesink.c:3397:gst_base_sink_default_event:<appsink1> stream-start event without group-id. Consider implementing group-id handling in the upstream elements
0:00:00.328173319 56 0x7f9a30008d20 LOG webrtcdatachannel webrtcdatachannel.c:549:_data_channel_have_sample:<WebRTCDataChannel@0x117b1c0> Received sample 0x117b2a0
0:00:00.328189275 56 0x7f9a30008d20 INFO webrtcdatachannel webrtcdatachannel.c:416:_parse_control_packet:<WebRTCDataChannel@0x117b1c0> Received channel open
0:00:00.328202445 56 0x7f9a30008d20 INFO webrtcdatachannel webrtcdatachannel.c:472:_parse_control_packet:<WebRTCDataChannel@0x117b1c0> Received channel open for SCTP stream 1 label "sendDataChannel" protocol ordered true
0:00:00.328224550 56 0x7f9a30008d20 INFO webrtcdatachannel webrtcdatachannel.c:476:_parse_control_packet:<WebRTCDataChannel@0x117b1c0> Sending channel ack
0:00:00.328268735 56 0x7f9a30008d20 LOG webrtcdatachannel webrtcdatachannel.c:549:_data_channel_have_sample:<WebRTCDataChannel@0x117b1c0> Received sample 0x117b2a0
0:00:00.328304091 56 0x7f9a30008d20 LOG webrtcdatachannel webrtcdatachannel.c:549:_data_channel_have_sample:<WebRTCDataChannel@0x117b1c0> Received sample 0x117b2a0
0:00:00.328328699 56 0xfa7400 INFO webrtcdatachannel datachannel.c:397:gst_webrtc_data_channel_on_open:<WebRTCDataChannel@0x117b1c0> We are open and ready for data!
0:00:00.328341801 56 0x7f9a30008d20 LOG webrtcdatachannel webrtcdatachannel.c:549:_data_channel_have_sample:<WebRTCDataChannel@0x117b1c0> Received sample 0x117b2a0
0:00:00.328349089 56 0xfa7400 INFO webrtcdatachannel datachannel.c:402:gst_webrtc_data_channel_on_open:<WebRTCDataChannel@0x117b1c0> Opened
0:00:00.328351043 56 0xd78610 DEBUG webkitwebrtcendpoint GStreamerMediaEndpoint.cpp:970:operator():<webkit-webrt-pipeline-1> Incoming data channel
0:00:00.328375136 56 0x7f9a30008d20 LOG webrtcdatachannel webrtcdatachannel.c:549:_data_channel_have_sample:<WebRTCDataChannel@0x117b1c0> Received sample 0x117b2a0
0:00:00.328379240 56 0xfa7400 LOG webrtcdatachannel datachannel.c:488:gst_webrtc_data_channel_on_message_string:<WebRTCDataChannel@0x117b1c0> Have string one
0:00:00.328395246 56 0xfa7400 LOG webrtcdatachannel datachannel.c:488:gst_webrtc_data_channel_on_message_string:<WebRTCDataChannel@0x117b1c0> Have string two
0:00:00.328400626 56 0xd78610 DEBUG webkitwebrtcendpoint GStreamerDataChannelHandler.cpp:102:GStreamerDataChannelHandler: Connecting to signals on data-channel 0x117b1c0
0:00:00.328406807 56 0xfa7400 LOG webrtcdatachannel datachannel.c:488:gst_webrtc_data_channel_on_message_string:<WebRTCDataChannel@0x117b1c0> Have string three
0:00:00.328437627 56 0xd78610 DEBUG webkitwebrtcendpoint GStreamerDataChannelHandler.cpp:119:GStreamerDataChannelHandler: Connecting to signals on data-channel 0x117b1c0 DONE
0:00:00.328446330 56 0xfa7400 DEBUG webkitwebrtcendpoint GStreamerDataChannelHandler.cpp:250:onMessageString: onMessageString
0:00:00.328458440 56 0xfa7400 DEBUG webkitwebrtcendpoint GStreamerDataChannelHandler.cpp:253:onMessageString: Incoming string: three
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1214gst-discoverer-1.0 crashes with corrupted double-linked list on mp4 file2022-11-10T09:21:13Zbbhttbbhtt.zn0i8@slmail.megst-discoverer-1.0 crashes with corrupted double-linked list on mp4 file### Describe your issue
```
$ gst-discoverer-1.0 file.mp4
Analyzing file:///home/...
corrupted double-linked list
Aborted (core dumped)
```
The backtrace, I used debuginfod for the files here, Arch doesn't have a debug package for gst-...### Describe your issue
```
$ gst-discoverer-1.0 file.mp4
Analyzing file:///home/...
corrupted double-linked list
Aborted (core dumped)
```
The backtrace, I used debuginfod for the files here, Arch doesn't have a debug package for gst-plugins-bad-libs which ships the gst-discoverer-1.0 binary.
```
Thread 26 "queue0:src" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffa3fff640 (LWP 15056)]
0x00007fffee88efe2 in ?? () from /usr/lib/dri/radeonsi_drv_video.so
#0 0x00007fffee88efe2 in () at /usr/lib/dri/radeonsi_drv_video.so
#1 0x00007ffff5b1327d in vaGetImage () at /usr/lib/libva.so.2
#2 0x00007ffff5bf1124 in () at /usr/lib/gstreamer-1.0/libgstvaapi.so
#3 0x00007ffff5bf374a in () at /usr/lib/gstreamer-1.0/libgstvaapi.so
#4 0x00007ffff79a1f4c in gst_video_frame_map_id ()
at /usr/lib/libgstvideo-1.0.so.0
#5 0x00007ffff5bddc00 in () at /usr/lib/gstreamer-1.0/libgstvaapi.so
#6 0x00007ffff5bea949 in () at /usr/lib/gstreamer-1.0/libgstvaapi.so
#7 0x00007ffff78dfd71 in () at /usr/lib/libgstbase-1.0.so.0
#8 0x00007ffff78e027c in () at /usr/lib/libgstbase-1.0.so.0
#9 0x00007ffff7e9f1d5 in () at /usr/lib/libgstreamer-1.0.so.0
#10 0x00007ffff7ea289b in () at /usr/lib/libgstreamer-1.0.so.0
#11 0x00007ffff7ea2cde in gst_pad_push () at /usr/lib/libgstreamer-1.0.so.0
#12 0x00007ffff78e0351 in () at /usr/lib/libgstbase-1.0.so.0
#13 0x00007ffff7e9f1d5 in () at /usr/lib/libgstreamer-1.0.so.0
#14 0x00007ffff7ea289b in () at /usr/lib/libgstreamer-1.0.so.0
#15 0x00007ffff7ea2cde in gst_pad_push () at /usr/lib/libgstreamer-1.0.so.0
#16 0x00007ffff70d3412 in () at /usr/lib/gstreamer-1.0/libgstcoreelements.so
#17 0x00007ffff7ecaaf1 in () at /usr/lib/libgstreamer-1.0.so.0
#18 0x00007ffff7cd8de7 in () at /usr/lib/libglib-2.0.so.0
#19 0x00007ffff7cd5da5 in () at /usr/lib/libglib-2.0.so.0
#20 0x00007ffff7a7154d in () at /usr/lib/libc.so.6
#21 0x00007ffff7af6b14 in clone () at /usr/lib/libc.so.6
```
#### Expected Behavior
To analyze the flie
#### Observed Behavior
Crash
#### Setup
- **Operating System:** Arch Linux
- **Device:** Computer
- **GStreamer Version:** 1.20.2
- **Command line:**
### Steps to reproduce the bug
1. Open terminal
2. `gst-discoverer-1.0 file.mp4`
### How reproducible is the bug?
Always
### Screenshots if relevant
None
### Solutions you have tried
None
### Related non-duplicate issues
None
### Additional Information
This is the file information from `ffprobe`:
```
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/path/file.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.9.100
Duration: 02:10:07.35, start: 0.000000, bitrate: 1191 kb/s
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1280x682 [SAR 1023:1024 DAR 15:8], 1050 kb/s, 23.98 fps, 23.98 tbr, 13978 tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 134 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
```
```
st-inspect-1.0 vaapi
Plugin Details:
Name vaapi
Description VA-API based elements
Filename /usr/lib/gstreamer-1.0/libgstvaapi.so
Version 1.20.2
License LGPL
Source module gstreamer-vaapi
Source release date 2022-05-02
Binary package gstreamer-vaapi
Origin URL Unknown package origin
vaapidecodebin: VA-API Decode Bin
vaapih264dec: VA-API H264 decoder
vaapih264enc: VA-API H264 encoder
vaapih265dec: VA-API H265 decoder
vaapijpegdec: VA-API JPEG decoder
vaapimpeg2dec: VA-API MPEG2 decoder
vaapipostproc: VA-API video postprocessing
vaapisink: VA-API sink
vaapivc1dec: VA-API VC1 decoder
9 features:
+-- 9 elements
```
```
vainfo
vainfo: VA-API version: 1.14 (libva 2.14.0)
vainfo: Driver version: Mesa Gallium driver 22.0.3 for AMD STONEY (LLVM 13.0.1, DRM 3.44, 5.17.7-arch1-1)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
```
I can't provide the file as it is quite large, if needed I can extract a few seconds from it. Please ask if anything else is required.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1197d3d11screencapturesrc: Creating multiple pipelines causes a crash2022-11-10T09:21:13ZVishesh Bhartiyad3d11screencapturesrc: Creating multiple pipelines causes a crash### Describe your issue
Having multiple pipelines with `d3d11screencapturesrc` causes a crash within the `gstd3d11screencapture.cpp`. This was discovered while trying to integrate the `d3d11screencapturesrc` with an existing application ...### Describe your issue
Having multiple pipelines with `d3d11screencapturesrc` causes a crash within the `gstd3d11screencapture.cpp`. This was discovered while trying to integrate the `d3d11screencapturesrc` with an existing application that spawns various GStreamer pipelines. I have provided a minimal code sample below that reproduces the exact same crash when ran with the `GST_DEBUG` environment variable set to 3 or higher.
#### Expected Behavior
Multiple pipelines with `d3d11screencapturesrc` should work without crashing.
#### Observed Behavior
Multiple pipelines with `d3d11screencapturesrc` crashes when enabling Gstreamer log output.
#### Setup
- Operating System: Windows 10 21H1 and above
- Device: Desktop Computer
- GStreamer Version: 1.20.0
### Steps to reproduce the bug
A minimal complete code sample based on GStreamer [Hello World](https://gstreamer.freedesktop.org/documentation/tutorials/basic/hello-world.html?gi-language=c) example is written below. Running this with `GST_DEBUG` set to 3 or higher should reproduce the crash.
<details>
<summary>Code Example</summary>
```c
#include <gst/gst.h>
int
main(int argc, char* argv[])
{
GstElement* pipeline1, *pipeline2;
GstBus* bus1, *bus2;
GstMessage* msg1, *msg2;
gst_init(&argc, &argv);
pipeline1 =
gst_parse_launch
("d3d11screencapturesrc ! fakesink", NULL);
pipeline2 =
gst_parse_launch
("d3d11screencapturesrc ! fakesink", NULL);
gst_element_set_state(pipeline1, GST_STATE_PLAYING);
gst_element_set_state(pipeline2, GST_STATE_PLAYING);
bus1 = gst_element_get_bus(pipeline1);
bus2 = gst_element_get_bus(pipeline2);
while (true)
{
msg1 =
gst_bus_timed_pop_filtered(bus1, 16 * GST_MSECOND, (GstMessageType)(GST_MESSAGE_STATE_CHANGED | GST_MESSAGE_ERROR | GST_MESSAGE_EOS | GST_MESSAGE_DURATION));
msg2 =
gst_bus_timed_pop_filtered(bus2, 16 * GST_MSECOND, (GstMessageType)(GST_MESSAGE_STATE_CHANGED | GST_MESSAGE_ERROR | GST_MESSAGE_EOS | GST_MESSAGE_DURATION));
if ((msg1 != NULL && GST_MESSAGE_TYPE(msg1) == GST_MESSAGE_ERROR) || (msg2 != NULL && GST_MESSAGE_TYPE(msg2) == GST_MESSAGE_ERROR)) {
break;
}
}
gst_message_unref(msg2);
gst_message_unref(msg1);
gst_object_unref(bus2);
gst_object_unref(bus1);
gst_element_set_state(pipeline2, GST_STATE_NULL);
gst_element_set_state(pipeline1, GST_STATE_NULL);
gst_object_unref(pipeline2);
gst_object_unref(pipeline1);
return 0;
}
```
</details>
### How reproducible is the bug?
**Always** when running the code sample above with GST_DEBUG of 3 or greater.
### Screenshots if relevant
Debugging from Visual Studio, this is the call stack when it breaks:
![image](/uploads/b9108b04ddeb66056d7960c38d9ed6b3/image.png)
~Windowshttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1190ci: unstable/unusable due to failing valgrind bad jobs2022-11-10T09:21:13ZTim-Philipp Müllertim@centricular.comci: unstable/unusable due to failing valgrind bad jobsTracker issue for debugging what MRs/commits caused this.
**Suspects:**
- Reverting just commit 6619f1611f60b9e1b7ed651e68f2e37f89afdf6e makes CI pass again :rofl:
- This makes no sense of course, but points towards a possible probl...Tracker issue for debugging what MRs/commits caused this.
**Suspects:**
- Reverting just commit 6619f1611f60b9e1b7ed651e68f2e37f89afdf6e makes CI pass again :rofl:
- This makes no sense of course, but points towards a possible problem with commit cbaac3cdbab (jitterbuffer rfc6051 support)
**Data points:**
- **today, 28 April** (commit 6619f1611f60b9e1b7ed651e68f2e37f89afdf6e): [**10/10 fail**](https://gitlab.freedesktop.org/tpm/gstreamer/-/pipelines/573041)
- **3 days ago, 26 April** (commit 3c959ff53e3f62119879b54a3dcd7683b005a41a): [**3/10 fail**](https://gitlab.freedesktop.org/tpm/gstreamer/-/pipelines/573164)
- **fail**: `elements_srtp.test_play`: 3x
- **fail**: `elements_srtp.test_play_key_error`: 2x
- flaky: `elements_webrtcbin.test_renego_stream_data_channel_add_stream`: re-run 1x, succeeded on re-run
- **4 days ago, 25 April** (commit 81ee2a9f2a07b6bba2d63579f55062aaeac61c2d): [**4/10 fail**](https://gitlab.freedesktop.org/tpm/gstreamer/-/pipelines/573163)
- **fail**: `elements_srtp.test_play`: 2x
- **fail**: `elements_srtp.test_play_key_error`: 2x
- flaky/**fail**: `elements_webrtcbin.test_simulcast_fec_rtx` failed 1x on re-run
- **1 weeks ago: 22 April** (commit 07a71e056368818bfcdfef0cdd16e4d9936ed6e1): [**10/10 pass**](https://gitlab.freedesktop.org/tpm/gstreamer/-/pipelines/573079)
- flaky: `elements_webrtcbin.test_max_bundle_fec`: was re-run 1x and succeeded on re-run
- flaky: `elements_webrtcbin.test_simulcast`: was re-run 1x and succeeded on re-run
- **2 weeks ago**, 15 April (commit fa070d20cf6a5dbdbf97c4ec8a8773e6c693b2dc): [**10/10 pass**](https://gitlab.freedesktop.org/tpm/gstreamer/-/pipelines/573075)
- flaky: `elements_webrtcbin.test_simulcast_fec_rtx`: was re-run 3x and succeeded on re-run
- **4 weeks ago**, 1 April (commit f270f9e974b5e0e78eba0537e8da882f33d73f21): [**10/10 pass**](https://gitlab.freedesktop.org/tpm/gstreamer/-/commit/d3702bc847c46103f8bb9c4315bc3fadfac85810/pipelines?ref=debug-unit-test-failures-4weeks-ago)
- flaky: `elements_webrtcbin.test_data_channel_create`: was re-run 1x and succeeded on re-run
- flaky: `elements_webrtcbin.test_max_bundle_fec`: was re-run 1x and succeeded on re-run
- flaky: `elements_webrtcbin.test_simulcast_fec_rtx`: was re-run 1x and succeeded on re-run
- flaky: `elements_webrtcbin.test_codec_preferences_negotiation_srcpad`: was re-run 1x and succeeded on re-runTim-Philipp Müllertim@centricular.comTim-Philipp Müllertim@centricular.comhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1177videorate: assertion failing when receiving buffer from pngdec2022-11-10T09:21:13ZGuillaume Desmottesvideorate: assertion failing when receiving buffer from pngdec```
$ gst-launch-1.0 filesrc location=./common/tests/sample.png ! pngdec ! videorate ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
**
ERROR:../subprojects/gst-plugins-base/gst/videorate/gstvideorate.c:714:gst_vide...```
$ gst-launch-1.0 filesrc location=./common/tests/sample.png ! pngdec ! videorate ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
**
ERROR:../subprojects/gst-plugins-base/gst/videorate/gstvideorate.c:714:gst_video_rate_push_buffer: assertion failed: (GST_BUFFER_DURATION_IS_VALID (outbuf))
Bail out! ERROR:../subprojects/gst-plugins-base/gst/videorate/gstvideorate.c:714:gst_video_rate_push_buffer: assertion failed: (GST_BUFFER_DURATION_IS_VALID (outbuf))
Aborted (core dumped)
```
```
#0 0x00007f1a1bab19e5 in raise () at /lib64/libc.so.6
#1 0x00007f1a1ba9a8a4 in abort () at /lib64/libc.so.6
#2 0x00007f1a1bcdab6c in g_assertion_message_expr.cold () at /lib64/libglib-2.0.so.0
#3 0x00007f1a1bd353bf in g_assertion_message_expr () at /lib64/libglib-2.0.so.0
#4 0x00007f1a1a8226e1 in gst_video_rate_push_buffer (videorate=0x24b1cd0, outbuf=0x7f1a14059000, duplicate=<optimized out>, next_intime=<optimized out>) at ../subprojects/gst-plugins-base/gst/videorate/gstvideorate.c:714
#5 0x00007f1a1a8264be in gst_video_rate_sink_event (trans=0x24b1cd0, event=0x7f1a14005030) at ../subprojects/gst-plugins-base/gst/videorate/gstvideorate.c:911
#6 0x00007f1a1be90cec in gst_pad_send_event_unchecked (pad=pad@entry=0x261e740, event=event@entry=0x7f1a14005030, type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5897
#7 0x00007f1a1be9134e in gst_pad_push_event_unchecked (pad=pad@entry=0x261e4f0, event=0x7f1a14005030, type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5541
#8 0x00007f1a1be91806 in push_sticky (pad=pad@entry=0x261e4f0, ev=ev@entry=0x7f1a1a7409f0, user_data=user_data@entry=0x7f1a1a740a50) at ../subprojects/gstreamer/gst/gstpad.c:4044
#9 0x00007f1a1be8f280 in events_foreach (pad=pad@entry=0x261e4f0, func=func@entry=0x7f1a1be917b0 <push_sticky>, user_data=user_data@entry=0x7f1a1a740a50) at ../subprojects/gstreamer/gst/gstpad.c:605
#10 0x00007f1a1be9a400 in check_sticky (event=0x7f1a14005030, pad=0x261e4f0) at ../subprojects/gstreamer/gst/gstpad.c:4103
#11 gst_pad_push_event (pad=0x261e4f0, event=0x7f1a14005030) at ../subprojects/gstreamer/gst/gstpad.c:5672
#12 0x00007f1a1bdf38a6 in gst_pngdec_sink_event (bdec=0x2603000, event=0x7f1a14005030) at ../subprojects/gst-plugins-good/ext/libpng/gstpngdec.c:595
#13 0x00007f1a1be90cec in gst_pad_send_event_unchecked (pad=pad@entry=0x261e2a0, event=event@entry=0x7f1a14005030, type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5897
#14 0x00007f1a1be9134e in gst_pad_push_event_unchecked (pad=pad@entry=0x261e050, event=0x7f1a14005030, type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../subprojects/gstreamer/gst/gstpad.c:5541
#15 0x00007f1a1be91806 in push_sticky (pad=pad@entry=0x261e050, ev=ev@entry=0x7f1a1a740c80, user_data=user_data@entry=0x7f1a1a740ce0) at ../subprojects/gstreamer/gst/gstpad.c:4044
#16 0x00007f1a1be8f280 in events_foreach (pad=pad@entry=0x261e050, func=func@entry=0x7f1a1be917b0 <push_sticky>, user_data=user_data@entry=0x7f1a1a740ce0) at ../subprojects/gstreamer/gst/gstpad.c:605
#17 0x00007f1a1be9a400 in check_sticky (event=0x7f1a14005030, pad=0x261e050) at ../subprojects/gstreamer/gst/gstpad.c:4103
#18 gst_pad_push_event (pad=pad@entry=0x261e050, event=event@entry=0x7f1a14005030) at ../subprojects/gstreamer/gst/gstpad.c:5672
#19 0x00007f1a1a938719 in gst_base_src_loop (pad=0x261e050) at ../subprojects/gstreamer/libs/gst/base/gstbasesrc.c:3115
#20 0x00007f1a1bec7eaf in gst_task_func (task=0x2621290) at ../subprojects/gstreamer/gst/gsttask.c:384
#21 0x00007f1a1bd40fa4 in g_thread_pool_thread_proxy.lto_priv () at /lib64/libglib-2.0.so.0
#22 0x00007f1a1bd3e402 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#23 0x00007f1a1bc483f9 in start_thread () at /lib64/libpthread.so.0
#24 0x00007f1a1bb754c3 in clone () at /lib64/libc.so.6
```
- `videorate` receives a single buffer with `pts = 0, duration = invalid`;
- then it receives `eos` triggering this buffer to be pushed downstream;
- we hit [this assertion](https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/gst-plugins-base/gst/videorate/gstvideorate.c#L714) as this code assumes `transform_ip` set a valid duration while it doesn't as we received only one buffer.
What would be the proper way to handle this? Just push the buffer without any duration set?https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1176Totem or Glide show disorted MPEG4 video on Intel hardware2022-11-10T09:21:13ZPeter WeberTotem or Glide show disorted MPEG4 video on Intel hardware### Describe your issue
When I use [Totem](https://gitlab.gnome.org/GNOME/totem) or [Glide](https://github.com/philn/glide) to show a MPEG4 (H264) encoded video upon Wayland or X11 it renders a distorted video. Audio playback is fine.
A...### Describe your issue
When I use [Totem](https://gitlab.gnome.org/GNOME/totem) or [Glide](https://github.com/philn/glide) to show a MPEG4 (H264) encoded video upon Wayland or X11 it renders a distorted video. Audio playback is fine.
Affected Hardware: Intel Sandy Bridge (HD3000)
Not affected hardware: AMD
Not affected codecs: MPEG1, Theora, VP9
#### Expected Behavior
Clear image
#### Observed Behavior
Disorted image.
#### Setup
- **Operating System:** Archlinux
- **Device:** ThinkPad X220
- **GStreamer Version:** 1.20.1
- **Command line:** totem file.mp4 or glide file.mp4
### Steps to reproduce the bug
1. Select video file in file-browser and launch player
### How reproducible is the bug?
Always.
### Screenshots if relevant
![Screenshot_from_2022-04-23_14-50-12](/uploads/8265f0bce5f18a36e26c54d9853267d2/Screenshot_from_2022-04-23_14-50-12.png)
### Additional Information
[mpv](https://github.com/mpv-player/mpv) (fork of mplayer/mplayer2) is not affected.
[Pitivi](https://www.pitivi.org/) (using Gstreamer?) seems not affected but I'm not 100% sure, because the created video file doesn't contain what I expect. Likely other issue.https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1174msdk: Build fails on Ubuntu 22.04 + onevpl2022-11-10T09:21:13ZSeungha Yangseungha@centricular.commsdk: Build fails on Ubuntu 22.04 + onevpl```
Linking target subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so
FAILED: subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so
cc -o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.s...```
Linking target subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so
FAILED: subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so
cc -o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdk.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkbufferpool.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkcontext.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkcontextutil.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkdec.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkdecproputil.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkenc.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkh264dec.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkh264enc.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkh265dec.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkh265enc.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkmjpegdec.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkmjpegenc.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkmpeg2dec.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkmpeg2enc.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdksystemmemory.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkvc1dec.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkvideomemory.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkvp8dec.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkvpp.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkvpputil.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/msdk-enums.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/msdk.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/msdk_libva.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkallocator_libva.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdk_va.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkvp9dec.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkvp9enc.c.o subprojects/gst-plugins-bad/sys/msdk/libgstmsdk.so.p/gstmsdkav1dec.c.o -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group -Wl,-soname,libgstmsdk.so -Wl,-Bsymbolic-functions '-Wl,-rpath,$ORIGIN/../../../gstreamer/libs/gst/base:$ORIGIN/../../../gstreamer/gst:$ORIGIN/../../../gst-plugins-base/gst-libs/gst/video:$ORIGIN/../../../orc/orc:$ORIGIN/../../../gst-plugins-base/gst-libs/gst/pbutils:$ORIGIN/../../../gst-plugins-base/gst-libs/gst/audio:$ORIGIN/../../../gst-plugins-base/gst-libs/gst/tag:$ORIGIN/../../../gst-plugins-base/gst-libs/gst/allocators:$ORIGIN/../../gst-libs/gst/codecparsers:$ORIGIN/../../gst-libs/gst/va' -Wl,-rpath-link,/home/seungha/Work/gstreamer/build/subprojects/gstreamer/libs/gst/base -Wl,-rpath-link,/home/seungha/Work/gstreamer/build/subprojects/gstreamer/gst -Wl,-rpath-link,/home/seungha/Work/gstreamer/build/subprojects/gst-plugins-base/gst-libs/gst/video -Wl,-rpath-link,/home/seungha/Work/gstreamer/build/subprojects/orc/orc -Wl,-rpath-link,/home/seungha/Work/gstreamer/build/subprojects/gst-plugins-base/gst-libs/gst/pbutils -Wl,-rpath-link,/home/seungha/Work/gstreamer/build/subprojects/gst-plugins-base/gst-libs/gst/audio -Wl,-rpath-link,/home/seungha/Work/gstreamer/build/subprojects/gst-plugins-base/gst-libs/gst/tag -Wl,-rpath-link,/home/seungha/Work/gstreamer/build/subprojects/gst-plugins-base/gst-libs/gst/allocators -Wl,-rpath-link,/home/seungha/Work/gstreamer/build/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers -Wl,-rpath-link,/home/seungha/Work/gstreamer/build/subprojects/gst-plugins-bad/gst-libs/gst/va subprojects/gstreamer/libs/gst/base/libgstbase-1.0.so.0.2100.0 subprojects/gstreamer/gst/libgstreamer-1.0.so.0.2100.0 subprojects/gst-plugins-base/gst-libs/gst/video/libgstvideo-1.0.so.0.2100.0 subprojects/orc/orc/liborc-0.4.so.0.32.0 subprojects/gst-plugins-base/gst-libs/gst/pbutils/libgstpbutils-1.0.so.0.2100.0 subprojects/gst-plugins-base/gst-libs/gst/audio/libgstaudio-1.0.so.0.2100.0 subprojects/gst-plugins-base/gst-libs/gst/tag/libgsttag-1.0.so.0.2100.0 subprojects/gst-plugins-base/gst-libs/gst/allocators/libgstallocators-1.0.so.0.2100.0 subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/libgstcodecparsers-1.0.so.0.2100.0 subprojects/gst-plugins-bad/gst-libs/gst/va/libgstva-1.0.so.0.2100.0 /usr/lib/x86_64-linux-gnu/libglib-2.0.so /usr/lib/x86_64-linux-gnu/libgobject-2.0.so /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so -pthread -lm /usr/lib/x86_64-linux-gnu/libz.so -ldl /usr/lib/gcc/x86_64-linux-gnu/11/libstdc++.so -L/usr/lib/x86_64-linux-gnu/pkgconfig/../ -lvpl /usr/lib/x86_64-linux-gnu/libva.so /usr/lib/x86_64-linux-gnu/libva-drm.so /usr/lib/x86_64-linux-gnu/libdrm.so /usr/lib/x86_64-linux-gnu/libgudev-1.0.so -Wl,--end-group
/usr/bin/ld: cannot find -lvpl: No such file or directory
collect2: error: ld returned 1 exit status
```
But there is libvpl.so
```
/usr/lib/x86_64-linux-gnu$ ll | grep vpl
lrwxrwxrwx 1 root root 11 4월 3 17:34 libvpl.so -> libvpl.so.2
```