From 22cb259f197c91d8d6e339bb765a74c023fc7775 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 6 Feb 2009 10:06:59 +0100 Subject: mxfdemux: Fix logic for finding the previous keyframe --- gst/mxf/mxfdemux.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'gst/mxf') diff --git a/gst/mxf/mxfdemux.c b/gst/mxf/mxfdemux.c index 6fe2f279..9cbbc2b0 100644 --- a/gst/mxf/mxfdemux.c +++ b/gst/mxf/mxfdemux.c @@ -2268,8 +2268,8 @@ gst_mxf_demux_find_essence_element (GstMXFDemux * demux, guint i; GST_DEBUG_OBJECT (demux, "Trying to find essence element %" G_GINT64_FORMAT - " of track %u with body_sid %u", *position, etrack->track_number, - etrack->body_sid); + " of track %u with body_sid %u (keyframe %d)", *position, + etrack->track_number, etrack->body_sid, keyframe); from_index: @@ -2293,12 +2293,15 @@ from_index: idx = &g_array_index (etrack->offsets, GstMXFDemuxIndex, current_position); - if (idx->offset == 0) + if (idx->offset == 0) { break; - else if (!idx->keyframe) + } else if (!idx->keyframe) { + current_position--; continue; - - current_offset = idx->offset; + } else { + current_offset = idx->offset; + break; + } } } -- cgit v1.2.1