GNOME Bugzilla – Bug 752229
dashdemux: only one SegmentList element is supported
Last modified: 2018-11-03 13:37:32 UTC
The standard specifies that "The Segment list is defined by one or more SegmentList elements". But the implementation supports only 1 element. The SegmentList member of _GstRepresentationNode, _GstAdaptationSetNode, _GstPeriodNode is a pointer to GstSegmentListNode, instead of a list. So, these elements support only 1 instance of SegmentList element. When a second one is detected, the gst_mpdparser_parse_segment_list_node function will free the previous one: gst_mpdparser_parse_segment_list_node (GstSegmentListNode ** pointer, .... gst_mpdparser_free_segment_list_node (*pointer); *pointer = new_segment_list = g_slice_new0 (GstSegmentListNode);
Created attachment 311629 [details] [review] multiple segment list nodes First pass, incomplete. This stores all the nodes in a list. There are a couple places where it's not obvious what the behavior should be (marked with TODO): for inheritance in gst_mpdparser_parse_segment_list_node if there is more than one segment list to inherit from, and in gst_mpd_client_get_segment_duration, where there doesn't seem to be an actual segment being considered, despite the name. This passes the tests and can play a (single segment list) sample, at least.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/272.