+
+ if (reel->atmos()) {
+ _has_atmos = true;
+ _atmos_length += reel->atmos()->actual_duration();
+ if (_atmos_edit_rate != dcp::Fraction()) {
+ DCPOMATIC_ASSERT(reel->atmos()->edit_rate() == _atmos_edit_rate);
+ }
+ _atmos_edit_rate = reel->atmos()->edit_rate();
+ }
+
+ if (reel->main_picture()) {
+ _reel_lengths.push_back(reel->main_picture()->actual_duration());
+ } else if (reel->main_sound()) {
+ _reel_lengths.push_back(reel->main_sound()->actual_duration());
+ } else if (reel->main_subtitle()) {
+ _reel_lengths.push_back(reel->main_subtitle()->actual_duration());
+ } else if (!reel->closed_captions().empty()) {
+ _reel_lengths.push_back(reel->closed_captions().front()->actual_duration());
+ } else if (!reel->atmos()) {
+ _reel_lengths.push_back(reel->atmos()->actual_duration());
+ }
+
+ if (reel_fonts.empty()) {
+ reel_fonts.push_back(make_shared<dcpomatic::Font>(""));
+ }
+
+ _fonts.push_back(reel_fonts);