From 17eaca652e24ba3e441b8e60e626fdaec66f988d Mon Sep 17 00:00:00 2001 From: Jonathan Thomas Date: Thu, 10 Nov 2022 11:46:38 -0600 Subject: [PATCH] Add additional decoding logging inside GetAVFrame method - failing on Windows and trying to debug --- src/FFmpegReader.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/FFmpegReader.cpp b/src/FFmpegReader.cpp index 7e69f012..2b94b28b 100644 --- a/src/FFmpegReader.cpp +++ b/src/FFmpegReader.cpp @@ -1112,8 +1112,16 @@ bool FFmpegReader::GetAVFrame() { hw_de_av_device_type = hw_de_av_device_type_global; #endif // USE_HW_ACCEL if (send_packet_err < 0 && send_packet_err != AVERROR_EOF) { - ZmqLogger::Instance()->AppendDebugMethod("FFmpegReader::GetAVFrame (Packet not sent)", - "send_packet_err", send_packet_err); + ZmqLogger::Instance()->AppendDebugMethod("FFmpegReader::GetAVFrame (Packet not sent)", "send_packet_err", send_packet_err); + if (send_packet_err == AVERROR(EAGAIN)) { + ZmqLogger::Instance()->AppendDebugMethod("FFmpegReader::GetAVFrame (AVERROR(EAGAIN) user must read output with avcodec_receive_frame()"); + } + if (send_packet_err == AVERROR(EINVAL)) { + ZmqLogger::Instance()->AppendDebugMethod("FFmpegReader::GetAVFrame (AVERROR(EINVAL) codec not opened, it is an encoder, or requires flush"); + } + if (send_packet_err == AVERROR(ENOMEM)) { + ZmqLogger::Instance()->AppendDebugMethod("FFmpegReader::GetAVFrame (AVERRORAVERROR(ENOMEM) failed to add packet to internal queue, or similar other errors: legitimate decoding errors"); + } } else { int receive_frame_err = 0;