[Mesa-dev] [PATCH 1/5] st/va: Return more useful config attributes

Christian König deathsimple at vodafone.de
Thu Oct 13 07:20:43 UTC 2016


Am 13.10.2016 um 00:52 schrieb Mark Thompson:
> The encoder attributes are needed for a user of the encoder to be
> able to configure it sensibly without internal knowledge.

Reviewed-by: Christian König <christian.koenig at amd.com> for the whole 
series.

Do you have commit access?

Regards,
Christian.

> ---
>   src/gallium/state_trackers/va/config.c | 47 +++++++++++++++++++++++++++-------
>   1 file changed, 38 insertions(+), 9 deletions(-)
>
> diff --git a/src/gallium/state_trackers/va/config.c b/src/gallium/state_trackers/va/config.c
> index 4052316..72f68ba 100644
> --- a/src/gallium/state_trackers/va/config.c
> +++ b/src/gallium/state_trackers/va/config.c
> @@ -115,16 +115,45 @@ vlVaGetConfigAttributes(VADriverContextP ctx, VAProfile profile, VAEntrypoint en
>
>      for (i = 0; i < num_attribs; ++i) {
>         unsigned int value;
> -      switch (attrib_list[i].type) {
> -      case VAConfigAttribRTFormat:
> -         value = VA_RT_FORMAT_YUV420;
> -         break;
> -      case VAConfigAttribRateControl:
> -         value = VA_RC_CQP | VA_RC_CBR | VA_RC_VBR;
> -         break;
> -      default:
> +      if (entrypoint == VAEntrypointVLD) {
> +         switch (attrib_list[i].type) {
> +         case VAConfigAttribRTFormat:
> +            value = VA_RT_FORMAT_YUV420;
> +            break;
> +         default:
> +            value = VA_ATTRIB_NOT_SUPPORTED;
> +            break;
> +         }
> +      } else if (entrypoint == VAEntrypointEncSlice) {
> +         switch (attrib_list[i].type) {
> +         case VAConfigAttribRTFormat:
> +            value = VA_RT_FORMAT_YUV420;
> +            break;
> +         case VAConfigAttribRateControl:
> +            value = VA_RC_CQP | VA_RC_CBR | VA_RC_VBR;
> +            break;
> +         case VAConfigAttribEncPackedHeaders:
> +            value = 0;
> +            break;
> +         case VAConfigAttribEncMaxRefFrames:
> +            value = 1;
> +            break;
> +         default:
> +            value = VA_ATTRIB_NOT_SUPPORTED;
> +            break;
> +         }
> +      } else if (entrypoint == VAEntrypointVideoProc) {
> +         switch (attrib_list[i].type) {
> +         case VAConfigAttribRTFormat:
> +            value = (VA_RT_FORMAT_YUV420 |
> +                     VA_RT_FORMAT_RGB32);
> +            break;
> +         default:
> +            value = VA_ATTRIB_NOT_SUPPORTED;
> +            break;
> +         }
> +      } else {
>            value = VA_ATTRIB_NOT_SUPPORTED;
> -         break;
>         }
>         attrib_list[i].value = value;
>      }




More information about the mesa-dev mailing list