Take ring frame into account when demuxing.
authorKostya Shishkov <kostya.shishkov@gmail.com>
Thu, 23 Aug 2007 06:59:19 +0000 (06:59 +0000)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Thu, 23 Aug 2007 06:59:19 +0000 (06:59 +0000)
This fixes issue 97.

Originally committed as revision 10192 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/smacker.c

index 2b2166c..655e7fb 100644 (file)
@@ -28,6 +28,7 @@
 #include "bswap.h"
 
 #define SMACKER_PAL 0x01
+#define SMACKER_FLAG_RING_FRAME 0x01
 
 enum SAudFlags {
     SMK_AUD_PACKED  = 0x80000000,
@@ -112,6 +113,8 @@ static int smacker_read_header(AVFormatContext *s, AVFormatParameters *ap)
     smk->frames = get_le32(pb);
     smk->pts_inc = (int32_t)get_le32(pb);
     smk->flags = get_le32(pb);
+    if(smk->flags & SMACKER_FLAG_RING_FRAME)
+        smk->frames++;
     for(i = 0; i < 7; i++)
         smk->audio[i] = get_le32(pb);
     smk->treesize = get_le32(pb);