diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2009-02-02 15:54:23 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2009-02-02 15:54:23 +0100 |
commit | ee131d8af727249690c11e3873b59a2dd3dfa522 (patch) | |
tree | ac8fa49273ae060bc0d242fd9e94eea00986120a | |
parent | 5e57a0a0525c1f0fc813f10e49b9a300940456fb (diff) | |
download | gst-plugins-bad-ee131d8af727249690c11e3873b59a2dd3dfa522.tar.gz gst-plugins-bad-ee131d8af727249690c11e3873b59a2dd3dfa522.tar.bz2 gst-plugins-bad-ee131d8af727249690c11e3873b59a2dd3dfa522.zip |
Resolve metadata and update tracks if necessary before seeking
-rw-r--r-- | gst/mxf/mxfdemux.c | 10 |
1 files changed, 6 insertions, 4 deletions
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; } |