summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Bœsch <clement.boesch@smartjog.com>2012-03-19 14:49:04 +0100
committerClément Bœsch <ubitux@gmail.com>2012-03-20 07:53:40 +0100
commit9dd649c004f9dbb4ae818a7eef1fc4bfc2b9861e (patch)
tree9671fdfd4be75769ae723afc494cb34bce5a3e73
parent30f2d97afe14ea7c067b22c4728ebe26eef6cc65 (diff)
flv: clarify use of video info/cmd frame.
Also add generated key frame in the enum, and doxycomment the existing ones. Descriptions are directly taken from the public specifications.
-rw-r--r--libavformat/flv.h8
-rw-r--r--libavformat/flvdec.c2
2 files changed, 6 insertions, 4 deletions
diff --git a/libavformat/flv.h b/libavformat/flv.h
index ef8eaabb44..c9f7b83de0 100644
--- a/libavformat/flv.h
+++ b/libavformat/flv.h
@@ -110,9 +110,11 @@ enum {
};
enum {
- FLV_FRAME_KEY = 1 << FLV_VIDEO_FRAMETYPE_OFFSET,
- FLV_FRAME_INTER = 2 << FLV_VIDEO_FRAMETYPE_OFFSET,
- FLV_FRAME_DISP_INTER = 3 << FLV_VIDEO_FRAMETYPE_OFFSET,
+ FLV_FRAME_KEY = 1 << FLV_VIDEO_FRAMETYPE_OFFSET, ///< key frame (for AVC, a seekable frame)
+ FLV_FRAME_INTER = 2 << FLV_VIDEO_FRAMETYPE_OFFSET, ///< inter frame (for AVC, a non-seekable frame)
+ FLV_FRAME_DISP_INTER = 3 << FLV_VIDEO_FRAMETYPE_OFFSET, ///< disposable inter frame (H.263 only)
+ FLV_FRAME_GENERATED_KEY = 4 << FLV_VIDEO_FRAMETYPE_OFFSET, ///< generated key frame (reserved for server use only)
+ FLV_FRAME_VIDEO_INFO_CMD = 5 << FLV_VIDEO_FRAMETYPE_OFFSET, ///< video info/command frame
};
typedef enum {
diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index 8ae79501b4..94fd76d666 100644
--- a/libavformat/flvdec.c
+++ b/libavformat/flvdec.c
@@ -518,7 +518,7 @@ static int flv_read_packet(AVFormatContext *s, AVPacket *pkt)
stream_type=FLV_STREAM_TYPE_VIDEO;
flags = avio_r8(s->pb);
size--;
- if ((flags & 0xf0) == 0x50) /* video info / command frame */
+ if ((flags & FLV_VIDEO_FRAMETYPE_MASK) == FLV_FRAME_VIDEO_INFO_CMD)
goto skip;
} else if (type == FLV_TAG_TYPE_META) {
if (size > 13+1+4 && dts == 0) { // Header-type metadata stuff