avformat/flvdec: check FLVHeader PreviousTagSize0
refer to SPEC: Annex E. The FLV File Format said: E.3 TheFLVFileBody have a table: Field Type Comment PreviousTagSize0 UI32 Always 0 Reviewed-by: Bela Bodecs <bodecsb@vivanet.hu> Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com> Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
This commit is contained in:
@@ -709,6 +709,7 @@ static int flv_read_header(AVFormatContext *s)
|
|||||||
int flags;
|
int flags;
|
||||||
FLVContext *flv = s->priv_data;
|
FLVContext *flv = s->priv_data;
|
||||||
int offset;
|
int offset;
|
||||||
|
int pre_tag_size = 0;
|
||||||
|
|
||||||
avio_skip(s->pb, 4);
|
avio_skip(s->pb, 4);
|
||||||
flags = avio_r8(s->pb);
|
flags = avio_r8(s->pb);
|
||||||
@@ -719,7 +720,16 @@ static int flv_read_header(AVFormatContext *s)
|
|||||||
|
|
||||||
offset = avio_rb32(s->pb);
|
offset = avio_rb32(s->pb);
|
||||||
avio_seek(s->pb, offset, SEEK_SET);
|
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_WARNING, "Read FLV header error, input file is not a standard flv format, first PreviousTagSize0 always is 0\n");
|
||||||
|
}
|
||||||
|
|
||||||
s->start_time = 0;
|
s->start_time = 0;
|
||||||
flv->sum_flv_tag_size = 0;
|
flv->sum_flv_tag_size = 0;
|
||||||
|
Reference in New Issue
Block a user