From ee131d8af727249690c11e3873b59a2dd3dfa522 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 2 Feb 2009 15:54:23 +0100 Subject: Resolve metadata and update tracks if necessary before seeking --- gst/mxf/mxfdemux.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'gst/mxf/mxfdemux.c') diff --git a/gst/mxf/mxfdemux.c b/gst/mxf/mxfdemux.c index 83541834..6b805ed8 100644 --- a/gst/mxf/mxfdemux.c +++ b/gst/mxf/mxfdemux.c @@ -2904,8 +2904,9 @@ gst_mxf_demux_seek_push (GstMXFDemux * demux, GstEvent * event) gboolean ret; guint64 new_offset = -1; - if (!demux->metadata_resolved) { - if (gst_mxf_demux_resolve_references (demux) != GST_FLOW_OK) + if (!demux->metadata_resolved || demux->update_metadata) { + if (gst_mxf_demux_resolve_references (demux) != GST_FLOW_OK || + gst_mxf_demux_update_tracks (demux) != GST_FLOW_OK) goto unresolved_metadata; } @@ -3047,8 +3048,9 @@ gst_mxf_demux_seek_pull (GstMXFDemux * demux, GstEvent * event) if (flush || seeksegment.last_stop != demux->segment.last_stop) { guint64 new_offset = -1; - if (!demux->metadata_resolved) { - if (gst_mxf_demux_resolve_references (demux) != GST_FLOW_OK) + if (!demux->metadata_resolved || demux->update_metadata) { + if (gst_mxf_demux_resolve_references (demux) != GST_FLOW_OK || + gst_mxf_demux_update_tracks (demux) != GST_FLOW_OK) goto unresolved_metadata; } -- cgit v1.2.1