Hi,

2012/7/13 Zhao Halley <halley.z...@intel.com>:

> +    case VA_FOURCC('A','Y','U','V'):

Drop all references to AYUV, that's not is this patchset. :)

+ Add RGBX/BGRX image formats.

> +        case VA_FOURCC('R', 'G', 'B', 'A'):
> +        case VA_FOURCC('R', 'G', 'B', 'X'):
> +        case VA_FOURCC('B', 'G', 'R', 'A'):
> +        case VA_FOURCC('B', 'G', 'R', 'X'):
> +            obj_surface->y_cb_offset = 0;
> +            obj_surface->y_cr_offset = 0;
> +            obj_surface->cb_cr_width = obj_surface->orig_width ;
> +            obj_surface->cb_cr_height = obj_surface->orig_height;
> +            obj_surface->cb_cr_pitch = obj_surface->width * 4;

This doesn't look right.

> @@ -2542,6 +2591,13 @@ get_sampling_from_fourcc(unsigned int fourcc)
>      case VA_FOURCC('Y', 'U', 'Y', '2'):
>          surface_sampling = SUBSAMPLE_YUV422H;
>          break;
> +    case VA_FOURCC('A','Y','U','V'):
> +    case VA_FOURCC('R','G','B','A'):
> +    case VA_FOURCC('R','G','B','X'):
> +    case VA_FOURCC('B','G','R','A'):
> +    case VA_FOURCC('B','G','R','X'):
> +    surface_sampling = SUBSAMPLE_YUV444;
> +        break;
>      default:
>          break;
>      }

Same here.

> @@ -3642,7 +3698,12 @@ i965_GetSurfaceAttributes(
>                          if (attrib_list[i].value.value.i != VA_FOURCC('N', 
> 'V', '1', '2') &&
>                              attrib_list[i].value.value.i != VA_FOURCC('I', 
> '4', '2', '0') &&
>                              attrib_list[i].value.value.i != VA_FOURCC('Y', 
> 'V', '1', '2') &&
> -                            attrib_list[i].value.value.i != VA_FOURCC('Y', 
> 'U', 'Y', '2')) {
> +                            attrib_list[i].value.value.i != VA_FOURCC('Y', 
> 'U', 'Y', '2') &&
> +                            attrib_list[i].value.value.i != VA_FOURCC('A', 
> 'Y', 'U', 'V') &&
> +                            attrib_list[i].value.value.i != VA_FOURCC('B', 
> 'G', 'R', 'A') &&
> +                            attrib_list[i].value.value.i != VA_FOURCC('B', 
> 'G', 'R', 'X') &&
> +                            attrib_list[i].value.value.i != VA_FOURCC('R', 
> 'G', 'B', 'X') &&
> +                            attrib_list[i].value.value.i != VA_FOURCC('R', 
> 'G', 'B', 'A')) {
>                              attrib_list[i].value.value.i = 0;
>                              attrib_list[i].flags &= 
> ~VA_SURFACE_ATTRIB_SETTABLE;
>                          }

You now see why I recommended to use a switch/case in the first place...

> diff --git a/src/i965_post_processing.h b/src/i965_post_processing.h
> index 21e525c..64229e8 100755
> --- a/src/i965_post_processing.h
> +++ b/src/i965_post_processing.h
> @@ -51,9 +51,10 @@ enum
>      PP_PL3_LOAD_SAVE_PA,
>      PP_PA_LOAD_SAVE_NV12,
>      PP_PA_LOAD_SAVE_PL3,
> +    PP_RGBX_LOAD_SAVE_NV12,
>  };
>
> -#define NUM_PP_MODULES                  13
> +#define NUM_PP_MODULES                  14

I wonder why NUM_PP_MODULES is not in the enum. That'd prevent you
from increasing that value all the time. Please produce another patch
with this change.

Thanks,
Gwenole.
_______________________________________________
Libva mailing list
Libva@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libva

Reply via email to