Reinitialize the h264 decoder context on every valid aspect ratio
authorJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Thu, 18 Mar 2010 23:36:54 +0000 (23:36 +0000)
committerStefano Sabatini <stefano.sabatini-lala@poste.it>
Thu, 18 Mar 2010 23:36:54 +0000 (23:36 +0000)
change, not only size changes.

Patch by Janusz Krzysztofik foo=zyszt <jkr$foo@tis.icnet.pl>.

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

libavcodec/h264.c

index 9fe7c22..4cd2933 100644 (file)
@@ -1774,7 +1774,8 @@ static int decode_slice_header(H264Context *h, H264Context *h0){
         s->height= 16*s->mb_height - 4*FFMIN(h->sps.crop_bottom, 3);
 
     if (s->context_initialized
-        && (   s->width != s->avctx->width || s->height != s->avctx->height)) {
+        && (   s->width != s->avctx->width || s->height != s->avctx->height
+            || av_cmp_q(h->sps.sar, s->avctx->sample_aspect_ratio))) {
         if(h != h0)
             return -1;   // width / height changed during parallelized decoding
         free_tables(h);