diff options
author | Xiang, Haihao <haihao.xiang@intel.com> | 2013-06-14 14:54:53 +0800 |
---|---|---|
committer | Xiang, Haihao <haihao.xiang@intel.com> | 2013-06-21 12:19:40 +0800 |
commit | 74ded99be2e9589ac1ac5766c5f1bee7b3f9a4fa (patch) | |
tree | f706865eaf35cf9d82029eee6aaf94a63d5e1695 | |
parent | 9557830195b910111e64dd491313ca9577edf7c8 (diff) |
VEBOX: output 2 frames for advanced DI
Both current frame and previous frame are outputted
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
-rw-r--r-- | src/gen75_vpp_vebox.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gen75_vpp_vebox.c b/src/gen75_vpp_vebox.c index c84044b..53bbf99 100644 --- a/src/gen75_vpp_vebox.c +++ b/src/gen75_vpp_vebox.c @@ -527,7 +527,8 @@ void hsw_veb_state_command(VADriverContextP ctx, struct intel_vebox_context *pro unsigned int is_first_frame = !!((proc_ctx->frame_order == -1) && (is_di_enabled || is_dn_enabled)); - + unsigned int di_output_frames_flag = 2; /* Output Current Frame Only */ + if(proc_ctx->fourcc_input != proc_ctx->fourcc_output || (is_dn_enabled == 0 && is_di_enabled == 0)){ is_iecp_enabled = 1; @@ -541,6 +542,10 @@ void hsw_veb_state_command(VADriverContextP ctx, struct intel_vebox_context *pro if (di_param->algorithm == VAProcDeinterlacingBob) is_first_frame = 1; + + if (di_param->algorithm == VAProcDeinterlacingMotionAdaptive && + proc_ctx->frame_order != -1) + di_output_frames_flag = 0; /* Output both Current Frame and Previous Frame */ } BEGIN_VEB_BATCH(batch, 6); @@ -549,7 +554,7 @@ void hsw_veb_state_command(VADriverContextP ctx, struct intel_vebox_context *pro 0 << 26 | // state surface control bits 0 << 11 | // reserved. 0 << 10 | // pipe sync disable - 2 << 8 | // DI output frame + di_output_frames_flag << 8 | // DI output frame 1 << 7 | // 444->422 downsample method 1 << 6 | // 422->420 downsample method is_first_frame << 5 | // DN/DI first frame |