On Sat, Mar 25, 2017 at 9:01 AM, Steven Liu <l...@chinaffmpeg.org> wrote: > refer to SPEC: > Annex E. The FLV File Format said: > E.3 TheFLVFileBody have a table: > Field Type Comment > PreviousTagSize0 UI32 Always 0 > > Signed-off-by: Steven Liu <l...@chinaffmpeg.org> > --- > libavformat/flvdec.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c > index cdcfb9c..ac74b45 100644 > --- a/libavformat/flvdec.c > +++ b/libavformat/flvdec.c > @@ -709,6 +709,7 @@ static int flv_read_header(AVFormatContext *s) > int flags; > FLVContext *flv = s->priv_data; > int offset; > + int pre_tag_size = 0; > > avio_skip(s->pb, 4); > flags = avio_r8(s->pb); > @@ -719,7 +720,17 @@ static int flv_read_header(AVFormatContext *s) > > offset = avio_rb32(s->pb); > avio_seek(s->pb, offset, SEEK_SET); > - avio_skip(s->pb, 4); > + > + /* Annex E. The FLV File Format > + * E.3 TheFLVFileBody > + * Field Type Comment > + * PreviousTagSize0 UI32 Always 0 > + * */ > + pre_tag_size = avio_rb32(s->pb); > + if (pre_tag_size) { > + av_log(s, AV_LOG_ERROR, "Read FLV header error, input file is not a > standard flv format, first PreviousTagSize0 always is 0\n"); > + return AVERROR_INVALIDDATA; > + } >
What does this exactly break if its not 0? Demuxers should try to be forgiving on non-standard files, so checking some spec limitation like that only makes sense if it has an actual impact on playability of the file. - Hendrik _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel