matroska: refactor code common to matroskademux and matroskaparse
authorDebarshi Ray <rishi@gnu.org>
Sun, 5 Jun 2011 04:24:42 +0000 (09:54 +0530)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 6 Jun 2011 12:42:33 +0000 (14:42 +0200)
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_metadata_id_tag

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 6e9683cd40f9e4710ce20351bbfeba52242e1546..d294eccb7a51c049f7bd5c6a7414d96ab983df8f 100644 (file)
@@ -2387,45 +2387,6 @@ gst_matroska_demux_parse_info (GstMatroskaDemux * demux, GstEbmlRead * ebml)
   return ret;
 }
 
-static GstFlowReturn
-gst_matroska_demux_parse_metadata_id_tag (GstMatroskaDemux * demux,
-    GstEbmlRead * ebml, GstTagList ** p_taglist)
-{
-  guint32 id;
-  GstFlowReturn ret;
-
-  DEBUG_ELEMENT_START (demux, ebml, "Tag");
-
-  if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) {
-    DEBUG_ELEMENT_STOP (demux, ebml, "Tag", ret);
-    return ret;
-  }
-
-  while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) {
-    /* read all sub-entries */
-
-    if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK)
-      break;
-
-    switch (id) {
-      case GST_MATROSKA_ID_SIMPLETAG:
-        ret =
-            gst_matroska_read_common_parse_metadata_id_simple_tag
-            (&demux->common, ebml, p_taglist);
-        break;
-
-      default:
-        ret = gst_matroska_read_common_parse_skip (&demux->common, ebml,
-            "Tag", id);
-        break;
-    }
-  }
-
-  DEBUG_ELEMENT_STOP (demux, ebml, "Tag", ret);
-
-  return ret;
-}
-
 static GstFlowReturn
 gst_matroska_demux_parse_metadata (GstMatroskaDemux * demux, GstEbmlRead * ebml)
 {
@@ -2468,7 +2429,8 @@ gst_matroska_demux_parse_metadata (GstMatroskaDemux * demux, GstEbmlRead * ebml)
 
     switch (id) {
       case GST_MATROSKA_ID_TAG:
-        ret = gst_matroska_demux_parse_metadata_id_tag (demux, ebml, &taglist);
+        ret = gst_matroska_read_common_parse_metadata_id_tag (&demux->common,
+            ebml, &taglist);
         break;
 
       default:
index 8da2d22ad6d40f6eae411b1880aa82a1b475409c..43c87cabda9300b2d1eebda5d3671c55011a9514 100644 (file)
@@ -1689,45 +1689,6 @@ gst_matroska_parse_parse_info (GstMatroskaParse * parse, GstEbmlRead * ebml)
   return ret;
 }
 
-static GstFlowReturn
-gst_matroska_parse_parse_metadata_id_tag (GstMatroskaParse * parse,
-    GstEbmlRead * ebml, GstTagList ** p_taglist)
-{
-  guint32 id;
-  GstFlowReturn ret;
-
-  DEBUG_ELEMENT_START (parse, ebml, "Tag");
-
-  if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) {
-    DEBUG_ELEMENT_STOP (parse, ebml, "Tag", ret);
-    return ret;
-  }
-
-  while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) {
-    /* read all sub-entries */
-
-    if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK)
-      break;
-
-    switch (id) {
-      case GST_MATROSKA_ID_SIMPLETAG:
-        ret =
-            gst_matroska_read_common_parse_metadata_id_simple_tag
-            (&parse->common, ebml, p_taglist);
-        break;
-
-      default:
-        ret = gst_matroska_read_common_parse_skip (&parse->common, ebml,
-            "Tag", id);
-        break;
-    }
-  }
-
-  DEBUG_ELEMENT_STOP (parse, ebml, "Tag", ret);
-
-  return ret;
-}
-
 static GstFlowReturn
 gst_matroska_parse_parse_metadata (GstMatroskaParse * parse, GstEbmlRead * ebml)
 {
@@ -1770,7 +1731,8 @@ gst_matroska_parse_parse_metadata (GstMatroskaParse * parse, GstEbmlRead * ebml)
 
     switch (id) {
       case GST_MATROSKA_ID_TAG:
-        ret = gst_matroska_parse_parse_metadata_id_tag (parse, ebml, &taglist);
+        ret = gst_matroska_read_common_parse_metadata_id_tag (&parse->common,
+            ebml, &taglist);
         break;
 
       default:
index 73c7f4390542c16fa8b2ab6f6560bd957a2df527..e58f981673a51822621010e631b1b09d1fa2ce09 100644 (file)
@@ -953,7 +953,7 @@ gst_matroska_read_common_parse_index (GstMatroskaReadCommon * common,
   return ret;
 }
 
-GstFlowReturn
+static GstFlowReturn
 gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon *
     common, GstEbmlRead * ebml, GstTagList ** p_taglist)
 {
@@ -1076,6 +1076,43 @@ gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon *
   return ret;
 }
 
+GstFlowReturn
+gst_matroska_read_common_parse_metadata_id_tag (GstMatroskaReadCommon * common,
+    GstEbmlRead * ebml, GstTagList ** p_taglist)
+{
+  guint32 id;
+  GstFlowReturn ret;
+
+  DEBUG_ELEMENT_START (common, ebml, "Tag");
+
+  if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) {
+    DEBUG_ELEMENT_STOP (common, ebml, "Tag", ret);
+    return ret;
+  }
+
+  while (ret == GST_FLOW_OK && gst_ebml_read_has_remaining (ebml, 1, TRUE)) {
+    /* read all sub-entries */
+
+    if ((ret = gst_ebml_peek_id (ebml, &id)) != GST_FLOW_OK)
+      break;
+
+    switch (id) {
+      case GST_MATROSKA_ID_SIMPLETAG:
+        ret = gst_matroska_read_common_parse_metadata_id_simple_tag (common,
+            ebml, p_taglist);
+        break;
+
+      default:
+        ret = gst_matroska_read_common_parse_skip (common, ebml, "Tag", id);
+        break;
+    }
+  }
+
+  DEBUG_ELEMENT_STOP (common, ebml, "Tag", ret);
+
+  return ret;
+}
+
 static const guint8 *
 gst_matroska_read_common_peek_adapter (GstMatroskaReadCommon * common, guint
     peek)
index 2927d96cee802d82d361e554a52bc37f9353208e..7feb6b06927e4483a4ef822445b161bfd54a43b9 100644 (file)
@@ -93,7 +93,7 @@ GstFlowReturn gst_matroska_read_common_parse_index (GstMatroskaReadCommon *
     common, GstEbmlRead * ebml);
 GstFlowReturn gst_matroska_read_common_parse_header (GstMatroskaReadCommon *
     common, GstEbmlRead * ebml);
-GstFlowReturn gst_matroska_read_common_parse_metadata_id_simple_tag (
+GstFlowReturn gst_matroska_read_common_parse_metadata_id_tag (
     GstMatroskaReadCommon * common, GstEbmlRead * ebml, GstTagList **
     p_taglist);
 GstFlowReturn gst_matroska_read_common_parse_skip (GstMatroskaReadCommon *