summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2008-12-01 14:25:19 +0000
committerSebastian Dröge <slomo@circular-chaos.org>2008-12-01 14:25:19 +0000
commitcffc0f920726841aa7c41bd418402adae5812488 (patch)
tree32aa0f15baefab3f8c2e281a371abb0ba2cf5441
parent1d57f71709d1310ba9aba4675b8652d2f75ec0a7 (diff)
gst/mxf/mxfdemux.c: If the preface references a primary package use this as the default playback package unless one w...
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.
-rw-r--r--ChangeLog8
m---------common0
-rw-r--r--gst/mxf/mxfdemux.c11
3 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 7cb9ccdc0..a7a862110 100644
--- 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
-Subproject 5596f3e94835309b54029096f8bba528d79ae67
+Subproject 24963a683c185e1405b6f0aad37d95064cced93
diff --git a/gst/mxf/mxfdemux.c b/gst/mxf/mxfdemux.c
index 33be43788..1bc0e7bfd 100644
--- a/gst/mxf/mxfdemux.c
+++ b/gst/mxf/mxfdemux.c
@@ -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;