summaryrefslogtreecommitdiffstats
path: root/gst/mxf
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2009-02-02 15:54:23 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2009-02-02 15:54:23 +0100
commitee131d8af727249690c11e3873b59a2dd3dfa522 (patch)
treeac8fa49273ae060bc0d242fd9e94eea00986120a /gst/mxf
parent5e57a0a0525c1f0fc813f10e49b9a300940456fb (diff)
downloadgst-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
Diffstat (limited to 'gst/mxf')
-rw-r--r--gst/mxf/mxfdemux.c10
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;
}