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

Nayan Deshmukh nayan26deshmukh at gmail.com
Fri Jan 13 13:17:58 UTC 2017


Hi Andy,

Please test this patch for regressions.

Cheers,
Nayan

On Fri, Jan 13, 2017 at 6:45 PM, Nayan Deshmukh <nayan26deshmukh at gmail.com>
wrote:

> 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>
> ---
>  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);
>  }
> --
> 2.9.3
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170113/b774e78b/attachment.html>


More information about the mesa-dev mailing list