]> git.sesse.net Git - vlc/commitdiff
* src/misc/image.c: no need to restart a filter when only the image size changes.
authorGildas Bazin <gbazin@videolan.org>
Thu, 16 Dec 2004 17:41:09 +0000 (17:41 +0000)
committerGildas Bazin <gbazin@videolan.org>
Thu, 16 Dec 2004 17:41:09 +0000 (17:41 +0000)
src/misc/image.c

index b314dcf6dd04a9cd0861b6ba80ac00b124f5291b..7340e3331e41ef09223fd44bd41f410a10fe8a05 100644 (file)
@@ -137,13 +137,7 @@ static picture_t *ImageRead( image_handler_t *p_image, block_t *p_block,
         if( p_image->p_filter )
         if( p_image->p_filter->fmt_in.video.i_chroma !=
             p_image->p_dec->fmt_out.video.i_chroma ||
-            p_image->p_filter->fmt_in.video.i_width !=
-            p_image->p_dec->fmt_out.video.i_width ||
-            p_image->p_filter->fmt_in.video.i_height !=
-            p_image->p_dec->fmt_out.video.i_height ||
-            p_image->p_filter->fmt_out.video.i_chroma != p_fmt_out->i_chroma ||
-            p_image->p_filter->fmt_out.video.i_width != p_fmt_out->i_width ||
-            p_image->p_filter->fmt_out.video.i_height != p_fmt_out->i_height )
+            p_image->p_filter->fmt_out.video.i_chroma != p_fmt_out->i_chroma )
         {
             /* We need to restart a new filter */
             DeleteFilter( p_image->p_filter );
@@ -163,6 +157,14 @@ static picture_t *ImageRead( image_handler_t *p_image, block_t *p_block,
                 return NULL;
             }
         }
+        else
+        {
+            /* Filters should handle on-the-fly size changes */
+            p_image->p_filter->fmt_in = p_image->p_dec->fmt_out;
+            p_image->p_filter->fmt_out = p_image->p_dec->fmt_out;
+            p_image->p_filter->fmt_out.i_codec = p_fmt_out->i_chroma;
+            p_image->p_filter->fmt_out.video = *p_fmt_out;
+        }
 
         p_pic = p_image->p_filter->pf_video_filter( p_image->p_filter, p_pic );
         *p_fmt_out = p_image->p_filter->fmt_out.video;