frontend/va: Support VAEncMiscParameterMaxSliceSize

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26223>
This commit is contained in:
Sil Vilerino 2023-11-14 13:20:36 -05:00 committed by Marge Bot
parent ec4021b3c2
commit 870570ee66

View file

@ -643,6 +643,28 @@ handleVAEncMiscParameterTypeHRD(vlVaContext *context, VAEncMiscParameterBuffer *
return status;
}
static VAStatus
handleVAEncMiscParameterTypeMaxSliceSize(vlVaContext *context, VAEncMiscParameterBuffer *misc)
{
VAStatus status = VA_STATUS_SUCCESS;
VAEncMiscParameterMaxSliceSize *max_slice_size_buffer = (VAEncMiscParameterMaxSliceSize *)misc->data;
switch (u_reduce_video_profile(context->templat.profile)) {
case PIPE_VIDEO_FORMAT_MPEG4_AVC:
{
context->desc.h264enc.slice_mode = PIPE_VIDEO_SLICE_MODE_MAX_SLICE_SICE;
context->desc.h264enc.max_slice_bytes = max_slice_size_buffer->max_slice_size;
} break;
case PIPE_VIDEO_FORMAT_HEVC:
{
context->desc.h265enc.slice_mode = PIPE_VIDEO_SLICE_MODE_MAX_SLICE_SICE;
context->desc.h265enc.max_slice_bytes = max_slice_size_buffer->max_slice_size;
} break;
default:
break;
}
return status;
}
static VAStatus
handleVAEncMiscParameterTypeRIR(vlVaContext *context, VAEncMiscParameterBuffer *misc)
{
@ -732,6 +754,10 @@ handleVAEncMiscParameterBufferType(vlVaContext *context, vlVaBuffer *buf)
vaStatus = handleVAEncMiscParameterTypeRIR(context, misc);
break;
case VAEncMiscParameterTypeMaxSliceSize:
vaStatus = handleVAEncMiscParameterTypeMaxSliceSize(context, misc);
break;
default:
break;
}