[FFmpeg-devel] refine the flv tagtype read for check as spec
Steven Liu
lingjiujianke at gmail.com
Thu Sep 4 03:46:48 CEST 2014
from the flv spec, the flvtag define the tagtype as one byte,
the spec desc is:
Reserved UB[2] Reserved for FMS, should be 0
Filter UB[1] Indicates if packets are filtered.
0 = No pre-processing required.
1 = Pre-processing (such as decryption) of the packet is
required before it can be rendered.
Shall be 0 in unencrypted files, and 1 for encrypted
tags.
See Annex F. FLV Encryption for the use of filters.
TagType UB[5] Type of contents in this tag. The following types are
defined:
8 = audio
9 = video
18 = script data
Signed-off-by: Steven Liu <qi.liu at chinacache.com>
---
libavformat/flvdec.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index 8d9ed8b..a0550b4 100644
--- a/libavformat/flvdec.c
+++ b/libavformat/flvdec.c
@@ -777,7 +777,7 @@ static int flv_read_packet(AVFormatContext *s, AVPacket
*pkt)
/* pkt size is repeated at end. skip it */
for (;; avio_skip(s->pb, 4)) {
pos = avio_tell(s->pb);
- type = avio_r8(s->pb);
+ type = (avio_r8(s->pb) & 0x1F);
size = avio_rb24(s->pb);
dts = avio_rb24(s->pb);
dts |= avio_r8(s->pb) << 24;
@@ -940,7 +940,7 @@ retry_duration:
if (st->codec->codec_id == AV_CODEC_ID_AAC ||
st->codec->codec_id == AV_CODEC_ID_H264 ||
st->codec->codec_id == AV_CODEC_ID_MPEG4) {
- int type = avio_r8(s->pb);
+ type = avio_r8(s->pb);
size--;
if (st->codec->codec_id == AV_CODEC_ID_H264 || st->codec->codec_id
== AV_CODEC_ID_MPEG4) {
// sign extension
--
1.7.1
More information about the ffmpeg-devel
mailing list