diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2015-12-10 12:25:54 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2015-12-10 12:27:04 +0200 |
commit | 39aa2aaa396b60a9f44bb11e8f1152e1a43f633b (patch) | |
tree | 882f4981e78df7b5e6fb96cb49ad9fd1389a3054 /gst/mxf | |
parent | 1d862db9c1975bfec80ab00c19d4e2f9c2ade735 (diff) | |
download | gstreamer-plugins-bad-39aa2aaa396b60a9f44bb11e8f1152e1a43f633b.tar.gz |
mxfdemux: Only pre-set the track position if it's for the same body/index SID
Diffstat (limited to 'gst/mxf')
-rw-r--r-- | gst/mxf/mxfdemux.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gst/mxf/mxfdemux.c b/gst/mxf/mxfdemux.c index f8d52ed90..84cea6e14 100644 --- a/gst/mxf/mxfdemux.c +++ b/gst/mxf/mxfdemux.c @@ -1866,10 +1866,12 @@ gst_mxf_demux_handle_generic_container_essence_element (GstMXFDemux * demux, GST_DEBUG_OBJECT (demux, "Pushing buffer of size %" G_GSIZE_FORMAT " for track %u: timestamp %" - GST_TIME_FORMAT " duration %" GST_TIME_FORMAT, - gst_buffer_get_size (outbuf), pad->material_track->parent.track_id, + GST_TIME_FORMAT " duration %" GST_TIME_FORMAT " position %" + G_GUINT64_FORMAT, gst_buffer_get_size (outbuf), + pad->material_track->parent.track_id, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)), - GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf))); + GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf)), + pad->current_essence_track_position); if (pad->discont) { GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); @@ -2760,7 +2762,8 @@ from_index: GstMXFDemuxEssenceTrack *t = &g_array_index (demux->essence_tracks, GstMXFDemuxEssenceTrack, i); - if (index_start_position != -1) + if (index_start_position != -1 && t->body_sid == etrack->body_sid + && t->index_sid == etrack->index_sid) t->position = index_start_position; else t->position = (demux->offset == demux->run_in) ? 0 : -1; |