Decode non-interleaved scans
authorKostya Shishkov <kostya.shishkov@gmail.com>
Tue, 21 Nov 2006 06:15:18 +0000 (06:15 +0000)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Tue, 21 Nov 2006 06:15:18 +0000 (06:15 +0000)
Originally committed as revision 7143 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/mjpeg.c

index b090f17f5f84ad2be320c275d24da33508bb84d6..5d819db1e4e0960a3fe6dc2cd944b707f0bca255 100644 (file)
@@ -1643,12 +1643,6 @@ static int mjpeg_decode_sos(MJpegDecodeContext *s)
         dprintf("decode_sos: invalid len (%d)\n", len);
         return -1;
     }
-    /* XXX: only interleaved scan accepted */
-    if ((nb_components != s->nb_components) && !s->ls && !s->progressive)
-    {
-        dprintf("decode_sos: components(%d) mismatch\n", nb_components);
-        return -1;
-    }
     vmax = 0;
     hmax = 0;
     for(i=0;i<nb_components;i++) {
@@ -1709,8 +1703,8 @@ static int mjpeg_decode_sos(MJpegDecodeContext *s)
         s->mb_width  = (s->width  + s->h_max * block_size - 1) / (s->h_max * block_size);
         s->mb_height = (s->height + s->v_max * block_size - 1) / (s->v_max * block_size);
     } else if(!s->ls) { /* skip this for JPEG-LS */
-        h = s->h_max / s->h_scount[s->comp_index[0]];
-        v = s->v_max / s->v_scount[s->comp_index[0]];
+        h = s->h_max / s->h_scount[0];
+        v = s->v_max / s->v_scount[0];
         s->mb_width  = (s->width  + h * block_size - 1) / (h * block_size);
         s->mb_height = (s->height + v * block_size - 1) / (v * block_size);
         s->nb_blocks[0] = 1;