]> git.sesse.net Git - vlc/blobdiff - modules/codec/ffmpeg/scale.c
modules/ffmpeg: Compensate for latest changes made to ffmpeg include directory structure.
[vlc] / modules / codec / ffmpeg / scale.c
index c9eafa06ebf0a845882ff62e34aa0e31fd364d68..cf9b419da0205964b60895ed415b0ce15367322c 100644 (file)
 /*****************************************************************************
  * Preamble
  *****************************************************************************/
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
 #include <vlc/vlc.h>
 #include <vlc_codec.h>
 #include <vlc_vout.h>
@@ -38,7 +42,7 @@
 
 #ifdef HAVE_FFMPEG_SWSCALE_H
 #   include <ffmpeg/swscale.h>
-#elif defined(HAVE_LIBSWSCALE_TREE)
+#elif defined(HAVE_LIBSWSCALE_TREE) || defined(HAVE_SWSCALE_H)
 #   include <swscale.h>
 #endif
 
@@ -83,7 +87,7 @@ int E_(OpenScaler)( vlc_object_t *p_this )
     filter_sys_t *p_sys;
     vlc_value_t val;
 
-    unsigned int i_fmt_in, i_fmt_out;
+    int i_fmt_in, i_fmt_out;
     unsigned int i_cpu;
     int i_sws_mode;
 
@@ -93,14 +97,11 @@ int E_(OpenScaler)( vlc_object_t *p_this )
 
     /* Supported Input formats: YV12, I420/IYUV, YUY2, UYVY, BGR32, BGR24,
      * BGR16, BGR15, RGB32, RGB24, Y8/Y800, YVU9/IF09 */
-    if( !(i_fmt_in = E_(GetFfmpegChroma)(p_filter->fmt_in.video.i_chroma)) )
-    {
-        return VLC_EGENERIC;
-    }
-
+    i_fmt_in = E_(GetFfmpegChroma)(p_filter->fmt_in.video.i_chroma);
     /* Supported output formats: YV12, I420/IYUV, YUY2, UYVY,
      * {BGR,RGB}{1,4,8,15,16,24,32}, Y8/Y800, YVU9/IF09 */
-    if( !(i_fmt_out = E_(GetFfmpegChroma)(p_filter->fmt_out.video.i_chroma)) )
+    i_fmt_out = E_(GetFfmpegChroma)(p_filter->fmt_out.video.i_chroma);
+    if( ( i_fmt_in < 0 ) || ( i_fmt_out < 0 ) )
     {
         return VLC_EGENERIC;
     }
@@ -122,10 +123,12 @@ int E_(OpenScaler)( vlc_object_t *p_this )
     {
         p_sys->i_cpu_mask |= SWS_CPU_CAPS_MMX;
     }
+#if (LIBSWSCALE_VERSION_INT >= ((0<<16)+(5<<8)+0))
     if( i_cpu & CPU_CAPABILITY_MMXEXT )
     {
         p_sys->i_cpu_mask |= SWS_CPU_CAPS_MMX2;
     }
+#endif
     if( i_cpu & CPU_CAPABILITY_3DNOW )
     {
         p_sys->i_cpu_mask |= SWS_CPU_CAPS_3DNOW;
@@ -211,15 +214,16 @@ static int CheckInit( filter_t *p_filter )
 {
     filter_sys_t *p_sys = p_filter->p_sys;
 
-    if( p_filter->fmt_in.video.i_width != p_sys->fmt_in.video.i_width ||
-        p_filter->fmt_in.video.i_height != p_sys->fmt_in.video.i_height ||
-        p_filter->fmt_out.video.i_width != p_sys->fmt_out.video.i_width ||
-        p_filter->fmt_out.video.i_height != p_sys->fmt_out.video.i_height )
+    if( ( p_filter->fmt_in.video.i_width != p_sys->fmt_in.video.i_width ) ||
+        ( p_filter->fmt_in.video.i_height != p_sys->fmt_in.video.i_height ) ||
+        ( p_filter->fmt_out.video.i_width != p_sys->fmt_out.video.i_width ) ||
+        ( p_filter->fmt_out.video.i_height != p_sys->fmt_out.video.i_height ) )
     {
-        unsigned int i_fmt_in, i_fmt_out;
+        int i_fmt_in, i_fmt_out;
 
-        if( !(i_fmt_in = E_(GetFfmpegChroma)(p_filter->fmt_in.video.i_chroma)) ||
-            !(i_fmt_out = E_(GetFfmpegChroma)(p_filter->fmt_out.video.i_chroma)) )
+        i_fmt_in = E_(GetFfmpegChroma)(p_filter->fmt_in.video.i_chroma);
+        i_fmt_out = E_(GetFfmpegChroma)(p_filter->fmt_out.video.i_chroma);
+        if( (i_fmt_in < 0) || (i_fmt_out < 0) )
         {
             msg_Err( p_filter, "format not supported" );
             return VLC_EGENERIC;
@@ -322,4 +326,3 @@ void E_(CloseScaler)( vlc_object_t *p_this )
 }
 
 #endif /* LIBSWSCALE_VERSION_INT >= ((0<<16)+(5<<8)+0) */
-