[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