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);
+ int const ffr = _film->video_frame_rate ();
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);
+ shared_ptr<dcp::ReelAsset> ra = k->main_picture ();
+ DCPOMATIC_ASSERT (ra);
+ ra->set_entry_point (ra->entry_point() + trim_start);
+ ra->set_duration (ra->duration() - trim_start - trim_end);
a.push_back (
- ReferencedReelAsset (
- k->main_picture (),
- DCPTimePeriod (from, from + DCPTime::from_frames (k->main_picture()->duration(), _film->video_frame_rate()))
- )
+ ReferencedReelAsset (ra, DCPTimePeriod (from, from + DCPTime::from_frames (ra->duration(), ffr)))
);
}
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);
+ shared_ptr<dcp::ReelAsset> ra = k->main_sound ();
+ DCPOMATIC_ASSERT (ra);
+ ra->set_entry_point (ra->entry_point() + trim_start);
+ ra->set_duration (ra->duration() - trim_start - trim_end);
a.push_back (
- ReferencedReelAsset (
- k->main_sound (),
- DCPTimePeriod (from, from + DCPTime::from_frames (k->main_sound()->duration(), _film->video_frame_rate()))
- )
+ ReferencedReelAsset (ra, DCPTimePeriod (from, from + DCPTime::from_frames (ra->duration(), ffr)))
);
}
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);
+ shared_ptr<dcp::ReelAsset> ra = k->main_subtitle ();
+ DCPOMATIC_ASSERT (ra);
+ ra->set_entry_point (ra->entry_point() + trim_start);
+ ra->set_duration (ra->duration() - trim_start - trim_end);
a.push_back (
- ReferencedReelAsset (
- k->main_subtitle (),
- DCPTimePeriod (from, from + DCPTime::from_frames (k->main_subtitle()->duration(), _film->video_frame_rate()))
- )
+ ReferencedReelAsset (ra, DCPTimePeriod (from, from + DCPTime::from_frames (ra->duration(), ffr)))
);
}