dynamic stream recording

Milian Wolff milian.wolff at kdab.com
Mon Dec 2 10:54:57 UTC 2019


On Saturday, November 30, 2019 7:33:36 AM CET Sebastian Dröge wrote:
> Hi Milian,
> 
> On Fri, 2019-11-29 at 11:25 +0100, Milian Wolff wrote:
> > Great! Thanks for looking into this. One thing I note is that you aren't
> > setting the state of the newly added branch to PLAYING, isn't that also
> > required? It was required for me at least in my code that adds a branch
> > for
> > recording to a filesink.
> 
> The version I have here is doing that in line 151/152/153 and that's
> also in the git repository. However it was not doing that inside
> pad_added_cb(), and that is indeed missing and must be added.

Ah, gst_element_sync_state_with_parent should take care of that in tick_cb, 
right? I was looking for an explicit call to gst_element_set_state.

> Without doing that it won't work all the time at least.
> 
> > But as I said, I tried adding that to your example yet it didn't solve the
> > black-screen issue for me.
> 
> It works fine for me after doing the above, which is now also in the
> git repo. Are you maybe using any special decoder instead of the one of
> gst-libav?
> 
> But I actually misread: I thought you were talking about the dynamic-
> filter.c example. That's the one where I get a green video if I reduce
> the timeout to one second.

I'm just trying dynamic-tee-vsink with any mp4 file I have around, all just 
show a black screen for me. Here's a debug log, note how the state goes to 
PAUSED which would explain the black screen:

