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 700489 - [dashdemux] Initialization blocks without URLs generate spurious critical errors
[dashdemux] Initialization blocks without URLs generate spurious critical errors
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: 1.1.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-05-16 21:42 UTC by Arthur Shipkowski
Modified: 2013-07-01 22:12 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
This is the patch that had failure-to-attach. (2.68 KB, patch)
2013-05-16 21:45 UTC, Arthur Shipkowski
committed Details | Review

Description Arthur Shipkowski 2013-05-16 21:42:41 UTC
An MPD with an Initialization that does not include a sourceURL, e.g. http://yt-dash-mse-test.commondatastorage.googleapis.com/car-20120827-manifest.mpd will generate the following critical error: 
** (gst-launch-1.0:8060): CRITICAL **: gst_mpdparser_get_initializationURL: assertion `InitializationURL->sourceURL != NULL' failed

However, per the DASH specification, URLTypes like Initialization are not required to have a sourceURL, provided there is a BaseURL that can be mapped instead. (See Table 13 in ISO/IEC 23009-1:2012)

A patch is attached to remedy this bug.

Reproduction:
gst-launch playbin uri=http://yt-dash-mse-test.commondatastorage.googleapis.com/car-20120827-manifest.mpd
Comment 1 Arthur Shipkowski 2013-05-16 21:45:33 UTC
Created attachment 244470 [details] [review]
This is the patch that had failure-to-attach.
Comment 2 Arthur Shipkowski 2013-05-30 18:11:07 UTC
Bump.
Comment 3 Thiago Sousa Santos 2013-06-08 02:24:32 UTC
While this fixes the issue for this clip, it seems our dashdemux is still unable to handle segments that use byte ranges. In this particular case it is ok as there is only a single segment, but there might be other scenarios where multiple segments with byte ranges are used.

I'm going to need to take a deeper look at the spec/code and check if we can add more to your patch and fix the whole byte range segments handling altogether.

It would also be helpful if we had a sample that used byte ranges. I'll try to find some.
Comment 4 Arthur Shipkowski 2013-06-18 20:01:12 UTC
It looks like the byte range aspect is being handled under bug 702206 for the moment.
Comment 5 Thiago Sousa Santos 2013-06-19 23:30:50 UTC
The byte range requests foundation is now ready on #702206, now I'm trying to understand what's the difference between index and media and the corresponding ranges.

/me goes back to the spec
Comment 6 Greg Rutz 2013-06-26 16:02:21 UTC
Can we mark this issue as resolved (and possibly commit the patch)?  The byte-range issue is handled by bug 702206 and can be handled separately.
Comment 7 Thiago Sousa Santos 2013-06-26 20:27:15 UTC
(In reply to comment #6)
> Can we mark this issue as resolved (and possibly commit the patch)?  The
> byte-range issue is handled by bug 702206 and can be handled separately.

There is still a missing piece here that is the indexRange handling for the stream in this bug. This can only be pushed after the other range patches are pushed.
Comment 8 Thiago Sousa Santos 2013-07-01 22:11:15 UTC
Fixed, thanks for the patch.

commit d68fffc21758399c401593f1bd5915cbcf74e131
Author: Thiago Santos <thiago.sousa.santos@collabora.com>
Date:   Mon Jul 1 13:19:15 2013 -0300

    dashdemux: handle top-level index urls
    
    Parse and provide access to top-level index segments if available.
    dashdemux should push those whenever a header is pushed.
    
    Fixes #700489

commit 54d87f071c152e05de210047180c3147c88f0634
Author: Arthur Shipkowski <art@videon-central.com>
Date:   Mon May 6 17:08:54 2013 -0400

    dashdemux: Fix critical error output when Initialization has no URL
    
    Issue evinced by
    http://yt-dash-mse-test.commondatastorage.googleapis.com/car-20120827-manifest.mpd
    which produces output like ** (gst-launch-1.0:8060): CRITICAL **:
    gst_mpdparser_get_initializationURL: assertion `InitializationURL->sourceURL
    != NULL' failed
    
    https://bugzilla.gnome.org/show_bug.cgi?id=700489