Refactoring FFmpegReader::Close, trying to prevent a crash on Windows

This commit is contained in:
Jonathan Thomas
2022-07-22 18:00:28 -05:00
parent 54971bac84
commit 70bf0ade98

View File

@@ -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();