After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 781233 - dashdemux: Rewrite ISOBMFF & SIDX handling
dashdemux: Rewrite ISOBMFF & SIDX handling
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
unspecified
Other All
: Normal normal
: 1.11.91
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-04-12 18:44 UTC by Sebastian Dröge (slomo)
Modified: 2017-04-18 11:50 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
dashdemux: Rewrite ISOBMFF & SIDX handling (44.92 KB, patch)
2017-04-12 18:45 UTC, Sebastian Dröge (slomo)
none Details | Review
dashdemux: Rewrite ISOBMFF & SIDX handling (47.91 KB, patch)
2017-04-13 14:22 UTC, Sebastian Dröge (slomo)
none Details | Review
dashdemux: Rewrite ISOBMFF & SIDX handling (49.16 KB, patch)
2017-04-13 19:56 UTC, Sebastian Dröge (slomo)
none Details | Review
dashdemux: Rewrite ISOBMFF & SIDX handling (49.22 KB, patch)
2017-04-15 08:58 UTC, Sebastian Dröge (slomo)
committed Details | Review

Description Sebastian Dröge (slomo) 2017-04-12 18:44:57 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.
Comment 1 Sebastian Dröge (slomo) 2017-04-12 18:45:03 UTC
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.
Comment 2 Sebastian Dröge (slomo) 2017-04-13 07:28:22 UTC
This is also related to https://bugzilla.gnome.org/show_bug.cgi?id=776200
Comment 3 Sebastian Dröge (slomo) 2017-04-13 14:22:07 UTC
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.
Comment 4 Sebastian Dröge (slomo) 2017-04-13 19:56:01 UTC
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.
Comment 5 Sebastian Dröge (slomo) 2017-04-15 08:58:02 UTC
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.
Comment 6 Sebastian Dröge (slomo) 2017-04-18 11:50:03 UTC
Attachment 349884 [details] pushed as db57a3b - dashdemux: Rewrite ISOBMFF & SIDX handling