dashdemux: set default @startNumber and also avoid wrong overwrite
authorJun Xie <xixi10111011@gmail.com>
Tue, 17 Mar 2015 13:49:40 +0000 (21:49 +0800)
committerThiago Santos <thiagoss@osg.samsung.com>
Tue, 24 Mar 2015 19:35:59 +0000 (16:35 -0300)
Set default @startNumber to 1, if @startNumber is missing at all level.
Also avoid incorrect overwriting inherited value.

https://bugzilla.gnome.org/show_bug.cgi?id=746347

ext/dash/gstmpdparser.c

index 369aca4..21f84f1 100644 (file)
@@ -1329,6 +1329,9 @@ gst_mpdparser_parse_mult_seg_base_type_ext (GstMultSegmentBaseType ** pointer,
     return;
   }
 
+  mult_seg_base_type->duration = 0;
+  mult_seg_base_type->startNumber = 1;
+
   /* Inherit attribute values from parent */
   if (parent) {
     mult_seg_base_type->duration = parent->duration;
@@ -1345,8 +1348,10 @@ gst_mpdparser_parse_mult_seg_base_type_ext (GstMultSegmentBaseType ** pointer,
     mult_seg_base_type->duration = intval;
   }
 
-  gst_mpdparser_get_xml_prop_unsigned_integer (a_node, "startNumber", 1,
-      &mult_seg_base_type->startNumber);
+  if (gst_mpdparser_get_xml_prop_unsigned_integer (a_node, "startNumber", 1,
+          &intval)) {
+    mult_seg_base_type->startNumber = intval;
+  }
 
   GST_LOG ("extension of MultipleSegmentBaseType extension:");
   gst_mpdparser_parse_seg_base_type_ext (&mult_seg_base_type->SegBaseType,