Message ID | 20240314003805.1022077-1-fei.w.wang@intel.com |
---|---|
State | Accepted |
Commit | 8962e2b1aa1d0a6f5c03bf119e7f880a3e6c6c09 |
Headers | show |
Series | [FFmpeg-devel,v1] lavc/vaapi_decode: Don't update buffer number if allocataion fail | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
On Do, 2024-03-14 at 08:38 +0800, fei.w.wang-at-intel.com@ffmpeg.org wrote: > From: Fei Wang <fei.w.wang@intel.com> > > Signed-off-by: Fei Wang <fei.w.wang@intel.com> > --- > libavcodec/vaapi_decode.c | 9 +++------ > 1 file changed, 3 insertions(+), 6 deletions(-) > > diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c > index ceac769c52..cca94b5336 100644 > --- a/libavcodec/vaapi_decode.c > +++ b/libavcodec/vaapi_decode.c > @@ -72,17 +72,14 @@ int ff_vaapi_decode_make_slice_buffer(AVCodecContext > *avctx, > > av_assert0(pic->nb_slices <= pic->slices_allocated); > if (pic->nb_slices == pic->slices_allocated) { > - if (pic->slices_allocated > 0) > - pic->slices_allocated *= 2; > - else > - pic->slices_allocated = 64; > - > pic->slice_buffers = > av_realloc_array(pic->slice_buffers, > - pic->slices_allocated, > + pic->slices_allocated ? pic->slices_allocated * > 2 : 64, > 2 * sizeof(*pic->slice_buffers)); > if (!pic->slice_buffers) > return AVERROR(ENOMEM); > + > + pic->slices_allocated = pic->slices_allocated ? pic->slices_allocated > * 2 : 64; > } > av_assert0(pic->nb_slices + 1 <= pic->slices_allocated); LGTM, will apply Thanks Haihao >
diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c index ceac769c52..cca94b5336 100644 --- a/libavcodec/vaapi_decode.c +++ b/libavcodec/vaapi_decode.c @@ -72,17 +72,14 @@ int ff_vaapi_decode_make_slice_buffer(AVCodecContext *avctx, av_assert0(pic->nb_slices <= pic->slices_allocated); if (pic->nb_slices == pic->slices_allocated) { - if (pic->slices_allocated > 0) - pic->slices_allocated *= 2; - else - pic->slices_allocated = 64; - pic->slice_buffers = av_realloc_array(pic->slice_buffers, - pic->slices_allocated, + pic->slices_allocated ? pic->slices_allocated * 2 : 64, 2 * sizeof(*pic->slice_buffers)); if (!pic->slice_buffers) return AVERROR(ENOMEM); + + pic->slices_allocated = pic->slices_allocated ? pic->slices_allocated * 2 : 64; } av_assert0(pic->nb_slices + 1 <= pic->slices_allocated);