summaryrefslogtreecommitdiffstats
path: root/gst/mxf/mxfdemux.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/mxf/mxfdemux.c')
-rw-r--r--gst/mxf/mxfdemux.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/gst/mxf/mxfdemux.c b/gst/mxf/mxfdemux.c
index 11bd6dec..0098951e 100644
--- a/gst/mxf/mxfdemux.c
+++ b/gst/mxf/mxfdemux.c
@@ -33,6 +33,7 @@
#include "mxfparse.h"
#include "mxfaes-bwf.h"
#include "mxfmpeg.h"
+#include "mxfdv-dif.h"
#include <string.h>
@@ -1274,9 +1275,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;
}
@@ -1812,14 +1812,26 @@ choose_package:
caps =
mxf_mpeg_video_create_caps (source_package, source_track,
&pad->tags, &pad->handle_essence_element, &pad->mapping_data);
+ else if (mxf_is_dv_dif_essence_track (source_track))
+ caps =
+ mxf_dv_dif_create_caps (source_package, source_track,
+ &pad->tags, &pad->handle_essence_element, &pad->mapping_data);
break;
case MXF_METADATA_TRACK_SOUND_ESSENCE:
if (mxf_is_aes_bwf_essence_track (source_track))
caps =
mxf_aes_bwf_create_caps (source_package, source_track, &pad->tags,
&pad->handle_essence_element, &pad->mapping_data);
+ else if (mxf_is_dv_dif_essence_track (source_track))
+ caps =
+ mxf_dv_dif_create_caps (source_package, source_track,
+ &pad->tags, &pad->handle_essence_element, &pad->mapping_data);
break;
case MXF_METADATA_TRACK_DATA_ESSENCE:
+ if (mxf_is_dv_dif_essence_track (source_track))
+ caps =
+ mxf_dv_dif_create_caps (source_package, source_track,
+ &pad->tags, &pad->handle_essence_element, &pad->mapping_data);
break;
default:
g_assert_not_reached ();
@@ -2391,7 +2403,7 @@ gst_mxf_demux_handle_klv_packet (GstMXFDemux * demux, const MXFUL * key,
if (demux->update_metadata
&& !mxf_timestamp_is_unknown (&demux->preface.last_modified_date)
- && !mxf_is_metadata (key)
+ && !mxf_is_metadata (key) && !mxf_is_descriptive_metadata (key)
&& !mxf_is_fill (key)) {
if ((ret =
gst_mxf_demux_handle_header_metadata_resolve_references (demux)) !=