GStreamer issueshttps://gitlab.freedesktop.org/groups/gstreamer/-/issues2022-03-10T22:13:16Zhttps://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/367libcamerasrc missing after building package gstreamer2022-03-10T22:13:16ZMichael Bayerlibcamerasrc missing after building package gstreamerI built gstreamer using cerbero using the following command:
./cerbero-uninstalled package gstreamer
The build runs without any issues, but when I start a gst-shell in the dist-folder and try to start my pipeline:
./gst-launch-1.0 lib...I built gstreamer using cerbero using the following command:
./cerbero-uninstalled package gstreamer
The build runs without any issues, but when I start a gst-shell in the dist-folder and try to start my pipeline:
./gst-launch-1.0 libcamerasrc ! video/x-raw,width=1920,height=1080,framerate=30/1,format=I420 ! rawvideoparse use-sink-caps=true width=853 height=480 framerate=1/1 ! x264enc tune=zerolatency ! video/x-h264,stream-format=avc ! queue ! rtph264pay config-interval=1 name=pay0 pt=96
I get the message: no element 'libcamerasrc'
I can confirm that there is no 'libgstlibcamerasrc*.so' in the lib folder, but why? Shouldn't it be built with the package by default?
I am running this on a raspberry pi with raspbian buster (32-bit):
uname -a
Linux raspberrypi 5.10.63-v7+ #1496 SMP Wed Dec 1 15:58:11 GMT 2021 armv7l GNU/Linux
The pipeline works without any issues when using the os packages (gstreamer 1.14.X). I also tried this on raspbian bullseye (gstreamer 1.18.X), also working.https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/960Seem dma fd imported from downstream pool do not bind with v4l2 buffer index,...2022-03-11T14:01:28ZHuQianqian.hu@mediatek.comSeem dma fd imported from downstream pool do not bind with v4l2 buffer index, when v4l2videodec use capture-io-mode=dmabuf-importhello
seem some issue within dmabuf-import for capture ? (gst_v4l2_buffer_pool_process for capture dmabuf import ,in this case , gstreamer do not bind v4l2 buffer index and fd)
i have a use case , **v4l2videodec capture-io-mode=dmabu...hello
seem some issue within dmabuf-import for capture ? (gst_v4l2_buffer_pool_process for capture dmabuf import ,in this case , gstreamer do not bind v4l2 buffer index and fd)
i have a use case , **v4l2videodec capture-io-mode=dmabuf-import ! XXXVideoSink**
i add proposal allocation function in XXXVideoSink plugin, that will proposal dma fd for v4l2videodec plugin,
the flow work, but that sometimes result in **corruption of decoded frames **
**the reason is v4l2 decoder need fd should bind with v4l2 buffer index**, but gstreamer Gstv4l2bufferpool seem not ensure that,
if not, this may result in corruption of decoded frames
i notice in this line, gstreamer will dqbuf v4l2 buf, get fd_0 from it , and acquire another dma fd from downstream bufferpool, and qbuf this new fd_1 into same v4l2 index.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/blob/master/sys/v4l2/gstv4l2bufferpool.c#L1973
according to v4l2 spec, we have this, spec seem need binding between fd and v4l2 buffer index
https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/dev-decoder.html
The backing memory of CAPTURE buffers that are used as reference frames by the stream may be read by the hardware even after they are dequeued. Consequently, the client should avoid writing into this memory while the CAPTURE queue is streaming.
the client should make sure that each CAPTURE buffer is always queued with the same backing memory for as long as the CAPTURE queue is streaming.
is there any comment about this issue? or any comment about gstv4l2bufferpool.c flow for capture-io-mode=dmabuf-import ?https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1710[gst-va] there is an issue for h264 4k vbr encode2022-03-11T07:55:13ZFocusLuo[gst-va] there is an issue for h264 4k vbr encodetest cmdline: gst-launch-1.0 -vf filesrc location=/home/focus/yuv/4k_2013_3840x2160_I420_75frames.yuv num-buffers=75 ! rawvideoparse format=i420 width=3840 height=2160 framerate=30 ! videoconvert chroma-mode=none dither=0 ! video/x-raw,f...test cmdline: gst-launch-1.0 -vf filesrc location=/home/focus/yuv/4k_2013_3840x2160_I420_75frames.yuv num-buffers=75 ! rawvideoparse format=i420 width=3840 height=2160 framerate=30 ! videoconvert chroma-mode=none dither=0 ! video/x-raw,format=NV12 ! vah264enc rate-control=vbr key-int-max=30 target-usage=4 num-slices=1 b-frames=3 target-percentage=70 bitrate=142857 ref-frames=1 ! video/x-h264,profile=main ! h264parse ! filesink location=test.h264
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got context from element 'vah264enc0': gst.va.display.handle=context, gst-display=(GstObject)"\(GstVaDisplayDrm\)\ vadisplaydrm1";
/GstPipeline:pipeline0/GstRawVideoParse:rawvideoparse0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src: caps = video/x-raw, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, format=(string)NV12, chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, format=(string)NV12, chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstVaH264Enc:vah264enc0: dct8x8 = false
/GstPipeline:pipeline0/GstVaH264Enc:vah264enc0: cpb-size = 408162
/GstPipeline:pipeline0/GstVaH264Enc:vah264enc0: b-frames = 0
/GstPipeline:pipeline0/GstVaH264Enc:vah264enc0.GstPad:src: caps = video/x-h264, profile=(string)main, level=(string)6.1, width=(int)3840, height=(int)2160, alignment=(string)au, stream-format=(string)byte-stream, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-h264, profile=(string)main, level=(string)6.1, width=(int)3840, height=(int)2160, alignment=(string)au, stream-format=(string)byte-stream, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, profile=(string)main, level=(string)6.1, width=(int)3840, height=(int)2160, alignment=(string)au, stream-format=(string)byte-stream, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2, parsed=(boolean)true
/GstPipeline:pipeline0/GstFileSink:filesink0.GstPad:sink: caps = video/x-h264, profile=(string)main, level=(string)6.1, width=(int)3840, height=(int)2160, alignment=(string)au, stream-format=(string)byte-stream, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2, parsed=(boolean)true
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, profile=(string)main, level=(string)6.1, width=(int)3840, height=(int)2160, alignment=(string)au, stream-format=(string)byte-stream, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-h264, profile=(string)main, level=(string)6.1, width=(int)3840, height=(int)2160, alignment=(string)au, stream-format=(string)byte-stream, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstVaH264Enc:vah264enc0.GstPad:sink: caps = video/x-raw, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, format=(string)NV12, chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, format=(string)NV12, chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, framerate=(fraction)30/1
0:00:00.068594978 121102 0x56147cd825e0 ERROR vah264enc gstvah264enc.c:2984:gst_va_h264_enc_encode_frame:<vah264enc0> Encode frame error
0:00:00.068610177 121102 0x56147cd825e0 ERROR vah264enc gstvah264enc.c:3456:_encode_frame:<vah264enc0> Failed to encode the frame
ERROR: from element /GstPipeline:pipeline0/GstVaH264Enc:vah264enc0: Failed to encode the frame.
Additional debug info:
../sys/va/gstvah264enc.c(3554): gst_va_h264_enc_handle_frame (): /GstPipeline:pipeline0/GstVaH264Enc:vah264enc0
ERROR: pipeline doesn't want to preroll.
ERROR: from element /GstPipeline:pipeline0/GstRawVideoParse:rawvideoparse0: Internal data stream error.
Setting pipeline to NULL ...
Additional debug info:
../libs/gst/base/gstbaseparse.c(3681): gst_base_parse_loop (): /GstPipeline:pipeline0/GstRawVideoParse:rawvideoparse0:
streaming stopped, reason error (-5)
ERROR: pipeline doesn't want to preroll.
Freeing pipeline ...https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/187rusoto: Consider moving from rusoto to aws-sdk2022-06-14T08:30:03ZSebastian Drögerusoto: Consider moving from rusoto to aws-sdkThe latter is developed by Amazon, the former is mostly inactive by now.
CC @arunThe latter is developed by Amazon, the former is mostly inactive by now.
CC @arunhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1081playbin3 does not hotplug assrender element2024-03-09T16:48:14ZRafał Dzięgielplaybin3 does not hotplug assrender elementWhen playing any video with ASS subtitles using `playbin3` and any video sink, `GstTextOverlay` is incorrectly used instead of `GstAssRender` element. Thus subtitles are incorrectly displayed. Everything works fine with `playbin2`.
This...When playing any video with ASS subtitles using `playbin3` and any video sink, `GstTextOverlay` is incorrectly used instead of `GstAssRender` element. Thus subtitles are incorrectly displayed. Everything works fine with `playbin2`.
This was tested and is reproduceable using either today's git main, 1.20 and 1.18 versions of GStreamer, so its not a recent regression.1.23.90https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1083vaapisink: Segmentation faults2024-02-16T14:54:57ZEthan Glasser-Campvaapisink: Segmentation faults### Describe your issue
I am trying to get GStreamer to work on videos so that I can use Cawbird more effectively. See https://github.com/IBBoard/cawbird/issues/437 for some background. `gst-play-1.0` does not seem to work on some video ...### Describe your issue
I am trying to get GStreamer to work on videos so that I can use Cawbird more effectively. See https://github.com/IBBoard/cawbird/issues/437 for some background. `gst-play-1.0` does not seem to work on some video files.
#### Expected Behavior
A successfully-playing video.
#### Observed Behavior
Sometimes the video does not play and instead an image of an arbitrary part of my desktop is displayed. Sometimes I simply get SEGV.
```
> gst-play-1.0 https://video.twimg.com/tweet_video/FNj3y7jXMAAcl8k.mp4
Press 'k' to see a list of keyboard shortcuts.
Now playing https://video.twimg.com/tweet_video/FNj3y7jXMAAcl8k.mp4
Prerolling...
Redistribute latency...
fish: “gst-play-1.0 https://video.twim…” terminated by signal SIGSEGV (Address boundary error)
```
I tried to get more debugging information out of it using `GST_DEBUG`:
<details>
<summary>Using GST_DEBUG=3</summary>
<pre><code>
> env GST_DEBUG=3 gst-play-1.0 https://video.twimg.com/tweet_video/FNj3y7jXMAAcl8k.mp4
Press 'k' to see a list of keyboard shortcuts.
Now playing https://video.twimg.com/tweet_video/FNj3y7jXMAAcl8k.mp4
Prerolling...
0:00:00.199808765 481270 0x7fde5400b6a0 WARN qtdemux qtdemux_types.c:244:qtdemux_type_get: unknown QuickTime node type pasp
0:00:00.199857627 481270 0x7fde5400b6a0 WARN qtdemux qtdemux.c:3066:qtdemux_parse_trex:<qtdemux0> failed to find fragment defaults for stream 1
0:00:00.316133183 481270 0x7fde5400b6a0 WARN vaapifilter gstvaapifilter.c:1373:gst_vaapi_filter_set_property:<vaapifilter0> VA display doesn't support VPP
Redistribute latency...
0:00:00.323937431 481270 0x7fde401ec240 WARN vaapifilter gstvaapifilter.c:1373:gst_vaapi_filter_set_property:<vaapifilter1> VA display doesn't support VPP
0:00:00.324832438 481270 0x7fde401ec240 WARN vaapifilter gstvaapifilter.c:1373:gst_vaapi_filter_set_property:<vaapifilter2> VA display doesn't support VPP
0:00:00.331214728 481270 0x7fde401ec240 WARN vaapifilter gstvaapifilter.c:1373:gst_vaapi_filter_set_property:<vaapifilter3> VA display doesn't support VPP
0:00:00.333981876 481270 0x7fddf4070460 ERROR vaapivideomemory gstvaapivideomemory.c:254:map_vaapi_memory: failed to make image current
0:00:00.333996072 481270 0x7fddf4070460 ERROR default video-frame.c:168:gst_video_frame_map_id: failed to map video frame plane 0
0:00:00.334004672 481270 0x7fddf4070460 WARN xvimagesink xvimagesink.c:1014:gst_xv_image_sink_show_frame:<xvimagesink0> could not map image
0:00:00.334203537 481270 0x7fddf4070460 ERROR vaapivideomemory gstvaapivideomemory.c:254:map_vaapi_memory: failed to make image current
0:00:00.334210370 481270 0x7fddf4070460 ERROR default video-frame.c:168:gst_video_frame_map_id: failed to map video frame plane 0
0:00:00.334215822 481270 0x7fddf4070460 WARN xvimagesink xvimagesink.c:1014:gst_xv_image_sink_show_frame:<xvimagesink0> could not map image
fish: “env GST_DEBUG=3 gst-play-1.0 ht…” terminated by signal SIGSEGV (Address boundary error)
</code></pre>
</details>
#### Setup
- **Operating System:** Pop!_OS 21.10
- **Device:** System76 Lemur Pro
- **GStreamer Version:** 1.18.5 (see below)
- **Command line:** `gst-play-1.0 https://video.twimg.com/tweet_video/FNj3y7jXMAAcl8k.mp4`
### Steps to reproduce the bug
The command with `gst-play-1.0` is enough.
### How reproducible is the bug?
I can never successfully view the video, but it doesn't always seg fault.
### Related non-duplicate issues
I saw someone else had reported this to the Pop!_OS maintainers at https://github.com/pop-os/pop/issues/1473 but I'm not exactly sure my issue is the same as theirs. Also of course https://github.com/IBBoard/cawbird/issues/437 but that was just diagnosing it as something related to GStreamer.
### Additional Information
<details>
<summary><code>dpkg -l '*gst*'</code></summary>
<pre><code>
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-======================================-===============-============-=========================================================================
ii gir1.2-gst-plugins-bad-1.0:amd64 1.18.5-1ubuntu1 amd64 GObject introspection data for the GStreamer libraries from the "bad" set
ii gir1.2-gst-plugins-base-1.0:amd64 1.18.5-1 amd64 GObject introspection data for the GStreamer Plugins Base library
ii gir1.2-gstreamer-1.0:amd64 1.18.5-1 amd64 GObject introspection data for the GStreamer library
ii gstreamer1.0-alsa:amd64 1.18.5-1 amd64 GStreamer plugin for ALSA
un gstreamer1.0-audiosink <none> <none> (no description available)
un gstreamer1.0-audiosource <none> <none> (no description available)
ii gstreamer1.0-clutter-3.0:amd64 3.0.27-2build1 amd64 Clutter PLugin for GStreamer 1.0
un gstreamer1.0-doc <none> <none> (no description available)
ii gstreamer1.0-gl:amd64 1.18.5-1 amd64 GStreamer plugins for GL
ii gstreamer1.0-gtk3:amd64 1.18.5-1ubuntu2 amd64 GStreamer plugin for GTK+3
ii gstreamer1.0-libav:amd64 1.18.5-1 amd64 ffmpeg plugin for GStreamer
ii gstreamer1.0-pipewire:amd64 0.3.32-1 amd64 GStreamer 1.0 plugin for the PipeWire multimedia server
ii gstreamer1.0-plugins-bad:amd64 1.18.5-1ubuntu1 amd64 GStreamer plugins from the "bad" set
ii gstreamer1.0-plugins-bad-apps 1.18.5-1ubuntu1 amd64 GStreamer helper programs from the "bad" set
un gstreamer1.0-plugins-bad-faad <none> <none> (no description available)
un gstreamer1.0-plugins-bad-videoparsers <none> <none> (no description available)
ii gstreamer1.0-plugins-base:amd64 1.18.5-1 amd64 GStreamer plugins from the "base" set
ii gstreamer1.0-plugins-base-apps 1.18.5-1 amd64 GStreamer helper programs from the "base" set
ii gstreamer1.0-plugins-good:amd64 1.18.5-1ubuntu2 amd64 GStreamer plugins from the "good" set
ii gstreamer1.0-plugins-ugly:amd64 1.18.5-1 amd64 GStreamer plugins from the "ugly" set
un gstreamer1.0-plugins-ugly-amr <none> <none> (no description available)
ii gstreamer1.0-pulseaudio:amd64 1.18.5-1ubuntu2 amd64 GStreamer plugin for PulseAudio (transitional package)
ii gstreamer1.0-tools 1.18.5-1 amd64 Tools for use with GStreamer
ii gstreamer1.0-vaapi:amd64 1.18.5-1 amd64 VA-API plugins for GStreamer
un gstreamer1.0-vaapi-doc <none> <none> (no description available)
un gstreamer1.0-videosink <none> <none> (no description available)
un gstreamer1.0-videosource <none> <none> (no description available)
un gstreamer1.0-visualization <none> <none> (no description available)
ii gstreamer1.0-x:amd64 1.18.5-1 amd64 GStreamer plugins for X11 and Pango
ii libclutter-gst-3.0-0:amd64 3.0.27-2build1 amd64 Open GL based interactive canvas library GStreamer elements
ii libgstreamer-gl1.0-0:amd64 1.18.5-1 amd64 GStreamer GL libraries
ii libgstreamer-opencv1.0-0:amd64 1.18.5-1ubuntu1 amd64 GStreamer OpenCV libraries
ii libgstreamer-plugins-bad1.0-0:amd64 1.18.5-1ubuntu1 amd64 GStreamer libraries from the "bad" set
ii libgstreamer-plugins-bad1.0-dev:amd64 1.18.5-1ubuntu1 amd64 GStreamer development files for libraries from the "bad" set
ii libgstreamer-plugins-base1.0-0:amd64 1.18.5-1 amd64 GStreamer libraries from the "base" set
ii libgstreamer-plugins-base1.0-dev:amd64 1.18.5-1 amd64 GStreamer development files for libraries from the "base" set
ii libgstreamer-plugins-good1.0-0:amd64 1.18.5-1ubuntu2 amd64 GStreamer development files for libraries from the "good" set
ii libgstreamer-plugins-good1.0-dev 1.18.5-1ubuntu2 amd64 GStreamer development files for libraries from the "good" set
ii libgstreamer1.0-0:amd64 1.18.5-1 amd64 Core GStreamer libraries and elements
ii libgstreamer1.0-dev:amd64 1.18.5-1 amd64 GStreamer core development files
un libgtk-4-media-gstreamer <none> <none> (no description available)
un libreoffice-avmedia-backend-gstreamer <none> <none> (no description available)
un totem-gstreamer <none> <none> (no description available)
</code></pre>
</details>
<details>
<summary>Installed flatpaks</summary>
<pre><code>
Name Application ID Version Branch Installation
Discord com.discordapp.Discord 0.0.17 stable user
Slack com.slack.Slack 4.23.0 stable user
Steam com.valvesoftware.Steam 1.0.0.74 stable user
Freedesktop Platfo… org.freedesktop.Platform 21.08.11 21.08 user
i386 …sktop.Platform.Compat.i386 21.08 user
Mesa …esktop.Platform.GL.default 21.3.6 21.08 user
default …ktop.Platform.GL32.default 21.08 user
Intel …sktop.Platform.VAAPI.Intel 21.08 user
i386 ….Platform.VAAPI.Intel.i386 21.08 user
openh264 …edesktop.Platform.openh264 2.1.0 2.0 user
Freedesktop SDK org.freedesktop.Sdk 21.08.11 21.08 user
GNOME Application … org.gnome.Platform 41 user
Rhythmbox org.gnome.Rhythmbox3 3.4.4 stable user
Pop Gtk theme org.gtk.Gtk3theme.Pop-dark 3.22 user
Zoom us.zoom.Zoom 5.9.6.2225 stable user
</code></pre>
</details>https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/325Pipeline hangs when seeking with vaapi encoder2022-03-14T08:57:45ZAymeric BéronPipeline hangs when seeking with vaapi encoderLooks like: https://bugzilla.gnome.org/show_bug.cgi?id=767176
I take the same pipeline
```
gst-launch-1.0 filesrc location=file.mkv ! decodebin ! navseek ! vaapih264enc ! decodebin ! vaapisink
```
but when seeking, pipeline hangs with f...Looks like: https://bugzilla.gnome.org/show_bug.cgi?id=767176
I take the same pipeline
```
gst-launch-1.0 filesrc location=file.mkv ! decodebin ! navseek ! vaapih264enc ! decodebin ! vaapisink
```
but when seeking, pipeline hangs with following log:
```
0:00:03.340889630 26272 0x7f64d85a4860 INFO GST_EVENT gstevent.c:1363:gst_event_new_seek: creating seek rate 1.000000, format TIME, flags 3, start_type 1, start 0:00:08.670708333, stop_type 0, stop 99:99:99.999999999
0:00:03.340962439 26272 0x7f64d85a4860 INFO default gstsegment.c:385:gst_segment_do_seek: segment updated: time segment start=0:00:08.670708333, offset=0:00:00.000000000, stop=2:32:33.472000000, rate=1.000000, applied_rate=1.000000, flags=0x01, time=0:00:08.670708333, base=0:00:00.000000000, position 0:00:08.670708333, duration 2:32:33.472000000
0:00:03.341139363 26272 0x7f64f81baaa0 INFO task gsttask.c:368:gst_task_func:<queue1:src> Task going to paused
0:00:03.341196405 26272 0x7f64f05aa460 INFO task gsttask.c:368:gst_task_func:<vaapiencodeh264-0:src> Task going to paused
0:00:03.341203549 26272 0x7f64d85a4860 INFO GST_STATES gstelement.c:2706:_priv_gst_element_state_changed:<vaapisink0> notifying about state-changed PAUSED to PAUSED (PAUSED pending)
0:00:03.341289440 26272 0x7f64d85a4860 INFO GST_STATES gstelement.c:2706:_priv_gst_element_state_changed:<pipeline0> notifying about state-changed PAUSED to PAUSED (PAUSED pending)
0:00:03.341422257 26272 0x55ea198311e0 INFO task gsttask.c:368:gst_task_func:<matroskademux0:sink> Task going to paused
0:00:03.341749823 26272 0x7f65080ad4c0 INFO task gsttask.c:368:gst_task_func:<multiqueue0:src_0> Task going to paused
```
Other infos:
- If I use x264enc, no problem
- When seek without flushing, no problem (tested in my code)
- If I increase log level (export GST_DEBUG=6), seeks can work, but not always. Logs seems to show infinite loop
Tested on gstreamer versions 1.18.4 and 1.20 (Ubuntu), on Intel AppoloLake & TigerLake
[edit]
Logs with export GST_DEBUG=*vaapi*:6
```
0:00:02.728303960 34613 0x7fb6dc5a8060 DEBUG vaapipostproc gstvaapipostproc.c:1988:gst_vaapipostproc_sink_event:<vaapipostproc0> handling flush-start event
0:00:02.728368360 34613 0x7fb6dc5a8060 DEBUG vaapipostproc gstvaapipostproc.c:1988:gst_vaapipostproc_sink_event:<vaapipostproc1> handling flush-start event
0:00:02.728390466 34613 0x7fb6dc5a8060 DEBUG vaapisink gstvaapisink.c:1750:gst_vaapisink_event:<vaapisink0> handling event flush-start
0:00:02.728613624 34613 0x7fb6fc5ad060 LOG vaapidecode gstvaapidecode.c:709:gst_vaapidecode_push_decoded_frame:<vaapidecode1> downstream element rejected the frame (flushing [-2])
0:00:02.728661119 34613 0x7fb6fc5ad060 LOG vaapiencode gstvaapiencode.c:328:gst_vaapiencode_buffer_loop:<vaapiencodeh264-0> pausing task, reason flushing
0:00:02.728780475 34613 0x7fb7080ac4c0 LOG vaapidecode gstvaapidecode.c:709:gst_vaapidecode_push_decoded_frame:<vaapidecode0> downstream element rejected the frame (flushing [-2])
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/961gst-discoverer-1.0 cannot find MP3 bitrate2023-01-29T10:02:45ZA Tgst-discoverer-1.0 cannot find MP3 bitrateI've attached a sample MP3 file, a 1khz tone generated with Audacity and exported. `gst-discoverer-1.0` (Arch, v1.20.0-3) correctly outputs the duration but reports the bitrate is zero:
```
Properties:
Duration: 0:00:05.041632653
Se...I've attached a sample MP3 file, a 1khz tone generated with Audacity and exported. `gst-discoverer-1.0` (Arch, v1.20.0-3) correctly outputs the duration but reports the bitrate is zero:
```
Properties:
Duration: 0:00:05.041632653
Seekable: yes
Live: no
audio #0: MPEG-1 Layer 3 (MP3)
Stream ID: 668cee59ff40a44c770491ff9d692378d7d13a67f41a2427295fe9d15bb0c1a8
Language: <unknown>
Channels: 1 (unknown layout)
Sample rate: 44100
Depth: 16
Bitrate: 0
Max bitrate: 0
```
FFMPEG's `ffprobe -i` can correctly identify the file:
```
Input #0, mp3, from '1khz-5sec.mp3':
Duration: 00:00:05.04, start: 0.025057, bitrate: 33 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, mono, fltp, 33 kb/s
Metadata:
encoder : LAME3.100
```
This affects Rhythmbox at least, which shows "Unknown" for MP3 bitrates:
https://gitlab.gnome.org/GNOME/rhythmbox/-/issues/1571
Thanks if the GStreamer developers can fix Discoverer!https://gitlab.freedesktop.org/gstreamer/gst-examples/-/issues/60webrtcbin => webrtcbin link problem2022-03-15T03:45:44Z马走日webrtcbin => webrtcbin link problemUsing webrtcbin to send the video stream and another webrtcbin to receive it, I tried to modify `webrtc_sendrecv.py`, but he seems to have some problems.
Using tcpdump I see a lot of
```
'STUN' Binding Error Response error-code: 401 (Una...Using webrtcbin to send the video stream and another webrtcbin to receive it, I tried to modify `webrtc_sendrecv.py`, but he seems to have some problems.
Using tcpdump I see a lot of
```
'STUN' Binding Error Response error-code: 401 (Unauthenticated) Unauthorized
```
I'm not quite sure what's causing this problem and would appreciate your help, thanks!https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/961Make splitmuxsink flush every file written2023-05-31T09:25:41ZOmer TalMake splitmuxsink flush every file writtenHello,
I'm trying to create an app which records a live RTSP source into 5 seconds .ts files. My pipeline is the following:
`rtspsrc location=%s ! rtph264depay name=depay ! h264parse name=parse ! splitmuxsink muxer=mpegtsmux max-size-ti...Hello,
I'm trying to create an app which records a live RTSP source into 5 seconds .ts files. My pipeline is the following:
`rtspsrc location=%s ! rtph264depay name=depay ! h264parse name=parse ! splitmuxsink muxer=mpegtsmux max-size-time=%d location=%s name=splitmux`.
I should support the case that any moment during the recording, the computer might lose power.
I did notice that what happens is usually I won't just lose the last .ts file, but rather a few.
I tried adding a call to `sync()` every time the `format-location` callback is called, which worked, but that's just wasteful since I only want to call `fsync` on the actual file that was written by the pipeline.
Is there a way to make splitmuxsink call fsync on the last file written? Or alternatively, obtain the fd of the last written file?
Thank you very much.
Omerhttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1090av1parser: Might not invoke section 7.21. Reference frame loading process2022-03-19T13:47:19ZNicolas Dufresneav1parser: Might not invoke section 7.21. Reference frame loading processOur parser does section 7.21, but invokes it unconditionally. This section is the reverse of 7.20 and should happen only if a show_existing_frame is a keyframe. This is part of the higher level process **7.4. Decode frame wrapup process*...Our parser does section 7.21, but invokes it unconditionally. This section is the reverse of 7.20 and should happen only if a show_existing_frame is a keyframe. This is part of the higher level process **7.4. Decode frame wrapup process**.
Attaching a stream the stream that cause issues and triggers this case. It was found the the AV1 test vector currently in fluster is largely insufficient to validate the state management. This test was picked from Google tast-test.
[48_delayed_20201006.ivf](/uploads/3fc2080c7ccd116da191d5b9ef8e3942/48_delayed_20201006.ivf)
cc @He_Junyan @vjaquez @dwlsalmeidahttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1092macos: package installer layout is incorrect2022-03-16T14:02:29ZStéphane Cerveauscerveau@igalia.commacos: package installer layout is incorrect### Describe your issue
During the macos installation, I noticed that the installer layout is incorrect and the logo is hiding the installer summary
#### Expected Behavior
a better look for the installer
#### Observed Behavior
the l...### Describe your issue
During the macos installation, I noticed that the installer layout is incorrect and the logo is hiding the installer summary
#### Expected Behavior
a better look for the installer
#### Observed Behavior
the logo is over the sumaary
#### Setup
- **Operating System:** MacOs Monterey
- **Device:** Computer
- **GStreamer Version:** 1.20.1
- **Command line:**
### Steps to reproduce the bug
<!-- please fill in exact steps which reproduce the bug on your system, for example: -->
1. Download the 1.20.1 installer and run it
### How reproducible is the bug?
Always
### Screenshots if relevant
![Screenshot_2022-03-16_at_10.27.24](/uploads/3f0373a852fab70e95b9255c11cde1eb/Screenshot_2022-03-16_at_10.27.24.png)
### 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/cerbero/-/issues/369macos: package installer layout is incorrect2022-07-16T04:22:20ZStéphane Cerveauscerveau@igalia.commacos: package installer layout is incorrect### Describe your issue
During the macos installation, I noticed that the installer layout is incorrect and the logo is hiding the installer summary
#### Expected Behavior
a better look for the installer
#### Observed Behavior
the l...### Describe your issue
During the macos installation, I noticed that the installer layout is incorrect and the logo is hiding the installer summary
#### Expected Behavior
a better look for the installer
#### Observed Behavior
the logo is over the sumaary
#### Setup
- **Operating System:** MacOs Monterey
- **Device:** Computer
- **GStreamer Version:** 1.20.1
- **Command line:**
### Steps to reproduce the bug
<!-- please fill in exact steps which reproduce the bug on your system, for example: -->
1. Download the 1.20.1 installer and run it
### How reproducible is the bug?
Always
### Screenshots if relevant
![Screenshot_2022-03-16_at_10.27.24](/uploads/c95488517bb07628f97d0826c2f45dd4/Screenshot_2022-03-16_at_10.27.24.png)
### 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/1093macos: document or provide a way to uninstall the package2022-03-16T14:03:24ZStéphane Cerveauscerveau@igalia.commacos: document or provide a way to uninstall the packageWith 1.20.1, there is no option to remove the GStreamer package after installing it.
I found this documentation but its not up to date:
https://codeanticode.wordpress.com/2009/04/03/gstreamer-installer-for-macosx/#:~:text=To%20uninstal...With 1.20.1, there is no option to remove the GStreamer package after installing it.
I found this documentation but its not up to date:
https://codeanticode.wordpress.com/2009/04/03/gstreamer-installer-for-macosx/#:~:text=To%20uninstall%2C%20just%20delete%20the,to%20remove%20the%20setenv%20lines.https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/962gst-plugins-good (v4l2) request for backports from master to future 1.20.22022-03-16T20:12:32ZF. Duncanhgst-plugins-good (v4l2) request for backports from master to future 1.20.2Needed for Raspbery Pi GPU video decoding:
@ndufresne
If not already planned please add these to future 1.20.2
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/d394b8b4bdc229ab3a47dd6b666157b57b3eb8a3
https://gitlab.free...Needed for Raspbery Pi GPU video decoding:
@ndufresne
If not already planned please add these to future 1.20.2
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/d394b8b4bdc229ab3a47dd6b666157b57b3eb8a3
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/e2b2ff26c99723cbbe7129412cc707d0de6d78dd
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/fe56af607b7e8ceb265f30b1806833048fbbce98
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/24eb35f113404f8f5bd8f2a69bb14058441cb656
(Tested on RPi (manjaro) to work as patches to 1.20.0, and apply to 1.20.1)
If possible, also silence the (annoying) warning at line 727 of v4l2/gstv4l2videodec.c
(it seems that this can be triggered by latency in the stream).
v4l2h264dec plugin is broken without these patches.
```
if (frame) {
GstVideoCodecFrame *oldest_frame;
gboolean warned = FALSE; <----------------- set to TRUE in 1.20.2?
/* Garbage collect old frames in case of codec bugs */
while ((oldest_frame = gst_video_decoder_get_oldest_frame (decoder)) &&
check_system_frame_number_too_old (frame->system_frame_number,
oldest_frame->system_frame_number)) {
gst_video_decoder_drop_frame (decoder, oldest_frame);
oldest_frame = NULL;
if (!warned) {
g_warning ("%s: Too old frames, bug in decoder -- please file a bug", <------the warning
GST_ELEMENT_NAME (decoder));
warned = TRUE;
}
}
```https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1096av1decoder: new_picture and start_picture are redundant2022-03-18T12:42:22ZNicolas Dufresneav1decoder: new_picture and start_picture are redundantIn our AV1 decoder base class, I notice that new_picture() and new_sequence() are called in pair, resulting in a redundant set of virtual function. I wonder if new_picture() wasn't meant to be called similarly to vp9 new_sequence(), when...In our AV1 decoder base class, I notice that new_picture() and new_sequence() are called in pair, resulting in a redundant set of virtual function. I wonder if new_picture() wasn't meant to be called similarly to vp9 new_sequence(), when a parameter that would require renegotiation is needed and no compatible sequence header was seen ?
cc @He_Junyan @seungha.yang @dwlsalmeidahttps://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/188threadshare: Using abortable and AbortHandle to stop the task loop leads to a...2022-03-25T18:13:11ZMac Thi Kieu Vanthreadshare: Using abortable and AbortHandle to stop the task loop leads to a large delay in the main thread.Using abortable and AbortHandle to stop the task loop leads to a large delay in the main thread.
When a share-thread element (ts-udpsrc/ts-udpsink/ts-jitterbuffer) changes state from Pause to Ready, it calls stop on its task. The task h...Using abortable and AbortHandle to stop the task loop leads to a large delay in the main thread.
When a share-thread element (ts-udpsrc/ts-udpsink/ts-jitterbuffer) changes state from Pause to Ready, it calls stop on its task. The task has an abort_handle, so it calls abort. And then, it sends a trigger Stop to the state machine and then waits for ACK from it.
At the state machine, the spawn_loop is stopped by aborting, and the trigger event Stop is put into pending_triggering_evt. At the run method, the event Stop is handled and the state machine sends ack to the main thread. The main thread receives ack and continues its job.
The problem is the main thread is blocked for a while by waiting for the ack from another thread via the abort handle method. The abortable is in futures::future::{self, abortable, AbortHandle, Aborted, BoxFuture, RemoteHandle};. As described in AbortHandle, we can stop a task from a remote future loop by calling its method abort. In the document, the method abort will not immediately stop the task:
> Notifies the Abortable task associated with this handle that it should abort. Note that if the task is currently being polled on another thread, it will not immediately stop running. Instead, it will continue to run until its poll method returns.
In fact, the delay is about 0.0077s. In my case, there are 6 share thread elements in a pipeline (two flows, each flow contains ts-udpsrc, ts-udpsink, ts-jitterbuffer). Changing state of the pipeline gets 0.0462s. When my app handles 500 concurrent calls, the 500th must wait for 23s. It is not reasonable to block the main thread to wait for that.
```
0:00:23.062971436 25144 0x2216600 DEBUG ts-runtime generic/threadshare/src/runtime/executor.rs:123:gstthreadshare::runtime::executor: Blocking on new dummy context
0:00:23.062986630 25144 0x2216600 TRACE ts-runtime generic/threadshare/src/runtime/task.rs:649:gstthreadshare::runtime::task: Awaiting ack for Stop
0:00:23.070756777 25144 0x7f56d4001c60 TRACE ts-runtime generic/threadshare/src/runtime/task.rs:1069:gstthreadshare::runtime::task: Task loop aborted
0:00:23.070809003 25144 0x7f56d4001c60 TRACE ts-runtime generic/threadshare/src/runtime/executor.rs:558:gstthreadshare::runtime::executor: Task TaskId(2) on context src_ctx done
0:00:23.070894543 25144 0x7f56d8001d30 TRACE ts-runtime generic/threadshare/src/runtime/task.rs:807:gstthreadshare::runtime::task: State machine popped TriggeringEvent { trigger: Pause }
```
From the log above, we can see the different time from "Awaiting ack for Stop" to "Task loop aborted" is about 0.0077shttps://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1098gst-build: wayland include files for gst-plugins-bad not found when they are ...2022-03-20T22:29:05ZF. Duncanhgst-build: wayland include files for gst-plugins-bad not found when they are in /usr/include/waylandOpenSUSE 15.3 puts wayland include files in /usr/include/wayland as opposed to/usr/include.
A build of gst-plugins-bad (for nvdec) then fails for 1.16.3
Is there any option to tell meson or ninja about an extra -I include dir?
The si...OpenSUSE 15.3 puts wayland include files in /usr/include/wayland as opposed to/usr/include.
A build of gst-plugins-bad (for nvdec) then fails for 1.16.3
Is there any option to tell meson or ninja about an extra -I include dir?
The simple workaround for users with this issue is to copy all the wayland\*.h files from their location (here /usr/include/wayland/) to gst-plugins-bad/gst-libs/gst/wayland/ , but ideally this should have been "automatic", or fixable with a meson or ninja "include" option I could not find.
It seems an attempt to fix this was made in the past, but it's not working.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1076https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1102Missing element: MPEG-4 AAC decoder2022-03-21T19:07:07ZAli Massah KainiMissing element: MPEG-4 AAC decoderI tried below command but got error.
What's the problem?
`gst-launch-1.0 uridecodebin3 uri=file:///D:/MyWorks/Python/VideoSearchEngine/VideoSet/4.mp4 ! openh264dec ! videoconvert name=mconverter ! video/x-raw, format=BGR, width=480, he...I tried below command but got error.
What's the problem?
`gst-launch-1.0 uridecodebin3 uri=file:///D:/MyWorks/Python/VideoSearchEngine/VideoSet/4.mp4 ! openh264dec ! videoconvert name=mconverter ! video/x-raw, format=BGR, width=480, height=480 ! d3dvideosink name=msink`
output:
```
(gst-launch-1.0:16912): GStreamer-WARNING **: 20:08:48.856: Failed to load plugin 'F:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstassrender.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.
(gst-launch-1.0:16912): GStreamer-WARNING **: 20:08:48.916: Failed to load plugin 'F:\gstreamer\1.0\msvc_x86_64\lib\gstreamer-1.0\gstwavpack.dll': The specified module could not be found.
This usually means Windows was unable to find a DLL dependency of the plugin. Please check that PATH is correct.
You can run 'dumpbin -dependents' (provided by the Visual Studio developer prompt) to list the DLL deps of any DLL.
There are also some third-party GUIs to list and debug DLL dependencies recursively.
Use Windows high-resolution clock, precision: 1 ms
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Missing element: MPEG-4 AAC decoder
Got context from element 'nvh264dec0': gst.cuda.context=context, gst.cuda.context=(GstCudaContext)"\(GstCudaContext\)\ cudacontext0", cuda-device-id=(int)0;
Got context from element 'nvh264dec0': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplay\)\ gldisplay0";
Redistribute latency...
ERROR: from element /GstPipeline:pipeline0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstQTDemux:qtdemux0: Internal data stream error.
Additional debug info:
../gst/isomp4/qtdemux.c(6747): gst_qtdemux_loop (): /GstPipeline:pipeline0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstQTDemux:qtdemux0:
streaming stopped, reason not-linked (-1)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1711v4l2h264dec0: Too old frames, bug in decoder -- please file a bug2022-03-22T01:25:34ZF. Duncanhv4l2h264dec0: Too old frames, bug in decoder -- please file a bugThis g_warning is triggered by an anomaly (NOT a decoder bug) where the first few video frames are not processed in gstv4l2videodec.c `gst_v4l2_video_dec_loop(GstVideodecoder *decoder)`.
For certain streams, (described below)
the first ...This g_warning is triggered by an anomaly (NOT a decoder bug) where the first few video frames are not processed in gstv4l2videodec.c `gst_v4l2_video_dec_loop(GstVideodecoder *decoder)`.
For certain streams, (described below)
the first frame to get past line 712
```
frame =
gst_video_decoder_get_frame (decoder,
GST_BUFFER_TIMESTAMP (buffer) / GST_SECOND);
```
is the frame with frame->system_frame_number = 4, while frames 0,1,2,3 are waiting, with oldest_frame->system_frame_number = 0.
These only get removed by the garbage collection code when frames 101 - 104 are processed, triggering the warning four times.
I could not diagnose why the these frames dont get through. There is one instance of a return at line 693
if (ret == GST_V4L2_FLOW_RESOLUTION_CHANGE) {
GST_WARNING_OBJECT (decoder, "Received resolution change");
g_atomic_int_set (&self->capture_configuration_change, TRUE);
return;
}
The source is an h264 video stream (Apple Airplay from an iOS client) where the first frame has the structure
0x00 0x00 0x00 0x01 SPS 0x00 0x00 00x00 0x01 PPS 0x00 0x00 00x00 0x01 (h264 video)
and thereafter only 0x00 0x00 0x00 0x01 (h264 video).
Every works fine when an appsrc with no caps set injects this into a video pipeline starting with h264parse. Possibly a few (4) initial video frames are lost, but every then works fine in the pipeline, so no decoder errors.
The cleanup of these first four orphan frames ideally should only generate a GST_DEBUG-2 warning, not the "annoying"
g_warning it now does.