Dynamic Caps changes with appsrc
bob_jam11
bob_jam11 at hotmail.com
Tue Feb 2 11:37:27 CET 2016
Hi,
I am attempting to handle frame dimension changes in my pipeline.
My pipeline is as follows:
appssrc -> queue -> videoscale -> capsfilter -> videorate -> videoconv ->
queue -> x264enc -> queue -> splitmuxsink
I was following the discussion and subsequent bug report here:
http://gstreamer-devel.966125.n4.nabble.com/How-to-change-appsrc-caps-dynamically-td4666759.html
<http://gstreamer-devel.966125.n4.nabble.com/How-to-change-appsrc-caps-dynamically-td4666759.html>
I am changing the caps if the dimensions have changed in the need-data
callback then pushing the buffer e.g.
gst_app_src_set_caps(appVideoSrc, newCaps);
gst_app_src_push_buffer(appVideoSrc, buffer);
I get the following error and the pipeline freezes and stops processing
frames.
videopool
gstvideopool.c:216:video_buffer_pool_set_config:<videobufferpool0> no caps
in config
If I push the buffer before I change the caps then I see the error described
in the bug report above "gst_video_frame_map_id: invalid buffer size" which
makes sense since the expected buffer size will have changed without any
renegotiation of the caps.
I couldn't see any other guidance on dynamically changing caps in the
documentation. Should I be blocking the appsrc and flushing the pipeline
before resuming with the new caps?
Any help is appreciated
--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Dynamic-Caps-changes-with-appsrc-tp4675598.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
More information about the gstreamer-devel
mailing list