```
0:00:03.079231484 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstelement.c:668:gst_element_add_pad:<tee0> adding pad 'src_1'
0:00:03.079316601 1534397 0x56550c158400 INFO     GST_ELEMENT_FACTORY 
gstelementfactory.c:361:gst_element_factory_create: creating element "queue"
0:00:03.079479602 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstelement.c:668:gst_element_add_pad:<GstQueue at 0x7fd6a0059900> adding pad 
'sink'
0:00:03.079535811 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstelement.c:668:gst_element_add_pad:<GstQueue at 0x7fd6a0059900> adding pad 
'src'
0:00:03.079583988 1534397 0x56550c158400 INFO     GST_ELEMENT_FACTORY 
gstelementfactory.c:361:gst_element_factory_create: creating element 
"videoconvert"
0:00:03.079642633 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstelement.c:668:gst_element_add_pad:<GstBaseTransform at 0x56550c2d68d0> adding 
pad 'sink'
0:00:03.079697209 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstelement.c:668:gst_element_add_pad:<GstBaseTransform at 0x56550c2d68d0> adding 
pad 'src'
0:00:03.080384513 1534397 0x56550c158400 INFO      GST_PLUGIN_LOADING 
gstplugin.c:902:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib/
gstreamer-1.0/libgstautodetect.so" loaded
0:00:03.080418382 1534397 0x56550c158400 INFO     GST_ELEMENT_FACTORY 
gstelementfactory.c:361:gst_element_factory_create: creating element 
"autovideosink"
0:00:03.080566363 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstelement.c:668:gst_element_add_pad:<autovideosink0> adding pad 'sink'
0:00:03.080596157 1534397 0x56550c158400 INFO     GST_ELEMENT_FACTORY 
gstelementfactory.c:358:gst_element_factory_create: creating element 
"fakesink" named "fake-video-sink"
0:00:03.080633376 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstelement.c:668:gst_element_add_pad:<GstBaseSink at 0x56550c3f1550> adding pad 
'sink'
0:00:03.080688605 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstelement.c:915:gst_element_get_static_pad: found pad fake-video-sink:sink
0:00:03.080715730 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:2377:gst_pad_link_prepare: trying to link sink:proxypad5 and fake-
video-sink:sink
0:00:03.080740623 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:2585:gst_pad_link_full: linked sink:proxypad5 and fake-video-
sink:sink, successful
0:00:03.080758683 1534397 0x56550c158400 INFO               GST_EVENT 
gstevent.c:1579:gst_event_new_reconfigure: creating reconfigure event
0:00:03.080837028 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstutils.c:1771:gst_element_link_pads_full: trying to link element queue1:
(any) to element videoconvert1:(any)
0:00:03.080863671 1534397 0x56550c158400 INFO                GST_PADS 
gstutils.c:1034:gst_pad_check_link: trying to link queue1:src and 
videoconvert1:sink
0:00:03.080891803 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:4237:gst_pad_peer_query:<queue1:sink> pad has no peer
0:00:03.080921761 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:4237:gst_pad_peer_query:<videoconvert1:src> pad has no peer
0:00:03.082849923 1534397 0x56550c158400 INFO                GST_PADS 
gstutils.c:1587:prepare_link_maybe_ghosting: queue1 and videoconvert1 in same 
bin, no need for ghost pads
0:00:03.082867188 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:2377:gst_pad_link_prepare: trying to link queue1:src and 
videoconvert1:sink
0:00:03.082875755 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:4237:gst_pad_peer_query:<queue1:sink> pad has no peer
0:00:03.082884546 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:4237:gst_pad_peer_query:<videoconvert1:src> pad has no peer
0:00:03.083682518 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:2585:gst_pad_link_full: linked queue1:src and videoconvert1:sink, 
successful
0:00:03.083690544 1534397 0x56550c158400 INFO               GST_EVENT 
gstevent.c:1579:gst_event_new_reconfigure: creating reconfigure event
0:00:03.083697092 1534397 0x56550c158400 INFO               GST_EVENT 
gstpad.c:5812:gst_pad_send_event_unchecked:<queue1:src> Received event on 
flushing pad. Discarding
0:00:03.083709121 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstutils.c:1771:gst_element_link_pads_full: trying to link element 
videoconvert1:(any) to element autovideosink0:(any)
0:00:03.083721242 1534397 0x56550c158400 INFO                GST_PADS 
gstutils.c:1034:gst_pad_check_link: trying to link videoconvert1:src and 
autovideosink0:sink
0:00:03.083731411 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:4237:gst_pad_peer_query:<queue1:sink> pad has no peer
0:00:03.084522246 1534397 0x56550c158400 INFO                GST_PADS 
gstutils.c:1587:prepare_link_maybe_ghosting: videoconvert1 and autovideosink0 
in same bin, no need for ghost pads
0:00:03.084534493 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:2377:gst_pad_link_prepare: trying to link videoconvert1:src and 
autovideosink0:sink
0:00:03.084542572 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:4237:gst_pad_peer_query:<queue1:sink> pad has no peer
0:00:03.085335895 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:2585:gst_pad_link_full: linked videoconvert1:src and 
autovideosink0:sink, successful
0:00:03.085343724 1534397 0x56550c158400 INFO               GST_EVENT 
gstevent.c:1579:gst_event_new_reconfigure: creating reconfigure event
0:00:03.085350140 1534397 0x56550c158400 INFO               GST_EVENT 
gstpad.c:5812:gst_pad_send_event_unchecked:<videoconvert1:src> Received event 
on flushing pad. Discarding
0:00:03.085364687 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2647:gst_element_continue_state:<queue1> committing state from 
NULL to READY, pending PLAYING, next PAUSED
0:00:03.085376262 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2575:_priv_gst_element_state_changed:<queue1> notifying about 
state-changed NULL to READY (PLAYING pending)
0:00:03.085395201 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2655:gst_element_continue_state:<queue1> continue state change 
READY to PAUSED, final PLAYING
0:00:03.085411380 1534397 0x56550c158400 INFO                    task 
gsttask.c:453:gst_task_set_lock: setting stream lock 0x56550c3cb190 on task 
0x56550c3d4290
0:00:03.085420021 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:6159:gst_pad_start_task:<queue1:src> created task 0x56550c3d4290
0:00:03.085439479 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2647:gst_element_continue_state:<queue1> committing state from 
READY to PAUSED, pending PLAYING, next PLAYING
0:00:03.085447826 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2575:_priv_gst_element_state_changed:<queue1> notifying about 
state-changed READY to PAUSED (PLAYING pending)
0:00:03.085456012 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2655:gst_element_continue_state:<queue1> continue state change 
PAUSED to PLAYING, final PLAYING
0:00:03.085462277 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2675:gst_element_continue_state:<queue1> completed state change 
to PLAYING
0:00:03.085471943 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2575:_priv_gst_element_state_changed:<queue1> notifying about 
state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:03.085485041 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2647:gst_element_continue_state:<videoconvert1> committing state 
from NULL to READY, pending PLAYING, next PAUSED
0:00:03.085493188 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2575:_priv_gst_element_state_changed:<videoconvert1> notifying 
about state-changed NULL to READY (PLAYING pending)
0:00:03.085502576 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2655:gst_element_continue_state:<videoconvert1> continue state 
change READY to PAUSED, final PLAYING
0:00:03.085514953 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2647:gst_element_continue_state:<videoconvert1> committing state 
from READY to PAUSED, pending PLAYING, next PLAYING
0:00:03.085523116 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2575:_priv_gst_element_state_changed:<videoconvert1> notifying 
about state-changed READY to PAUSED (PLAYING pending)
0:00:03.085532405 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2655:gst_element_continue_state:<videoconvert1> continue state 
change PAUSED to PLAYING, final PLAYING
0:00:03.085539554 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2675:gst_element_continue_state:<videoconvert1> completed state 
change to PLAYING
0:00:03.085547662 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2575:_priv_gst_element_state_changed:<videoconvert1> notifying 
about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:03.085559817 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2675:gst_element_continue_state:<fake-video-sink> completed state 
change to NULL
0:00:03.085571987 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstpad.c:2132:gst_pad_unlink: unlinking sink:proxypad5(0x56550c3dc570) and 
fake-video-sink:sink(0x7fd6a005bcd0)
0:00:03.085581906 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstpad.c:2187:gst_pad_unlink: unlinked sink:proxypad5 and fake-video-sink:sink
0:00:03.085590247 1534397 0x56550c158400 INFO           GST_PARENTAGE 
gstbin.c:1801:gst_bin_remove_func:<autovideosink0> removed child "fake-video-
sink"
0:00:03.085603414 1534397 0x56550c158400 INFO         GST_REFCOUNTING 
gstelement.c:3251:gst_element_dispose:<fake-video-sink> 0x56550c3f1550 dispose
0:00:03.085611152 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstelement.c:784:gst_element_remove_pad:<fake-video-sink> removing pad 'sink'
0:00:03.085622744 1534397 0x56550c158400 INFO         GST_REFCOUNTING 
gstelement.c:3296:gst_element_dispose:<fake-video-sink> 0x56550c3f1550 parent 
class dispose
0:00:03.085631056 1534397 0x56550c158400 INFO         GST_REFCOUNTING 
gstelement.c:3328:gst_element_finalize:<fake-video-sink> 0x56550c3f1550 
finalize
0:00:03.085638498 1534397 0x56550c158400 INFO         GST_REFCOUNTING 
gstelement.c:3333:gst_element_finalize:<fake-video-sink> 0x56550c3f1550 
finalize parent
0:00:03.086019432 1534397 0x56550c158400 INFO     GST_ELEMENT_FACTORY 
gstelementfactory.c:358:gst_element_factory_create: creating element 
"vaapisink" named "autovideosink0-actual-sink-vaapi"
0:00:03.086184883 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstelement.c:668:gst_element_add_pad:<GstBaseSink at 0x56550c3fd600> adding pad 
'sink'
0:00:03.086200457 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstelement.c:915:gst_element_get_static_pad: found pad (null):sink
0:00:03.086220514 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstelement.c:915:gst_element_get_static_pad: found pad autovideosink0-actual-
sink-vaapi:sink
0:00:03.086236575 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:4237:gst_pad_peer_query:<autovideosink0-actual-sink-vaapi:sink> pad 
has no peer
0:00:03.086244674 1534397 0x56550c158400 INFO             GST_CONTEXT 
gstvaapivideocontext.c:150:context_pad_query:<autovideosink0-actual-sink-
vaapi:sink> context pad peer query failed
0:00:03.087108827 1534397 0x56550c158400 INFO                   vaapi 
gstvaapiutils.c:94:gst_vaapi_log: VA-API version 1.5.0
0:00:03.087256530 1534397 0x56550c158400 INFO                   vaapi 
gstvaapiutils.c:94:gst_vaapi_log: va_getDriverName() returns 0
0:00:03.087270818 1534397 0x56550c158400 INFO                   vaapi 
gstvaapiutils.c:94:gst_vaapi_log: Trying to open /usr/lib/dri/
i965_drv_video.so
0:00:03.087290622 1534397 0x56550c158400 INFO                   vaapi 
gstvaapiutils.c:94:gst_vaapi_log: Found init function __vaDriverInit_1_3
0:00:03.087630048 1534397 0x56550c158400 INFO                   vaapi 
gstvaapiutils.c:94:gst_vaapi_log: va_openDriver() returns 0
0:00:03.087648585 1534397 0x56550c158400 INFO                   vaapi 
gstvaapiutils.c:121:vaapi_initialize: VA-API version 1.5
0:00:03.087660289 1534397 0x56550c158400 INFO            vaapidisplay 
gstvaapidisplay.c:906:gst_vaapi_display_create:<vaapidisplayglx1> new display 
addr=0x56550c3d4410
0:00:03.087681051 1534397 0x56550c158400 INFO               vaapisink 
gstvaapipluginbase.c:55:plugin_set_display:<autovideosink0-actual-sink-vaapi> 
set display <vaapidisplayglx1>
0:00:03.087702747 1534397 0x56550c158400 INFO             GST_CONTEXT 
gstvaapivideocontext.c:311:gst_vaapi_video_context_propagate:<autovideosink0-
actual-sink-vaapi> posting `have-context' (0x56550c3e3520) message with 
display <vaapidisplayglx1>
0:00:03.087722298 1534397 0x56550c158400 INFO               vaapisink 
gstvaapisink.c:1232:gst_vaapisink_display_changed: created VA/GLX display 
0x56550c3d4410
0:00:03.089485440 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2675:gst_element_continue_state:<autovideosink0-actual-sink-
vaapi> completed state change to READY
0:00:03.089503227 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2575:_priv_gst_element_state_changed:<autovideosink0-actual-sink-
vaapi> notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:03.089527384 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2675:gst_element_continue_state:<autovideosink0-actual-sink-
vaapi> completed state change to NULL
0:00:03.089537722 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2575:_priv_gst_element_state_changed:<autovideosink0-actual-sink-
vaapi> notifying about state-changed READY to NULL (VOID_PENDING pending)
0:00:03.089878840 1534397 0x56550c158400 INFO               vaapisink 
gstvaapipluginbase.c:55:plugin_set_display:<autovideosink0-actual-sink-vaapi> 
set display <vaapidisplayglx0>
0:00:03.089902575 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstelement.c:915:gst_element_get_static_pad: found pad autovideosink0-actual-
sink-vaapi:sink
0:00:03.089915842 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:2377:gst_pad_link_prepare: trying to link sink:proxypad5 and 
autovideosink0-actual-sink-vaapi:sink
0:00:03.089926275 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:2585:gst_pad_link_full: linked sink:proxypad5 and autovideosink0-
actual-sink-vaapi:sink, successful
0:00:03.089933751 1534397 0x56550c158400 INFO               GST_EVENT 
gstevent.c:1579:gst_event_new_reconfigure: creating reconfigure event
0:00:03.089952031 1534397 0x56550c158400 INFO              GST_STATES 
gstbin.c:2503:gst_bin_element_set_state:<autovideosink0-actual-sink-vaapi> 
current NULL pending VOID_PENDING, desired next READY
0:00:03.090802207 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2675:gst_element_continue_state:<autovideosink0-actual-sink-
vaapi> completed state change to READY
0:00:03.090816364 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2575:_priv_gst_element_state_changed:<autovideosink0-actual-sink-
vaapi> notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:03.090831961 1534397 0x56550c158400 INFO              GST_STATES 
gstbin.c:2952:gst_bin_change_state_func:<autovideosink0> child 
'autovideosink0-actual-sink-vaapi' changed state to 2(READY) successfully
0:00:03.090843969 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2647:gst_element_continue_state:<autovideosink0> committing state 
from NULL to READY, pending PLAYING, next PAUSED
0:00:03.090851371 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2575:_priv_gst_element_state_changed:<autovideosink0> notifying 
about state-changed NULL to READY (PLAYING pending)
0:00:03.090861524 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2655:gst_element_continue_state:<autovideosink0> continue state 
change READY to PAUSED, final PLAYING
0:00:03.090874793 1534397 0x56550c158400 INFO              GST_STATES 
gstbin.c:2503:gst_bin_element_set_state:<autovideosink0-actual-sink-vaapi> 
current READY pending VOID_PENDING, desired next PAUSED
0:00:03.090887096 1534397 0x56550c158400 INFO              GST_STATES 
gstelement.c:2575:_priv_gst_element_state_changed:<pipeline0> notifying about 
state-changed PAUSED to PAUSED (PAUSED pending)
0:00:03.090901159 1534397 0x56550c158400 INFO              GST_STATES 
gstbin.c:2959:gst_bin_change_state_func:<autovideosink0> child 
'autovideosink0-actual-sink-vaapi' is changing state asynchronously to PAUSED
0:00:03.090915481 1534397 0x56550c158400 INFO        GST_ELEMENT_PADS 
gstelement.c:915:gst_element_get_static_pad: found pad queue1:sink
0:00:03.090927587 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:2377:gst_pad_link_prepare: trying to link tee0:src_1 and queue1:sink
0:00:03.091541584 1534397 0x56550c158400 INFO                GST_PADS 
gstpad.c:2585:gst_pad_link_full: linked tee0:src_1 and queue1:sink, successful
0:00:03.091552972 1534397 0x56550c158400 INFO               GST_EVENT 
gstevent.c:1579:gst_event_new_reconfigure: creating reconfigure event
added
0:00:03.107264973 1534397 0x7fd6a807c770 INFO             vaapidecode 
gstvaapidecode.c:360:gst_vaapidecode_update_src_caps:<vaapidecode0> new src 
caps = video/x-raw(memory:VASurface), format=(string)NV12, width=(int)1280, 
height=(int)800, interlace-mode=(string)progressive, multiview-
mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/
right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-
aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1
0:00:03.107447247 1534397 0x7fd6a005d630 INFO           basetransform 
gstbasetransform.c:1317:gst_base_transform_setcaps:<capsfilter1> reuse caps
0:00:03.115024568 1534397 0x7fd6a005d630 INFO           basetransform 
gstbasetransform.c:1317:gst_base_transform_setcaps:<vaapipostproc0> reuse caps
0:00:03.115209353 1534397 0x7fd6a005d630 INFO           basetransform 
gstbasetransform.c:1317:gst_base_transform_setcaps:<videoconvert0> reuse caps
0:00:03.115387051 1534397 0x7fd6981a0450 INFO           basetransform 
gstbasetransform.c:1317:gst_base_transform_setcaps:<videoconvert1> reuse caps
0:00:03.115489630 1534397 0x7fd6981a0450 INFO               GST_EVENT 
gstevent.c:820:gst_event_new_caps: creating caps event video/x-
raw(memory:VASurface), format=(string)NV12, width=(int)1280, height=(int)800, 
interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-
flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/
left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-
ratio=(fraction)1/1, framerate=(fraction)30/1
0:00:03.118500325 1534397 0x7fd6a807c770 INFO           basetransform 
gstbasetransform.c:1317:gst_base_transform_setcaps:<capsfilter0> reuse caps
```
-- 
Milian Wolff | milian.wolff at kdab.com | Senior Software Engineer
KDAB (Deutschland) GmbH, a KDAB Group company
Tel: +49-30-521325470
KDAB - The Qt, C++ and OpenGL Experts
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3826 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20191202/b2265057/attachment-0001.bin>


More information about the gstreamer-devel mailing list