flushing vs. non-flushing seek
Christian Sell
christian at gsvitec.com
Mon Jul 13 05:43:36 PDT 2015
Hello all,
I am trying to understand the purpose and working of non-flushing seek. Heres my
scenario:
(Preamble)
- due to the specifics of my UI, I am doing one seek to adjust playback rate,
directly followed by a seek that changes the playback segment.
- previous to each seek operation, I am doing a query for the current position
- the position query fails for the second seek ("wrong state"). The only
explanation I could find was that the first seek, being called with a
GST_SEEK_FLAG_FLUSH parameter, discards all position information.
(Problem)
- I therefore decided to execute the first seek without the GST_SEEK_FLAG_FLUSH
flag.
- when I call the seek with a GST_SEEK_FLAG_NONE, my application completely
BLOCKS!!
I investigated into the execution stack, and found that the sending of the seek
event went directly into a code sequence in gst_base_src_perform_seek:
if (flush) {
...
} else
gst_pad_pause_task (src->srcpad);
and in gst_pad_pause_task the call gets blocked on GST_PAD_STREAM_LOCK (pad);
can someone tell me what I am missing here? There must be something fundamental,
because the results are so detrimental..
thanks,
Christian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20150713/07b15252/attachment.html>
More information about the gstreamer-devel
mailing list