OSDN Git Service

vpp: add support for Motion-Compensated deinterlacing on Ivybridge.
authorGwenole Beauchesne <gb.devel@gmail.com>
Thu, 19 Mar 2015 06:02:56 +0000 (07:02 +0100)
committerXiang, Haihao <haihao.xiang@intel.com>
Mon, 25 May 2015 00:25:42 +0000 (08:25 +0800)
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
src/i965_device_info.c
src/i965_post_processing.c

index 9227d0b..13e3daa 100644 (file)
@@ -162,6 +162,7 @@ static struct hw_codec_info ivb_hw_codec_info = {
     .has_accelerated_putimage = 1,
     .has_tiled_surface = 1,
     .has_di_motion_adptive = 1,
+    .has_di_motion_compensated = 1,
 
     .num_filters = 2,
     .filters = {
index fc67a24..fdc9ff2 100755 (executable)
@@ -1210,6 +1210,7 @@ pp_dndi_context_init_surface_params(struct pp_dndi_context *dndi_ctx,
             dndi_ctx->is_first_frame = 1;
             break;
         case VAProcDeinterlacingMotionAdaptive:
+        case VAProcDeinterlacingMotionCompensated:
             fs = &dndi_ctx->frame_store[DNDI_FRAME_IN_CURRENT];
             if (fs->surface_id == VA_INVALID_ID)
                 dndi_ctx->is_first_frame = 1;
@@ -3884,7 +3885,8 @@ gen7_pp_nv12_dndi_initialize(VADriverContextP ctx, struct i965_post_processing_c
     sampler_dndi[index].dw6.dndi_stream_id = 1;
     sampler_dndi[index].dw6.dndi_first_frame = dndi_ctx->is_first_frame;
     sampler_dndi[index].dw6.progressive_dn = 0;
-    sampler_dndi[index].dw6.mcdi_enable = 0;
+    sampler_dndi[index].dw6.mcdi_enable =
+        (deint_params->algorithm == VAProcDeinterlacingMotionCompensated);
     sampler_dndi[index].dw6.fmd_tear_threshold = 2;
     sampler_dndi[index].dw6.cat_th1 = 0;
     sampler_dndi[index].dw6.fmd2_vertical_difference_threshold = 100;