[Libva] gstreamer-vaapi eos/flush problems
Christophe Oosterlynck
tiftof at gmail.com
Tue Jun 19 02:08:55 PDT 2012
Hi,
I'm implementing gstreamer-vaapi functionality into Qt Mobility
(multimediakit). Everything goes smoothly except for one little problem: A
video playing in a loop only plays once every two loops. I'll try and
describe the problem I'm seeing in the logs:
An EOS event is emitted from upstream and reaches the whole pipeline.
Afterwards the same happens with a flush-start/flush-stop event. Before the
pipeline returns to playing again, a new-segment event is propagated to
start playing from the beginning again. The problem now is that when the
first buffer of the stream is received by vaapidecode, one of the last
frames of the previous loop that didn't get decoded yet is now being
decoded and pushed to my sink. My sink is expecting a buffer from the
beginning of the stream but gets one of the end of the stream => sink waits
untill the clock reaches the timestamp of that buffer => for almost a whole
loop, the sink will be stuck.
Is gstreamer-vaapi not handling the eos and/or the flush-start/stop events
well? This is my suspicion as I wouldn't expect a pipeline to push buffers
from the previous stream downstream once any of those event were received.
I've attached a log showing my problem. The log contains logs for every
vaapi element and basesink logs for qvideosurfacegstsink1 (my modified
sink). I've added some comments in the log to show the most important
events. The actual problem is the long waiting time between "SINK WAITS
UNTILL IT'S TIME TO SHOW THE FRAME AT THE END OF THE STREAM" and "WAITING
IS FINALLY DONE AFTER 10secs (duration of the clip)".
Best regards,
Christophe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libva/attachments/20120619/d1ba50b7/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: log nok comments
Type: application/octet-stream
Size: 415112 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/libva/attachments/20120619/d1ba50b7/attachment-0001.obj>
More information about the Libva
mailing list