On 04.11.2016 22:28, Andreas Cadhalpun wrote: > Otherwise the codec context and codecpar might disagree on the codec id, > triggering asserts in av_parser_parse2. > > Signed-off-by: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> > --- > libavformat/flvdec.c | 16 ++++++++++++---- > 1 file changed, 12 insertions(+), 4 deletions(-) > > diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c > index e53c345..4ba7fc8 100644 > --- a/libavformat/flvdec.c > +++ b/libavformat/flvdec.c > @@ -289,7 +289,9 @@ static int flv_same_video_codec(AVCodecParameters *vpar, > int flags) > static int flv_set_video_codec(AVFormatContext *s, AVStream *vstream, > int flv_codecid, int read) > { > + int ret = 0; > AVCodecParameters *par = vstream->codecpar; > + enum AVCodecID old_codec_id = vstream->codecpar->codec_id; > switch (flv_codecid) { > case FLV_CODECID_H263: > par->codec_id = AV_CODEC_ID_FLV1; > @@ -317,20 +319,26 @@ static int flv_set_video_codec(AVFormatContext *s, > AVStream *vstream, > else > avio_skip(s->pb, 1); > } > - return 1; // 1 byte body size adjustment for flv_read_packet() > + ret = 1; // 1 byte body size adjustment for flv_read_packet() > + break; > case FLV_CODECID_H264: > par->codec_id = AV_CODEC_ID_H264; > vstream->need_parsing = AVSTREAM_PARSE_HEADERS; > - return 3; // not 4, reading packet type will consume one byte > + ret = 3; // not 4, reading packet type will consume one byte > + break; > case FLV_CODECID_MPEG4: > par->codec_id = AV_CODEC_ID_MPEG4; > - return 3; > + ret = 3; > + break; > default: > avpriv_request_sample(s, "Video codec (%x)", flv_codecid); > par->codec_tag = flv_codecid; > } > > - return 0; > + if (par->codec_id != old_codec_id) > + vstream->internal->need_context_update = 1; > + > + return ret; > } > > static int amf_get_string(AVIOContext *ioc, char *buffer, int buffsize) >
Ping. I intend to apply this in a few days. Best regards, Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel