build: consolidate the VA sub API includes
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Thu, 10 Aug 2017 11:11:04 +0000 (13:11 +0200)
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Sun, 13 Aug 2017 16:08:19 +0000 (18:08 +0200)
Include all VA sub APIs headers in a single point (gstvaapicompat.h),
since they are all already included in va.h after VA-API 0.38.

https://bugzilla.gnome.org/show_bug.cgi?id=786119

14 files changed:
gst-libs/gst/vaapi/gstvaapicodec_objects.h
gst-libs/gst/vaapi/gstvaapicompat.h
gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c
gst-libs/gst/vaapi/gstvaapidecoder_vp8.c
gst-libs/gst/vaapi/gstvaapidecoder_vp9.c
gst-libs/gst/vaapi/gstvaapiencoder_h264.c
gst-libs/gst/vaapi/gstvaapiencoder_h265.c
gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c
gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c
gst-libs/gst/vaapi/gstvaapiencoder_vp8.c
gst-libs/gst/vaapi/gstvaapiencoder_vp9.c
gst-libs/gst/vaapi/gstvaapifilter.c
gst-libs/gst/vaapi/gstvaapiutils.c
meson.build

index 163ebf7..2d081bd 100644 (file)
@@ -27,9 +27,6 @@
 
 #include <gst/vaapi/gstvaapiminiobject.h>
 #include <gst/vaapi/gstvaapidecoder.h>
-#if USE_VP8_DECODER
-#include <va/va_dec_vp8.h>
-#endif
 
 G_BEGIN_DECLS
 
index 781e30d..1e5a302 100644 (file)
 #include <va/va_drmcommon.h>
 #endif
 
+/* VA-API < 0.37 doesn't include sub core APIs in va.h */
+#if !VA_CHECK_VERSION(0,37,0)
 #ifdef HAVE_VA_VA_DEC_HEVC_H
 # include <va/va_dec_hevc.h>
 #endif
+#ifdef HAVE_VA_VA_DEC_JPEG_H
+# include <va/va_dec_jpeg.h>
+#endif
+#ifdef HAVE_VA_VA_DEC_VP8_H
+# include <va/va_dec_vp8.h>
+#endif
+#ifdef HAVE_VA_VA_DEC_VP9_H
+# include <va/va_dec_vp9.h>
+#endif
+#ifdef HAVE_VA_VA_ENC_HEVC_H
+# include <va/va_enc_hevc.h>
+#endif
+#ifdef HAVE_VA_VA_ENC_H264_H
+# include <va/va_enc_h264.h>
+#endif
+#ifdef HAVE_VA_VA_ENC_JPEG_H
+# include <va/va_enc_jpeg.h>
+#endif
+#ifdef HAVE_VA_VA_ENC_MPEG2_H
+# include <va/va_enc_mpeg2.h>
+#endif
+#ifdef HAVE_VA_VA_ENC_VP8_H
+# include <va/va_enc_vp8.h>
+#endif
+#ifdef HAVE_VA_VA_ENC_VP9_H
+# include <va/va_enc_vp9.h>
+#endif
+#ifdef HAVE_VA_VA_VPP_H
+# include <va/va_vpp.h>
+#endif
+#endif
 
 #endif /* GST_VAAPI_COMPAT_H */
index bef1eb7..51d9aeb 100644 (file)
 #include "gstvaapidisplay_priv.h"
 #include "gstvaapiobject_priv.h"
 
-#ifdef HAVE_VA_VA_DEC_JPEG_H
-# include <va/va_dec_jpeg.h>
-#endif
-
 #define DEBUG 1
 #include "gstvaapidebug.h"
 
index cac5036..1503458 100644 (file)
@@ -35,9 +35,6 @@
 #include "gstvaapiobject_priv.h"
 
 #include "gstvaapicompat.h"
-#ifdef HAVE_VA_VA_DEC_VP8_H
-#include <va/va_dec_vp8.h>
-#endif
 
 #define DEBUG 1
 #include "gstvaapidebug.h"
index 1376834..c2cc928 100644 (file)
@@ -34,9 +34,6 @@
 #include "gstvaapiobject_priv.h"
 
 #include "gstvaapicompat.h"
-#ifdef HAVE_VA_VA_DEC_VP9_H
-#include <va/va_dec_vp9.h>
-#endif
 
 #define DEBUG 1
 #include "gstvaapidebug.h"
index dab3c14..04560aa 100644 (file)
@@ -28,7 +28,6 @@
 
 #include "sysdeps.h"
 #include <va/va.h>
-#include <va/va_enc_h264.h>
 #include <gst/base/gstbitwriter.h>
 #include <gst/codecparsers/gsth264parser.h>
 #include "gstvaapicompat.h"
