From c5c1e34d09df03e0299f8871438060bcb0d8e349 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Tue, 13 Sep 2016 09:17:07 -0700 Subject: [PATCH] obs-ffmpeg: Free remaining NVENC frames on exit This clears out remaining NVENC frames to ensure that the encoder has finished processing before shutting down. --- plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c b/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c index 5ad1daf49..f6faf7bf2 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-nvenc.c @@ -231,6 +231,16 @@ static bool nvenc_update(void *data, obs_data_t *settings) static void nvenc_destroy(void *data) { struct nvenc_encoder *enc = data; + AVPacket pkt = {0}; + int r_pkt = 1; + + while (r_pkt) { + if (avcodec_encode_video2(enc->context, &pkt, NULL, &r_pkt) < 0) + break; + + if (r_pkt) + av_free_packet(&pkt); + } avcodec_close(enc->context); av_frame_free(&enc->vframe);