OSDN Git Service

avformat/flvdec: read the correct bits into the tag type
authorSteven Liu <lingjiujianke@gmail.com>
Thu, 4 Sep 2014 12:23:19 +0000 (20:23 +0800)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 4 Sep 2014 12:54:23 +0000 (14:54 +0200)
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@chinacache.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/flvdec.c

index 8d9ed8b..12d25b2 100644 (file)
@@ -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;