frontends/va/context: don't set max_references with num_render_targets

For HEVC and VP9 template's max_references are tied to the number of
surfaces associated with context. Later, the decoder is created if
max_references is different to zero.

But vaCreateContext() doesn't really need an array of VASurfaceIDs (see
https://lists.01.org/pipermail/intel-vaapi-media/2017-July/000052.html and
https://github.com/intel/libva/issues/251).

This patch removes the validation of the max_references at decoder
creation and also remove the assignation of num_render_targets to
max_references.
Signed-off-by: Víctor Manuel Jáquez Leal's avatarVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Reviewed-by: Leo Liu's avatarLeo Liu <leo.liu@amd.com>
Part-of: <!7949>
parent 824eba21
Pipeline #260051 waiting for manual action with stages
......@@ -271,7 +271,6 @@ vlVaCreateContext(VADriverContextP ctx, VAConfigID config_id, int picture_width,
break;
case PIPE_VIDEO_FORMAT_HEVC:
context->templat.max_references = num_render_targets;
if (config->entrypoint != PIPE_VIDEO_ENTRYPOINT_ENCODE) {
context->desc.h265.pps = CALLOC_STRUCT(pipe_h265_pps);
if (!context->desc.h265.pps) {
......@@ -288,7 +287,6 @@ vlVaCreateContext(VADriverContextP ctx, VAConfigID config_id, int picture_width,
break;
case PIPE_VIDEO_FORMAT_VP9:
context->templat.max_references = num_render_targets;
break;
default:
......
......@@ -151,10 +151,6 @@ handlePictureParameterBuffer(vlVaDriver *drv, vlVaContext *context, vlVaBuffer *
if (!context->target)
return VA_STATUS_ERROR_INVALID_CONTEXT;
if (context->templat.max_references == 0 &&
format != PIPE_VIDEO_FORMAT_JPEG)
return VA_STATUS_ERROR_INVALID_BUFFER;
if (format == PIPE_VIDEO_FORMAT_MPEG4_AVC)
context->templat.level = u_get_h264_level(context->templat.width,
context->templat.height, &context->templat.max_references);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment