#include "audio_content.h"
#include "audio_decoder.h"
#include "config.h"
+#include "constants.h"
#include "dcp_content.h"
#include "dcp_decoder.h"
#include "digester.h"
_reel = _reels.begin ();
get_readers ();
+
+ _font_id_allocator.add_fonts_from_reels(_reels);
+ _font_id_allocator.allocate();
}
ContentTime::from_frames(_offset - entry_point, vfr) + ContentTime::from_seconds(b.in().as_seconds()),
ContentTime::from_frames(_offset - entry_point, vfr) + ContentTime::from_seconds(b.out().as_seconds())
),
- strings
+ strings,
+ asset->subtitle_standard()
);
strings.clear ();
}
dcp::SubtitleString is_copy = *is;
- is_copy.set_font(id_for_font_in_reel(is_copy.font().get_value_or(""), _reel - _reels.begin()));
+ is_copy.set_font(_font_id_allocator.font_id(_reel - _reels.begin(), asset->id(), is_copy.font().get_value_or("")));
strings.push_back(is_copy);
}
ContentTime::from_frames(_offset - entry_point, vfr) + ContentTime::from_seconds(b.in().as_seconds()),
ContentTime::from_frames(_offset - entry_point, vfr) + ContentTime::from_seconds(b.out().as_seconds())
),
- strings
+ strings,
+ asset->subtitle_standard()
);
strings.clear ();
}
return;
}
- if ((*_reel)->main_picture()) {
+ if (video && !video->ignore() && (*_reel)->main_picture()) {
auto asset = (*_reel)->main_picture()->asset ();
auto mono = dynamic_pointer_cast<dcp::MonoPictureAsset> (asset);
auto stereo = dynamic_pointer_cast<dcp::StereoPictureAsset> (asset);
_stereo_reader.reset ();
}
- if ((*_reel)->main_sound()) {
+ if (audio && !audio->ignore() && (*_reel)->main_sound()) {
_sound_reader = (*_reel)->main_sound()->asset()->start_read ();
_sound_reader->set_check_hmac (false);
} else {
/* Pass texts in the pre-roll */
- auto const vfr = _dcp_content->active_video_frame_rate (film());
- for (int i = 0; i < pre_roll_seconds * vfr; ++i) {
- pass_texts (pre, (*_reel)->main_picture()->asset()->size());
- pre += ContentTime::from_frames (1, vfr);
+ if (_reel != _reels.end()) {
+ auto const vfr = _dcp_content->active_video_frame_rate (film());
+ for (int i = 0; i < pre_roll_seconds * vfr; ++i) {
+ pass_texts (pre, (*_reel)->main_picture()->asset()->size());
+ pre += ContentTime::from_frames (1, vfr);
+ }
}
/* Seek to correct position */