return;
}
- VAProcColorStandardType in_color_std = proc_ctx->pipeline_param->surface_color_standard;
- VAProcColorStandardType out_color_std = proc_ctx->pipeline_param->output_color_standard;
- assert(in_color_std == out_color_std);
-
if(proc_ctx->fourcc_input == VA_FOURCC('R','G','B','A') &&
(proc_ctx->fourcc_output == VA_FOURCC('N','V','1','2') ||
proc_ctx->fourcc_output == VA_FOURCC('Y','V','1','2') ||
dri_bo_unmap(dndi_bo);
}
- if(proc_ctx->filters_mask & 0x0000ff00 ||
- proc_ctx->fourcc_input != proc_ctx->fourcc_output) {
+ if(proc_ctx->filters_mask & 0x0000ff00) {
dri_bo *iecp_bo = proc_ctx->iecp_state_table.bo;
dri_bo_map(iecp_bo, 1);
proc_ctx->iecp_state_table.ptr = iecp_bo->virtual;
if(obj_surf_input->fourcc == VA_FOURCC('Y','V','1','2') ||
obj_surf_input->fourcc == VA_FOURCC('I','4','2','0') ||
obj_surf_input->fourcc == VA_FOURCC('I','M','C','1') ||
- obj_surf_input->fourcc == VA_FOURCC('I','M','C','3')){
+ obj_surf_input->fourcc == VA_FOURCC('I','M','C','3') ||
+ obj_surf_input->fourcc == VA_FOURCC('R','G','B','A')){
proc_ctx->format_convert_flags |= PRE_FORMAT_CONVERT;
- } else if(obj_surf_input->fourcc == VA_FOURCC('R','G','B','A') ||
- obj_surf_input->fourcc == VA_FOURCC('A','Y','U','V') ||
+ } else if(obj_surf_input->fourcc == VA_FOURCC('A','Y','U','V') ||
obj_surf_input->fourcc == VA_FOURCC('Y','U','Y','2') ||
obj_surf_input->fourcc == VA_FOURCC('N','V','1','2')){
// nothing to do here
if(obj_surf_output->fourcc == VA_FOURCC('Y','V','1','2') ||
obj_surf_output->fourcc == VA_FOURCC('I','4','2','0') ||
obj_surf_output->fourcc == VA_FOURCC('I','M','C','1') ||
- obj_surf_output->fourcc == VA_FOURCC('I','M','C','3')) {
+ obj_surf_output->fourcc == VA_FOURCC('I','M','C','3') ||
+ obj_surf_output->fourcc == VA_FOURCC('R','G','B','A')) {
proc_ctx->format_convert_flags |= POST_FORMAT_CONVERT;
- } else if(obj_surf_output->fourcc == VA_FOURCC('R','G','B','A') ||
- obj_surf_output->fourcc == VA_FOURCC('A','Y','U','V') ||
+ } else if(obj_surf_output->fourcc == VA_FOURCC('A','Y','U','V') ||
obj_surf_output->fourcc == VA_FOURCC('Y','U','Y','2') ||
obj_surf_output->fourcc == VA_FOURCC('N','V','1','2')){
/* Nothing to do here */
* so nothing will be done here */
} else if ((proc_ctx->format_convert_flags & POST_FORMAT_CONVERT) &&
!(proc_ctx->format_convert_flags & POST_SCALING_CONVERT)){
- /* convert and copy NV12 to YV12/IMC3/IMC2 output*/
+ /* convert and copy NV12 to YV12/IMC3/IMC2/RGBA output*/
vpp_surface_convert(ctx,proc_ctx->surface_output_object, obj_surface);
} else if(proc_ctx->format_convert_flags & POST_SCALING_CONVERT) {
- /* scaling, convert and copy NV12 to YV12/IMC3/IMC2/ output*/
+ /* scaling, convert and copy NV12 to YV12/IMC3/IMC2/RGBA output*/
assert(obj_surface->fourcc == VA_FOURCC('N','V','1','2'));
/* first step :surface scaling */
obj_surface->fourcc == VA_FOURCC('I','4','2','0') ||
obj_surface->fourcc == VA_FOURCC('Y','U','Y','2') ||
obj_surface->fourcc == VA_FOURCC('I','M','C','1') ||
- obj_surface->fourcc == VA_FOURCC('I','M','C','3')) {
+ obj_surface->fourcc == VA_FOURCC('I','M','C','3') ||
+ obj_surface->fourcc == VA_FOURCC('R','G','B','A')) {
vpp_surface_convert(ctx, proc_ctx->surface_output_object, proc_ctx->surface_output_scaled_object);
}else {
assert(0);
}
}
- if (pipe->surface_color_standard != VAProcColorStandardNone &&
- pipe->output_color_standard != VAProcColorStandardNone &&
- pipe->surface_color_standard != pipe->output_color_standard)
- proc_ctx->filters_mask |= VPP_IECP_CSC;
-
hsw_veb_pre_format_convert(ctx, proc_ctx);
hsw_veb_surface_reference(ctx, proc_ctx);