matroska: refactor code common to matroskademux and matroskaparse
authorDebarshi Ray <rishi@gnu.org>
Fri, 27 May 2011 14:00:48 +0000 (19:30 +0530)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 30 May 2011 05:56:21 +0000 (07:56 +0200)
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_get_length

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

gst/matroska/matroska-demux.c
gst/matroska/matroska-parse.c
gst/matroska/matroska-read-common.c
gst/matroska/matroska-read-common.h

index 05cdf63a712b1bb8213d8da3623f2a48359b1bfe..6386cc5a7e8b16cad393f2493890aeefb5245b69 100644 (file)
@@ -461,19 +461,6 @@ gst_matroska_demux_reset (GstElement * element)
   }
 }
 
-static gint64
-gst_matroska_demux_get_length (GstMatroskaDemux * demux)
-{
-  GstFormat fmt = GST_FORMAT_BYTES;
-  gint64 end = -1;
-
-  if (!gst_pad_query_peer_duration (demux->common.sinkpad, &fmt, &end) ||
-      fmt != GST_FORMAT_BYTES || end < 0)
-    GST_DEBUG_OBJECT (demux, "no upstream length");
-
-  return end;
-}
-
 static gboolean
 gst_matroska_decode_data (GArray * encodings, guint8 ** data_out,
     guint * size_out, GstMatroskaTrackEncodingScope scope, gboolean free)
@@ -4570,7 +4557,7 @@ gst_matroska_demux_parse_contents_seekentry (GstMatroskaDemux * demux,
       guint needed;
 
       /* remember */
-      length = gst_matroska_demux_get_length (demux);
+      length = gst_matroska_read_common_get_length (&demux->common);
       before_pos = demux->common.offset;
 
       if (length == (guint64) - 1) {
@@ -5238,7 +5225,7 @@ gst_matroska_demux_loop (GstPad * pad)
 
 next:
   if (G_UNLIKELY (demux->common.offset ==
-          gst_matroska_demux_get_length (demux))) {
+          gst_matroska_read_common_get_length (&demux->common))) {
     GST_LOG_OBJECT (demux, "Reached end of stream");
     ret = GST_FLOW_UNEXPECTED;
     goto eos;
index 9b555503d9c5b59f3cf40438415a67f0ce2aeac0..f89e97ca21c887b99baf1917f447e1b2fd360582 100644 (file)
@@ -384,19 +384,6 @@ gst_matroska_parse_reset (GstElement * element)
   }
 }
 
-static gint64
-gst_matroska_parse_get_length (GstMatroskaParse * parse)
-{
-  GstFormat fmt = GST_FORMAT_BYTES;
-  gint64 end = -1;
-
-  if (!gst_pad_query_peer_duration (parse->common.sinkpad, &fmt, &end) ||
-      fmt != GST_FORMAT_BYTES || end < 0)
-    GST_DEBUG_OBJECT (parse, "no upstream length");
-
-  return end;
-}
-
 static gboolean
 gst_matroska_decode_data (GArray * encodings, guint8 ** data_out,
     guint * size_out, GstMatroskaTrackEncodingScope scope, gboolean free)
@@ -3193,7 +3180,7 @@ gst_matroska_parse_parse_contents_seekentry (GstMatroskaParse * parse,
       guint64 length;
 
       /* remember */
-      length = gst_matroska_parse_get_length (parse);
+      length = gst_matroska_read_common_get_length (&parse->common);
 
       if (length == (guint64) - 1) {
         GST_DEBUG_OBJECT (parse, "no upstream length, skipping SeakHead entry");
@@ -3860,7 +3847,8 @@ gst_matroska_parse_loop (GstPad * pad)
   }
 
 next:
-  if (G_UNLIKELY (parse->offset == gst_matroska_parse_get_length (parse))) {
+  if (G_UNLIKELY (parse->offset ==
+          gst_matroska_read_common_get_length (&parse->common))) {
     GST_LOG_OBJECT (parse, "Reached end of stream");
     ret = GST_FLOW_UNEXPECTED;
     goto eos;
index 178aa365ad24523c0bed85e620f808125c39a449..6b0f44b6c1b173cf7ad61be8032b968e2a31a8aa 100644 (file)
@@ -308,6 +308,19 @@ gst_matroska_read_common_encoding_order_unique (GArray * encodings, guint64
   return TRUE;
 }
 
+gint64
+gst_matroska_read_common_get_length (GstMatroskaReadCommon * common)
+{
+  GstFormat fmt = GST_FORMAT_BYTES;
+  gint64 end = -1;
+
+  if (!gst_pad_query_peer_duration (common->sinkpad, &fmt, &end) ||
+      fmt != GST_FORMAT_BYTES || end < 0)
+    GST_DEBUG_OBJECT (common, "no upstream length");
+
+  return end;
+}
+
 /* skip unknown or alike element */
 GstFlowReturn
 gst_matroska_read_common_parse_skip (GstMatroskaReadCommon * common,
index cf5416fed80101e0a8c1f722120c2ed1eca4a44b..5f7cb973c036d8b42fd990aabeafbb89c4dbdb36 100644 (file)
@@ -78,6 +78,7 @@ GstFlowReturn gst_matroska_decode_content_encodings (GArray * encodings);
 gboolean gst_matroska_decompress_data (GstMatroskaTrackEncoding * enc,
     guint8 ** data_out, guint * size_out,
     GstMatroskaTrackCompressionAlgorithm algo);
+gint64 gst_matroska_read_common_get_length (GstMatroskaReadCommon * common);
 GstFlowReturn gst_matroska_read_common_parse_index (GstMatroskaReadCommon *
     common, GstEbmlRead * ebml);
 GstFlowReturn gst_matroska_read_common_parse_skip (GstMatroskaReadCommon *