index 673145c..5309c22 100644 (file)
@@ -23,7 +23,6 @@
 #include "sysdeps.h"
 #include <math.h>
 #include <va/va.h>
-#include <va/va_enc_hevc.h>
 #include <gst/base/gstbitwriter.h>
 #include <gst/codecparsers/gsth265parser.h>
 #include "gstvaapicompat.h"
index 73bee56..399696c 100644 (file)
@@ -22,7 +22,6 @@
 
 #include "sysdeps.h"
 #include <va/va.h>
-#include <va/va_enc_jpeg.h>
 #include <gst/base/gstbitwriter.h>
 #include <gst/codecparsers/gstjpegparser.h>
 #include "gstvaapicompat.h"
index 04fbd0d..1f8b516 100644 (file)
@@ -24,7 +24,6 @@
 #include "sysdeps.h"
 #include <math.h>
 #include <va/va.h>
-#include <va/va_enc_mpeg2.h>
 #include <gst/base/gstbitwriter.h>
 #include "gstvaapicompat.h"
 #include "gstvaapiencoder_mpeg2.h"
index a448df8..088ca1d 100644 (file)
@@ -22,7 +22,6 @@
 
 #include "sysdeps.h"
 #include <va/va.h>
-#include <va/va_enc_vp8.h>
 #include <gst/base/gstbitwriter.h>
 #include <gst/codecparsers/gstvp8parser.h>
 #include "gstvaapicompat.h"
index 64ef1f3..af433cd 100644 (file)
@@ -22,7 +22,6 @@
 
 #include "sysdeps.h"
 #include <va/va.h>
-#include <va/va_enc_vp9.h>
 #include <gst/base/gstbitwriter.h>
 #include <gst/codecparsers/gstvp9parser.h>
 #include "gstvaapicompat.h"
index da6f733..388fff3 100644 (file)
@@ -21,6 +21,7 @@
  */
 
 #include "sysdeps.h"
+#include "gstvaapicompat.h"
 #include "gstvaapifilter.h"
 #include "gstvaapiutils.h"
 #include "gstvaapivalue.h"
 #include "gstvaapisurface_priv.h"
 #include "gstvaapiutils_core.h"
 
-#if USE_VA_VPP
-# include <va/va_vpp.h>
-#endif
-
 #define DEBUG 1
 #include "gstvaapidebug.h"
 
index c24bed7..616a638 100644 (file)
 #include <stdio.h>
 #include <stdarg.h>
 
-#if USE_VA_VPP
-# include <va/va_vpp.h>
-#endif
-
 #define DEBUG 1
 #include "gstvaapidebug.h"
 
index 6f335b3..310e61d 100644 (file)
@@ -135,6 +135,37 @@ if runcmd.returncode() == 0
   cdata.set('VA_DRIVERS_PATH', '"@0@"'.format(runcmd.stdout().strip()))
 endif
 
+if libva_dep.version().version_compare('< 0.38.0')
+  check_headers = [
+    [USE_H265_DECODER, 'HAVE_VA_VA_DEC_HEVC_H'],
+    [USE_H265_ENCODER, 'HAVE_VA_VA_ENC_HEVC_H'],
+    [USE_JPEG_DECODER, 'HAVE_VA_VA_DEC_JPEG_H'],
+    [USE_JPEG_ENCODER, 'HAVE_VA_VA_ENC_JPEG_H'],
+    [USE_VP8_DECODER, 'HAVE_VA_VA_DEC_VP8_H'],
+    [USE_VP8_ENCODER, 'HAVE_VA_VA_ENC_VP8_H'],
+    [USE_VP9_DECODER, 'HAVE_VA_VA_DEC_VP9_H'],
+    [USE_VP9_ENCODER, 'HAVE_VA_VA_DEC_VP9_H'],
+    [USE_VPP, 'HAVE_VA_VA_VPP_H'],
+  ]
+  foreach h : check_headers
+    if h.get(0)
+      cdata.set(h.get(1), 1)
+    endif
+  endforeach
+
+  if USE_ENCODERS
+    check_headers = [
+      ['HAVE_VA_VA_ENC_MPEG2_H', 'va/va_enc_mpeg2.h'],
+      ['HAVE_VA_VA_ENC_H264_H', 'va/va_enc_h264.h'],
+    ]
+    foreach h : check_headers
+      if cc.has_header(h.get(1), dependencies: libva_dep, prefix: '#include <va/va.h>')
+        cdata.set(h.get(0), 1)
+      endif
+    endforeach
+  endif
+endif
+
 api_version = '1.0'
 soversion = 0
 # maintaining compatibility with the previous libtool versioning