From 4b0e9babc673bc4dd834127086982e290b2a3a42 Mon Sep 17 00:00:00 2001 From: Nayan Deshmukh Date: Fri, 13 Jan 2017 18:45:31 +0530 Subject: [PATCH] st/va: delay calling begin_frame until we have all parameters MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Christian König --- 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 b5b9a8361b9..dc7121c3037 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.30.2