aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <cehoyos@ag.or.at>2012-12-18 23:04:19 +0100
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2012-12-18 23:04:19 +0100
commit00a62e6776c7b2393b1c6f3be9ae85200bf2bb1e (patch)
tree0833aae50b05df8495dd2df084b4dd81f71490d4
parent9700a7a1dd25651d5b79af8a05ef6f467ec07520 (diff)
downloadffmpeg-00a62e6776c7b2393b1c6f3be9ae85200bf2bb1e.tar.gz
Do not skip three bytes and don't search for extradata in old realaudio files.
Fixes ticket #1557.
-rw-r--r--libavformat/rmdec.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c
index 2bfa5ceeda..a84fdc67b1 100644
--- a/libavformat/rmdec.c
+++ b/libavformat/rmdec.c
@@ -196,6 +196,9 @@ static int rm_read_audio_stream_info(AVFormatContext *s, AVIOContext *pb,
st->need_parsing = AVSTREAM_PARSE_HEADERS;
case AV_CODEC_ID_ATRAC3:
case AV_CODEC_ID_SIPR:
+ if (read_all) {
+ codecdata_length = 0;
+ } else {
avio_rb16(pb); avio_r8(pb);
if (version == 5)
avio_r8(pb);
@@ -204,6 +207,7 @@ static int rm_read_audio_stream_info(AVFormatContext *s, AVIOContext *pb,
av_log(s, AV_LOG_ERROR, "codecdata_length too large\n");
return -1;
}
+ }
ast->audio_framesize = st->codec->block_align;
if (st->codec->codec_id == AV_CODEC_ID_SIPR) {