summaryrefslogtreecommitdiff
path: root/src/lib/dcp_encoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-07-09 20:10:09 +0100
committerCarl Hetherington <cth@carlh.net>2018-07-09 20:10:09 +0100
commitfa2c49210c9fcf0f26205927aec0aceb13ca69ce (patch)
tree3f4c060d5876929d58e3b02b5220121e558e16c4 /src/lib/dcp_encoder.cc
parent35928d882377e35db4eba43fb0f5882e81fa1a29 (diff)
Don't write multiple <LoadFont> tags to Interop subtitles (#1273).
Diffstat (limited to 'src/lib/dcp_encoder.cc')
-rw-r--r--src/lib/dcp_encoder.cc13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/lib/dcp_encoder.cc b/src/lib/dcp_encoder.cc
index 3a4a793a8..f1e819083 100644
--- a/src/lib/dcp_encoder.cc
+++ b/src/lib/dcp_encoder.cc
@@ -94,7 +94,18 @@ DCPEncoder::go ()
}
if (_non_burnt_subtitles) {
- _writer->write (_player->get_subtitle_fonts ());
+ list<shared_ptr<Font> > fonts = _player->get_subtitle_fonts ();
+
+ if (fonts.size() > 1 && _film->interop()) {
+ /* Interop will ignore second and subsequent <LoadFont>s so don't even
+ write them as they upset some validators.
+ */
+ shared_ptr<Font> first = fonts.front ();
+ fonts.clear ();
+ fonts.push_back (first);
+ }
+
+ _writer->write (fonts);
}
while (!_player->pass ()) {}