From: Michael Varga Date: Thu, 23 Oct 2014 15:18:09 +0000 (-0500) Subject: st/va: MPEG4 populate the iq matrix buffers X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=92350a65c47f95e9630e815172529de4e583e247;p=mesa.git st/va: MPEG4 populate the iq matrix buffers Signed-off-by: Michael Varga --- diff --git a/src/gallium/state_trackers/va/picture.c b/src/gallium/state_trackers/va/picture.c index a4eb26b406b..327c33d9cb0 100644 --- a/src/gallium/state_trackers/va/picture.c +++ b/src/gallium/state_trackers/va/picture.c @@ -296,6 +296,7 @@ handleIQMatrixBuffer(vlVaContext *context, vlVaBuffer *buf) { VAIQMatrixBufferMPEG2 *mpeg2; VAIQMatrixBufferH264 *h264; + VAIQMatrixBufferMPEG4 *mpeg4; switch (u_reduce_video_profile(context->decoder->profile)) { case PIPE_VIDEO_FORMAT_MPEG12: @@ -319,6 +320,21 @@ handleIQMatrixBuffer(vlVaContext *context, vlVaBuffer *buf) memcpy(&context->desc.h264.pps->ScalingList8x8, h264->ScalingList8x8, 2 * 64); break; + case PIPE_VIDEO_FORMAT_MPEG4: + assert(buf->size >= sizeof(VAIQMatrixBufferMPEG4) && buf->num_elements == 1); + mpeg4 = buf->data; + + if (mpeg4->load_intra_quant_mat) + context->desc.mpeg4.intra_matrix = mpeg4->intra_quant_mat; + else + context->desc.mpeg4.intra_matrix = NULL; + + if (mpeg4->load_non_intra_quant_mat) + context->desc.mpeg4.non_intra_matrix = mpeg4->non_intra_quant_mat; + else + context->desc.mpeg4.non_intra_matrix = NULL; + break; + default: break; }