From 70bf0ade9847edeb04de2b7a59f5cf2152c0f7bd Mon Sep 17 00:00:00 2001 From: Jonathan Thomas Date: Fri, 22 Jul 2022 18:00:28 -0500 Subject: [PATCH] Refactoring FFmpegReader::Close, trying to prevent a crash on Windows --- src/FFmpegReader.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/FFmpegReader.cpp b/src/FFmpegReader.cpp index 8c5ae4bc..7af02e7e 100644 --- a/src/FFmpegReader.cpp +++ b/src/FFmpegReader.cpp @@ -587,15 +587,7 @@ void FFmpegReader::Close() { // Mark as "closed" is_open = false; - ZmqLogger::Instance()->AppendDebugMethod("FFmpegReader::Close"); - - if (packet) { - ZmqLogger::Instance()->AppendDebugMethod("FFmpegReader::Close (Remove Packet)"); - - // Remove previous packet before getting next one - RemoveAVPacket(packet); - packet = NULL; - } + ZmqLogger::Instance()->AppendDebugMethod("FFmpegReader::Close (Start)"); // Close the codec if (info.has_video) { @@ -622,6 +614,12 @@ void FFmpegReader::Close() { AV_FREE_CONTEXT(aCodecCtx); } + if (packet) { + ZmqLogger::Instance()->AppendDebugMethod("FFmpegReader::Close (Remove packet)"); + RemoveAVPacket(packet); + packet = NULL; + } + // Clear final cache ZmqLogger::Instance()->AppendDebugMethod("FFmpegReader::Close (Clear cache)"); final_cache.Clear();