GNOME Bugzilla – Bug 566341
Some Ogg Theora files don't finished at seek at the end
Last modified: 2009-01-07 13:52:19 UTC
When i use the gstreamer api , in some Ogg Theora files , when i seek at the end of the file and beyond , the stream doesn't end and the api gets into an infinite loop.
I get this problem in the follow file : http://commons.wikimedia.org/wiki/File:Ap14_flag.ogg
Seems to be a race in the EOS handling of playbin2
Created attachment 125798 [details] [review] possible patch I removed some dodgy code in playbin2 that only seemed to do the wrong thing but has been there for ages. This patch seems to make it work fine but I'll have to sit on it a bit before I can commit it.
* gst/playback/gstplaybin2.c: (gst_play_bin_class_init), (gst_play_bin_set_uri), (gst_play_bin_set_suburi), (no_more_pads_cb), (drained_cb), (group_set_locked_state_unlocked), (activate_group), (deactivate_group), (groups_set_locked_state), (gst_play_bin_change_state): Fix some comments and docs. Post an error message when we fail to link the selector to the sink. Remove pushing of EOS, this seems unneeded. Lock the state of deactivated groups so that they don't accidentally reactivate when the playbin2 state changes. Reuse uridecodebins. Unlock and relock state of groups when playbin goes to NULL. Fixes #566654. Fixes #566341. * gst/playback/gsturidecodebin.c: (pad_removed_cb), (type_found): Only do something in the pad removed callback when we are dealing with our sourcepads because the sinkpads don't have a ghostpad.