BOOST_FOREACH.
[dcpomatic.git] / src / lib / ffmpeg.cc
index 8eb19816c0828b44b1dfc82bc030f19d37378ea5..85c65763f146e12ac31f1b18dea24b1ceac8c74c 100644 (file)
@@ -27,7 +27,6 @@
 #include "dcpomatic_log.h"
 #include "ffmpeg_subtitle_stream.h"
 #include "ffmpeg_audio_stream.h"
-#include "decrypted_ecinema_kdm.h"
 #include "digester.h"
 #include "compose.hpp"
 #include "config.h"
@@ -38,7 +37,6 @@ extern "C" {
 #include <libswscale/swscale.h>
 }
 #include <boost/algorithm/string.hpp>
-#include <boost/foreach.hpp>
 #include <iostream>
 
 #include "i18n.h"
@@ -47,14 +45,14 @@ using std::string;
 using std::cout;
 using std::cerr;
 using std::vector;
-using boost::shared_ptr;
+using std::shared_ptr;
 using boost::optional;
 using dcp::raw_convert;
 using namespace dcpomatic;
 
 boost::mutex FFmpeg::_mutex;
 
-FFmpeg::FFmpeg (boost::shared_ptr<const FFmpegContent> c)
+FFmpeg::FFmpeg (std::shared_ptr<const FFmpegContent> c)
        : _ffmpeg_content (c)
        , _avio_buffer (0)
        , _avio_buffer_size (4096)
@@ -70,9 +68,11 @@ FFmpeg::~FFmpeg ()
 {
        boost::mutex::scoped_lock lm (_mutex);
 
+DCPOMATIC_DISABLE_WARNINGS
        for (uint32_t i = 0; i < _format_context->nb_streams; ++i) {
                avcodec_close (_format_context->streams[i]->codec);
        }
+DCPOMATIC_ENABLE_WARNINGS
 
        av_frame_free (&_frame);
        avformat_close_input (&_format_context);
@@ -126,13 +126,6 @@ FFmpeg::setup_general ()
        _format_context->pb = _avio_context;
 
        AVDictionary* options = 0;
-#ifdef DCPOMATIC_VARIANT_SWAROOP
-       if (_ffmpeg_content->kdm()) {
-               DecryptedECinemaKDM kdm (_ffmpeg_content->kdm().get(), Config::instance()->decryption_chain()->key().get());
-               av_dict_set (&options, "decryption_key", kdm.key().hex().c_str(), 0);
-       }
-#endif
-
        int e = avformat_open_input (&_format_context, 0, 0, &options);
        if (e < 0) {
                throw OpenFileError (_ffmpeg_content->path(0).string(), e, OpenFileError::READ);
@@ -146,6 +139,7 @@ FFmpeg::setup_general ()
 
        optional<int> video_stream_undefined_frame_rate;
 
+DCPOMATIC_DISABLE_WARNINGS
        for (uint32_t i = 0; i < _format_context->nb_streams; ++i) {
                AVStream* s = _format_context->streams[i];
                if (s->codec->codec_type == AVMEDIA_TYPE_VIDEO && avcodec_find_decoder(s->codec->codec_id)) {
@@ -158,6 +152,7 @@ FFmpeg::setup_general ()
                        }
                }
        }
+DCPOMATIC_ENABLE_WARNINGS
 
        /* Files from iTunes sometimes have two video streams, one with the avg_frame_rate.num and .den set
           to zero.  Only use such a stream if there is no alternative.
@@ -204,6 +199,7 @@ FFmpeg::setup_decoders ()
 {
        boost::mutex::scoped_lock lm (_mutex);
 
+DCPOMATIC_DISABLE_WARNINGS
        for (uint32_t i = 0; i < _format_context->nb_streams; ++i) {
                AVCodecContext* context = _format_context->streams[i]->codec;
 
@@ -230,8 +226,10 @@ FFmpeg::setup_decoders ()
                        dcpomatic_log->log (String::compose ("No codec found for stream %1", i), LogEntry::TYPE_WARNING);
                }
        }
+DCPOMATIC_ENABLE_WARNINGS
 }
 
+DCPOMATIC_DISABLE_WARNINGS
 AVCodecContext *
 FFmpeg::video_codec_context () const
 {
@@ -251,6 +249,7 @@ FFmpeg::subtitle_codec_context () const
 
        return _ffmpeg_content->subtitle_stream()->stream(_format_context)->codec;
 }
+DCPOMATIC_ENABLE_WARNINGS
 
 int
 FFmpeg::avio_read (uint8_t* buffer, int const amount)
@@ -314,7 +313,7 @@ FFmpeg::pts_offset (vector<shared_ptr<FFmpegAudioStream> > audio_streams, option
                po = - first_video.get ();
        }
 
-       BOOST_FOREACH (shared_ptr<FFmpegAudioStream> i, audio_streams) {
+       for (auto i: audio_streams) {
                if (i->first_audio) {
                        po = max (po, - i->first_audio.get ());
                }