GNOME Bugzilla – Bug 622807
[decodebin2] Doesn't recover properly after an error
Last modified: 2010-06-26 17:04:36 UTC
If an error happens while pre-rolling decodebin2 will never reach the PAUSED state. If someone re-uses decodebin2/uridecodebin/playbin to play multiple files (like totem does), this will cause the READY=>PAUSED code-path to never be called after an error... and therefore the decode chain never being freed, and the following time it will re-use the existing demuxer/decoder (which obviously fails completely).
Created attachment 164687 [details] [review] decodebin2: Properly clean DecodeChain after errors. If an error happens, the PAUSED state will never be reached. If an application re-uses decodebin2 (like totem) where one would normally set to READY between each file, the cleanup that normally happens in the PAUSED=>READY codepath will never be called, resulting in the following file to re-use the previous demuxer/decoder/...
Yes, that should go in
Attachment 164687 [details] pushed as ec63758 - decodebin2: Properly clean DecodeChain after errors.