GNOME Bugzilla – Bug 774343
decodebin3: Clear saw_eos flag of DecodebinInputStream by FLUSH event
Last modified: 2016-11-15 10:39:29 UTC
decodebin3: Clear saw_eos flag of DecodebinInputStream by FLUSH event Likewise how GstPad is doing, saw_eos flag of DecodebinInputStream must be cleared by FLUSH event.
Created attachment 339734 [details] [review] decodebin3: Clear saw_eos flag of DecodebinInputStream by FLUSH event
In case of following sequence, decodebin3 pushes EOS event too early. <DASH streaming case with DASHdemux> Seq 1. dashdemux finished segment downloading, and push all date followed by EOS Seq 2. parsebin's srcpads of Video/Audio detect EOS event, and set "saw_eos" flag. Seq 3. Seek -> flush start/stop Seq 4. dashdemux finish segment downloading, and push EOS again Seq 5. one of parsebin's srcpad detects EOS (the other srcpad of parsebin does not detect EOS yet). Seq 6. Due to saw_eos flag of Seq 2 (flush did not clear saw_eos flag), decodebin3 pushes EOS event to the all MultiqueueSlots, although streaming was not finished yet.
Thanks, pushed (to master and 1.10): commit 364a45267e3e50a5434ca2e92e341634af1ffaab Author: Seungha Yang <sh.yang@lge.com> Date: Sun Nov 13 13:15:38 2016 +0900 decodebin3: Clear saw_eos flag of DecodebinInputStream by FLUSH event Likewise how GstPad is doing, saw_eos flag of DecodebinInputStream must be cleared by FLUSH event. https://bugzilla.gnome.org/show_bug.cgi?id=774343