summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2010-06-16 15:40:34 +0200
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2010-06-16 15:53:47 +0200
commita69e419c8eaf61b66c5889f5b635bfe8e97d3f71 (patch)
treea28eabbe76b9b8324df6b2d359cb1bbef139bb6a
parent6a9c70486ff3f1d3771105b2fccedb912e78f6fe (diff)
avidemux: improve audio vbr detection
Subsequent entry time calculations use blockalign value to determine number of frames per chunk, and blockalign == 1 is then most unlikely to result in reasonable values (which also aligns with "spec").
-rw-r--r--gst/avi/gstavidemux.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index e2c5c16fb..e7fe2c381 100644
--- a/gst/avi/gstavidemux.c
+++ b/gst/avi/gstavidemux.c
@@ -1988,11 +1988,12 @@ gst_avi_demux_parse_stream (GstAviDemux * avi, GstBuffer * buf)
GST_DEBUG_OBJECT (element, "marking video as VBR, res %d", res);
break;
case GST_RIFF_FCC_auds:
- stream->is_vbr = (stream->strh->samplesize == 0)
- && stream->strh->scale > 1;
res =
gst_riff_parse_strf_auds (element, sub, &stream->strf.auds,
&stream->extradata);
+ stream->is_vbr = (stream->strh->samplesize == 0)
+ && stream->strh->scale > 1
+ && stream->strf.auds->blockalign != 1;
sub = NULL;
GST_DEBUG_OBJECT (element, "marking audio as VBR:%d, res %d",
stream->is_vbr, res);