|
|
@ -196,6 +196,9 @@ static int rm_read_audio_stream_info(AVFormatContext *s, AVIOContext *pb, |
|
|
|
st->need_parsing = AVSTREAM_PARSE_HEADERS; |
|
|
|
st->need_parsing = AVSTREAM_PARSE_HEADERS; |
|
|
|
case AV_CODEC_ID_ATRAC3: |
|
|
|
case AV_CODEC_ID_ATRAC3: |
|
|
|
case AV_CODEC_ID_SIPR: |
|
|
|
case AV_CODEC_ID_SIPR: |
|
|
|
|
|
|
|
if (read_all) { |
|
|
|
|
|
|
|
codecdata_length = 0; |
|
|
|
|
|
|
|
} else { |
|
|
|
avio_rb16(pb); avio_r8(pb); |
|
|
|
avio_rb16(pb); avio_r8(pb); |
|
|
|
if (version == 5) |
|
|
|
if (version == 5) |
|
|
|
avio_r8(pb); |
|
|
|
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"); |
|
|
|
av_log(s, AV_LOG_ERROR, "codecdata_length too large\n"); |
|
|
|
return -1; |
|
|
|
return -1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ast->audio_framesize = st->codec->block_align; |
|
|
|
ast->audio_framesize = st->codec->block_align; |
|
|
|
if (st->codec->codec_id == AV_CODEC_ID_SIPR) { |
|
|
|
if (st->codec->codec_id == AV_CODEC_ID_SIPR) { |
|
|
|