GNOME Bugzilla – Bug 747449
adaptivedemux: multiple period case does not work well
Last modified: 2016-01-10 20:08:00 UTC
I tested MPEG-DASH multiple period case on master branch. It does NOT crash, yet it does NOT work well. (because it crashed in 1.4.5 branch, that's why I tried it on master, please refer to Bug 747028 ) it failed to detect all streams reached the end, thus failed to advance to next period.
Created attachment 301069 [details] [review] patch a patch is attached. detect all streams have reached the end, and advance to next period.
Do you have an online example stream or a way to create one to be used locally?
Created attachment 301127 [details] multiple period case a test case is attached. use it locally, and it will "redirect" segment url to an online content server.
Review of attachment 301069 [details] [review]: This causes another issue that is ignoring downstream returns of GST_FLOW_EOS. Basically, downstream elements can return GST_FLOW_EOS to make upstream know that the stream should end. For example, they might be configured with some GstSegment that has a stop that is earlier than upstream knows. This would cause this return to be ignored. Perhaps we need to have 2 status variables here? One for our internal playlist position and another relative to what downstream returned to us? Otherwise nice catch, I can reproduce the bug here.
Created attachment 301365 [details] [review] new patch new patch is attached. Please note that I reuse the "eos" field in "_GstAdaptiveDemuxStream" struct, and delete previous related code, since I think it's useless. Please review whether if it will cause some side effects.
ping... any comments will be appreciated
Comment on attachment 301365 [details] [review] new patch This does not fix your sample mpd, it still goes EOS at 40s instead of continuing with the next period. The multi-period stream at http://dash.edgesuite.net/dash264/TestCases/5a/nomor/1.mpd works fine (with and without your patch).
See bug #754222 which is related. Can you update your patch on top of that and make it work again?
Closing this bug report as no further information has been provided. Please feel free to reopen this bug report if you can provide the information that was asked for in a previous comment. Thanks!