[FFmpeg-devel] [PATCH 4/6] avcodec/h264_slice: use av_buffer_replace() to simplify code
Anton Khirnov
anton at khirnov.net
Thu Nov 19 09:51:19 EET 2020
Quoting Gil Pedersen (2020-11-18 14:05:15)
> Signed-off-by: Gil Pedersen <git at gpost.dk>
> ---
> libavcodec/h264_slice.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
> index fa7a639053..b937ebebcf 100644
> --- a/libavcodec/h264_slice.c
> +++ b/libavcodec/h264_slice.c
> @@ -1018,11 +1018,11 @@ static int h264_init_ps(H264Context *h, const H264SliceContext *sl, int first_sl
> int needs_reinit = 0, must_reinit, ret;
>
> if (first_slice) {
> - av_buffer_unref(&h->ps.pps_ref);
> - h->ps.pps = NULL;
> - h->ps.pps_ref = av_buffer_ref(h->ps.pps_list[sl->pps_id]);
> - if (!h->ps.pps_ref)
> - return AVERROR(ENOMEM);
> + ret = av_buffer_replace(&h->ps.pps_ref, h->ps.pps_list[sl->pps_id]);
> + if (ret < 0) {
> + h->ps.pps = NULL;
You should probably unref pps_ref on failure too, av_buffer_replace()
leaves the original on failure.
--
Anton Khirnov
More information about the ffmpeg-devel
mailing list