GNOME Bugzilla – Bug 781233
dashdemux: Rewrite ISOBMFF & SIDX handling
Last modified: 2017-04-18 11:50:40 UTC
See commit message. We should get this in for 1.12 unfortunately as there are quite some regressions due to various other changes otherwise. It also solves a problem with gst-validate.
Created attachment 349744 [details] [review] dashdemux: Rewrite ISOBMFF & SIDX handling The previous code was handling both as separate steps and then tried to combine the results, but this resulted in all kinds of bugs which showed themselves as failures during seeking and offset tracking getting wrong. This also showed itself with gst-validate on the sample stream. The rewritten code now parses everything in one go and tracks the current offset only once, and as a side effect simplifies the code a lot. Also added is detection of SIDX that point to other SIDX instead of actual media segments, e.g. with this stream: http://dash.akamaized.net/dash264/TestCases/1a/sony/SNE_DASH_SD_CASE1A_REVISED.mpd Support for this will have to be added at some point but that should also be easier with the rewritten code.
This is also related to https://bugzilla.gnome.org/show_bug.cgi?id=776200
Created attachment 349802 [details] [review] dashdemux: Rewrite ISOBMFF & SIDX handling The previous code was handling both as separate steps and then tried to combine the results, but this resulted in all kinds of bugs which showed themselves as failures during seeking and offset tracking getting wrong. This also showed itself with gst-validate on the sample stream. The rewritten code now parses everything in one go and tracks the current offset only once, and as a side effect simplifies the code a lot. Also added is detection of SIDX that point to other SIDX instead of actual media segments, e.g. with this stream: http://dash.akamaized.net/dash264/TestCases/1a/sony/SNE_DASH_SD_CASE1A_REVISED.mpd Support for this will have to be added at some point but that should also be easier with the rewritten code.
Created attachment 349839 [details] [review] dashdemux: Rewrite ISOBMFF & SIDX handling The previous code was handling both as separate steps and then tried to combine the results, but this resulted in all kinds of bugs which showed themselves as failures during seeking and offset tracking getting wrong. This also showed itself with gst-validate on the sample stream. The rewritten code now parses everything in one go and tracks the current offset only once, and as a side effect simplifies the code a lot. Also added is detection of SIDX that point to other SIDX instead of actual media segments, e.g. with this stream: http://dash.akamaized.net/dash264/TestCases/1a/sony/SNE_DASH_SD_CASE1A_REVISED.mpd Support for this will have to be added at some point but that should also be easier with the rewritten code.
Created attachment 349884 [details] [review] dashdemux: Rewrite ISOBMFF & SIDX handling The previous code was handling both as separate steps and then tried to combine the results, but this resulted in all kinds of bugs which showed themselves as failures during seeking and offset tracking getting wrong. This also showed itself with gst-validate on the sample stream. The rewritten code now parses everything in one go and tracks the current offset only once, and as a side effect simplifies the code a lot. Also added is detection of SIDX that point to other SIDX instead of actual media segments, e.g. with this stream: http://dash.akamaized.net/dash264/TestCases/1a/sony/SNE_DASH_SD_CASE1A_REVISED.mpd Support for this will have to be added at some point but that should also be easier with the rewritten code.
Attachment 349884 [details] pushed as db57a3b - dashdemux: Rewrite ISOBMFF & SIDX handling