Be more careful with fread in various places.
[dcpomatic.git] / src / lib / ffmpeg.cc
index 1502b3de96148d76a94b4d1a8d5f2fb4ea3dd082..53829c5f2391919056b4248a368693b7fef1d640 100644 (file)
@@ -24,6 +24,7 @@
 #include "exceptions.h"
 #include "util.h"
 #include "log.h"
+#include "dcpomatic_log.h"
 #include "ffmpeg_subtitle_stream.h"
 #include "ffmpeg_audio_stream.h"
 #include "digester.h"
@@ -49,7 +50,6 @@ using boost::optional;
 using dcp::raw_convert;
 
 boost::mutex FFmpeg::_mutex;
-boost::weak_ptr<Log> FFmpeg::_ffmpeg_log;
 
 FFmpeg::FFmpeg (boost::shared_ptr<const FFmpegContent> c)
        : _ffmpeg_content (c)
@@ -97,14 +97,9 @@ FFmpeg::ffmpeg_log_callback (void* ptr, int level, const char* fmt, va_list vl)
        char line[1024];
        static int prefix = 0;
        av_log_format_line (ptr, level, fmt, vl, line, sizeof (line), &prefix);
-       shared_ptr<Log> log = _ffmpeg_log.lock ();
-       if (log) {
-               string str (line);
-               boost::algorithm::trim (str);
-               log->log (String::compose ("FFmpeg: %1", str), LogEntry::TYPE_GENERAL);
-       } else {
-               cerr << line;
-       }
+       string str (line);
+       boost::algorithm::trim (str);
+       dcpomatic_log->log (String::compose ("FFmpeg: %1", str), LogEntry::TYPE_GENERAL);
 }
 
 void
@@ -113,7 +108,6 @@ FFmpeg::setup_general ()
        /* This might not work too well in some cases of multiple FFmpeg decoders,
           but it's probably good enough.
        */
-       _ffmpeg_log = _ffmpeg_content->film()->log ();
        av_log_set_callback (FFmpeg::ffmpeg_log_callback);
 
        _file_group.set_paths (_ffmpeg_content->paths ());
@@ -219,10 +213,7 @@ FFmpeg::setup_decoders ()
                                throw DecodeError (N_("could not open decoder"));
                        }
                } else {
-                       shared_ptr<Log> log = _ffmpeg_log.lock ();
-                       if (log) {
-                               log->log (String::compose ("No codec found for stream %1", i), LogEntry::TYPE_WARNING);
-                       }
+                       dcpomatic_log->log (String::compose ("No codec found for stream %1", i), LogEntry::TYPE_WARNING);
                }
        }
 }