Commit 1e4668d1 authored by Roberto Togni's avatar Roberto Togni

Fix for Real "old" files version 3 with no 4cc. Fixes thankyou144.ra

Based on patch by "mkhodor7 <-> yahoo | com"

Originally committed as revision 4759 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent daba69b2
...@@ -488,13 +488,14 @@ static void rm_read_audio_stream_info(AVFormatContext *s, AVStream *st, ...@@ -488,13 +488,14 @@ static void rm_read_audio_stream_info(AVFormatContext *s, AVStream *st,
{ {
RMContext *rm = s->priv_data; RMContext *rm = s->priv_data;
ByteIOContext *pb = &s->pb; ByteIOContext *pb = &s->pb;
char buf[128]; char buf[256];
uint32_t version; uint32_t version;
int i; int i;
/* ra type header */ /* ra type header */
version = get_be32(pb); /* version */ version = get_be32(pb); /* version */
if (((version >> 16) & 0xff) == 3) { if (((version >> 16) & 0xff) == 3) {
int64_t startpos = url_ftell(pb);
/* very old version */ /* very old version */
for(i = 0; i < 14; i++) for(i = 0; i < 14; i++)
get_byte(pb); get_byte(pb);
...@@ -502,8 +503,14 @@ static void rm_read_audio_stream_info(AVFormatContext *s, AVStream *st, ...@@ -502,8 +503,14 @@ static void rm_read_audio_stream_info(AVFormatContext *s, AVStream *st,
get_str8(pb, s->author, sizeof(s->author)); get_str8(pb, s->author, sizeof(s->author));
get_str8(pb, s->copyright, sizeof(s->copyright)); get_str8(pb, s->copyright, sizeof(s->copyright));
get_str8(pb, s->comment, sizeof(s->comment)); get_str8(pb, s->comment, sizeof(s->comment));
if ((startpos + (version & 0xffff)) >= url_ftell(pb) + 2) {
// fourcc (should always be "lpcJ")
get_byte(pb); get_byte(pb);
get_str8(pb, buf, sizeof(buf)); get_str8(pb, buf, sizeof(buf));
}
// Skip extra header crap (this should never happen)
if ((startpos + (version & 0xffff)) > url_ftell(pb))
url_fskip(pb, (version & 0xffff) + startpos - url_ftell(pb));
st->codec->sample_rate = 8000; st->codec->sample_rate = 8000;
st->codec->channels = 1; st->codec->channels = 1;
st->codec->codec_type = CODEC_TYPE_AUDIO; st->codec->codec_type = CODEC_TYPE_AUDIO;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment