Fix build with older VA-API (libva).
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>
Tue, 14 Feb 2012 13:16:31 +0000 (14:16 +0100)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Tue, 14 Feb 2012 13:16:31 +0000 (14:16 +0100)
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
configure.ac
src/gen7_mfd.c
src/i965_drv_video.c

index 436181f..2b2ca6d 100644 (file)
@@ -89,6 +89,28 @@ fi
 AC_MSG_RESULT([$LIBVA_DRIVERS_PATH])
 AC_SUBST(LIBVA_DRIVERS_PATH)
 
+dnl Check for JPEG decoding API
+AC_CACHE_CHECK([for JPEG decoding API], ac_cv_have_jpeg_decoding_api, [
+    saved_CFLAGS="$CFLAGS"
+    CFLAGS="$CFLAGS $LIBVA_DEPS_CFLAGS"
+    saved_LIBS="$LIBS"
+    LIBS="$CFLAGS $LIBVA_DEPS_LIBS"
+    AC_TRY_COMPILE(
+        [#include <va/va.h>],
+        [VAPictureParameterBufferJPEG pic_param;
+         VASliceParameterBufferJPEG slice_param;
+         VAIQMatrixBufferJPEG iq_matrix;],
+        [ac_cv_have_jpeg_decoding_api="yes"],
+        [ac_cv_have_jpeg_decoding_api="no"]
+    )
+    CFLAGS="$saved_CFLAGS"
+    LIBS="$saved_LIBS"
+])
+if test "$ac_cv_have_jpeg_decoding_api" = "yes"; then
+    AC_DEFINE(HAVE_JPEG_DECODING, 1,
+        [Defined to 1 if VA-API exposes JPEG decoding])
+fi
+
 AC_OUTPUT([
     Makefile
     debian.upstream/Makefile 
index c9dd779..e36af34 100644 (file)
@@ -1923,6 +1923,7 @@ gen7_mfd_vc1_decode_picture(VADriverContextP ctx,
     intel_batchbuffer_flush(batch);
 }
 
+#ifdef HAVE_JPEG_DECODING
 static void
 gen7_mfd_jpeg_decode_init(VADriverContextP ctx,
                           struct decode_state *decode_state,
@@ -2709,6 +2710,7 @@ gen7_mfd_jpeg_decode_picture(VADriverContextP ctx,
     intel_batchbuffer_end_atomic(batch);
     intel_batchbuffer_flush(batch);
 }
+#endif
 
 static void 
 gen7_mfd_decode_picture(VADriverContextP ctx, 
@@ -2740,9 +2742,11 @@ gen7_mfd_decode_picture(VADriverContextP ctx,
         gen7_mfd_vc1_decode_picture(ctx, decode_state, gen7_mfd_context);
         break;
 
+#ifdef HAVE_JPEG_DECODING
     case VAProfileJPEGBaseline:
         gen7_mfd_jpeg_decode_picture(ctx, decode_state, gen7_mfd_context);
         break;
+#endif
 
     default:
         assert(0);
index 91dab20..2e7cc85 100644 (file)
@@ -970,7 +970,9 @@ i965_create_buffer_internal(VADriverContextP ctx,
     case VAEncSequenceParameterBufferType:
     case VAEncPictureParameterBufferType:
     case VAEncSliceParameterBufferType:
+#ifdef HAVE_JPEG_DECODING
     case VAHuffmanTableBufferType:
+#endif
         /* Ok */
         break;
 
@@ -1317,9 +1319,11 @@ i965_decoder_render_picture(VADriverContextP ctx,
             vaStatus = I965_RENDER_DECODE_BUFFER(slice_data);
             break;
 
+#ifdef HAVE_JPEG_DECODING
         case VAHuffmanTableBufferType:
             vaStatus = I965_RENDER_DECODE_BUFFER(huffman_table);
             break;
+#endif
 
         default:
             vaStatus = VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE;