[FFmpeg-cvslog] flv: clarify use of video info/cmd frame.

Clément Bœsch git at videolan.org
Tue Mar 20 08:00:13 CET 2012


ffmpeg | branch: master | Clément Bœsch <clement.boesch at smartjog.com> | Mon Mar 19 14:49:04 2012 +0100| [9dd649c004f9dbb4ae818a7eef1fc4bfc2b9861e] | committer: Clément Bœsch

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.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9dd649c004f9dbb4ae818a7eef1fc4bfc2b9861e
---

 libavformat/flv.h    |    8 +++++---
 libavformat/flvdec.c |    2 +-
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/libavformat/flv.h b/libavformat/flv.h
index ef8eaab..c9f7b83 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 8ae7950..94fd76d 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



More information about the ffmpeg-cvslog mailing list