Merge pull request #10572 from AdmiralCurtiss/ffmpeg-log-va-list

VideoCommon/FrameDump: Fix log messages with arguments.
This commit is contained in:
Mai M 2022-04-08 20:47:57 -04:00 committed by GitHub
commit dcf27b91ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 1 deletions

View File

@ -103,6 +103,9 @@ void GenericLog(LogLevel level, LogType type, const char* file, int line, const
__attribute__((format(printf, 5, 6))) __attribute__((format(printf, 5, 6)))
#endif #endif
; ;
void GenericLogV(LogLevel level, LogType type, const char* file, int line, const char* fmt,
va_list args);
} // namespace Common::Log } // namespace Common::Log
// Let the compiler optimize this out // Let the compiler optimize this out
@ -139,6 +142,13 @@ void GenericLog(LogLevel level, LogType type, const char* file, int line, const
GENERIC_LOG(Common::Log::LogType::t, Common::Log::LogLevel::LDEBUG, __VA_ARGS__); \ GENERIC_LOG(Common::Log::LogType::t, Common::Log::LogLevel::LDEBUG, __VA_ARGS__); \
} while (0) } while (0)
#define GENERIC_LOG_V(t, v, fmt, args) \
do \
{ \
if (v <= Common::Log::MAX_LOGLEVEL) \
Common::Log::GenericLogV(v, t, __FILE__, __LINE__, fmt, args); \
} while (0)
// fmtlib capable API // fmtlib capable API
#define GENERIC_LOG_FMT(t, v, format, ...) \ #define GENERIC_LOG_FMT(t, v, format, ...) \

View File

@ -80,6 +80,22 @@ void GenericLog(LogLevel level, LogType type, const char* file, int line, const
instance->Log(level, type, file, line, message); instance->Log(level, type, file, line, message);
} }
void GenericLogV(LogLevel level, LogType type, const char* file, int line, const char* fmt,
va_list args)
{
auto* instance = LogManager::GetInstance();
if (instance == nullptr)
return;
if (!instance->IsEnabled(type, level))
return;
char message[MAX_MSGLEN];
CharArrayFromFormatV(message, MAX_MSGLEN, fmt, args);
instance->Log(level, type, file, line, message);
}
void GenericLogFmtImpl(LogLevel level, LogType type, const char* file, int line, void GenericLogFmtImpl(LogLevel level, LogType type, const char* file, int line,
fmt::string_view format, const fmt::format_args& args) fmt::string_view format, const fmt::format_args& args)
{ {

View File

@ -94,7 +94,7 @@ void InitAVCodec()
// keep libav debug messages visible in release build of dolphin // keep libav debug messages visible in release build of dolphin
log_level = Common::Log::LogLevel::LINFO; log_level = Common::Log::LogLevel::LINFO;
GENERIC_LOG(Common::Log::LogType::FRAMEDUMP, log_level, fmt, vl); GENERIC_LOG_V(Common::Log::LogType::FRAMEDUMP, log_level, fmt, vl);
}); });
// TODO: We never call avformat_network_deinit. // TODO: We never call avformat_network_deinit.