]> git.sesse.net Git - vlc/commitdiff
Make most video filters bail if the inputand output orientation doesn't match.
authorMatthias Keiser <matthias@tristan-inc.com>
Thu, 6 Mar 2014 00:12:23 +0000 (01:12 +0100)
committerRémi Denis-Courmont <remi@remlab.net>
Thu, 6 Mar 2014 20:26:15 +0000 (22:26 +0200)
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
12 files changed:
modules/video_chroma/grey_yuv.c
modules/video_chroma/i420_rgb.c
modules/video_chroma/i420_yuy2.c
modules/video_chroma/i422_i420.c
modules/video_chroma/i422_yuy2.c
modules/video_chroma/omxdl.c
modules/video_chroma/rv32.c
modules/video_chroma/swscale.c
modules/video_chroma/yuy2_i420.c
modules/video_chroma/yuy2_i422.c
modules/video_filter/scale.c
modules/video_filter/yuvp.c

index b236cd7883c057acf402d705fd0b59a2f58b1e1b..d76eb880030b03a337592d6b5b4cbbe48b0208ac 100644 (file)
@@ -72,7 +72,8 @@ static int Activate( vlc_object_t *p_this )
     }
 
     if( p_filter->fmt_in.video.i_width != p_filter->fmt_out.video.i_width
-     || p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height )
+       || p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height
+       || p_filter->fmt_in.video.orientation != p_filter->fmt_out.video.orientation )
         return -1;
 
     switch( p_filter->fmt_in.video.i_chroma )
index c9dd5ed5610a5a0f002b5dfb87328ef3a06c79d5..194403b605311b2154a1171887d41b11fca44cae 100644 (file)
@@ -113,6 +113,11 @@ static int Activate( vlc_object_t *p_this )
         return VLC_EGENERIC;
     }
 
+    if( p_filter->fmt_in.video.orientation != p_filter->fmt_out.video.orientation )
+    {
+        return VLC_EGENERIC;
+    }
+
     switch( p_filter->fmt_in.video.i_chroma )
     {
         case VLC_CODEC_YV12:
index 7eb317c841c284f75e8e05d85fa0a5e945595aa9..5457f9572590d442088f498caf3f5fcd15798a25 100644 (file)
@@ -128,7 +128,8 @@ static int Activate( vlc_object_t *p_this )
     }
 
     if( p_filter->fmt_in.video.i_width != p_filter->fmt_out.video.i_width
-     || p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height )
+       || p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height
+       || p_filter->fmt_in.video.orientation != p_filter->fmt_out.video.orientation )
         return -1;
 
     switch( p_filter->fmt_in.video.i_chroma )
index 3c7d6068441f6c7de247eb4cc8df4fdf9bbf6276..b941907632c457e6a57b4e49e1078df64fa7af5e 100644 (file)
@@ -74,7 +74,8 @@ static int Activate( vlc_object_t *p_this )
     }
 
     if( p_filter->fmt_in.video.i_width != p_filter->fmt_out.video.i_width
-     || p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height )
+       || p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height
+       || p_filter->fmt_in.video.orientation != p_filter->fmt_out.video.orientation )
         return -1;
 
     switch( p_filter->fmt_in.video.i_chroma )
index 09166533d0b6c6b1974c55c0df7de4ff6b277bc3..383fb3e52cb43162b723da2db654b0a6e174f02e 100644 (file)
@@ -104,6 +104,11 @@ static int Activate( vlc_object_t *p_this )
         return -1;
     }
 
