#include <boost/foreach.hpp>
#include <stdint.h>
#include <algorithm>
+#include <iostream>
#include "i18n.h"
, _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));
/* 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());
}
/* 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;
}
}
if (_audio_processor) {
- dcp_mapped = _audio_processor->run (dcp_mapped);
+ dcp_mapped = _audio_processor->run (dcp_mapped, _film->audio_channels ());
}
all.audio = dcp_mapped;
{
_always_burn_subtitles = burn;
}
+
+void
+Player::set_fast ()
+{
+ _fast = true;
+ _have_valid_pieces = false;
+}