+ if (i->main_markers ()) {
+ map<dcp::Marker, dcp::Time> rm = i->main_markers()->get();
+ _markers.insert (rm.begin(), rm.end());
+ }
+
+ if (i->atmos()) {
+ _has_atmos = true;
+ _atmos_length += i->atmos()->actual_duration();
+ if (_atmos_edit_rate != dcp::Fraction()) {
+ DCPOMATIC_ASSERT (i->atmos()->edit_rate() == _atmos_edit_rate);
+ }
+ _atmos_edit_rate = i->atmos()->edit_rate();
+ }
+
+ if (i->main_picture()) {
+ _reel_lengths.push_back (i->main_picture()->actual_duration());
+ } else if (i->main_sound()) {
+ _reel_lengths.push_back (i->main_sound()->actual_duration());
+ } else if (i->main_subtitle()) {
+ _reel_lengths.push_back (i->main_subtitle()->actual_duration());
+ } else if (!i->closed_captions().empty()) {
+ _reel_lengths.push_back (i->closed_captions().front()->actual_duration());
+ } else if (!i->atmos()) {
+ _reel_lengths.push_back (i->atmos()->actual_duration());