+    if( p_filter->fmt_in.video.orientation != p_filter->fmt_out.video.orientation )
+    {
+        return VLC_EGENERIC;
+    }
+
     switch( p_filter->fmt_in.video.i_chroma )
     {
         case VLC_CODEC_I422:
index b4b7cb04d8e1a9adb29b706bf4df867f02a1a6ab..3cc636290ba1998c3d5303821d5c0c69ad19c9a3 100644 (file)
@@ -249,6 +249,9 @@ static int Open (vlc_object_t *obj)
 {
     filter_t *filter = (filter_t *)obj;
 
+    if (filter->fmt_in.video.orientation != filter->fmt_out.video.orientation)
+        return VLC_EGENERIC;
+
     if ((filter->fmt_in.video.i_width != filter->fmt_out.video.i_width)
      || (filter->fmt_in.video.i_height != filter->fmt_out.video.i_height))
         return OpenScaler (obj);
index a9457c3552e3e4c5344844e0673f2d033ac95dfe..e74fa8d5278cad6452a3f608dbd058cc060679c3 100644 (file)
@@ -63,7 +63,8 @@ static int OpenFilter( vlc_object_t *p_this )
     }
 
     if( p_filter->fmt_in.video.i_width != p_filter->fmt_out.video.i_width
-     || p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height )
+     || p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height
+     || p_filter->fmt_in.video.orientation != p_filter->fmt_out.video.orientation)
         return -1;
 
     p_filter->pf_video_filter = Filter;
index 1751131edd3c62ab59d5589692b83bbffc381390..4b763dd6e65811091843b61894ec748dc63682ab 100644 (file)
@@ -355,12 +355,16 @@ static int Init( filter_t *p_filter )
     const video_format_t *p_fmti = &p_filter->fmt_in.video;
     video_format_t       *p_fmto = &p_filter->fmt_out.video;
 
+    if( p_fmti->orientation != p_fmto->orientation )
+        return VLC_EGENERIC;
+
     if( video_format_IsSimilar( p_fmti, &p_sys->fmt_in ) &&
         video_format_IsSimilar( p_fmto, &p_sys->fmt_out ) &&
         p_sys->ctx )
     {
         return VLC_SUCCESS;
     }
+
     Clean( p_filter );
 
     /* Init with new parameters */
index 2141fe3e318bd212bbccc7f59b64d7bc6d6d90d5..134cfa56b2c985e264e4f806dea7822d154305dc 100644 (file)
@@ -76,7 +76,8 @@ static int Activate( vlc_object_t *p_this )
     }
 
     if( p_filter->fmt_in.video.i_width != p_filter->fmt_out.video.i_width
-     || p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height )
+     || p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height
+     || p_filter->fmt_in.video.orientation != p_filter->fmt_out.video.orientation)
         return -1;
 
     switch( p_filter->fmt_out.video.i_chroma )
index 11181dfa1574d1cad765ef226490e2bce8e735c5..8ab149ea8d52d98dc22bd89026cc78611e1e34e8 100644 (file)
@@ -75,7 +75,8 @@ static int Activate( vlc_object_t *p_this )
     }
 
     if( p_filter->fmt_in.video.i_width != p_filter->fmt_out.video.i_width
-     || p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height )
+     || p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height
+     || p_filter->fmt_in.video.orientation != p_filter->fmt_out.video.orientation)
         return -1;
 
     switch( p_filter->fmt_out.video.i_chroma )
index a812fbb2c8298231516cb2fa7823d2148b518171..08842995a929dfc5319a05ff4f52cc51ae6ff227 100644 (file)
@@ -68,6 +68,9 @@ static int OpenFilter( vlc_object_t *p_this )
         return VLC_EGENERIC;
     }
 
+    if( p_filter->fmt_in.video.orientation != p_filter->fmt_out.video.orientation )
+        return VLC_EGENERIC;
+
     video_format_ScaleCropAr( &p_filter->fmt_out.video, &p_filter->fmt_in.video );
     p_filter->pf_video_filter = Filter;
 
index cfb95db86c553015217384e5445aad964672c820..c8ffbf203a70643988ca5751c001ce999fe09149 100644 (file)
@@ -69,7 +69,8 @@ static int Open( vlc_object_t *p_this )
           p_filter->fmt_out.video.i_chroma != VLC_CODEC_RGBA &&
           p_filter->fmt_out.video.i_chroma != VLC_CODEC_ARGB ) ||
         p_filter->fmt_in.video.i_width  != p_filter->fmt_out.video.i_width ||
-        p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height )
+        p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height ||
+        p_filter->fmt_in.video.orientation != p_filter->fmt_out.video.orientation )
     {
         return VLC_EGENERIC;
     }