Lots of #include <iostream>s for Arch.
[dcpomatic.git] / src / lib / player.cc
index 5e1fbcc632f96c90b14324bd59dc7101175d3460..f5d851c96f1b5f47a637384b25b15ed4311d82a6 100644 (file)
@@ -49,6 +49,7 @@
 #include <boost/foreach.hpp>
 #include <stdint.h>
 #include <algorithm>
+#include <iostream>
 
 #include "i18n.h"
 
@@ -76,6 +77,7 @@ Player::Player (shared_ptr<const Film> film, shared_ptr<const Playlist> playlist
        , _ignore_video (false)
        , _ignore_audio (false)
        , _always_burn_subtitles (false)
+       , _fast (false)
 {
        _film_changed_connection = _film->Changed.connect (bind (&Player::film_changed, this, _1));
        _playlist_changed_connection = _playlist->Changed.connect (bind (&Player::playlist_changed, this));
@@ -127,13 +129,13 @@ Player::setup_pieces ()
                /* FFmpeg */
                shared_ptr<const FFmpegContent> fc = dynamic_pointer_cast<const FFmpegContent> (i);
                if (fc) {
-                       decoder.reset (new FFmpegDecoder (fc, _film->log()));
+                       decoder.reset (new FFmpegDecoder (fc, _film->log(), _fast));
                        frc = FrameRateChange (fc->video_frame_rate(), _film->video_frame_rate());
                }
 
                shared_ptr<const DCPContent> dc = dynamic_pointer_cast<const DCPContent> (i);
                if (dc) {
-                       decoder.reset (new DCPDecoder (dc));
+                       decoder.reset (new DCPDecoder (dc, _fast));
                        frc = FrameRateChange (dc->video_frame_rate(), _film->video_frame_rate());
                }
 
@@ -158,7 +160,7 @@ Player::setup_pieces ()
                /* SndfileContent */
                shared_ptr<const SndfileContent> sc = dynamic_pointer_cast<const SndfileContent> (i);
                if (sc) {
-                       decoder.reset (new SndfileDecoder (sc));
+                       decoder.reset (new SndfileDecoder (sc, _fast));
                        frc = best_overlap_frc;
                }
 
@@ -507,7 +509,7 @@ Player::get_audio (DCPTime time, DCPTime length, bool accurate)
                        }
 
                        if (_audio_processor) {
-                               dcp_mapped = _audio_processor->run (dcp_mapped);
+                               dcp_mapped = _audio_processor->run (dcp_mapped, _film->audio_channels ());
                        }
 
                        all.audio = dcp_mapped;
@@ -674,3 +676,10 @@ Player::set_always_burn_subtitles (bool burn)
 {
        _always_burn_subtitles = burn;
 }
+
+void
+Player::set_fast ()
+{
+       _fast = true;
+       _have_valid_pieces = false;
+}