summaryrefslogtreecommitdiff
path: root/src/gen6_mfc.h
diff options
context:
space:
mode:
authorZhao Yakui <yakui.zhao@intel.com>2012-07-19 21:15:56 -0400
committerXiang, Haihao <haihao.xiang@intel.com>2012-10-23 13:50:28 +0800
commitf5b00daf0d8bf2b42b1f98668b608d22da786457 (patch)
treed41c3eaf3f5409adbf5893a0061cb9981b257f32 /src/gen6_mfc.h
parentdd9f7b33a856c243a76b04e2fad5e09834c14712 (diff)
downloadlibva-intel-driver-f5b00daf0d8bf2b42b1f98668b608d22da786457.tar.gz
Add the separated files for media encoder on haswell
There exist a lot of changes about the media encoder between Haswell and IvyBridge. For example: the VME programming and the corresponding general media command. To be simple, the separated files are added for Haswell. Otherwise it has to consider the complex backward compatibility. Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Diffstat (limited to 'src/gen6_mfc.h')
-rw-r--r--src/gen6_mfc.h33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/gen6_mfc.h b/src/gen6_mfc.h
index 43f7082c..ba72a9ab 100644
--- a/src/gen6_mfc.h
+++ b/src/gen6_mfc.h
@@ -64,6 +64,36 @@ struct encode_state;
#define BIND_IDX_MFC_SLICE_HEADER 1
#define BIND_IDX_MFC_BATCHBUFFER 2
+#define CMD_LEN_IN_OWORD 4
+
+#define BRC_CLIP(x, min, max) \
+{ \
+ x = ((x > (max)) ? (max) : ((x < (min)) ? (min) : x)); \
+}
+
+#define BRC_P_B_QP_DIFF 4
+#define BRC_I_P_QP_DIFF 2
+#define BRC_I_B_QP_DIFF (BRC_I_P_QP_DIFF + BRC_P_B_QP_DIFF)
+
+#define BRC_PWEIGHT 0.6 /* weight if P slice with comparison to I slice */
+#define BRC_BWEIGHT 0.25 /* weight if B slice with comparison to I slice */
+
+#define BRC_QP_MAX_CHANGE 5 /* maximum qp modification */
+#define BRC_CY 0.1 /* weight for */
+#define BRC_CX_UNDERFLOW 5.
+#define BRC_CX_OVERFLOW -4.
+
+#define BRC_PI_0_5 1.5707963267948966192313216916398
+
+typedef enum _gen6_brc_status
+{
+ BRC_NO_HRD_VIOLATION = 0,
+ BRC_UNDERFLOW = 1,
+ BRC_OVERFLOW = 2,
+ BRC_UNDERFLOW_WITH_MAX_QP = 3,
+ BRC_OVERFLOW_WITH_MIN_QP = 4,
+} gen6_brc_status;
+
struct gen6_mfc_avc_surface_aux
{
dri_bo *dmv_top;
@@ -219,5 +249,6 @@ void gen6_mfc_context_destroy(void *context);
void gen6_mfc_brc_prepare(struct encode_state *encode_state,
struct intel_encoder_context *encoder_context);
-
+extern
+Bool gen75_mfc_context_init(VADriverContextP ctx, struct intel_encoder_context *encoder_context);
#endif /* _GEN6_MFC_BCS_H_ */