diff options
| author | Carl Hetherington <cth@carlh.net> | 2019-03-17 01:27:02 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2019-05-10 23:43:42 +0100 |
| commit | 2596b1db2fff8a9cc56be97099442dc791692882 (patch) | |
| tree | 519faf7567e5d19276067ee244ad21ee24ac5c9e /src/lib/reel_writer.cc | |
| parent | 8c365af343a15bee11af53fc6bc16487b83260d1 (diff) | |
Basics of marker writing (part of #782).
Diffstat (limited to 'src/lib/reel_writer.cc')
| -rw-r--r-- | src/lib/reel_writer.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/lib/reel_writer.cc b/src/lib/reel_writer.cc index 3b9e413a2..9be4ce571 100644 --- a/src/lib/reel_writer.cc +++ b/src/lib/reel_writer.cc @@ -39,6 +39,7 @@ #include <dcp/reel_sound_asset.h> #include <dcp/reel_subtitle_asset.h> #include <dcp/reel_closed_caption_asset.h> +#include <dcp/reel_markers_asset.h> #include <dcp/dcp.h> #include <dcp/cpl.h> #include <dcp/certificate_chain.h> @@ -514,6 +515,25 @@ ReelWriter::create_reel (list<ReferencedReelAsset> const & refs, list<shared_ptr a->set_language (i->first.language); } + map<dcp::Marker, DCPTime> markers = _film->markers (); + map<dcp::Marker, DCPTime> reel_markers; + for (map<dcp::Marker, DCPTime>::const_iterator i = markers.begin(); i != markers.end(); ++i) { + if (_period.contains(i->second)) { + reel_markers[i->first] = i->second; + } + } + + if (!reel_markers.empty ()) { + shared_ptr<dcp::ReelMarkersAsset> ma (new dcp::ReelMarkersAsset(dcp::Fraction(_film->video_frame_rate(), 1), 0)); + for (map<dcp::Marker, DCPTime>::const_iterator i = reel_markers.begin(); i != reel_markers.end(); ++i) { + int h, m, s, f; + DCPTime relative = i->second - _period.from; + relative.split (_film->video_frame_rate(), h, m, s, f); + ma->set (i->first, dcp::Time(h, m, s, f, _film->video_frame_rate())); + } + reel->add (ma); + } + return reel; } |
