X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Futil.cc;fp=src%2Flib%2Futil.cc;h=6ed66c40f27d14f3cc0dfd6c556b4a6f3c5b0d60;hp=bab74583c52248d9cdd6fe569c3fba12468ba864;hb=69957d093fd1cb798449271e6212cd86321d5528;hpb=0a4c399e8ed2ebb8b7dadf2684595effd1ca9f3e diff --git a/src/lib/util.cc b/src/lib/util.cc index bab74583c..6ed66c40f 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -388,6 +388,31 @@ capture_asdcp_logs () } +static +void +ffmpeg_log_callback(void* ptr, int level, const char* fmt, va_list vl) +{ + if (level > AV_LOG_WARNING) { + return; + } + + char line[1024]; + static int prefix = 0; + av_log_format_line(ptr, level, fmt, vl, line, sizeof (line), &prefix); + string str(line); + boost::algorithm::trim(str); + dcpomatic_log->log(String::compose("FFmpeg: %1", str), LogEntry::TYPE_GENERAL); +} + + +static +void +capture_ffmpeg_logs() +{ + av_log_set_callback(ffmpeg_log_callback); +} + + /** Call the required functions to set up DCP-o-matic's static arrays, etc. * Must be called from the UI thread, if there is one. */ @@ -455,6 +480,7 @@ LIBDCP_ENABLE_WARNINGS ui_thread = boost::this_thread::get_id (); capture_asdcp_logs (); + capture_ffmpeg_logs(); } #ifdef DCPOMATIC_WINDOWS