X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fplayer.cc;h=302ab161c1128f160c520997e3d8d344dbb6efec;hb=f26af8112b03b5233eb5239defd11a7428b705ad;hp=5e1fbcc632f96c90b14324bd59dc7101175d3460;hpb=272ce54d159a53be22f592922913901cfc673097;p=dcpomatic.git diff --git a/src/lib/player.cc b/src/lib/player.cc index 5e1fbcc63..302ab161c 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -76,6 +76,7 @@ Player::Player (shared_ptr film, shared_ptr 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 +128,13 @@ Player::setup_pieces () /* FFmpeg */ shared_ptr fc = dynamic_pointer_cast (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 dc = dynamic_pointer_cast (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 +159,7 @@ Player::setup_pieces () /* SndfileContent */ shared_ptr sc = dynamic_pointer_cast (i); if (sc) { - decoder.reset (new SndfileDecoder (sc)); + decoder.reset (new SndfileDecoder (sc, _fast)); frc = best_overlap_frc; } @@ -674,3 +675,10 @@ Player::set_always_burn_subtitles (bool burn) { _always_burn_subtitles = burn; } + +void +Player::set_fast () +{ + _fast = true; + _have_valid_pieces = false; +}