X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Freel_writer.cc;h=69709fa0de5d0dbfc899f49547c0059805f273ba;hb=7c730205e50014347bd96ab9735346d0b5922798;hp=9be4ce57155d23fd2bbc318b58a80e156e8e9170;hpb=2596b1db2fff8a9cc56be97099442dc791692882;p=dcpomatic.git diff --git a/src/lib/reel_writer.cc b/src/lib/reel_writer.cc index 9be4ce571..69709fa0d 100644 --- a/src/lib/reel_writer.cc +++ b/src/lib/reel_writer.cc @@ -60,6 +60,7 @@ using boost::optional; using boost::dynamic_pointer_cast; using dcp::Data; using dcp::raw_convert; +using namespace dcpomatic; int const ReelWriter::_info_size = 48; @@ -408,10 +409,10 @@ maybe_add_text ( } if (reel_asset) { - if (reel_asset->duration() != period_duration) { + if (reel_asset->actual_duration() != period_duration) { throw ProgrammingError ( __FILE__, __LINE__, - String::compose ("%1 vs %2", reel_asset->duration(), period_duration) + String::compose ("%1 vs %2", reel_asset->actual_duration(), period_duration) ); } reel->add (reel_asset); @@ -460,7 +461,7 @@ ReelWriter::create_reel (list const & refs, listduration() != period_duration) { throw ProgrammingError ( __FILE__, __LINE__, - String::compose ("%1 vs %2", reel_picture_asset->duration(), period_duration) + String::compose ("%1 vs %2", reel_picture_asset->actual_duration(), period_duration) ); } reel->add (reel_picture_asset); @@ -490,26 +491,26 @@ ReelWriter::create_reel (list const & refs, listduration() != period_duration) { + if (reel_sound_asset->actual_duration() != period_duration) { LOG_ERROR ( "Reel sound asset has length %1 but reel period is %2", - reel_sound_asset->duration(), + reel_sound_asset->actual_duration(), period_duration ); - if (reel_sound_asset->duration() != period_duration) { + if (reel_sound_asset->actual_duration() != period_duration) { throw ProgrammingError ( __FILE__, __LINE__, - String::compose ("%1 vs %2", reel_sound_asset->duration(), period_duration) + String::compose ("%1 vs %2", reel_sound_asset->actual_duration(), period_duration) ); } } reel->add (reel_sound_asset); - maybe_add_text (_subtitle_asset, reel_picture_asset->duration(), reel, refs, fonts, _film, _period); + maybe_add_text (_subtitle_asset, reel_picture_asset->actual_duration(), reel, refs, fonts, _film, _period); for (map >::const_iterator i = _closed_caption_assets.begin(); i != _closed_caption_assets.end(); ++i) { shared_ptr a = maybe_add_text ( - i->second, reel_picture_asset->duration(), reel, refs, fonts, _film, _period + i->second, reel_picture_asset->actual_duration(), reel, refs, fonts, _film, _period ); a->set_annotation_text (i->first.name); a->set_language (i->first.language); @@ -639,8 +640,8 @@ ReelWriter::write (PlayerText subs, TextType type, optional track, shared_ptr( new dcp::SubtitleImage( i.image->as_png(), - dcp::Time(period.from.seconds(), _film->video_frame_rate()), - dcp::Time(period.to.seconds(), _film->video_frame_rate()), + dcp::Time(period.from.seconds() - _period.from.seconds(), _film->video_frame_rate()), + dcp::Time(period.to.seconds() - _period.from.seconds(), _film->video_frame_rate()), i.rectangle.x, dcp::HALIGN_LEFT, i.rectangle.y, dcp::VALIGN_TOP, dcp::Time(), dcp::Time() )