GNOME Bugzilla – Bug 770135
pipeline stuck after 10x speed -> 1x speed -> pause
Last modified: 2018-11-03 12:35:48 UTC
Created attachment 333619 [details] [review] gst-play hack My application sometimes gets stuck when switching to PAUSED state. The state transition never finishes. With gdb I can see, that the video sink waits in gst_base_sink_wait_preroll() but not the audio sink. I've reproduced this with big_buck_bunny_1080p_stereo.avi[1] and gst-play from master with the attached patch to generate the correct speed change sequence: So far I've only seen this - 5 seconds normal playback - 10 seconds with 10x speed and GST_SEEK_FLAG_TRICKMODE_NO_AUDIO - 1 second normal playback - pause -> PAUSED state is never reached [1] https://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_stereo.avi
Seems to work here. I press space once the test is done, and playback restarts normally from the programmatic paused. If the bug is more subtle, can you give more details ? I used: ./tools/gst-play-1.0 https://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_stereo.avi
The file must be local. And I think, it's more likely to happen with gstreamer-vaapi, but it also happens without that, just not all the time.
Created attachment 350010 [details] gst-validate scenario to reproduce this gst-validate-1.0 --set-scenario=test-770135.scenario playbin uri=file:///path/to/big_buck_bunny_1080p_stereo.avi This will never finish when the bug occurs.
Can you check if this is still the case with the latest GStreamer version? Thanks!
It's still happening with 1.14.0. And I've not seen anything later that might fix this. From what I can tell, the demuxer blocks on the video sub-pipeline. The queues are full and the video sink is prerolling. There are no buffers in the audio sub-pipeline, so the whole pipeline waits forever. I'm not sure if this shouldn't happen in the first place, or if this in unavoidable and playbin should raise the queue limits during prerolling.
Can you also check if this still happens with playbin3? It changed a lot about how buffering works, and in theory should prevent such situations.
It happens with playbin3 as well.
I assume it happens with any file and not just that one ? Trying to pinpoint the issue
I'm not sure if this can be triggered with any file. With the gst-validate scenario I've attached some time ago, and tears_of_steel_1080p.mkv[1], the audio sub-pipeline waits in preroll. For this file and big_buck_bunny_1080p_stereo.avi this happens with and without gstreamer-vaapi installed. tears_of_steel_1080p.mov on the other hand only stalls (preroll in the video sub-pipeline) if gstreamer-vaapi is not installed. At least with the timing in the provided scenario. I've also seen this with other files and different timing. I don't think I've seen this with resolutions below 1080p. [1]https://mango.blender.org/download/
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/184.