frontends/va: Place AV1 picture and slice parameter buffers functions

So that can pass the parameters from application to driver.

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12307>
This commit is contained in:
Leo Liu 2021-08-07 16:41:57 -04:00
parent 9cc4c1d8f8
commit 4ce6100215
1 changed files with 15 additions and 5 deletions

View File

@ -130,18 +130,22 @@ handlePictureParameterBuffer(vlVaDriver *drv, vlVaContext *context, vlVaBuffer *
vlVaHandlePictureParameterBufferMPEG4(drv, context, buf);
break;
case PIPE_VIDEO_FORMAT_HEVC:
case PIPE_VIDEO_FORMAT_HEVC:
vlVaHandlePictureParameterBufferHEVC(drv, context, buf);
break;
case PIPE_VIDEO_FORMAT_JPEG:
case PIPE_VIDEO_FORMAT_JPEG:
vlVaHandlePictureParameterBufferMJPEG(drv, context, buf);
break;
case PIPE_VIDEO_FORMAT_VP9:
case PIPE_VIDEO_FORMAT_VP9:
vlVaHandlePictureParameterBufferVP9(drv, context, buf);
break;
case PIPE_VIDEO_FORMAT_AV1:
vlVaHandlePictureParameterBufferAV1(drv, context, buf);
break;
default:
break;
}
@ -204,7 +208,7 @@ handleIQMatrixBuffer(vlVaContext *context, vlVaBuffer *buf)
}
static void
handleSliceParameterBuffer(vlVaContext *context, vlVaBuffer *buf)
handleSliceParameterBuffer(vlVaContext *context, vlVaBuffer *buf, unsigned num)
{
switch (u_reduce_video_profile(context->templat.profile)) {
case PIPE_VIDEO_FORMAT_MPEG12:
@ -235,6 +239,10 @@ handleSliceParameterBuffer(vlVaContext *context, vlVaBuffer *buf)
vlVaHandleSliceParameterBufferVP9(context, buf);
break;
case PIPE_VIDEO_FORMAT_AV1:
vlVaHandleSliceParameterBufferAV1(context, buf, num);
break;
default:
break;
}
@ -326,6 +334,8 @@ handleVASliceDataBufferType(vlVaContext *context, vlVaBuffer *buf)
case PIPE_VIDEO_FORMAT_VP9:
vlVaDecoderVP9BitstreamHeader(context, buf);
break;
case PIPE_VIDEO_FORMAT_AV1:
break;
default:
break;
}
@ -598,7 +608,7 @@ vlVaRenderPicture(VADriverContextP ctx, VAContextID context_id, VABufferID *buff
break;
case VASliceParameterBufferType:
handleSliceParameterBuffer(context, buf);
handleSliceParameterBuffer(context, buf, i);
break;
case VASliceDataBufferType: