summaryrefslogtreecommitdiff
path: root/src/gen75_vpp_vebox.h
diff options
context:
space:
mode:
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>2014-08-11 13:55:37 +0200
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>2014-10-28 11:37:37 +0100
commitc1aaeb7b27566afd1946df021efca44cad15b658 (patch)
treedd8c669dc830bffe3b59e48fff1ed5547aa6bf5b /src/gen75_vpp_vebox.h
parent225a9645c4033d534f1b2b116b2ded7bc39a55f9 (diff)
vebox: factor out deinterlacing code, drop broken MADI/MCDI support.
Completely rework the VEBOX code to factor out and improve the various deinterlacing algorithms in particular. Introduce temporary variables that are going to be live for the current VPP processing call. Drop MADI/MCDI support for now, as it never really worked. Initial focus was to definitively fix first vs. second field detection code, thus allowing for multiple VEBOX calls with an additional format conversion away. Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Diffstat (limited to 'src/gen75_vpp_vebox.h')
-rw-r--r--src/gen75_vpp_vebox.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/gen75_vpp_vebox.h b/src/gen75_vpp_vebox.h
index 4c763e4..35c657d 100644
--- a/src/gen75_vpp_vebox.h
+++ b/src/gen75_vpp_vebox.h
@@ -89,9 +89,9 @@ enum SURFACE_FORMAT{
};
typedef struct veb_frame_store {
- VASurfaceID surface_id;
- unsigned int is_internal_surface;
struct object_surface *obj_surface;
+ VASurfaceID surface_id; /* always relative to the input surface */
+ unsigned int is_internal_surface;
} VEBFrameStore;
typedef struct veb_buffer {
@@ -129,8 +129,8 @@ struct intel_vebox_context
VEBBuffer vertex_state_table;
unsigned int filters_mask;
- int frame_order;
int current_output;
+ int current_output_type; /* 0:Both, 1:Previous, 2:Current */
VAProcPipelineParameterBuffer * pipeline_param;
void * filter_dn;
@@ -142,6 +142,13 @@ struct intel_vebox_context
unsigned int filter_iecp_amp_num_elements;
unsigned char format_convert_flags;
+
+ /* Temporary flags live until the current picture is processed */
+ unsigned int is_iecp_enabled : 1;
+ unsigned int is_dn_enabled : 1;
+ unsigned int is_di_enabled : 1;
+ unsigned int is_first_frame : 1;
+ unsigned int is_second_field : 1;
};
VAStatus gen75_vebox_process_picture(VADriverContextP ctx,