Updated zh_CN translation from Danbo Song.
[dcpomatic.git] / src / lib / ffmpeg.cc
index 6c8509b6cd71de2eef9e5a75e3c58b2e9f1cd87f..4b8d7b8ab1d89ab7b14b67dbd8da739a52abc144 100644 (file)
@@ -96,30 +96,9 @@ avio_seek_wrapper (void* data, int64_t offset, int whence)
 }
 
 
-void
-FFmpeg::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);
-}
-
-
 void
 FFmpeg::setup_general ()
 {
-       /* This might not work too well in some cases of multiple FFmpeg decoders,
-          but it's probably good enough.
-       */
-       av_log_set_callback (FFmpeg::ffmpeg_log_callback);
-
        _file_group.set_paths (_ffmpeg_content->paths ());
        _avio_buffer = static_cast<uint8_t*> (wrapped_av_malloc(_avio_buffer_size));
        _avio_context = avio_alloc_context (_avio_buffer, _avio_buffer_size, 0, this, avio_read_wrapper, 0, avio_seek_wrapper);
@@ -273,7 +252,11 @@ FFmpeg::subtitle_codec_context () const
 int
 FFmpeg::avio_read (uint8_t* buffer, int const amount)
 {
-       return _file_group.read (buffer, amount);
+       auto result = _file_group.read(buffer, amount);
+       if (result.eof && result.bytes_read == 0) {
+               return AVERROR_EOF;
+       }
+       return result.bytes_read;
 }
 
 
@@ -376,6 +359,5 @@ FFmpeg::audio_frame (shared_ptr<const FFmpegAudioStream> stream)
 
        _audio_frame[stream] = frame;
        return frame;
-
 }