[Mesa-dev] [PATCH] st/va: delay calling begin_frame until we have all parameters

Christian König christian.koenig at amd.com
Fri Jan 13 13:33:34 UTC 2017


Am 13.01.2017 um 14:15 schrieb Nayan Deshmukh:
> If begin_frame is called before setting intra_matrix and
> non_intra_matrix it leads to segmentation faults when
> vl_mpeg12_decoder.c is used.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92634
> Signed-off-by: Nayan Deshmukh <nayan26deshmukh at gmail.com>

At one point I would rather like to fix all the codecs (both decoders 
and encoders) to don't rely on the picture info to be complete, but that 
is clearly a different problem.

So that patch is Reviewed-by: Christian König <christian.koenig at amd.com> 
for now.

Regards,
Christian.

> ---
>   src/gallium/state_trackers/va/picture.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/state_trackers/va/picture.c b/src/gallium/state_trackers/va/picture.c
> index b5b9a83..dc7121c 100644
> --- a/src/gallium/state_trackers/va/picture.c
> +++ b/src/gallium/state_trackers/va/picture.c
> @@ -178,9 +178,6 @@ handlePictureParameterBuffer(vlVaDriver *drv, vlVaContext *context, vlVaBuffer *
>   
>         if (!context->decoder)
>            return VA_STATUS_ERROR_ALLOCATION_FAILED;
> -
> -      context->decoder->begin_frame(context->decoder, context->target,
> -         &context->desc.base);
>      }
>   
>      return vaStatus;
> @@ -310,6 +307,9 @@ handleVASliceDataBufferType(vlVaContext *context, vlVaBuffer *buf)
>      buffers[num_buffers] = buf->data;
>      sizes[num_buffers] = buf->size;
>      ++num_buffers;
> +
> +   context->decoder->begin_frame(context->decoder, context->target,
> +      &context->desc.base);
>      context->decoder->decode_bitstream(context->decoder, context->target, &context->desc.base,
>         num_buffers, (const void * const*)buffers, sizes);
>   }




More information about the mesa-dev mailing list