gst/mxf/mxfdemux.c: If the preface references a primary package use this as the defau...
authorSebastian Dröge <slomo@circular-chaos.org>
Mon, 1 Dec 2008 14:25:19 +0000 (14:25 +0000)
committerSebastian Dröge <slomo@circular-chaos.org>
Mon, 1 Dec 2008 14:25:19 +0000 (14:25 +0000)
Original commit message from CVS:
* gst/mxf/mxfdemux.c: (gst_mxf_demux_choose_package):
If the preface references a primary package use this as the default
playback package unless one was specified by the "package" property.
If there's no preface primary package still try to use the first
material package.

ChangeLog
common
gst/mxf/mxfdemux.c

index 7cb9ccd..a7a8621 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-12-01  Sebastian Dröge  <sebastian.droege@collabora.co.uk>
+
+       * gst/mxf/mxfdemux.c: (gst_mxf_demux_choose_package):
+       If the preface references a primary package use this as the default
+       playback package unless one was specified by the "package" property.
+       If there's no preface primary package still try to use the first
+       material package.
+
 2008-11-30  Sebastian Dröge  <sebastian.droege@collabora.co.uk>
 
        * gst/mxf/mxfdemux.c:
diff --git a/common b/common
index 5596f3e..24963a6 160000 (submodule)
--- a/common
+++ b/common
@@ -1 +1 @@
-Subproject commit 5596f3e94835309b54029096f8bba528d79ae677
+Subproject commit 24963a683c185e1405b6f0aad37d95064cced93b
index 33be437..1bc0e7b 100644 (file)
@@ -1305,9 +1305,8 @@ gst_mxf_demux_handle_header_metadata_resolve_references (GstMXFDemux * demux)
           MXFMetadataEssenceContainerData, i);
 
       for (j = 0; j < demux->content_storage.n_essence_container_data; j++) {
-        if (mxf_ul_is_equal (&demux->
-                content_storage.essence_container_data_uids[j],
-                &data->instance_uid)) {
+        if (mxf_ul_is_equal (&demux->content_storage.
+                essence_container_data_uids[j], &data->instance_uid)) {
           demux->content_storage.essence_container_data[j] = data;
           break;
         }
@@ -1677,6 +1676,12 @@ gst_mxf_demux_choose_package (GstMXFDemux * demux)
     GST_WARNING_OBJECT (demux,
         "Current package not found, choosing the first best");
 
+  if (demux->preface.primary_package)
+    ret = demux->preface.primary_package;
+  if (ret && (ret->type == MXF_METADATA_GENERIC_PACKAGE_TOP_LEVEL_SOURCE
+          || ret->type == MXF_METADATA_GENERIC_PACKAGE_MATERIAL))
+    return ret;
+
   if (!demux->material_package) {
     GST_ERROR_OBJECT (demux, "No material package");
     return NULL;