[Libva] [PATCH 1/2] Factor out type definitions (GenFrameStore, GenBuffer).

Gwenole Beauchesne gb.devel at gmail.com
Mon Jan 30 10:26:16 PST 2012


---
 src/Makefile.am       |    1 +
 src/gen6_mfd.h        |   49 +++++++++----------------------------------------
 src/gen7_mfd.h        |   49 +++++++++----------------------------------------
 src/i965_decoder.h    |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 src/i965_media_h264.h |    6 ++----
 5 files changed, 67 insertions(+), 84 deletions(-)
 create mode 100644 src/i965_decoder.h

diff --git a/src/Makefile.am b/src/Makefile.am
index 0f61d5b..c3131a2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -78,6 +78,7 @@ source_h = \
 	i965_avc_bsd.h		\
 	i965_avc_hw_scoreboard.h\
 	i965_avc_ildb.h		\
+	i965_decoder.h		\
 	i965_defines.h          \
 	i965_drv_video.h        \
 	i965_encoder.h		\
diff --git a/src/gen6_mfd.h b/src/gen6_mfd.h
index 46bb0e4..bf06a00 100644
--- a/src/gen6_mfd.h
+++ b/src/gen6_mfd.h
@@ -33,6 +33,7 @@
 #include <drm.h>
 #include <i915_drm.h>
 #include <intel_bufmgr.h>
+#include "i965_decoder.h"
 
 struct gen6_avc_surface
 {
@@ -58,7 +59,6 @@ struct gen6_vc1_surface
     int picture_type;
 };
 
-#define MAX_MFX_REFERENCE_SURFACES        16
 struct hw_context;
 
 struct gen6_mfd_context
@@ -69,45 +69,14 @@ struct gen6_mfd_context
         VAIQMatrixBufferMPEG2 mpeg2;
     } iq_matrix;
 
-    struct {
-        VASurfaceID surface_id;
-        int frame_store_id;
-    } reference_surface[MAX_MFX_REFERENCE_SURFACES];
-
-    struct {
-        dri_bo *bo;
-        int valid;
-    } post_deblocking_output;
-
-    struct {
-        dri_bo *bo;
-        int valid;
-    } pre_deblocking_output;
-
-    struct {
-        dri_bo *bo;
-        int valid;
-    } intra_row_store_scratch_buffer;
-
-    struct {
-        dri_bo *bo;
-        int valid;
-    } deblocking_filter_row_store_scratch_buffer;
-
-    struct {
-        dri_bo *bo;
-        int valid;
-    } bsd_mpc_row_store_scratch_buffer;
-
-    struct {
-        dri_bo *bo;
-        int valid;
-    } mpr_row_store_scratch_buffer;
-
-    struct {
-        dri_bo *bo;
-        int valid;
-    } bitplane_read_buffer;
+    GenFrameStore       reference_surface[MAX_GEN_REFERENCE_FRAMES];
+    GenBuffer           post_deblocking_output;
+    GenBuffer           pre_deblocking_output;
+    GenBuffer           intra_row_store_scratch_buffer;
+    GenBuffer           deblocking_filter_row_store_scratch_buffer;
+    GenBuffer           bsd_mpc_row_store_scratch_buffer;
+    GenBuffer           mpr_row_store_scratch_buffer;
+    GenBuffer           bitplane_read_buffer;
 };
 
 #endif /* _GEN6_MFD_H_ */
diff --git a/src/gen7_mfd.h b/src/gen7_mfd.h
index 088dbda..08658f4 100644
--- a/src/gen7_mfd.h
+++ b/src/gen7_mfd.h
@@ -33,6 +33,7 @@
 #include <drm.h>
 #include <i915_drm.h>
 #include <intel_bufmgr.h>
+#include "i965_decoder.h"
 
 struct gen7_avc_surface
 {
@@ -58,7 +59,6 @@ struct gen7_vc1_surface
     int picture_type;
 };
 
-#define MAX_MFX_REFERENCE_SURFACES        16
 struct hw_context;
 
 struct gen7_mfd_context
@@ -69,45 +69,14 @@ struct gen7_mfd_context
         VAIQMatrixBufferMPEG2 mpeg2;
     } iq_matrix;
 
-    struct {
-        VASurfaceID surface_id;
-        int frame_store_id;
-    } reference_surface[MAX_MFX_REFERENCE_SURFACES];
-
-    struct {
-        dri_bo *bo;
-        int valid;
-    } post_deblocking_output;
-
-    struct {
-        dri_bo *bo;
-        int valid;
-    } pre_deblocking_output;
-
-    struct {
-        dri_bo *bo;
-        int valid;
-    } intra_row_store_scratch_buffer;
-
-    struct {
-        dri_bo *bo;
-        int valid;
-    } deblocking_filter_row_store_scratch_buffer;
-
-    struct {
-        dri_bo *bo;
-        int valid;
-    } bsd_mpc_row_store_scratch_buffer;
-
-    struct {
-        dri_bo *bo;
-        int valid;
-    } mpr_row_store_scratch_buffer;
-
-    struct {
-        dri_bo *bo;
-        int valid;
-    } bitplane_read_buffer;
+    GenFrameStore       reference_surface[MAX_GEN_REFERENCE_FRAMES];
+    GenBuffer           post_deblocking_output;
+    GenBuffer           pre_deblocking_output;
+    GenBuffer           intra_row_store_scratch_buffer;
+    GenBuffer           deblocking_filter_row_store_scratch_buffer;
+    GenBuffer           bsd_mpc_row_store_scratch_buffer;
+    GenBuffer           mpr_row_store_scratch_buffer;
+    GenBuffer           bitplane_read_buffer;
 };
 
 #endif /* _GEN7_MFD_H_ */
diff --git a/src/i965_decoder.h b/src/i965_decoder.h
new file mode 100644
index 0000000..0e69e14
--- /dev/null
+++ b/src/i965_decoder.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2012 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef I965_DECODER_H
+#define I965_DECODER_H
+
+#include <stdint.h>
+#include <va/va.h>
+#include <intel_bufmgr.h>
+
+#define MAX_GEN_REFERENCE_FRAMES 16
+
+typedef struct gen_frame_store GenFrameStore;
+struct gen_frame_store {
+    VASurfaceID surface_id;
+    int         frame_store_id;
+};
+
+typedef struct gen_buffer GenBuffer;
+struct gen_buffer {
+    dri_bo     *bo;
+    int         valid;
+};
+
+#endif /* I965_DECODER_H */
diff --git a/src/i965_media_h264.h b/src/i965_media_h264.h
index 8a8dc8e..490213c 100644
--- a/src/i965_media_h264.h
+++ b/src/i965_media_h264.h
@@ -4,6 +4,7 @@
 #include "i965_avc_bsd.h"
 #include "i965_avc_hw_scoreboard.h"
 #include "i965_avc_ildb.h"
+#include "i965_decoder.h"
 
 struct decode_state;
 struct i965_media_context;
@@ -60,10 +61,7 @@ struct i965_h264_context
     struct i965_avc_hw_scoreboard_context avc_hw_scoreboard_context;
     struct i965_avc_ildb_context avc_ildb_context;
 
-    struct {
-        VASurfaceID surface_id;
-        int frame_store_id;
-    } fsid_list[16];
+    GenFrameStore fsid_list[MAX_GEN_REFERENCE_FRAMES];
 
     struct i965_kernel avc_kernels[NUM_H264_AVC_KERNELS];
     struct intel_batchbuffer *batch;
-- 
1.7.0.4



More information about the Libva mailing list