matroskaparse: Add remaining relevant parts from a3a55305 to the parser
authorSebastian Dröge <sebastian@centricular.com>
Thu, 17 Nov 2016 08:24:28 +0000 (10:24 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 17 Nov 2016 08:24:28 +0000 (10:24 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=774566

gst/matroska/matroska-parse.c

index 291819b..096547b 100644 (file)
@@ -2552,11 +2552,14 @@ gst_matroska_parse_parse_id (GstMatroskaParse * parse, guint32 id,
           /* eat segment prefix */
           GST_READ_CHECK (gst_matroska_parse_take (parse, needed, &ebml));
           GST_DEBUG_OBJECT (parse,
-              "Found Segment start at offset %" G_GUINT64_FORMAT,
-              parse->common.offset);
+              "Found Segment start at offset %" G_GUINT64_FORMAT " with size %"
+              G_GUINT64_FORMAT, parse->common.offset, length);
           /* seeks are from the beginning of the segment,
            * after the segment ID/length */
           parse->common.ebml_segment_start = parse->common.offset;
+          if (length == 0)
+            length = G_MAXUINT64;
+          parse->common.ebml_segment_length = length;
           parse->common.state = GST_MATROSKA_READ_STATE_HEADER;
           gst_matroska_parse_accumulate_streamheader (parse, ebml.buf);
           break;