summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/nvdec.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/libavcodec/nvdec.c b/libavcodec/nvdec.c
index 15665b83bb..fbaedf0b6b 100644
--- a/libavcodec/nvdec.c
+++ b/libavcodec/nvdec.c
@@ -524,12 +524,9 @@ static int nvdec_retrieve_data(void *logctx, AVFrame *frame)
goto copy_fail;
}
- av_buffer_unref(&frame->hw_frames_ctx);
- frame->hw_frames_ctx = av_buffer_ref(decoder->real_hw_frames_ref);
- if (!frame->hw_frames_ctx) {
- ret = AVERROR(ENOMEM);
+ ret = av_buffer_replace(&frame->hw_frames_ctx, decoder->real_hw_frames_ref);
+ if (ret < 0)
goto copy_fail;
- }
unmap_data->idx = cf->idx;
if (!(unmap_data->idx_ref = av_buffer_ref(cf->idx_ref)) ||