gst-plugins-bad issueshttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues2021-09-24T14:37:39Zhttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1040Documentation sometimes incorrect after plugin renames2021-09-24T14:37:39ZLoïc YhuelDocumentation sometimes incorrect after plugin renamesIt seems there is a weird issue in the documentation due to https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/commit/9bc2b04d5c00874d01b9b906b149366271ce59ed and https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/commit/0127...It seems there is a weird issue in the documentation due to https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/commit/9bc2b04d5c00874d01b9b906b149366271ce59ed and https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/commit/012782239e0d11bf1e5b16641d543df7bf132aa3.
There are still pages with the old plugin names, mentioning older gstreamer versions.
The gmedec/neonhttpsrc element pages can link to (randomly ?) either the new or the old plugin pages.
https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/gst-plugins-bad-plugins-gmedec.html, links to https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/gst-plugins-bad-plugins-plugin-gmedec.html (version 1.12.0).
It should have linked to the correct https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/gst-plugins-bad-plugins-plugin-gme.html.
https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/gst-plugins-bad-plugins-neonhttpsrc.html correctly points to https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/gst-plugins-bad-plugins-plugin-neonhttpsrc.html.
But there is still https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/gst-plugins-bad-plugins-plugin-neon.html (version 1.9.0.1).
On Fedora, it leads to conflicts when trying to install multilib devel packages since the documentation is slightly different (see https://bugzilla.redhat.com/show_bug.cgi?id=1680233).
In this case, both packages contain the pages with old and new plugin names, but :
- in the i686 package, gmedec/neonhttpsrc element pages link to gme/neonhttpsrc plugin pages respectively (new plugin names)
- in the x86_64 package, gmedec/neonhttpsrc element pages link to gmedec/neon plugin pages respectively (old plugin names)https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1037HLS steams with many subtitle variants are broken2021-09-24T14:37:38ZCharles TurnerHLS steams with many subtitle variants are brokenTry loading `https://pubads.g.doubleclick.net/ondemand/hls/content/2503702/vid/KaitlynSadtler_2018U/CHS/streams/c158db81-3bf7-4d01-921b-0f0ef58e4879/master.m3u8`. You will notice that startup is *very* slow, since it's going through 27 s...Try loading `https://pubads.g.doubleclick.net/ondemand/hls/content/2503702/vid/KaitlynSadtler_2018U/CHS/streams/c158db81-3bf7-4d01-921b-0f0ef58e4879/master.m3u8`. You will notice that startup is *very* slow, since it's going through 27 subtitle tracks ahead-of-time and creating streams for them.
Then we miss a lot of data and start 10-15 seconds into the video. At which point desync between the audio and video has started and the video is hard to watch.
This was discovered in WebKit when browing TED.com. See also https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/585 for another issue in the TED HLS streams.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1036player: Deadlock in uri-loaded signal when no signal dispatcher is supplied t...2021-09-24T14:37:37ZPhilippe Normandplayer: Deadlock in uri-loaded signal when no signal dispatcher is supplied to GstPlayerI'm actually not entirely sure it's a bug, one could argue it's an application-side issue, but here it goes. Attaching a test-case.
```
(gdb) t a a bt
Thread 2 (Thread 0x7ffff7414700 (LWP 20949)):
#0 0x00007ffff7ab2f59 in syscall () a...I'm actually not entirely sure it's a bug, one could argue it's an application-side issue, but here it goes. Attaching a test-case.
```
(gdb) t a a bt
Thread 2 (Thread 0x7ffff7414700 (LWP 20949)):
#0 0x00007ffff7ab2f59 in syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x00007ffff7c3a62c in g_mutex_lock_slowpath (mutex=mutex@entry=0x5555557c6088) at ../../../glib/gthread-posix.c:1320
#2 0x00007ffff7c3ae82 in g_mutex_lock (mutex=mutex@entry=0x5555557c6088) at ../../../glib/gthread-posix.c:1344
#3 0x00007ffff7f71f8e in gst_player_pause (self=0x5555557c6000 [GstPlayer]) at gstplayer.c:3190
#4 0x000055555555520d in uri_loaded_cb (player=0x5555557c6000 [GstPlayer], uri=0x7ffff001d0d0 "file:///home/phil/Videos/Agent 327.mp4", user_data=0x0) at /home/phil/player-deadlock.c:8
#8 0x00007ffff7cef97f in <emit signal ??? on instance 0x5555557c6000 [GstPlayer]> (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../../../gobject/gsignal.c:3447
#5 0x00007ffff7cd2c8d in g_closure_invoke (closure=0x5555557c8b90, return_value=0x0, n_param_values=2, param_values=0x7ffff7413aa0, invocation_hint=0x7ffff7413a20) at ../../../gobject/gclosure.c:810
#6 0x00007ffff7ce6365 in signal_emit_unlocked_R (node=node@entry=0x55555558a300, detail=detail@entry=0, instance=instance@entry=0x5555557c6000, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffff7413aa0) at ../../../gobject/gsignal.c:3635
#7 0x00007ffff7cef2be in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffff7413c70) at ../../../gobject/gsignal.c:3391
#9 0x00007ffff7f7900d in gst_player_signal_dispatcher_dispatch (self=<optimized out>, player=<optimized out>, emitter=0x7ffff7f6f3b0 <uri_loaded_dispatch>, data=0x7ffff0002040, destroy=0x7ffff7f6f200 <uri_loaded_signal_data_free>) at gstplayer-signal-dispatcher.c:46
#10 0x00007ffff7f76924 in gst_player_set_uri_internal (user_data=0x5555557c6000) at gstplayer.c:599
#11 0x00007ffff7bf0dd8 in g_main_dispatch (context=0x5555557c5c10) at ../../../glib/gmain.c:3182
#12 0x00007ffff7bf0dd8 in g_main_context_dispatch (context=context@entry=0x5555557c5c10) at ../../../glib/gmain.c:3847
#13 0x00007ffff7bf11c8 in g_main_context_iterate (context=0x5555557c5c10, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3920
#14 0x00007ffff7bf14c2 in g_main_loop_run (loop=0x5555557c3fd0) at ../../../glib/gmain.c:4116
#15 0x00007ffff7f76378 in gst_player_main (data=0x5555557c6000) at gstplayer.c:2970
#16 0x00007ffff7c19415 in g_thread_proxy (data=0x55555568d540) at ../../../glib/gthread.c:784
#17 0x00007ffff7b87fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#18 0x00007ffff7ab84cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 1 (Thread 0x7ffff7415b80 (LWP 20885)):
#0 0x00007ffff7aad819 in __GI___poll (fds=0x5555557c8ce0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007ffff7bf1136 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x5555557c8ce0, timeout=<optimized out>, context=0x555555565730) at ../../../glib/gmain.c:4221
#2 0x00007ffff7bf1136 in g_main_context_iterate (context=0x555555565730, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3915
#3 0x00007ffff7bf14c2 in g_main_loop_run (loop=0x555555566930) at ../../../glib/gmain.c:4116
#4 0x00005555555552bd in main (argc=2, argv=0x7fffffffe558) at /home/phil/player-deadlock.c:22
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1032mpegts: problems with generated and published descriptor document2021-09-24T14:37:35ZRussel Windermpegts: problems with generated and published descriptor documentIt appears there may be some problems with the generated and published descriptor documentation for the MPEG-TS library.
Many of the DVB related descriptors are being listed as relating to ATSC rather than DVB. For example, GstMpegtsDVB...It appears there may be some problems with the generated and published descriptor documentation for the MPEG-TS library.
Many of the DVB related descriptors are being listed as relating to ATSC rather than DVB. For example, GstMpegtsDVBLinkageEvent is a DVB descriptor not an ATSC descriptor – there are many others that should not be on the page https://gstreamer.freedesktop.org/documentation/mpegts/gst-atsc-descriptor.html?gi-language=c but should be on the page https://gstreamer.freedesktop.org/documentation/mpegts/gst-dvb-descriptor.html?gi-language=chttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1026dtls: Documentation needs to be improved2021-09-24T14:37:34ZFurkan Davulcudtls: Documentation needs to be improvedCurrent documentation of dtls plugin is very insufficient to understand how this plugin can be used in an application. A clearer example with a detailed explanation would make this plugin much more accessible and usable.Current documentation of dtls plugin is very insufficient to understand how this plugin can be used in an application. A clearer example with a detailed explanation would make this plugin much more accessible and usable.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1021Simple rtmpsrc ! queue ! rtmpsink not working2021-09-24T14:37:33ZNeil DwyerSimple rtmpsrc ! queue ! rtmpsink not workingHey all,
Trying to get a simple `rtmpsrc location=<my nginx server> ! queue ! rtmpsink location=<twitch.tv ingest>` and it doesn't seem like rtmpsink starts sending any media (i.e. my queue is filling up).
I've tested this on 1.14.4 an...Hey all,
Trying to get a simple `rtmpsrc location=<my nginx server> ! queue ! rtmpsink location=<twitch.tv ingest>` and it doesn't seem like rtmpsink starts sending any media (i.e. my queue is filling up).
I've tested this on 1.14.4 and latest master. I've also tested each half of the this pipeline and it works, I can send to twitch with videotestsrc + audiotestsrc + flvmux. I can read from my nginx server via rtmpsrc + filesink, but for whatever reason this simple pipeline doesn't make it to twitch.
Any ideas?
[rtmp__1_.log_](/uploads/e64e20198ba91166fa247142754f84b4/rtmp__1_.log_)https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1014webrtcbin: h264 decoding problems with chrome/firefox2021-09-24T14:37:31ZXiaolin Zhangwebrtcbin: h264 decoding problems with chrome/firefoxHi, I got a strange h264 decoding issue. It seems it is not a proper issue board to discuss. But, the webrtcbin is a complex architect, I have to ask help here. Any suggestion will be appreciated. Thanks in advance!
My problem is:
We wr...Hi, I got a strange h264 decoding issue. It seems it is not a proper issue board to discuss. But, the webrtcbin is a complex architect, I have to ask help here. Any suggestion will be appreciated. Thanks in advance!
My problem is:
We write a python client(based on gst-python) to **subscribe**/**publish** from [janus-gateway](https://janus.conf.meetecho.com/). When we do publish from an firefox/chrome browser, and then do **subscribe** from janus-gateway. It will show many h.264 message like this:
```
0:00:30.279190215 24831 0x14c6ca0 ERROR libav :0:: non-existing PPS 2 referenced
0:00:30.279198476 24831 0x14c6ca0 ERROR libav :0:: decode_slice_header error
0:00:30.279202932 24831 0x14c6ca0 ERROR libav :0:: no frame!
0:00:30.279210819 24831 0x14c6ca0 WARN libav gstavviddec.c:1975:gst_ffmpegviddec_handle_frame:<avdec_h264-0> Failed to send data for decoding
```
More information are:
- Switch to `vp8 codec` works fine.
- Publishing from another python-client(which act as publisher) works fine. (we use testvideosrc)
- The full pipline diagram looks like ![tmp.svg](/uploads/0ae95efcd01d7ea6375ede3e6129884e/tmp.svg)
So, any comments for this? And my further questions are:
- Can I switch to `openh264` from `decodebin2`?
- Is there any potential issue from `h264parse`?https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1004avfvideosrc: incorrect retina support2021-09-24T14:37:31ZRoman Shpuntovavfvideosrc: incorrect retina supportI have UHD monitor with resolution: 3840x2160. When I change resolution to "Scaled" inside System Settings to 3360x1890 I have the next pipeline:
```
MacBookPro:~ roman$ gst-launch-1.0 avfvideosrc capture-screen=true ! glimagesink sync=...I have UHD monitor with resolution: 3840x2160. When I change resolution to "Scaled" inside System Settings to 3360x1890 I have the next pipeline:
```
MacBookPro:~ roman$ gst-launch-1.0 avfvideosrc capture-screen=true ! glimagesink sync=false -vv
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Got context from element 'sink': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayCocoa\)\ gldisplaycocoa0";
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstAVFVideoSrc:avfvideosrc0.GstPad:src: caps = video/x-raw, width=(int)6720, height=(int)3780, format=(string)UYVY, framerate=(fraction)2147483647/1
/GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw, width=(int)6720, height=(int)3780, format=(string)UYVY, framerate=(fraction)2147483647/1
/GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLUploadElement:gluploadelement0.GstPad:src: caps = video/x-raw(memory:GLMemory), width=(int)6720, height=(int)3780, format=(string)UYVY, framerate=(fraction)2147483647/1, texture-target=(string)2D
/GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLColorConvertElement:glcolorconvertelement0.GstPad:src: caps = video/x-raw(memory:GLMemory), width=(int)6720, height=(int)3780, format=(string)RGBA, framerate=(fraction)2147483647/1, texture-target=(string)2D
/GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLColorBalance:glcolorbalance0.GstPad:src: caps = video/x-raw(memory:GLMemory), width=(int)6720, height=(int)3780, format=(string)RGBA, framerate=(fraction)2147483647/1, texture-target=(string)2D
/GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLImageSink:sink.GstPad:sink: caps = video/x-raw(memory:GLMemory), width=(int)6720, height=(int)3780, format=(string)RGBA, framerate=(fraction)2147483647/1, texture-target=(string)2D
/GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLColorBalance:glcolorbalance0.GstPad:sink: caps = video/x-raw(memory:GLMemory), width=(int)6720, height=(int)3780, format=(string)RGBA, framerate=(fraction)2147483647/1, texture-target=(string)2D
/GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLColorConvertElement:glcolorconvertelement0.GstPad:sink: caps = video/x-raw(memory:GLMemory), width=(int)6720, height=(int)3780, format=(string)UYVY, framerate=(fraction)2147483647/1, texture-target=(string)2D
/GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLUploadElement:gluploadelement0.GstPad:sink: caps = video/x-raw, width=(int)6720, height=(int)3780, format=(string)UYVY, framerate=(fraction)2147483647/1
/GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0.GstGhostPad:sink: caps = video/x-raw, width=(int)6720, height=(int)3780, format=(string)UYVY, framerate=(fraction)2147483647/1
/GstPipeline:pipeline0/GstGLImageSinkBin:glimagesinkbin0/GstGLUploadElement:gluploadelement0.GstPad:sink: caps = video/x-raw, width=(int)6720, height=(int)3780, format=(string)UYVY, framerate=(fraction)2147483647/1
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:09.593902000
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
```
In system info I see:
```
Resolution: 6720 x 3780
Interface Type: 3360 x 1890 @ 60 Hz
```
This is incorrect behaviour, because when I try to capture and encode this stream I have the next error:
```
MacBookPro:~ roman$ gst-launch-1.0 avfvideosrc capture-screen=true ! vtenc_h264_hw ! fakesink -vv
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstAVFVideoSrc:avfvideosrc0.GstPad:src: caps = video/x-raw, width=(int)6720, height=(int)3780, framerate=(fraction)2147483647/1, format=(string)UYVY
0:00:00.616859000 79505 0x7fec1e818ed0 ERROR vtenc vtenc.c:861:gst_vtenc_create_session:<vtenc_h264_hw0> VTCompressionSessionCreate() returned: -12915
0:00:00.710160000 79505 0x7fec1e818ed0 ERROR vtenc vtenc.c:861:gst_vtenc_create_session:<vtenc_h264_hw0> VTCompressionSessionCreate() returned: -12915
0:00:00.790690000 79505 0x7fec1e818ed0 ERROR vtenc vtenc.c:861:gst_vtenc_create_session:<vtenc_h264_hw0> VTCompressionSessionCreate() returned: -12915
0:00:00.861438000 79505 0x7fec1e818ed0 ERROR vtenc vtenc.c:861:gst_vtenc_create_session:<vtenc_h264_hw0> VTCompressionSessionCreate() returned: -12915
ERROR: from element /GstPipeline:pipeline0/GstAVFVideoSrc:avfvideosrc0: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3064): gst_base_src_loop (): /GstPipeline:pipeline0/GstAVFVideoSrc:avfvideosrc0:
streaming stopped, reason not-negotiated (-4)
Execution ended after 0:00:00.817796000
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
0:00:00.938246000 79505 0x7fec1e818ed0 ERROR vtenc vtenc.c:861:gst_vtenc_create_session:<vtenc_h264_hw0> VTCompressionSessionCreate() returned: -12915
Setting pipeline to NULL ...
Freeing pipeline ...
```
The real resolution is can not be more than 3840x2160. When I set "default resolution for this monitor" in System Settings I have:
```
MacBookPro:~ roman$ gst-launch-1.0 avfvideosrc capture-screen=true ! vtenc_h264_hw ! fakesink -vv
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstAVFVideoSrc:avfvideosrc0.GstPad:src: caps = video/x-raw, width=(int)3840, height=(int)2160, framerate=(fraction)2147483647/1, format=(string)UYVY
/GstPipeline:pipeline0/vtenc_h264_hw:vtenc_h264_hw0.GstPad:sink: caps = video/x-raw, width=(int)3840, height=(int)2160, framerate=(fraction)2147483647/1, format=(string)UYVY
/GstPipeline:pipeline0/vtenc_h264_hw:vtenc_h264_hw0.GstPad:src: caps = video/x-h264, width=(int)3840, height=(int)2160, framerate=(fraction)2147483647/1, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)014d003cffe10019274d003c898b601e0021f6024c6606000bb80002ee0bdef82801000428ee1f20, level=(string)6, profile=(string)main, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt2020, chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-h264, width=(int)3840, height=(int)2160, framerate=(fraction)2147483647/1, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)014d003cffe10019274d003c898b601e0021f6024c6606000bb80002ee0bdef82801000428ee1f20, level=(string)6, profile=(string)main, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt2020, chroma-site=(string)mpeg2
Redistribute latency...
Redistribute latency...
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:02.537316000
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
```
and
```
Resolution: 3840 x 2160 (2160p 4K UHD — Ultra High Definition)
Interface Type: 1920 x 1080 @ 60 Hz
```
When I set to maximum UHD resolution I have:
```
MacBookPro:~ roman$ gst-launch-1.0 avfvideosrc capture-screen=true ! vtenc_h264_hw ! fakesink -vv
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstAVFVideoSrc:avfvideosrc0.GstPad:src: caps = video/x-raw, width=(int)3840, height=(int)2160, framerate=(fraction)2147483647/1, format=(string)UYVY
/GstPipeline:pipeline0/vtenc_h264_hw:vtenc_h264_hw0.GstPad:sink: caps = video/x-raw, width=(int)3840, height=(int)2160, framerate=(fraction)2147483647/1, format=(string)UYVY
/GstPipeline:pipeline0/vtenc_h264_hw:vtenc_h264_hw0.GstPad:src: caps = video/x-h264, width=(int)3840, height=(int)2160, framerate=(fraction)2147483647/1, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)014d003cffe10019274d003c898b601e0021f6024c6606000bb80002ee0bdef82801000428ee1f20, level=(string)6, profile=(string)main, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt2020, chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-h264, width=(int)3840, height=(int)2160, framerate=(fraction)2147483647/1, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)014d003cffe10019274d003c898b601e0021f6024c6606000bb80002ee0bdef82801000428ee1f20, level=(string)6, profile=(string)main, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt2020, chroma-site=(string)mpeg2
Redistribute latency...
Redistribute latency...
```
and
```
Resolution: 3840 x 2160 (2160p 4K UHD — Ultra High Definition)
Interface Type: 3840 x 2160 @ 60 Hz
```
I think the problem inside of scale factor for intermediates resolutions. May be this Apple problem...https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/997vulkansink: support meta:GstVideoOverlayComposition caps2021-09-24T14:37:30ZAaron Boxervulkansink: support meta:GstVideoOverlayComposition capshttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/990hlssink2 produces discontinuities / duplicates in output stream2021-09-24T14:37:30ZTimothy Pearsonhlssink2 produces discontinuities / duplicates in output streamWhen using hlssink2 with x264 and aac encoders in a live streaming application, VLC reports discontinuities and duplicates in the output stream. These appear on each segment change; since this is a live stream application, the segments ...When using hlssink2 with x264 and aac encoders in a live streaming application, VLC reports discontinuities and duplicates in the output stream. These appear on each segment change; since this is a live stream application, the segments are set to 1 second so the warnings are quite frequent:
```
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS discontinuity (received 0, expected 8) for PID 32
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 0
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 32
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS discontinuity (received 0, expected 8) for PID 0
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS discontinuity (received 0, expected 8) for PID 32
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 0
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 32
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS discontinuity (received 0, expected 8) for PID 0
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS discontinuity (received 0, expected 8) for PID 32
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 0
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 32
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS discontinuity (received 0, expected 8) for PID 0
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS discontinuity (received 0, expected 8) for PID 32
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 0
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 32
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS discontinuity (received 0, expected 8) for PID 0
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS discontinuity (received 0, expected 8) for PID 32
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 0
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 32
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS discontinuity (received 0, expected 8) for PID 0
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS discontinuity (received 0, expected 8) for PID 32
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 0
[0x7fc808c19078] ts demux error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 32
```
While the result appears to play OK, I don't know if frames are being duplicated on the 1 second interval, or if this is a VLC decoding issue only. The old "hlssink" sink did not generate these warnings when used with the mpegtsmux element, using an identical input stream on the same hardware.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/984webrtcbin: "get-transceivers" signal not usable from bindings due to GArray2021-09-24T14:37:27ZSebastian Drögewebrtcbin: "get-transceivers" signal not usable from bindings due to GArraySee title. Bindings have no way of knowing what item type is used for the array.
Alternatives would be `GValueArray` (deprecated), `GST_TYPE_ARRAY` or a `GstStructure`.
CC @ystreetSee title. Bindings have no way of knowing what item type is used for the array.
Alternatives would be `GValueArray` (deprecated), `GST_TYPE_ARRAY` or a `GstStructure`.
CC @ystreethttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/983mpegtsmux: Regression between 1.8.3 and 1.14.1 with klv metadata2021-09-24T14:37:26ZMark Goodallmpegtsmux: Regression between 1.8.3 and 1.14.1 with klv metadataI cannot tell what change has broken this between the two releases, but here is the expected output on 1.8.3
```
$ GST_DEBUG=mpeg*:9 gst-launch-1.0 rtspsrc location=rtsp://..... name=input ! rtph265depay ! mpegtsmux name=mux ! filesink l...I cannot tell what change has broken this between the two releases, but here is the expected output on 1.8.3
```
$ GST_DEBUG=mpeg*:9 gst-launch-1.0 rtspsrc location=rtsp://..... name=input ! rtph265depay ! mpegtsmux name=mux ! filesink location=foo.ts input. ! rtpklvdepay ! mux. 2>&1 | head -n 40
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://.....
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info
Progress: (request) SETUP stream 0
Progress: (request) SETUP stream 1
Progress: (open) Opened Stream
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Progress: (request) Sending PLAY request
Progress: (request) Sending PLAY request
Progress: (request) Sent PLAY request
0:00:00.174237807 5319 0x7f8f88003450 LOG mpegtsmux mpegtsmux.c:1133:mpegtsmux_clip_inc_running_time:<mux:sink_66> buffer pts 0:00:00.008448070 -> 0:00:00.008448070 running time
0:00:00.174319690 5319 0x7f8f88003450 LOG mpegtsmux mpegtsmux.c:1133:mpegtsmux_clip_inc_running_time:<mux:sink_66> buffer pts 0:00:00.008448070 -> 0:00:00.008448070 running time
0:00:00.174348253 5319 0x7f8f88003450 LOG mpegtsmux mpegtsmux.c:1157:mpegtsmux_clip_inc_running_time:<mux:sink_66> buffer dts 0:00:00.008448070 -> +0:00:00.008448070 running time
0:00:02.187776703 5319 0x7f8f900018f0 LOG mpegtsmux mpegtsmux.c:1133:mpegtsmux_clip_inc_running_time:<mux:sink_65> buffer pts 0:00:00.035003670 -> 0:00:00.035003670 running time
0:00:02.187853278 5319 0x7f8f900018f0 LOG mpegtsmux mpegtsmux.c:1133:mpegtsmux_clip_inc_running_time:<mux:sink_65> buffer pts 0:00:00.035003670 -> 0:00:00.035003670 running time
0:00:02.187879206 5319 0x7f8f900018f0 LOG mpegtsmux mpegtsmux.c:1157:mpegtsmux_clip_inc_running_time:<mux:sink_65> buffer dts 0:00:00.036371165 -> +0:00:00.036371165 running time
0:00:02.187974796 5319 0x7f8f900018f0 DEBUG mpegtsmux mpegtsmux.c:1192:mpegtsmux_collected_buffer:<mux> Pads collected
0:00:02.188009369 5319 0x7f8f900018f0 DEBUG mpegtsmux mpegtsmux.c:598:mpegtsmux_create_stream:<mux:sink_65> Creating stream with PID 0x0041 for caps video/x-h265, stream-format=(string)byte-stream, alignment=(string)nal
0:00:02.188052328 5319 0x7f8f900018f0 DEBUG mpegtsmux mpegtsmux.c:598:mpegtsmux_create_stream:<mux:sink_66> Creating stream with PID 0x0042 for caps meta/x-klv, parsed=(boolean)true
0:00:02.188179813 5319 0x7f8f900018f0 DEBUG mpegtsmux mpegtsmux.c:1275:mpegtsmux_collected_buffer:<mux:sink_66> Use stream (pid=66) from pad as PCR for program (prog_id = 0)
0:00:02.188210761 5319 0x7f8f900018f0 DEBUG mpegtsmux mpegtsmux.c:1282:mpegtsmux_collected_buffer:<mux:sink_66> Chose stream for output (PID: 0x0042)
0:00:02.188231458 5319 0x7f8f900018f0 DEBUG mpegtsmux mpegtsmux.c:1287:mpegtsmux_collected_buffer:<mux> Buffer has PTS 0:00:00.008448070 pts 760
0:00:02.188258146 5319 0x7f8f900018f0 DEBUG mpegtsmux mpegtsmux.c:1293:mpegtsmux_collected_buffer:<mux> Buffer has DTS +0:00:00.008448070 dts 760
0:00:02.188284126 5319 0x7f8f900018f0 DEBUG mpegtsmux mpegtsmux.c:1324:mpegtsmux_collected_buffer:<mux> delta: 1
0:00:02.188302442 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmux.c:985:tsmux_write_stream_packet: TS for PCR stream is 760
0:00:02.188354150 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmux.c:1156:tsmux_write_pat: PAT has 1 programs
0:00:02.188378238 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmux.c:879:tsmux_section_write_packet: Section buffer with size 16 created
0:00:02.188405864 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmux.c:766:tsmux_write_ts_header: PID 0x0000, counter = 0x0, 17 bytes avail
0:00:02.188428395 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmux.c:835:tsmux_write_ts_header: Adaptation field of size >= 167 + 17 bytes payload
0:00:02.188446049 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmux.c:907:tsmux_section_write_packet: Creating packet buffer at offset 0 with length 16
0:00:02.188473398 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmux.c:916:tsmux_section_write_packet: Writing 17 bytes to section. 0 bytes remaining
0:00:02.188513116 5319 0x7f8f900018f0 LOG mpegtsmux mpegtsmux.c:1464:new_packet_common_init:<mux> Collecting packet with pid 0x0000 into streamheaders
0:00:02.188541488 5319 0x7f8f900018f0 LOG mpegtsmux mpegtsmux.c:1479:new_packet_common_init:<mux> marking as delta unit
0:00:02.188559639 5319 0x7f8f900018f0 LOG mpegtsmux mpegtsmux.c:1597:mpegtsmux_collect_packet:<mux> collecting packet size 188
0:00:02.188586059 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmuxstream.c:941:tsmux_stream_get_es_descrs: adding KLVA registration descriptor
0:00:02.188609965 5319 0x7f8f900018f0 DEBUG mpegtsmux tsmux.c:1222:tsmux_write_pmt: PMT for program 1 has 2 streams
```
But on 1.14.1 It freezes here
```
$ GST_DEBUG=mpeg*:9 gst-launch-1.0 rtspsrc location=rtsp://..... name=input ! rtph265depay ! fakesink mpegtsmux name=mux ! filesink location=foo.ts input. ! queue ! rtpklvdepay ! mux.
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://.....
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info
Progress: (request) SETUP stream 0
Progress: (request) SETUP stream 1
Progress: (open) Opened Stream
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Progress: (request) Sending PLAY request
Progress: (request) Sending PLAY request
Progress: (request) Sent PLAY request
0:00:00.339578256 13839 0x5591b6f5e0 LOG mpegtsmux mpegtsmux.c:1256:mpegtsmux_clip_inc_running_time:<mux:sink_65> buffer pts 0:00:00.007385366 -> 0:00:00.007385366 running time
0:00:00.339663604 13839 0x5591b6f5e0 LOG mpegtsmux mpegtsmux.c:1256:mpegtsmux_clip_inc_running_time:<mux:sink_65> buffer pts 0:00:00.007385366 -> 0:00:00.007385366 running time
0:00:00.339702901 13839 0x5591b6f5e0 LOG mpegtsmux mpegtsmux.c:1280:mpegtsmux_clip_inc_running_time:<mux:sink_65> buffer dts 0:00:00.007385366 -> +0:00:00.007385366 running time
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:03.628587646
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
^C
```https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/982gst-curlhttpsrc multiloop download isn't "paced" to the playback and download...2021-09-24T14:37:26ZDenis Charmetgst-curlhttpsrc multiloop download isn't "paced" to the playback and downloads the whole fileHi,
In the current state of the code if we use a pipeline uridecodebin ! convert ! resample ! alsasink (uridecodebin using gst-curlhttpsrc and not soup) on a big file (for example a 500 MB mp3):
- The calls to the create function are pa...Hi,
In the current state of the code if we use a pipeline uridecodebin ! convert ! resample ! alsasink (uridecodebin using gst-curlhttpsrc and not soup) on a big file (for example a 500 MB mp3):
- The calls to the create function are paced by the playback output (so in our case the alsa ringbuffer size)
- The actual download is done asynchronously by gst_curl_http_src_curl_multi_loop based on data availability in the socket
In addition the create function allocates, copies and returns the whole buffer reallocated each time the curl writefunction and not the basesource blocksize.
In our example, the first create will return a big buffer, let's say for 2MB (depending on the dl speed). They will take some time to play.
During this time the calls to curl_multi_perform will download the complete file and then the next create() call will return a 498 MB buffer.
In an embedded device with limited ram, it means that during the create() we have the 498 MB buffer, then allocate a gst_buffer of 498 MB then copy the content of the first one in the second which requires 2*498 MB which might trigger a memory overcommit and cause in the best case an OOM-killer call and in my case a kernel oops :)
I have a poc (awaiting hierarchy validation for attachment) which reduces the issue by:
- Using a fixed size ringbuffer in the GstHttpSrc structure (so no realloc/free) which create() will empty basesource.blocksize by basesource.blocksize.
- Making sure that gst_curl_http_src_get_chunks returns CURL_WRITEFUNC_PAUSE when this ringbuffer would be overrun by the chunk.
- Calling when this happens gst_curl_setopt_generic(s, s->curl_handle, CURLOPT_MAX_RECV_SPEED_LARGE, (curl_off_t) 1);
This set the download speed to 1B/s because, afaik, curl has no other way to "wait"
* Calling curl_multi_perform on a paused connection will only put bufferization step inside curl itself.
* Removing the easy handle from the multi handle tears down the connection and would require a CURLOPT_RESUME_FROM_LARGE when we add it back to the multi handle to work but this will be problematic for radio stream which don't accept the Range option.
- When create() empties the ringbuffer enough, it removes the speed limitation on the easy handle with
gst_curl_setopt_generic (elt, elt->curl_handle, CURLOPT_MAX_RECV_SPEED_LARGE, (curl_off_t) 0);
- In the multi loop thread, when I know a slowed connection has reached the rebufferization threshold I call curl_easy_pause(slowed_handle, CURLPAUSE_CONT) outside of the buffer_mutex lock since this function will call gst_curl_http_src_get_chunks which locks the buffer_mutex and to make sure the locking is proper enough.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/981Add vmaf plugin2021-09-24T14:37:25ZXu GuangxinAdd vmaf pluginNetflix provides [VMAF](https://github.com/Netflix/vmaf) for perceptual video quality assessment. It's a good tool for sw/hw encoder quality measurement.
@sree proposed this in https://01.org/zh/linuxmedia/gsoc/gsoc-2019-ideas. It's pic...Netflix provides [VMAF](https://github.com/Netflix/vmaf) for perceptual video quality assessment. It's a good tool for sw/hw encoder quality measurement.
@sree proposed this in https://01.org/zh/linuxmedia/gsoc/gsoc-2019-ideas. It's picked by MSU student Sergey Zvezdakov.
@haihao and me will help Sergey working on thishttps://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/980decklinkvideosrc: Video freezes when start gstreamer first and attach video i...2021-09-24T14:37:25ZMohd Asimdecklinkvideosrc: Video freezes when start gstreamer first and attach video input signal later.Hi,
I am using Blackmagic decklink card to capture video from camera into v4l2 device and use Qt camera and videowidget to display live video.
I am using following pipeline code.
`gst-launch-1.0 decklinkvideosrc device-number=0 mode=a...Hi,
I am using Blackmagic decklink card to capture video from camera into v4l2 device and use Qt camera and videowidget to display live video.
I am using following pipeline code.
`gst-launch-1.0 decklinkvideosrc device-number=0 mode=auto drop-no-signal-frames=true ! deinterlace ! videoscale ! video/x-raw,width=960,height=540 ! videorate max-rate=30 ! videoconvert ! tee ! v4l2sink device=/dev/video0 sync=false`
It works fine when attach video input ( ie SDI Cable ) and then execute gstreamer.
but when i start gstreamer first and then attach video input,the video freezes for some time. Freeze duration depends on how much time i take to attach cable or start camera.
for eg:-
if attach video after 1 minute from start, the video freezes for 10 sec.
if attach video after 10 minute from start, the video freezes for around 1 minute.
It shows following debug messages during freeze:-
:01:31.681150646 28997 0x7f30fc017cc0 DEBUG decklinkvideosrc gstdecklinkvideosrc.cpp:734:gst_decklink_video_src_update_time_mapping:<decklinkvideosrc0> Calculated new time mapping: pipeline time = 0.999869 * (stream time - 3136466666) + 91057967475 (0.999999)
0:01:31.681189273 28997 0x7f30fc017cc0 DEBUG decklinkvideosrc gstdecklinkvideosrc.cpp:772:gst_decklink_video_src_update_time_mapping:<decklinkvideosrc0> New time mapping causes difference of 0:00:00.000007816
0:01:31.681205106 28997 0x7f30fc017cc0 DEBUG decklinkvideosrc gstdecklinkvideosrc.cpp:774:gst_decklink_video_src_update_time_mapping:<decklinkvideosrc0> Maximum allowed per frame 0:00:00.001668333
0:01:31.681253729 28997 0x7f30fc017cc0 WARN decklinkvideosrc gstdecklinkvideosrc.cpp:869:gst_decklink_video_src_got_frame:<decklinkvideosrc0> Dropped 1 old frames from 0:01:30.891151224 to 0:01:30.891151224
0:01:31.681270033 28997 0x7f30fc017cc0 DEBUG decklinkvideosrc gstdecklinkvideosrc.cpp:893:gst_decklink_video_src_got_frame:<decklinkvideosrc0> Got timecode 01:09:02:03
0:01:31.681287485 28997 0x7f30fc017cc0 DEBUG decklink gstdecklink.cpp:998:VideoInputFrameArrived: Received no audio packet at 0:01:31.058152186
0:01:31.714448541 28997 0x7f30fc017cc0 WARN decklinkvideosrc gstdecklinkvideosrc.cpp:869:gst_decklink_video_src_got_frame:<decklinkvideosrc0> Dropped 1 old frames from 0:01:30.924515091 to 0:01:30.924515091
0:01:31.714474290 28997 0x7f30fc017cc0 DEBUG decklinkvideosrc gstdecklinkvideosrc.cpp:893:gst_decklink_video_src_got_frame:<decklinkvideosrc0> Got timecode 01:09:02:04
0:01:31.714487786 28997 0x7f30fc017cc0 DEBUG decklink gstdecklink.cpp:998:VideoInputFrameArrived: Received no audio packet at 0:01:31.091442529https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/976nvdec: Plugin stops at initialization phase2021-09-24T14:37:25Zmarkr0nvdec: Plugin stops at initialization phaseHello everyone,
I want to use the NVDEC plugin with Windows 10 and gstreamer-1.16 and built the whole release with cerbero without any obvious problems.
As I try to use the plugin in a test pipeline I only get the following output and ...Hello everyone,
I want to use the NVDEC plugin with Windows 10 and gstreamer-1.16 and built the whole release with cerbero without any obvious problems.
As I try to use the plugin in a test pipeline I only get the following output and the pipeline just stops:
```
gst-launch-1.0.exe videotestsrc ! x264enc ! nvdec ! gldownload ! videoconvert ! autovideosink
Setting pipeline to PAUSED ...
0:00:00.177311900 25056 00000000030F3660 WARN d3dvideosink d3dhelpers.c:1146:d3d_set_window_handle:<autovideosink0-actual-sink-d3dvideo> Window HWND already set to: 0
0:00:00.238117600 25056 00000000030F3660 DEBUG nvdec gstnvdec.c:390:gst_nvdec_start:<nvdec0> creating CUDA context
```
I think the plugin crashes at line 391 (`nvdec->cuda_context = g_object_new (gst_nvdec_cuda_context_get_type (), NULL);`)
My System:
- Windows 10 Pro (Version 10.0.17763 Build 17763)
- NVIDIA GeForce GTX 1070 (Driver Version: 430.64)
- I tried it with several CUDA versions (10.1, 10.0, 9.2) and the 'NVIDIA Video Codec SDK' 8.2.16
Is there anything I am doing wrong or should do differently for the plugin to work?
I think in the discussion of Merge Request !153 a similar problem was described, as I also can't get NVENC to run?
Best regards and thanks for your effort on the whole project!https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/974decklinkvideosrc: Video freezes when switch input video mode.2021-09-24T14:37:24ZMohd Asimdecklinkvideosrc: Video freezes when switch input video mode.Hi,
I am using Blackmagic decklink card to capture video from camera into v4l2 device and use Qt camera and videowidget to display live video.
I am using following pipeline code.
`gst-launch-1.0 decklinkvideosrc device-number=0 mode=...Hi,
I am using Blackmagic decklink card to capture video from camera into v4l2 device and use Qt camera and videowidget to display live video.
I am using following pipeline code.
`gst-launch-1.0 decklinkvideosrc device-number=0 mode=auto drop-no-signal-frames=true ! deinterlace ! videoscale ! video/x-raw,width=960,height=540 ! videorate max-rate=30 ! videoconvert ! tee ! v4l2sink device=/dev/video0 sync=false
`
It works fine but when i switch output video mode in camera (ie 50p to 50i ) the video freezes for a variable time and then restart.
The time duration of video freeze is same time duration if calculate from start till mode switch.
for eg:-
if switch mode after 10 minute from start, the video freezes for 10 minute.
if switch mode after 20 minute from start, the video freezes for 20 minute.
I think the issue is with gst clock synchronization. It shows following debug messages during freeze:-
:00:36.413496149 8567 0x7fc4e4009e00 DEBUG decklinkvideosrc gstdecklinkvideosrc.cpp:634:gst_decklink_video_src_update_time_mapping:<decklinkvideosrc0> New time mapping causes difference of 0:00:09.859546400
0:00:36.413515392 8567 0x7fc4e4009e00 DEBUG decklinkvideosrc gstdecklinkvideosrc.cpp:636:gst_decklink_video_src_update_time_mapping:<decklinkvideosrc0> Maximum allowed per frame 0:00:00.001668333
0:00:36.413539206 8567 0x7fc4e4009e00 DEBUG decklink gstdecklink.cpp:934:VideoInputFrameArrived: Received no audio packet at 0:00:35.952360722
0:00:36.413591782 8567 0x557fdd53ec50 DEBUG decklinkvideosrc gstdecklinkvideosrc.cpp:1046:gst_decklink_video_src_create:<decklinkvideosrc0> Outputting buffer 0x557fdd8f4aa0 with timestamp 0:00:01.301300000 and duration 0:00:00.033366666
0:00:36.446824157 8567 0x7fc4e4009e00 DEBUG decklink gstdecklink.cpp:916:VideoInputFrameArrived:<decklinkvideosrc0> Failed to get timecode: 0x00000001
0:00:36.446863826 8567 0x7fc4e4009e00 DEBUG decklinkvideosrc gstdecklinkvideosrc.cpp:634:gst_decklink_video_src_update_time_mapping:<decklinkvideosrc0> New time mapping causes difference of 0:00:09.844520587
0:00:36.446882001 8567 0x7fc4e4009e00 DEBUG decklinkvideosrc gstdecklinkvideosrc.cpp:636:gst_decklink_video_src_update_time_mapping:<decklinkvideosrc0> Maximum allowed per frame 0:00:00.001668333
0:00:36.446906130 8567 0x7fc4e4009e00 DEBUG decklink gstdecklink.cpp:934:VideoInputFrameArrived: Received no audio packet at 0:00:35.985727437
0:00:36.446957850 8567 0x557fdd53ec50 DEBUG decklinkvideosrc gstdecklinkvideosrc.cpp:1046:gst_decklink_video_src_create:<decklinkvideosrc0> Outputting buffer 0x557fdd8f4bb0 with timestamp 0:00:01.334666666 and duration 0:00:00.033366666
0:00:36.480160023 8567 0x7fc4e4009e00 DEBUG decklink gstdecklink.cpp:916:VideoInputFrameArrived:<decklinkvideosrc0> Failed to get timecode: 0x00000001
0:00:36.480200415 8567 0x7fc4e4009e00 DEBUG decklinkvideosrc gstdecklinkvideosrc.cpp:634:gst_decklink_video_src_update_time_mapping:<decklinkvideosrc0> New time mapping causes difference of 0:00:09.829494774
0:00:36.480218902 8567 0x7fc4e4009e00 DEBUG decklinkvideosrc gstdecklinkvideosrc.cpp:636:gst_decklink_video_src_update_time_mapping:<decklinkvideosrc0> Maximum allowed per frame 0:00:00.001668333
0:00:36.480243565 8567 0x7fc4e4009e00 DEBUG decklink gstdecklink.cpp:934:VideoInputFrameArrived: Received no audio packet at 0:00:36.019062782
0:00:36.480298276 8567 0x557fdd53ec50 DEBUG decklinkvideosrc gstdecklinkvideosrc.cpp:1046:gst_decklink_video_src_create:<decklinkvideosrc0> Outputting buffer 0x557fdd8f4660 with timestamp 0:00:01.368033333 and duration 0:00:00.033366666https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/972x265: Can not initialize encoder for Y444 input2021-09-24T14:37:23ZMarko Panjekx265: Can not initialize encoder for Y444 inputIm trying to use gstreamer to stream over UDP a video using appsrc.
The source is a raw RGB video. If I encode it with x264 it works fine, but trying to use the x265 encoder gives me the ` Can not initialize x265 encoder.` error.
Here ...Im trying to use gstreamer to stream over UDP a video using appsrc.
The source is a raw RGB video. If I encode it with x264 it works fine, but trying to use the x265 encoder gives me the ` Can not initialize x265 encoder.` error.
Here is the working config for x264:
`video/x-raw,framerate=30/1 !
videoconvert !
x264enc speed-preset=ultrafast tune=zerolatency byte-stream=true threads=1 key-int-max=15 intra-refresh=true !
video/x-h264, profile=baseline !
rtph264pay !
udpsink host=127.0.0.1 port=5000`
And here the slighlty modified version for x265 that causes an error:
`video/x-raw, framerate=30/1 !
videoconvert !
video/x-raw,format=(string)I420 !
x265enc !
video/x-h265 !
rtph265pay !
udpsink host=127.0.0.1 port=5000`
When going through documentation I noticed that the x265enc doesnt accept the RGB format as input, thats why I convert to I420, but the rest should work. I dont know what im missing. If I instead use `videotestsrc` as an input to x265enc then it works with no problem.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/971docs: Wrong #include-header specified2021-09-24T14:37:22ZNiels De Graefnielsdegraef@gmail.comdocs: Wrong #include-header specifiedSee for example https://gstreamer.freedesktop.org/data/doc/gstreamer/stable/gst-plugins-bad-libs/html/GstWebRTCSessionDescription.html
It lists
```
#include <gst/codecparsers/gstmpeg4parser.h>
```
as headers that need to be included, ...See for example https://gstreamer.freedesktop.org/data/doc/gstreamer/stable/gst-plugins-bad-libs/html/GstWebRTCSessionDescription.html
It lists
```
#include <gst/codecparsers/gstmpeg4parser.h>
```
as headers that need to be included, which is wrong.https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/967aiffparse does not load AIFF file if read form a push-based source2021-09-24T14:37:19ZCarlos Rafael Gianiaiffparse does not load AIFF file if read form a push-based sourceThe attached file [01-07-Various_Interprets-My_One_and_Only_Love-LLS.aif](/uploads/d0a8e4d173f28a3d498a6129807b1c75/01-07-Various_Interprets-My_One_and_Only_Love-LLS.aif) plays correctly if a typical local playback pipeline is used:
...The attached file [01-07-Various_Interprets-My_One_and_Only_Love-LLS.aif](/uploads/d0a8e4d173f28a3d498a6129807b1c75/01-07-Various_Interprets-My_One_and_Only_Love-LLS.aif) plays correctly if a typical local playback pipeline is used:
gst-launch-1.0 filesrc location=01-07-Various_Interprets-My_One_and_Only_Love-LLS.aif ! aiffparse ! audioconvert ! autoaudiosink
However, if a push-based source is used (filesrc is pull-based), then the pipeline never stops prerolling. Example using pushfilesrc:
gst-launch-1.0 pushfilesrc location=01-07-Various_Interprets-My_One_and_Only_Love-LLS.aif ! aiffparse ! audioconvert ! autoaudiosink
Log output shows endless log lines like:
0:00:01.810310596 30851 0x555e652ec050 LOG aiffparse aiffparse.c:605:gst_aiff_parse_peek_chunk:<aiffparse0> but only 198 bytes available now
0:00:01.810313006 30851 0x555e652ec050 DEBUG aiffparse aiffparse.c:574:gst_aiff_parse_peek_chunk_info:<aiffparse0> Next chunk size is 184522 bytes, type APPL
0:00:01.810315264 30851 0x555e652ec050 INFO aiffparse aiffparse.c:941:gst_aiff_parse_stream_headers:<aiffparse0> Got TAG: APPL, offset 20
0:00:01.810317737 30851 0x555e652ec050 DEBUG aiffparse aiffparse.c:574:gst_aiff_parse_peek_chunk_info:<aiffparse0> Next chunk size is 184522 bytes, type APPL
0:00:01.810319498 30851 0x555e652ec050 DEBUG aiffparse aiffparse.c:598:gst_aiff_parse_peek_chunk:<aiffparse0> Need to peek chunk of 184522 bytes
0:00:01.810321231 30851 0x555e652ec050 LOG aiffparse aiffparse.c:605:gst_aiff_parse_peek_chunk:<aiffparse0> but only 198 bytes available now
0:00:01.810323649 30851 0x555e652ec050 DEBUG aiffparse aiffparse.c:574:gst_aiff_parse_peek_chunk_info:<aiffparse0> Next chunk size is 184522 bytes, type APPL
0:00:01.810325894 30851 0x555e652ec050 INFO aiffparse aiffparse.c:941:gst_aiff_parse_stream_headers:<aiffparse0> Got TAG: APPL, offset 20
0:00:01.810328327 30851 0x555e652ec050 DEBUG aiffparse aiffparse.c:574:gst_aiff_parse_peek_chunk_info:<aiffparse0> Next chunk size is 184522 bytes, type APPL
0:00:01.810330101 30851 0x555e652ec050 DEBUG aiffparse aiffparse.c:598:gst_aiff_parse_peek_chunk:<aiffparse0> Need to peek chunk of 184522 bytes
0:00:01.810331846 30851 0x555e652ec050 LOG aiffparse aiffparse.c:605:gst_aiff_parse_peek_chunk:<aiffparse0> but only 198 bytes available now
0:00:01.810334301 30851 0x555e652ec050 DEBUG aiffparse aiffparse.c:574:gst_aiff_parse_peek_chunk_info:<aiffparse0> Next chunk size is 184522 bytes, type APPL
0:00:01.810336592 30851 0x555e652ec050 INFO aiffparse aiffparse.c:941:gst_aiff_parse_stream_headers:<aiffparse0> Got TAG: APPL, offset 20
0:00:01.810339036 30851 0x555e652ec050 DEBUG aiffparse aiffparse.c:574:gst_aiff_parse_peek_chunk_info:<aiffparse0> Next chunk size is 184522 bytes, type APPL
It turns out that this file contains not only audio, but also video:
ffprobe 01-07-Various_Interprets-My_One_and_Only_Love-LLS.aif
Stream #0:0: Audio: pcm_s16be, 44100 Hz, 2 channels, s16, 1411 kb/s
Stream #0:1: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 600x600 [SAR 100:100 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
AFAIK, this is not officially supported in AIFF streams. aiffparse should recognize such an invalid file and either ignore all tracks except for the first audio one (and maybe output an element warning using GST_ELEMENT_WARNING), or report this as an error using GST_ELEMENT_ERROR.