Ignore FFmpeg warnings in a nicer way.
[dcpomatic.git] / src / lib / ffmpeg_image_proxy.cc
index 9c91d1d87d7d6c60eb883ee346acbb14876bf5ee..f2b72059b9a013f59bad2c66e7ad56baa1dc207d 100644 (file)
 #include "image.h"
 #include "compose.hpp"
 #include "util.h"
+#include "warnings.h"
 #include <dcp/raw_convert.h>
 extern "C" {
 #include <libavcodec/avcodec.h>
 #include <libavformat/avformat.h>
 }
+DCPOMATIC_DISABLE_WARNINGS
 #include <libxml++/libxml++.h>
+DCPOMATIC_ENABLE_WARNINGS
 #include <iostream>
 
 #include "i18n.h"
@@ -83,7 +86,7 @@ avio_seek_wrapper (void* data, int64_t offset, int whence)
 int
 FFmpegImageProxy::avio_read (uint8_t* buffer, int const amount)
 {
-       int const to_do = min(int64_t(amount), _data.size() - _pos);
+       int const to_do = min(static_cast<int64_t>(amount), static_cast<int64_t>(_data.size()) - _pos);
        if (to_do == 0) {
                return AVERROR_EOF;
        }
@@ -112,13 +115,15 @@ FFmpegImageProxy::avio_seek (int64_t const pos, int whence)
        return _pos;
 }
 
-pair<shared_ptr<Image>, int>
+DCPOMATIC_DISABLE_WARNINGS
+
+ImageProxy::Result
 FFmpegImageProxy::image (optional<dcp::Size>) const
 {
        boost::mutex::scoped_lock lm (_mutex);
 
        if (_image) {
-               return make_pair (_image, 0);
+               return Result (_image, 0);
        }
 
        uint8_t* avio_buffer = static_cast<uint8_t*> (wrapped_av_malloc(4096));
@@ -192,9 +197,11 @@ FFmpegImageProxy::image (optional<dcp::Size>) const
        av_free (avio_context->buffer);
        av_free (avio_context);
 
-       return make_pair (_image, 0);
+       return Result (_image, 0);
 }
 
+DCPOMATIC_ENABLE_WARNINGS
+
 void
 FFmpegImageProxy::add_metadata (xmlpp::Node* node) const
 {
@@ -202,7 +209,7 @@ FFmpegImageProxy::add_metadata (xmlpp::Node* node) const
 }
 
 void
-FFmpegImageProxy::send_binary (shared_ptr<Socket> socket) const
+FFmpegImageProxy::write_to_socket (shared_ptr<Socket> socket) const
 {
        socket->write (_data.size());
        socket->write (_data.data().get(), _data.size());