shorten: do not use block size to determine whether to read the header.
authorJustin Ruggles <justin.ruggles@gmail.com>
Sat, 17 Sep 2011 00:54:11 +0000 (20:54 -0400)
committerJustin Ruggles <justin.ruggles@gmail.com>
Thu, 20 Oct 2011 17:09:46 +0000 (13:09 -0400)
libavcodec/shorten.c

index 8031758..2732aab 100644 (file)
@@ -102,6 +102,7 @@ typedef struct ShortenContext {
     int blocksize;
     int bitindex;
     int32_t lpcqoffset;
+    int got_header;
 } ShortenContext;
 
 static av_cold int shorten_decode_init(AVCodecContext * avctx)
@@ -386,6 +387,8 @@ static int read_header(ShortenContext *s)
     s->cur_chan = 0;
     s->bitshift = 0;
 
+    s->got_header = 1;
+
     return 0;
 }
 
@@ -438,8 +441,7 @@ static int shorten_decode_frame(AVCodecContext *avctx,
     skip_bits(&s->gb, s->bitindex);
 
     /* process header or next subblock */
-    if (!s->blocksize)
-    {
+    if (!s->got_header) {
         if ((ret = read_header(s)) < 0)
             return ret;
         *data_size = 0;