summaryrefslogtreecommitdiffstats
path: root/gst/mxf
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2009-02-09 18:14:14 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2009-02-09 18:14:14 +0100
commit08aadd31dcf237abe33182fb7795b5e351774eff (patch)
treedbec530f1ed9c2282a3b7465720325373bc6ded2 /gst/mxf
parent1229f0a149bb4d9dc989832650e6b019ffbcc5a0 (diff)
downloadgst-plugins-bad-08aadd31dcf237abe33182fb7795b5e351774eff.tar.gz
gst-plugins-bad-08aadd31dcf237abe33182fb7795b5e351774eff.tar.bz2
gst-plugins-bad-08aadd31dcf237abe33182fb7795b5e351774eff.zip
mxfdemux: After pulling the footer metadata reset essence track positions to 0
Diffstat (limited to 'gst/mxf')
-rw-r--r--gst/mxf/mxfdemux.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/gst/mxf/mxfdemux.c b/gst/mxf/mxfdemux.c
index 957d853e..4fb29f13 100644
--- a/gst/mxf/mxfdemux.c
+++ b/gst/mxf/mxfdemux.c
@@ -2287,6 +2287,20 @@ gst_mxf_demux_handle_klv_packet (GstMXFDemux * demux, const MXFUL * key,
"Open or incomplete header partition, trying to get final metadata from the last partitions");
gst_mxf_demux_parse_footer_metadata (demux);
demux->pull_footer_metadata = FALSE;
+
+ if (demux->current_partition->partition.body_sid != 0 &&
+ demux->current_partition->partition.body_offset == 0) {
+ guint i;
+ for (i = 0; i < demux->essence_tracks->len; i++) {
+ GstMXFDemuxEssenceTrack *etrack =
+ &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, i);
+
+ if (etrack->body_sid != demux->current_partition->partition.body_sid)
+ continue;
+
+ etrack->position = 0;
+ }
+ }
}
beach: