summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-12-09 20:45:42 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-12-09 20:45:52 +0100
commitc9afeda55ef29534d7b565bd613122227e046d5b (patch)
tree7b7af6b0b078da686d9e65982f54aeda26fc728d
parent3a5cbc91a45a8524dcf8c68c6ab54412f95f87a2 (diff)
parent362383b743f3a379675ff4b310d357893a6a872e (diff)
Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master: Fix remuxing of IMA_QT in mov. Do not detect "00000000..." (and other non-changing values) as adp. Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavformat/adp.c11
-rw-r--r--libavformat/movenc.c3
2 files changed, 11 insertions, 3 deletions
diff --git a/libavformat/adp.c b/libavformat/adp.c
index c5feac4fa5..08a4225e46 100644
--- a/libavformat/adp.c
+++ b/libavformat/adp.c
@@ -26,14 +26,21 @@
static int adp_probe(AVProbeData *p)
{
- int i;
+ int i, changes = 0;
+ char last = 0;
if (p->buf_size < 32)
return 0;
- for (i = 0; i < p->buf_size - 3; i+=32)
+ for (i = 0; i < p->buf_size - 3; i+=32) {
if (p->buf[i] != p->buf[i+2] || p->buf[i+1] != p->buf[i+3])
return 0;
+ if (p->buf[i] != last)
+ changes++;
+ last = p->buf[i];
+ }
+ if (changes <= 1)
+ return 0;
return p->buf_size < 260 ? 1 : AVPROBE_SCORE_MAX / 4;
}
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 92ce5341e6..7315417ca2 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -3885,7 +3885,8 @@ static int mov_write_header(AVFormatContext *s)
}else{
track->sample_size = (av_get_bits_per_sample(st->codec->codec_id) >> 3) * st->codec->channels;
}
- if (st->codec->codec_id == AV_CODEC_ID_ILBC) {
+ if (st->codec->codec_id == AV_CODEC_ID_ILBC ||
+ st->codec->codec_id == AV_CODEC_ID_ADPCM_IMA_QT) {
track->audio_vbr = 1;
}
if (track->mode != MODE_MOV &&