Skip to content
Permalink
Browse files

ffmdec: evil compat hacks to keep it working when using the deprecate…

…d st->codec

FATE changes to accomodate a few changed codec properties
  • Loading branch information
Nevcairiel committed Mar 7, 2016
1 parent 66afc9e commit a3b54e814c932f93982b12d063fcac42d529d470
Showing with 17 additions and 4 deletions.
  1. +16 −3 libavformat/ffmdec.c
  2. +1 −1 tests/ref/lavf/ffm
@@ -283,7 +283,7 @@ static int ffm2_read_header(AVFormatContext *s)
AVIOContext *pb = s->pb;
AVCodecContext *codec;
const AVCodecDescriptor *codec_desc;
int ret;
int ret, i;
int f_main = 0, f_cprv = -1, f_stvi = -1, f_stau = -1;
AVCodec *enc;
char *buffer;
@@ -356,8 +356,12 @@ static int ffm2_read_header(AVFormatContext *s)
codec->flags2 = avio_rb32(pb);
codec->debug = avio_rb32(pb);
if (codec->flags & AV_CODEC_FLAG_GLOBAL_HEADER) {
if (ff_get_extradata(codec, pb, avio_rb32(pb)) < 0)
int size = avio_rb32(pb);
codec->extradata = av_mallocz(size + AV_INPUT_BUFFER_PADDING_SIZE);
if (!codec->extradata)
return AVERROR(ENOMEM);
codec->extradata_size = size;
avio_read(pb, codec->extradata, size);
}
break;
case MKBETAG('S', 'T', 'V', 'I'):
@@ -476,6 +480,9 @@ static int ffm2_read_header(AVFormatContext *s)
avio_seek(pb, next, SEEK_SET);
}

for (i = 0; i < s->nb_streams; i++)
avcodec_parameters_from_context(s->streams[i]->codecpar, s->streams[i]->codec);

/* get until end of block reached */
while ((avio_tell(pb) % ffm->packet_size) != 0 && !pb->eof_reached)
avio_r8(pb);
@@ -617,9 +624,15 @@ static int ffm_read_header(AVFormatContext *s)
goto fail;
}
if (codec->flags & AV_CODEC_FLAG_GLOBAL_HEADER) {
if (ff_get_extradata(codec, pb, avio_rb32(pb)) < 0)
int size = avio_rb32(pb);
codec->extradata = av_mallocz(size + AV_INPUT_BUFFER_PADDING_SIZE);
if (!codec->extradata)
return AVERROR(ENOMEM);
codec->extradata_size = size;
avio_read(pb, codec->extradata, size);
}

avcodec_parameters_from_context(st->codecpar, codec);
}

/* get until end of block reached */
@@ -1,3 +1,3 @@
e63c16b5f0ad5015304fc4009fdb33ca *./tests/data/lavf/lavf.ffm
79674a5219d00e1d2221a29157b35eb4 *./tests/data/lavf/lavf.ffm
376832 ./tests/data/lavf/lavf.ffm
./tests/data/lavf/lavf.ffm CRC=0x000e23ae

0 comments on commit a3b54e8

Please sign in to comment.