GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2023-10-17T16:11:19Zhttps://gitlab.freedesktop.org/gstreamer/gstreamer-sharp/-/issues/49Issue with pulsesink (threading issue?)2023-10-17T16:11:19ZwegelIssue with pulsesink (threading issue?)Hi,
When building a simple pipeline using gstreamer-sharp (see attached for a dot file), I'm getting the error below maybe 90% of the time (remaining 10% works):
```
Error received from element Gst.Element: pa_context_get_sink_info_...Hi,
When building a simple pipeline using gstreamer-sharp (see attached for a dot file), I'm getting the error below maybe 90% of the time (remaining 10% works):
```
Error received from element Gst.Element: pa_context_get_sink_info_by_index() failed: Bad state
Debugging information: pulsesink.c(2790): gst_pulsesink_device_description (): /GstPipeline:test_player/GstBin:audio_passthrough/GstPulseSink:pulsesink1
````
Am I missing something? AFAIK, I'm not doing anything special with the pulsesink. The same (AFAICS) pipeline launched from gst-launch-1.0 works. Tested on two computers (one x86-64 and one aarch64), using both direct pulseaudio and TCP pulseaudio.
Thanks!
[pipeline_Ready_Paused.dot](/uploads/8eecb00ef00b5a4441f3683ff14862e5/pipeline_Ready_Paused.dot)https://gitlab.freedesktop.org/gstreamer/gst-docs/-/issues/74gst_value_array_* docs missing2023-06-14T09:43:43ZJan Alexander Steffensgst_value_array_* docs missingThe `gst_value_array_*` functions are missing from the 1.18.0 documentation.The `gst_value_array_*` functions are missing from the 1.18.0 documentation.https://gitlab.freedesktop.org/gstreamer/gst-docs/-/issues/73There is a little mistake in "Basic tutorial 3: Dynamic pipelines" tutorial text2020-10-07T14:44:28ZLuis Paulo FernandesThere is a little mistake in "Basic tutorial 3: Dynamic pipelines" tutorial textFirst of all, thank you by the excellent tutorial. It's helping me a lot!
I found a little mistake:
In the tutorial text we have:
> if (!gst_element_link (data.convert, data.sink)) {
But in the code this other function is used instead...First of all, thank you by the excellent tutorial. It's helping me a lot!
I found a little mistake:
In the tutorial text we have:
> if (!gst_element_link (data.convert, data.sink)) {
But in the code this other function is used instead:
> if (!gst_element_link_many (data.convert, data.resample, data.sink, NULL)) {https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/305Undefined symbol: _gst_plugin_dashdemux_register building for iOS 112020-10-06T05:10:14ZJerryUndefined symbol: _gst_plugin_dashdemux_register building for iOS 11Getting this error: Undefined symbol: _gst_plugin_dashdemux_register
Previously used Gstreamer for iOS 1.16 compiled fine
Just swapped in 1.18
Using Xcode 11.7
Set project target iOS 11Getting this error: Undefined symbol: _gst_plugin_dashdemux_register
Previously used Gstreamer for iOS 1.16 compiled fine
Just swapped in 1.18
Using Xcode 11.7
Set project target iOS 11https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1424openh264dec not working properly in latest gstreamer android release 1.18.02023-10-14T19:53:31ZAbeesh M Popenh264dec not working properly in latest gstreamer android release 1.18.0We are using gstreamer library for our custom network stream player. In some of the android device , video was not playing most of the time, when we dig into the issue, we could see that the devices in which openh264dec is being selected...We are using gstreamer library for our custom network stream player. In some of the android device , video was not playing most of the time, when we dig into the issue, we could see that the devices in which openh264dec is being selected as decoder by decodebin component, then video will not be playing. this issue we are seeing in some of the devices in which has Android 10 OS.
Is there any known issues with openh264dec in latest android OS? because it was working well with last gstreamer release 1.16.0 ( in android 9).https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/613openh264dec not working properly in latest gstreamer android release 1.18.02020-10-06T04:56:44ZAbeesh M Popenh264dec not working properly in latest gstreamer android release 1.18.0We are using gstreamer library for our custom network stream player. In some of the android device , video was not playing most of the time, when we dig into the issue, we could see that the devices in which openh264dec is being selected...We are using gstreamer library for our custom network stream player. In some of the android device , video was not playing most of the time, when we dig into the issue, we could see that the devices in which openh264dec is being selected as decoder by decodebin component, then video will not be playing. this issue we are seeing in some of the devices in which has Android 10 OS.
Is there any known issues with openh264dec in latest android OS? because it was working well with last gstreamer release 1.16.0 ( in android 9).https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/612Undefined symbol: _gst_plugin_dashdemux_register building for iOS 112022-11-10T09:21:05ZJerryUndefined symbol: _gst_plugin_dashdemux_register building for iOS 11Getting this error: Undefined symbol: _gst_plugin_dashdemux_register
Previously used Gstreamer for iOS 1.16 compiled fine
Just swapped in 1.18
Using Xcode 11.7
Set project target iOS 11Getting this error: Undefined symbol: _gst_plugin_dashdemux_register
Previously used Gstreamer for iOS 1.16 compiled fine
Just swapped in 1.18
Using Xcode 11.7
Set project target iOS 11https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/77GStreamer Hackfest Fall 20202021-01-27T21:40:18ZAaron BoxerGStreamer Hackfest Fall 2020In the midst of the global apocalypse, GStreamer hackers make time to focus on the important things:
like finally fixing foobar.
Opportunity for everyone to set time aside in advance for upstream hacking.
Time frame: Late November - Ea...In the midst of the global apocalypse, GStreamer hackers make time to focus on the important things:
like finally fixing foobar.
Opportunity for everyone to set time aside in advance for upstream hacking.
Time frame: Late November - Early December
Location: ANYWHERE
Organizing this event should be fairly low-effort, as all infra is already in place.
It would be nice to add a video conference platform like ]Pexip[ for those who
want to discuss f2f.
cc @tpm @slomo @ocrete @gdesmott @ndufresne @hgrhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/792videoflip: set_property() is not thread-safe2021-01-13T00:57:31ZGuy Morandvideoflip: set_property() is not thread-safeGstreamer developers,
I have reported my issue on the mailing list and it was suggested that I should send a bug report:
https://lists.freedesktop.org/archives/gstreamer-devel/2020-October/076268.html
I'm writing a small daemon to stre...Gstreamer developers,
I have reported my issue on the mailing list and it was suggested that I should send a bug report:
https://lists.freedesktop.org/archives/gstreamer-devel/2020-October/076268.html
I'm writing a small daemon to stream the camera and send the stream over RTP. The user can configure the stream and mirror the image. To do that, while the stream is running, I make a call from the main thread:
```g_object_set(_video_flip, "video-direction", GST_VIDEO_FLIP_HORIZONTAL, NULL);```
Where _video_flip is a ```GstElement*``` built with
```gst_element_factory_make("videoflip", "videoflip")```
Sometime, the stream stops and the application "crashes" with the message:
```ERROR:gstvideoflip.c:954:gst_video_flip_y422: code should not be reached```
Back trace with gdb gives me this relevant gstreamer stack trace:
```
__GI_raise (sig=sig@entry=0x6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
gdb$ bt
#0 0x00007ffff6d597bb in __GI_raise (sig=sig@entry=0x6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007ffff6d44535 in __GI_abort () at abort.c:79
#2 0x00007ffff7480dc3 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007ffff74da67a in g_assertion_message_expr () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4 0x00007ffff4c4f5ef in gst_video_flip_y422 (videoflip=<optimized out>, dest=<optimized out>, src=<optimized out>) at gstvideoflip.c:954
#5 0x00007ffff4c4d893 in gst_video_flip_transform_frame (vfilter=0x555555858790, in_frame=0x7ffff1470530, out_frame=0x7ffff14707d0) at gstvideoflip.c:1139
#6 0x00007ffff4ba9e03 in () at /usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so.0
#7 0x00007ffff4b3c609 in default_generate_output (trans=0x555555858790, outbuf=0x7ffff1470ae0) at gstbasetransform.c:2132
#8 0x00007ffff4b3bcd6 in gst_base_transform_chain (pad=<optimized out>, parent=0x555555858790, buffer=<optimized out>) at gstbasetransform.c:2285
#9 0x00007ffff7651c3a in gst_pad_chain_data_unchecked (data=0x7fffd401b190, type=4112, pad=0x555555852780) at gstpad.c:4322
#10 0x00007ffff7651c3a in gst_pad_push_data (pad=pad@entry=0x555555853560, type=type@entry=4112, data=data@entry=0x7fffd401b190) at gstpad.c:4578
#11 0x00007ffff7659ed2 in gst_pad_push (pad=0x555555853560, buffer=0x7fffd401b190) at gstpad.c:4697
#12 0x00007ffff4b3bdfd in gst_base_transform_chain (pad=<optimized out>, parent=0x5555558602c0, buffer=<optimized out>) at gstbasetransform.c:2321
#13 0x00007ffff7651c3a in gst_pad_chain_data_unchecked (data=0x7fffd401b190, type=4112, pad=0x555555853310) at gstpad.c:4322
#14 0x00007ffff7651c3a in gst_pad_push_data (pad=pad@entry=0x555555852090, type=type@entry=4112, data=data@entry=0x7fffd401b190) at gstpad.c:4578
#15 0x00007ffff7659ed2 in gst_pad_push (pad=pad@entry=0x555555852090, buffer=0x7fffd401b190) at gstpad.c:4697
#16 0x00007ffff4b37ce5 in gst_base_src_loop (pad=0x555555852090) at gstbasesrc.c:2957
#17 0x00007ffff7686f41 in gst_task_func (task=0x55555588c290) at gsttask.c:332
#18 0x00007ffff74dbdb3 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007ffff74db415 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007ffff720dfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#21 0x00007ffff6e1b4cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
```
On request, I can provide a small test application to reproduce the issue.https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/827Writing python plugin in gstreamer2020-10-05T18:54:18ZPython DeveloperWriting python plugin in gstreamerHi all,
Suppose I create a pipeline and the last pipeline produce with caps : **video/x-raw(memory:NVMM)**
and I want to create a custom plugin and perform some processing on nvidia jetson devices.
This need to do processing in GPU buff...Hi all,
Suppose I create a pipeline and the last pipeline produce with caps : **video/x-raw(memory:NVMM)**
and I want to create a custom plugin and perform some processing on nvidia jetson devices.
This need to do processing in GPU buffer? Is it possible to convert buffers to numpy? If it so, Is it optimal solution?https://gitlab.freedesktop.org/gstreamer/www/-/issues/25GStreamer v1.18.0 UWP LIBS link is broken on website: https://gstreamer.freed...2020-10-05T09:36:54ZNHarishGitGStreamer v1.18.0 UWP LIBS link is broken on website: https://gstreamer.freedesktop.org/download/Please refer to the issue mentioned here: https://gitlab.freedesktop.org/seungha.yang/gst-uwp-example/-/issues/2
please replace broken UWP links on the site, with the following:
https://gstreamer.freedesktop.org/data/pkg/windows/1.18.0...Please refer to the issue mentioned here: https://gitlab.freedesktop.org/seungha.yang/gst-uwp-example/-/issues/2
please replace broken UWP links on the site, with the following:
https://gstreamer.freedesktop.org/data/pkg/windows/1.18.0/uwp/https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/611meson.build:1:0: ERROR: Meson version is 0.53.2 but project requires >= 0.542022-11-10T09:21:05ZGhost Usermeson.build:1:0: ERROR: Meson version is 0.53.2 but project requires >= 0.54I get this error when running `meson build`
```
The Meson build system
Version: 0.53.2
Source dir: /home/ack/gstreamer
Build dir: /home/ack/gstreamer/build
Build type: native build
meson.build:1:0: ERROR: Meson version is 0.53.2 but pro...I get this error when running `meson build`
```
The Meson build system
Version: 0.53.2
Source dir: /home/ack/gstreamer
Build dir: /home/ack/gstreamer/build
Build type: native build
meson.build:1:0: ERROR: Meson version is 0.53.2 but project requires >= 0.54
```
I tried updating meson but there is no newer version:
```
meson is already the newest version (0.53.2-2ubuntu2).
```
OS: linux minthttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/610WavParse fails randomly2021-09-24T16:41:17ZGaurav Chand GuptaWavParse fails randomlyHi,
I have the following pipeline in my code
filesrc ! wavparse ! audioConvert ! audioresample ! opusenc ! rtpopuspay ! udpsink.
When we enable the above pipeline we **Randomly** get the following error from wavparse
ERROR from el...Hi,
I have the following pipeline in my code
filesrc ! wavparse ! audioConvert ! audioresample ! opusenc ! rtpopuspay ! udpsink.
When we enable the above pipeline we **Randomly** get the following error from wavparse
ERROR from element wavparse3639: Could not demultiplex stream.
Debugging info: ../gst/wavparse/gstwavparse.c(1793): gst_wavparse_stream_headers (): /GstPipeline:PlayAudioChannel_727af9a3b39-7d91-1239-0bac-001a4ba679e0_111/GstBin:PlayAudioBin_727af9a3b39-7d91-1239-0bac-001a4ba679e0_111/GstWavParse:wavparse3639:
Couldn't read in header -3 (eos)
Please note that this error is random and happens once in a while.
Please suggest what could be the problem.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1422GNU GPL v2 in COPYING2020-10-11T12:40:56ZJacek TomaszewskiGNU GPL v2 in COPYINGI noticed that [COPYING](https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/blob/master/COPYING) file contains GNU GPL v2 text while [COPYING.LIB](https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/blob/master/COPYING.LIB...I noticed that [COPYING](https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/blob/master/COPYING) file contains GNU GPL v2 text while [COPYING.LIB](https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/blob/master/COPYING.LIB) contains GNU LGPL v2. Is that intended?https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/issues/115Default unsuspend with blocking results in seek errors and wrong rtpinfo2020-11-09T20:06:47ZKristoferDefault unsuspend with blocking results in seek errors and wrong rtpinfoIn commit https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/commit/883ddc72bb5bc57c95a9e167814d1ac53fe1b443.
The rtsp-media:default_unsuspend has changed its behavior.
It does not unblock the media anymore.
The effect is that ...In commit https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/commit/883ddc72bb5bc57c95a9e167814d1ac53fe1b443.
The rtsp-media:default_unsuspend has changed its behavior.
It does not unblock the media anymore.
The effect is that no buffers are going to the sink any longer, not until state is changed to PLAYING.
Thus seeks will fail because it queries the Sink which has no buffer.
Thus get_rtpinfo will fail because there is no buffer in the sink.https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/304error with new recipe for GIT&CMAKE2022-02-17T10:19:38Zsyuu haerror with new recipe for GIT&CMAKEwhen I add a new recipe for GIT&CMAKE, like this:
class Recipe(recipe.Recipe):
name = 'libxxx'
version = '1.0.0'
stype = SourceType.GIT
btype = BuildType.CMAKE
remotes = {'origin': 'https://xxxxx/test.git'}
comm...when I add a new recipe for GIT&CMAKE, like this:
class Recipe(recipe.Recipe):
name = 'libxxx'
version = '1.0.0'
stype = SourceType.GIT
btype = BuildType.CMAKE
remotes = {'origin': 'https://xxxxx/test.git'}
commit = 'origin/master'
2 errors will occure, please help to confirm whether the following modifications is valid or not?
a.one is mkdir error,
and I fix it like this : /cerbero/build/source.py
[before] line 373
async def extract(self):
[after]
async def extract(self):
if not os.path.exists(self.config_src_dir):
os.mkdir(self.config_src_dir)
b.another is cmake path error,
and I fix it like this : /cerbero/build/build.py
[before] line 681
await MakefilesBase.configure(self)
# as build_dir is different from source dir, makefile location will be in build_dir.
self.make_dir = self.build_dir
[after]
if self.stype == source.SourceType.GIT:
# as build_dir is different from source dir, makefile location will be in build_dir.
self.make_dir = self.build_dir
await MakefilesBase.configure(self)
else:
await MakefilesBase.configure(self)
# as build_dir is different from source dir, makefile location will be in build_dir.
self.make_dir = self.build_dirhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/790v4l2jpegdec: fails with "ERROR ... v4l2allocator ... failed queueing buffer 0...2023-06-08T15:57:35ZMaximilian Senftlebenv4l2jpegdec: fails with "ERROR ... v4l2allocator ... failed queueing buffer 0: Invalid argument"Hi, I tested v4l2jpeg with the following pipeline:
`gst-launch-1.0 souphttpsrc location="https://webcam1.lpl.org/axis-cgi/mjpg/video.cgi" ssl-strict=false ! multipartdemux ! v4l2jpegdec ! videoconvert ! autovideosink`
and receive:
~~~
...Hi, I tested v4l2jpeg with the following pipeline:
`gst-launch-1.0 souphttpsrc location="https://webcam1.lpl.org/axis-cgi/mjpg/video.cgi" ssl-strict=false ! multipartdemux ! v4l2jpegdec ! videoconvert ! autovideosink`
and receive:
~~~
0:00:04.515223334 930 0x1f22bb0 ERROR v4l2allocator gstv4l2allocator.c:1270:gst_v4l2_allocator_qbuf:<v4l2jpegdec0:pool:sink:allocator> failed queueing buffer 0: Invalid argument
0:00:04.520104667 930 0x1f22bb0 ERROR v4l2bufferpool gstv4l2bufferpool.c:1196:gst_v4l2_buffer_pool_qbuf:<v4l2jpegdec0:pool:sink> could not queue a buffer 0
0:00:04.521659334 930 0x1f22bb0 ERROR v4l2bufferpool gstv4l2bufferpool.c:2094:gst_v4l2_buffer_pool_process:<v4l2jpegdec0:pool:sink> failed to queue buffer
ERROR: from element /GstPipeline:pipeline0/GstSoupHTTPSrc:souphttpsrc0: Internal data stream error.
~~~
While the same pipeline with `jpegdec` works fine.
I tried increasing the CMA size but that did not help so far.
Note: Another pipeline using `v4l2h264dec` works fine.
Listing the device with `v4l2-ctl -d /dev/video1 --all` yields:
~~~
Driver Info:
Driver name : coda
Card type : CODA960
Bus info : platform:coda
Driver version : 5.8.0
Capabilities : 0x84208000
Video Memory-to-Memory
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04208000
Video Memory-to-Memory
Streaming
Extended Pix Format
Priority: 2
Format Video Capture:
Width/Height : 1920/1088
Pixel Format : 'NV12' (Y/CbCr 4:2:0)
Field : None
Bytes per Line : 1920
Size Image : 3133440
Colorspace : JPEG
Transfer Function : Default (maps to sRGB)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Full Range)
Flags :
Format Video Output:
Width/Height : 1920/1088
Pixel Format : 'JPEG' (JFIF JPEG)
Field : None
Bytes per Line : 0
Size Image : 3133440
Colorspace : JPEG
Transfer Function : Default (maps to sRGB)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Full Range)
Flags :
Selection Video Capture: compose, Left 0, Top 0, Width 1920, Height 1088, Flags:
Selection Video Capture: compose_default, Left 0, Top 0, Width 1920, Height 1088, Flags:
Selection Video Capture: compose_bounds, Left 0, Top 0, Width 1920, Height 1088, Flags:
Selection Video Capture: compose_padded, Left 0, Top 0, Width 1920, Height 1088, Flags:
Streaming Parameters Video Output:
Capabilities : timeperframe
Frames per second: 30.000 (30/1)
Write buffers : 0
User Controls
horizontal_flip 0x00980914 (bool) : default=0 value=0
vertical_flip 0x00980915 (bool) : default=0 value=0
min_number_of_capture_buffers 0x00980927 (int) : min=1 max=1 step=1 default=1 value=1 flags=read-only
~~~
I am running a Buildroot setup on an i.MX 6 Solo board.
Linux kernel 5.8.0-rc5. GStreamer 1.16.2.
Is there an issue with my setup/pipeline or should I try something else?https://gitlab.freedesktop.org/gstreamer/gst-libav/-/issues/80Crash when processing some matroska files2021-02-17T12:06:31ZGerman SalvadorCrash when processing some matroska filesWe are experiencing crashes when processing some matroska files, the following pipeline, for example, produces the crash:
```gst-launch-1.0 -vv filesrc location=xxxxxxxxxxxxxxx.mkv ! matroskademux ! avdec_h264 ! videorate ! videoscale ...We are experiencing crashes when processing some matroska files, the following pipeline, for example, produces the crash:
```gst-launch-1.0 -vv filesrc location=xxxxxxxxxxxxxxx.mkv ! matroskademux ! avdec_h264 ! videorate ! videoscale ! video/x-raw,format=I420,width=1080,height=720,framerate=28/1 ! fakesink```
```
#1 0x00007ffff7ae8859 in __GI_abort () at abort.c:79
#2 0x00007ffff7b533ee in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7ffff7c7d285 "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#3 0x00007ffff7b5b47c in malloc_printerr (str=str@entry=0x7ffff7c7f690 "double free or corruption (!prev)") at malloc.c:5347
#4 0x00007ffff7b5d12c in _int_free (av=0x7ffff0000020, p=0x7ffff1be1d40, have_lock=<optimized out>) at malloc.c:4317
#5 0x00007ffff7efbb58 in _gst_memory_free (mem=0x7ffff1be1d50) at ../subprojects/gstreamer/gst/gstmemory.c:97
#6 0x00007ffff7ec4ac6 in gst_memory_unref (memory=<optimized out>) at ../subprojects/gstreamer/gst/gstmemory.h:352
#7 _gst_buffer_free (buffer=0x7ffff06c0a20) at ../subprojects/gstreamer/gst/gstbuffer.c:801
#8 0x00007ffff7eca75b in default_stop (pool=0x7ffff0204f00) at ../subprojects/gstreamer/gst/gstbufferpool.c:409
#9 0x00007ffff7eca0c8 in do_stop (pool=pool@entry=0x7ffff0204f00) at ../subprojects/gstreamer/gst/gstbufferpool.c:427
#10 0x00007ffff7ecb038 in gst_buffer_pool_set_active (pool=pool@entry=0x7ffff0204f00, active=active@entry=0) at ../subprojects/gstreamer/gst/gstbufferpool.c:535
#11 0x00007ffff7ecb0e8 in gst_buffer_pool_finalize (object=0x7ffff0204f00) at ../subprojects/gstreamer/gst/gstbufferpool.c:194
#12 0x00007ffff7cf1d0e in g_object_unref () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff7ecc17c in gst_buffer_pool_release_buffer (pool=pool@entry=0x7ffff0204f00, buffer=buffer@entry=0x7ffff00066c0) at ../subprojects/gstreamer/gst/gstbufferpool.c:1382
#14 0x00007ffff7ec4ba3 in _gst_buffer_dispose (buffer=0x7ffff00066c0) at ../subprojects/gstreamer/gst/gstbuffer.c:761
#15 0x00007ffff7efcfaf in gst_mini_object_unref (mini_object=0x7ffff00066c0) at ../subprojects/gstreamer/gst/gstminiobject.c:656
#16 0x00007ffff66f1d19 in gst_ffmpegviddec_video_frame_free (frame=0x7ffff02036d0, ffmpegdec=0x5555557f2fd0) at ../subprojects/gst-libav/ext/libav/gstavviddec.c:633
#17 dummy_free_buffer (opaque=0x7ffff02036d0, data=<optimized out>) at ../subprojects/gst-libav/ext/libav/gstavviddec.c:647
#18 0x00007ffff4d9bbf6 in buffer_replace (dst=dst@entry=0x7fffb4015450, src=src@entry=0x0) at ../subprojects/FFmpeg/libavutil/buffer.c:120
#19 0x00007ffff4d9bee2 in av_buffer_unref (buf=buf@entry=0x7fffb4015450) at ../subprojects/FFmpeg/libavutil/buffer.c:130
#20 0x00007ffff4da3dfc in av_frame_unref (frame=0x7fffb4015330) at ../subprojects/FFmpeg/libavutil/frame.c:564
#21 0x00007ffff50d0a2a in release_delayed_buffers (p=0x7ffff002df30) at ../subprojects/FFmpeg/libavcodec/pthread_frame.c:385
#22 0x00007ffff50d0c7c in submit_packet (avpkt=0x7ffff002df30, user_avctx=0x5555557f3bc0, p=0x7ffff002df30) at ../subprojects/FFmpeg/libavcodec/pthread_frame.c:413
#23 ff_thread_decode_frame (avctx=avctx@entry=0x5555557f3bc0, picture=picture@entry=0x7ffff002bc50, got_picture_ptr=got_picture_ptr@entry=0x7ffff4cec620, avpkt=avpkt@entry=0x555555813440) at ../subprojects/FFmpeg/libavcodec/pthread_frame.c:501
#24 0x00007ffff50c2de2 in decode_simple_internal (frame=0x7ffff002bc50, avctx=0x5555557f3bc0) at ../subprojects/FFmpeg/libavcodec/decode.c:340
#25 decode_simple_receive_frame (frame=<optimized out>, avctx=<optimized out>) at ../subprojects/FFmpeg/libavcodec/decode.c:538
#26 decode_receive_frame_internal (avctx=avctx@entry=0x5555557f3bc0, frame=0x7ffff002bc50) at ../subprojects/FFmpeg/libavcodec/decode.c:556
#27 0x00007ffff50c3680 in avcodec_send_packet (avctx=0x5555557f3bc0, avpkt=avpkt@entry=0x7ffff4cec700) at ../subprojects/FFmpeg/libavcodec/decode.c:614
#28 0x00007ffff66f54a4 in gst_ffmpegviddec_handle_frame (decoder=0x5555557f2fd0, frame=0x7ffff01ed150) at ../subprojects/gst-libav/ext/libav/gstavviddec.c:1919
#29 0x00007ffff68c06f2 in gst_video_decoder_decode_frame (decoder=decoder@entry=0x5555557f2fd0, frame=0x7ffff01ed150) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:3705
#30 0x00007ffff68c0c28 in gst_video_decoder_chain_forward (decoder=decoder@entry=0x5555557f2fd0, buf=buf@entry=0x7ffff0006480, at_eos=at_eos@entry=0) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:2340
#31 0x00007ffff68c2311 in gst_video_decoder_chain (pad=<optimized out>, parent=<optimized out>, buf=0x7ffff0006480) at ../subprojects/gst-plugins-base/gst-libs/gst/video/gstvideodecoder.c:2655
#32 0x00007ffff7f02602 in gst_pad_chain_data_unchecked (data=0x7ffff0006480, type=4112, pad=0x5555557a25b0) at ../subprojects/gstreamer/gst/gstpad.c:4399
#33 gst_pad_push_data (pad=pad@entry=0x5555557a3cd0, type=type@entry=4112, data=<optimized out>, data@entry=0x7ffff0006480) at ../subprojects/gstreamer/gst/gstpad.c:4655
#34 0x00007ffff7f0b032 in gst_pad_push (pad=0x5555557a3cd0, buffer=buffer@entry=0x7ffff0006480) at ../subprojects/gstreamer/gst/gstpad.c:4774
#35 0x00007ffff69906bb in gst_matroska_demux_parse_blockgroup_or_simpleblock (demux=demux@entry=0x5555557aa000, ebml=ebml@entry=0x7ffff4cecd00, cluster_time=<optimized out>, is_simpleblock=is_simpleblock@entry=1, cluster_offset=<optimized out>)
at ../subprojects/gst-plugins-good/gst/matroska/matroska-demux.c:4843
#36 0x00007ffff6997cea in gst_matroska_demux_parse_id (demux=demux@entry=0x5555557aa000, id=<optimized out>, length=<optimized out>, needed=<optimized out>) at ../subprojects/gst-plugins-good/gst/matroska/matroska-demux.c:5572
#37 0x00007ffff699e7c6 in gst_matroska_demux_loop (pad=<optimized out>) at ../subprojects/gst-plugins-good/gst/matroska/matroska-demux.c:5761
#38 0x00007ffff7f38ed1 in gst_task_func (task=0x5555557ac3b0) at ../subprojects/gstreamer/gst/gsttask.c:328
#39 0x00007ffff7db61d4 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#40 0x00007ffff7db5931 in () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#41 0x00007ffff7cbe609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#42 0x00007ffff7be5103 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
```
Removing the caps from the pipeline makes it run without crashes:
```gst-launch-1.0 -vv filesrc location=xxxxxxxxxxxxxxx.mkv ! matroskademux ! avdec_h264 ! videorate ! videoscale ! ! fakesink```
This is happening in master, but at least happens also in 1.16 and 1.8, with different stack traces.
Grepping the log file with the 0x7ffff00066c0 reference shown in #15:
```
0:00:28.558016352 118862 0x5555557b0860 LOG GST_BUFFER gstbuffer.c:851:gst_buffer_new: new 0x7ffff00066c0
0:00:28.558022022 118862 0x5555557b0860 LOG GST_BUFFER gstbuffer.c:457:_memory_add: buffer 0x7ffff00066c0, idx -1, mem 0x7ffff0d40690
0:00:28.558024542 118862 0x5555557b0860 TRACE GST_REFCOUNTING gstminiobject.c:1008:gst_mini_object_add_parent: adding parent 0x7ffff00066c0 to object 0x7ffff0d40690
0:00:28.558027722 118862 0x5555557b0860 LOG GST_BUFFER gstbuffer.c:907:gst_buffer_new_allocate: new buffer 0x7ffff00066c0 of size 1926144 from allocator (nil)
0:00:28.558043252 118862 0x5555557b0860 DEBUG bufferpool gstbufferpool.c:245:mark_meta_pooled:<videobufferpool12> marking meta 0x7ffff0698200 as POOLED in buffer 0x7ffff00066c0
0:00:28.558046072 118862 0x5555557b0860 LOG bufferpool gstbufferpool.c:287:do_alloc_buffer:<videobufferpool12> allocated buffer 3/0, 0x7ffff00066c0
0:00:28.558051792 118862 0x5555557b0860 TRACE GST_REFCOUNTING gstminiobject.c:723:gst_mini_object_replace: replace (nil) (0) with 0x7ffff00066c0 (1)
0:00:28.558054452 118862 0x5555557b0860 TRACE GST_REFCOUNTING gstminiobject.c:466:gst_mini_object_ref: 0x7ffff00066c0 ref 1->2
0:00:28.558057342 118862 0x5555557b0860 TRACE GST_REFCOUNTING gstminiobject.c:723:gst_mini_object_replace: replace 0x7ffff00066c0 (2) with (nil) (0)
0:00:28.558061662 118862 0x5555557b0860 TRACE GST_REFCOUNTING gstminiobject.c:648:gst_mini_object_unref: 0x7ffff00066c0 unref 2->1
0:00:28.558064982 118862 0x5555557b0860 LOG GST_BUFFER gstbuffer.c:1825:gst_buffer_map_range: buffer 0x7ffff00066c0, idx 0, length 1, flags 0003
0:00:28.558067682 118862 0x5555557b0860 LOG GST_BUFFER gstbuffer.c:301:_get_merged_memory: buffer 0x7ffff00066c0, idx 0, length 1
0:00:28.558075882 118862 0x5555557b0860 LOG GST_BUFFER gstbuffer.c:1825:gst_buffer_map_range: buffer 0x7ffff00066c0, idx 0, length 1, flags 0003
0:00:28.558078532 118862 0x5555557b0860 LOG GST_BUFFER gstbuffer.c:301:_get_merged_memory: buffer 0x7ffff00066c0, idx 0, length 1
0:00:28.558086793 118862 0x5555557b0860 LOG GST_BUFFER gstbuffer.c:1825:gst_buffer_map_range: buffer 0x7ffff00066c0, idx 0, length 1, flags 0003
0:00:28.558089413 118862 0x5555557b0860 LOG GST_BUFFER gstbuffer.c:301:_get_merged_memory: buffer 0x7ffff00066c0, idx 0, length 1
0:00:28.558097173 118862 0x5555557b0860 TRACE GST_REFCOUNTING gstminiobject.c:466:gst_mini_object_ref: 0x7ffff00066c0 ref 1->2
0:00:28.558120883 118862 0x5555557b0860 LOG libav gstavviddec.c:885:gst_ffmpegviddec_get_buffer2:<avdec_h264-0> returned frame 0x7ffff00066c0
0:00:28.736551635 118862 0x5555557b0860 TRACE GST_REFCOUNTING gstminiobject.c:723:gst_mini_object_replace: replace (nil) (0) with 0x7ffff00066c0 (2)
0:00:28.736554375 118862 0x5555557b0860 TRACE GST_REFCOUNTING gstminiobject.c:466:gst_mini_object_ref: 0x7ffff00066c0 ref 2->3
0:00:28.736557245 118862 0x5555557b0860 TRACE GST_REFCOUNTING gstminiobject.c:723:gst_mini_object_replace: replace 0x7ffff00066c0 (3) with (nil) (0)
0:00:28.736559925 118862 0x5555557b0860 TRACE GST_REFCOUNTING gstminiobject.c:648:gst_mini_object_unref: 0x7ffff00066c0 unref 3->2
0:00:28.737177607 118862 0x5555557b0860 TRACE GST_REFCOUNTING gstminiobject.c:648:gst_mini_object_unref: 0x7ffff00066c0 unref 2->1
0:00:28.828290983 118862 0x5555557b0860 TRACE GST_REFCOUNTING gstminiobject.c:648:gst_mini_object_unref: 0x7ffff00066c0 unref 1->0
0:00:28.828293603 118862 0x5555557b0860 TRACE GST_REFCOUNTING gstminiobject.c:466:gst_mini_object_ref: 0x7ffff00066c0 ref 0->1
0:00:28.828296123 118862 0x5555557b0860 LOG GST_BUFFER gstbuffer.c:760:_gst_buffer_dispose: release 0x7ffff00066c0 to pool 0x7ffff0204f00
0:00:28.828299573 118862 0x5555557b0860 LOG GST_BUFFER gstbuffer.c:1682:gst_buffer_resize_range: trim 0x7ffff00066c0 0-1926144 size:1926144 offs:0 max:1926175
0:00:28.828302383 118862 0x5555557b0860 LOG bufferpool gstbufferpool.c:1298:default_release_buffer:<videobufferpool12> released buffer 0x7ffff00066c0 0
```
These other log lines before the new suggest that the crash is related to avdec_h264
```
0:00:28.557992432 118862 0x5555557b0860 DEBUG videodecoder gstvideodecoder.c:3862:gst_video_decoder_get_frame:<avdec_h264-0> frame_number : 5480
0:00:28.557995402 118862 0x5555557b0860 TRACE default gstvideoutils.c:115:gst_video_codec_frame_ref: 0x7ffff01ed6a0 ref 2->3
0:00:28.557997882 118862 0x5555557b0860 DEBUG libav gstavviddec.c:621:gst_ffmpegviddec_video_frame_new:<avdec_h264-0> new video frame 0x7ffff02036d0
0:00:28.558002362 118862 0x5555557b0860 DEBUG libav gstavviddec.c:827:gst_ffmpegviddec_get_buffer2:<avdec_h264-0> storing opaque 0x7ffff02036d0
0:00:28.558004922 118862 0x5555557b0860 LOG bufferpool gstbufferpool.c:1128:default_acquire_buffer:<videobufferpool12> no buffer, trying to allocate
0:00:28.558007362 118862 0x5555557b0860 DEBUG videopool gstvideopool.c:248:video_buffer_pool_alloc:<videobufferpool12> alloc 1926144
0:00:28.558010802 118862 0x5555557b0860 TRACE GST_REFCOUNTING gstobject.c:238:gst_object_ref:<allocatorsysmem0> 0x555555576840 ref 111->112
0:00:28.558014042 118862 0x5555557b0860 DEBUG GST_MEMORY gstmemory.c:140:gst_memory_init: new memory 0x7ffff0d40690, maxsize:1926175 offset:0 size:1926144
0:00:28.558016352 118862 0x5555557b0860 LOG GST_BUFFER gstbuffer.c:851:gst_buffer_new: new 0x7ffff00066c0
```
Full log and stdout are attached.
[stderr.log.gz](/uploads/ca1818f82c990b71dab00d7b7f6d7c28/stderr.log.gz)
[stdout.log.gz](/uploads/ed59f26e7284f1ac8ef9e2f7a778c90d/stdout.log.gz)https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/609Buffers not writable after tee2022-11-10T09:21:05ZJimmy PetterssonBuffers not writable after tee## Summary ##
Buffers coming on some streams from a tee split are not writable (most of them) while on other streams the buffers are always writable.
### Example ###
This pipeline ***does not work*** as expected (allow mapping of writ...## Summary ##
Buffers coming on some streams from a tee split are not writable (most of them) while on other streams the buffers are always writable.
### Example ###
This pipeline ***does not work*** as expected (allow mapping of writable buffers):
```sh
gst-launch-1.0 videotestsrc pattern=snow ! video/x-raw, width=640,height=480, framerate=30/1 ! videoconvert ! video/x-raw, format=Y444 ! tee name=t ! queue ! mycustomelement ! videoconvert ! xvimagesink t. ! queue ! videoconvert ! xvimagesink
```
```cpp
#
# Example code from "mycustomelement" chain_sink funtion
static GstFlowReturn
gst_plugin_chain_sink (GstPad * pad, GstObject * parent, GstBuffer * buffer)
{
PLUGIN_NAME *plugin;
auto klass = GST_CUSTOM_PLUGIN_CLASS(G_OBJECT_GET_CLASS(parent));
plugin = GST_CUSTOM_PLUGIN (parent);
GstMapInfo map;
if (buffer == NULL || !gst_buffer_is_writable(buffer) )
{
return gst_pad_push (plugin->srcpad, buffer);
}
// Mapping a buffer can fail (non-writable)
if (gst_buffer_map (buffer, &map, GST_MAP_WRITE))
{
//auto ptr = (guint8 *) map.data;
printf("\n %d",(int)map.data[0]);
map.data[0] = 42;
printf("\n %d",(int)map.data[0]);
gst_buffer_unmap (buffer, &map);
}
return gst_pad_push (plugin->srcpad, buffer);
}
```
While this one ***does work as expected*** :
```sh
gst-launch-1.0 videotestsrc pattern=snow ! video/x-raw, width=640,height=480, framerate=30/1 ! videoconvert ! video/x-raw, format=Y444 ! tee name=t ! queue ! videoconvert ! xvimagesink t. ! queue ! mycustomelement ! videoconvert ! xvimagesink
```https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/303installer creation fails, MSI has no attribute '_get_toolchain_target_platfor...2020-09-30T20:24:13ZzEdS15B3GCwqinstaller creation fails, MSI has no attribute '_get_toolchain_target_platform_arch' in wix.py (Windows; 1.19 master)* Win 10 x64
* Python 3.8.3
* Cerbero master as of yesterday
Ran into a problem building the installer:
* fresh run from zero with variants visualstudio and intelmsdk
* build all successful, then
`-----> Creating Merge Module for gstr...* Win 10 x64
* Python 3.8.3
* Cerbero master as of yesterday
Ran into a problem building the installer:
* fresh run from zero with variants visualstudio and intelmsdk
* build all successful, then
`-----> Creating Merge Module for gstreamer-1.0-vs-templates
Windows Installer XML Toolset Compiler version 3.11.2.4516
Copyright (c) .NET Foundation and contributors. All rights reserved.
`
`gstreamer-1.0-vs-templates-msvc-x86_64-1.19.0.1.wxs
utils.wxs
Windows Installer XML Toolset Linker version 3.11.2.4516
Copyright (c) .NET Foundation and contributors. All rights reserved.
`
`Traceback (most recent call last):
File "<string>", line 20, in <module>
File "c:\GStreamer_Cerbero\cerbero\cerbero\main.py", line 183, in main
Main(sys.argv[1:])
File "c:\GStreamer_Cerbero\cerbero\cerbero\main.py", line 53, in __init__
self.run_command()
File "c:\GStreamer_Cerbero\cerbero\cerbero\main.py", line 152, in run_command
res = commands.run(command, self.config, self.args)
File "c:\GStreamer_Cerbero\cerbero\cerbero\commands\__init__.py", line 78, in run
return _commands[command].run(config, args)
File "c:\GStreamer_Cerbero\cerbero\cerbero\commands\package.py", line 119, in run
paths = pkg.pack(output_dir, args.no_devel,
File "c:\GStreamer_Cerbero\cerbero\cerbero\packages\wix_packager.py", line 169, in pack
p = self._create_msi_installer(PackageType.RUNTIME)
File "c:\GStreamer_Cerbero\cerbero\cerbero\packages\wix_packager.py", line 212, in _create_msi_installer
return self._create_msi(config_path, tmp_dirs)
File "c:\GStreamer_Cerbero\cerbero\cerbero\packages\wix_packager.py", line 245, in _create_msi
msi.write(sources[0])
File "c:\GStreamer_Cerbero\cerbero\cerbero\packages\wix.py", line 79, in write
self.fill()
File "c:\GStreamer_Cerbero\cerbero\cerbero\packages\wix.py", line 75, in fill
self._fill()
File "c:\GStreamer_Cerbero\cerbero\cerbero\packages\wix.py", line 431, in _fill
self._add_install_dir()
File "c:\GStreamer_Cerbero\cerbero\cerbero\packages\wix.py", line 516, in _add_install_dir
platform_arch = '_'.join(self._get_toolchain_target_platform_arch())
AttributeError: 'MSI' object has no attribute '_get_toolchain_target_platform_arch'
`