diff options
author | Gil Pedersen <git@gpost.dk> | 2020-11-18 16:05:17 +0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2020-11-19 16:09:47 +0300 |
commit | 2b6b19dd9bd070cba8673a821f14d26a92d7f0d7 (patch) | |
tree | 9e92d9a4a3b87944e3438d268f9aa7954dce2d9a /libavutil/frame.c | |
parent | abcca6a055919916fcd199c6e40d5102a3de4a70 (diff) |
avutil/frame: use av_buffer_replace() to simplify code
Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Gil Pedersen <git@gpost.dk>
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavutil/frame.c')
-rw-r--r-- | libavutil/frame.c | 31 |
1 files changed, 9 insertions, 22 deletions
diff --git a/libavutil/frame.c b/libavutil/frame.c index 3ab1aa3242..42d3009212 100644 --- a/libavutil/frame.c +++ b/libavutil/frame.c @@ -349,7 +349,7 @@ int av_frame_get_buffer(AVFrame *frame, int align) static int frame_copy_props(AVFrame *dst, const AVFrame *src, int force_copy) { - int i; + int ret, i; dst->key_frame = src->key_frame; dst->pict_type = src->pict_type; @@ -426,31 +426,18 @@ FF_DISABLE_DEPRECATION_WARNINGS dst->qscale_table = NULL; dst->qstride = 0; dst->qscale_type = 0; - av_buffer_unref(&dst->qp_table_buf); - if (src->qp_table_buf) { - dst->qp_table_buf = av_buffer_ref(src->qp_table_buf); - if (dst->qp_table_buf) { - dst->qscale_table = dst->qp_table_buf->data; - dst->qstride = src->qstride; - dst->qscale_type = src->qscale_type; - } + av_buffer_replace(&dst->qp_table_buf, src->qp_table_buf); + if (dst->qp_table_buf) { + dst->qscale_table = dst->qp_table_buf->data; + dst->qstride = src->qstride; + dst->qscale_type = src->qscale_type; } FF_ENABLE_DEPRECATION_WARNINGS #endif - av_buffer_unref(&dst->opaque_ref); - av_buffer_unref(&dst->private_ref); - if (src->opaque_ref) { - dst->opaque_ref = av_buffer_ref(src->opaque_ref); - if (!dst->opaque_ref) - return AVERROR(ENOMEM); - } - if (src->private_ref) { - dst->private_ref = av_buffer_ref(src->private_ref); - if (!dst->private_ref) - return AVERROR(ENOMEM); - } - return 0; + ret = av_buffer_replace(&dst->opaque_ref, src->opaque_ref); + ret |= av_buffer_replace(&dst->private_ref, src->private_ref); + return ret; } int av_frame_ref(AVFrame *dst, const AVFrame *src) |