diff options
Diffstat (limited to 'gst/avi/gstavidemux.c')
-rw-r--r-- | gst/avi/gstavidemux.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index db614654..f5cfa563 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -390,10 +390,8 @@ gst_avi_demux_handle_src_query (GstPad * pad, GstQuery * query) switch (GST_QUERY_TYPE (query)) { case GST_QUERY_POSITION:{ - gint64 len, pos = 0; + gint64 pos = 0; - len = (((gfloat) stream->strh->scale) * stream->strh->length / - stream->strh->rate) * GST_SECOND; if (stream->strh->type == GST_RIFF_FCC_auds) { if (!stream->strh->samplesize) { pos = GST_SECOND * stream->current_frame * @@ -422,7 +420,16 @@ gst_avi_demux_handle_src_query (GstPad * pad, GstQuery * query) } } if (res) - gst_query_set_position (query, GST_FORMAT_TIME, pos, len); + gst_query_set_position (query, GST_FORMAT_TIME, pos); + break; + } + case GST_QUERY_DURATION: + { + gint64 len; + + len = (((gfloat) stream->strh->scale) * stream->strh->length / + stream->strh->rate) * GST_SECOND; + gst_query_set_duration (query, GST_FORMAT_TIME, len); break; } default: |