From: Nayan Deshmukh Date: Fri, 13 Jan 2017 13:15:31 +0000 (+0530) Subject: st/va: delay calling begin_frame until we have all parameters X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4b0e9babc673bc4dd834127086982e290b2a3a42;p=mesa.git st/va: delay calling begin_frame until we have all parameters 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 --- 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); }