|
|
@ -74,13 +74,14 @@ int ff_vaapi_decode_make_slice_buffer(AVCodecContext *avctx, |
|
|
|
|
|
|
|
|
|
|
|
av_assert0(pic->nb_slices <= pic->slices_allocated); |
|
|
|
av_assert0(pic->nb_slices <= pic->slices_allocated); |
|
|
|
if (pic->nb_slices == pic->slices_allocated) { |
|
|
|
if (pic->nb_slices == pic->slices_allocated) { |
|
|
|
pic->slice_buffers = |
|
|
|
VABufferID *tmp = |
|
|
|
av_realloc_array(pic->slice_buffers, |
|
|
|
av_realloc_array(pic->slice_buffers, |
|
|
|
pic->slices_allocated ? pic->slices_allocated * 2 : 64, |
|
|
|
pic->slices_allocated ? pic->slices_allocated * 2 : 64, |
|
|
|
2 * sizeof(*pic->slice_buffers)); |
|
|
|
2 * sizeof(*pic->slice_buffers)); |
|
|
|
if (!pic->slice_buffers) |
|
|
|
if (!tmp) |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pic->slice_buffers = tmp; |
|
|
|
pic->slices_allocated = pic->slices_allocated ? pic->slices_allocated * 2 : 64; |
|
|
|
pic->slices_allocated = pic->slices_allocated ? pic->slices_allocated * 2 : 64; |
|
|
|
} |
|
|
|
} |
|
|
|
av_assert0(pic->nb_slices + 1 <= pic->slices_allocated); |
|
|
|
av_assert0(pic->nb_slices + 1 <= pic->slices_allocated); |
|
|
|