diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-09-21 00:14:21 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-09-21 00:14:21 +0100 |
| commit | f9d0bc389d3f36263fb7a3b54d2263878a8ea7fb (patch) | |
| tree | ab921eabd4b9bc520d71a226c79a54c11a3aa343 /src | |
| parent | b9f0e5f6ca2e57980f94f2e16f814b289411e9e3 (diff) | |
Trim referred-to DCPs correctly using CPL entry point / duration.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/player.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/lib/player.cc b/src/lib/player.cc index 1506436e1..c17cdfdc0 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -739,8 +739,17 @@ Player::get_reel_assets () int64_t offset = 0; BOOST_FOREACH (shared_ptr<dcp::Reel> k, decoder->reels()) { + + DCPOMATIC_ASSERT (j->video_frame_rate ()); + double const cfr = j->video_frame_rate().get(); + Frame const trim_start = j->trim_start().frames_round (cfr); + Frame const trim_end = j->trim_end().frames_round (cfr); + DCPTime const from = i->position() + DCPTime::from_frames (offset, _film->video_frame_rate()); if (j->reference_video ()) { + DCPOMATIC_ASSERT (k->main_picture ()); + k->main_picture()->set_entry_point (trim_start); + k->main_picture()->set_duration (k->main_picture()->intrinsic_duration() - trim_start - trim_end); a.push_back ( ReferencedReelAsset ( k->main_picture (), @@ -750,6 +759,9 @@ Player::get_reel_assets () } if (j->reference_audio ()) { + DCPOMATIC_ASSERT (k->main_sound ()); + k->main_sound()->set_entry_point (trim_start); + k->main_sound()->set_duration (k->main_sound()->intrinsic_duration() - trim_start - trim_end); a.push_back ( ReferencedReelAsset ( k->main_sound (), @@ -760,6 +772,8 @@ Player::get_reel_assets () if (j->reference_subtitle ()) { DCPOMATIC_ASSERT (k->main_subtitle ()); + k->main_subtitle()->set_entry_point (trim_start); + k->main_subtitle()->set_duration (k->main_subtitle()->intrinsic_duration() - trim_start - trim_end); a.push_back ( ReferencedReelAsset ( k->main_subtitle (), |
