[FFmpeg-devel] [PATCH] avformat/flvdec: check FLVHeader PreviousTagSize0
Steven Liu
lingjiujianke at gmail.com
Sat Mar 25 10:55:19 EET 2017
2017-03-25 16:09 GMT+08:00 Hendrik Leppkes <h.leppkes at gmail.com>:
> On Sat, Mar 25, 2017 at 9:01 AM, Steven Liu <lq at 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 <lq at 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.
>
What about give a warning message and do not break?
After all the PreviousTagSize0 should always 0.
> - Hendrik
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
More information about the ffmpeg-devel
mailing list