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.
This commit is contained in:
Sebastian Dröge 2008-12-01 14:25:19 +00:00
parent 1d57f71709
commit cffc0f9207
3 changed files with 17 additions and 4 deletions

View file

@ -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:

2
common

@ -1 +1 @@
Subproject commit 5596f3e94835309b54029096f8bba528d79ae677
Subproject commit 24963a683c185e1405b6f0aad37d95064cced93b

View 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;