From f9a00f3ed4d5feebf87a58e83cac7efd97adb4da Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 23 Aug 2023 23:42:09 -0500 Subject: [PATCH] Fix FFmpeg logging going to stdout rather than our log file --- src/main.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index 45d45d5c..e5352d1b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -534,6 +534,31 @@ main(int argc, char *argv[]) { else { av_log_set_level(AV_LOG_DEBUG); } + av_log_set_callback([](void *ptr, int level, const char *fmt, va_list vl) { + static int print_prefix = 1; + char buffer[1024]; + + av_log_format_line(ptr, level, fmt, vl, buffer, sizeof(buffer), &print_prefix); + if (level <= AV_LOG_FATAL) { + BOOST_LOG(fatal) << buffer; + } + else if (level <= AV_LOG_ERROR) { + BOOST_LOG(error) << buffer; + } + else if (level <= AV_LOG_WARNING) { + BOOST_LOG(warning) << buffer; + } + else if (level <= AV_LOG_INFO) { + BOOST_LOG(info) << buffer; + } + else if (level <= AV_LOG_VERBOSE) { + // AV_LOG_VERBOSE is less verbose than AV_LOG_DEBUG + BOOST_LOG(debug) << buffer; + } + else { + BOOST_LOG(verbose) << buffer; + } + }); sink = boost::make_shared();