Add Player::set_always_trim. cpl-trim
authorCarl Hetherington <cth@carlh.net>
Mon, 24 Aug 2020 20:54:11 +0000 (22:54 +0200)
committerCarl Hetherington <cth@carlh.net>
Mon, 24 Aug 2020 20:54:11 +0000 (22:54 +0200)
src/lib/player.cc
src/lib/player.h
src/wx/film_viewer.cc

index 57fc7a67c6bdeab59cc591a9c316ce655b3494fc..a940b42b8ac134a9be79adb5513d9b3acf4e6acf 100644 (file)
@@ -97,6 +97,7 @@ Player::Player (shared_ptr<const Film> film)
        , _fast (false)
        , _tolerant (film->tolerant())
        , _play_referenced (false)
+       , _always_trim (false)
        , _audio_merger (_film->audio_frame_rate())
        , _shuffler (0)
 {
@@ -114,6 +115,7 @@ Player::Player (shared_ptr<const Film> film, shared_ptr<const Playlist> playlist
        , _fast (false)
        , _tolerant (film->tolerant())
        , _play_referenced (false)
+       , _always_trim (false)
        , _audio_merger (_film->audio_frame_rate())
        , _shuffler (0)
 {
@@ -504,6 +506,16 @@ Player::set_play_referenced ()
        setup_pieces_unlocked ();
 }
 
+
+void
+Player::set_always_trim ()
+{
+       boost::mutex::scoped_lock lm (_mutex);
+       _always_trim = true;
+       setup_pieces_unlocked ();
+}
+
+
 static void
 maybe_add_asset (list<ReferencedReelAsset>& a, shared_ptr<dcp::ReelAsset> r, Frame reel_trim_start, Frame reel_trim_end, DCPTime from, int const ffr)
 {
index ea81ae939bb85e181e557502e1258921543f8849..50f78d2f8741ebe43c946869ca25b8e6345c938b 100644 (file)
@@ -93,6 +93,7 @@ public:
        void set_always_burn_open_subtitles ();
        void set_fast ();
        void set_play_referenced ();
+       void set_always_trim ();
        void set_dcp_decode_reduction (boost::optional<int> reduction);
 
        boost::optional<dcpomatic::DCPTime> content_time_to_dcp (boost::shared_ptr<Content> content, dcpomatic::ContentTime t);
@@ -184,6 +185,8 @@ private:
        bool _tolerant;
        /** true if we should `play' (i.e output) referenced DCP data (e.g. for preview) */
        bool _play_referenced;
+       /** true if we should always trim content, even if it is set to TRIM_PLAYLIST (e.g. for preview) */
+       bool _always_trim;
 
        /** Time just after the last video frame we emitted, or the time of the last accurate seek */
        boost::optional<dcpomatic::DCPTime> _last_video_time;
index d3a6c12e44335a782d5a2e1b802acf15a85581c4..4f0548234840bda4a980119d8985e207a0e048af 100644 (file)
@@ -178,6 +178,7 @@ FilmViewer::set_film (shared_ptr<Film> film)
 
        _player->set_always_burn_open_subtitles ();
        _player->set_play_referenced ();
+       _player->set_always_trim ();
 
        _film->Change.connect (boost::bind (&FilmViewer::film_change, this, _1, _2));
        _film->ContentChange.connect (boost::bind(&FilmViewer::content_change, this, _1, _3));