View Bug Details

IDProjectCategoryView StatusLast Update
0001273DCP-o-maticBugspublic2021-08-17 21:44
Reportercarl Assigned To 
Status newResolutionopen 
Summary0001273: Possible to create interop subs with two <LoadFont> tags

If you have two source subtitle files at the same time, with different fonts specified, an Interop subtitle file will be created with two <LoadFont> tags. As I read the spec this is OK, though the second one will be ignored. Some people are verifying subs against which requires that there is only one <LoadFont>. It's probably worth doing something about this.

TagsNo tags attached.
Estimated weeks required
Estimated work requiredUnknown


related to 0001595 new Using different font files per file gives unpredictable results 



2018-04-26 12:39

manager   ~0002403

Last edited: 2018-04-26 14:24

I came across this doing my tests of subtitle sizes - added two subtitle files, assigned ARIAL.TTF to the first, forgot to assign a font to the second one (still had ARIAL on my mind and thought it would be used for other subtitle files in the project as well).
This resulted in both ARIAL.TTF as well as LiberationSans-Regular.ttf (default font) to be included. This can actually happen quickly, when e.g. working in reels to obey the 640KByte limit, or if you need to re-edit a title, then reload in DCP-o-matic, and forget to assign the non-default font. So, I guess we should do something about it. At least put this to the hints/warnings dialog?

How about setting a default font in prefs?

Also, I noticed that when I use a subtitle file in DCP-o-matic, edit it in a text editor and save while DCP-o-matic is still open, these changes are not reflected in the DCP-o-matic project. Should we have an automatic/manual refresh? Maybe right-click 'Update from file' or something, as that happens e.g. with video and audio files as well? Should probably split this into a separate feature request...

  • Carsten


2018-07-09 20:10

administrator   ~0002524

Multiple tags are blocked by fa2c49210c9fcf0f26205927aec0aceb13ca69ce


2018-07-09 20:27

administrator   ~0002525

To do this right seems quite complicated, possibly disproportionately so. I think the ideal case would go something like:

  • find all the Fonts in the whole project [ask each SubtitleContent]
  • merge those with the same TTFs and re-write all the IDs (to avoid ID collisions) [set up SubtitleDecoders with old/new ID maps]
  • SMPTE -> stop here.
  • Choose the most-used font (if there is >1) and re-write the IDs again so that everything uses that [modify maps in SubtitleDecoders]
  • Hint that this will happen

When to do this? When player sets up pieces? It could tell Decoders what to do, and Player::get_subtitle_fonts() could give the right answer.

Font ID is specified in the emissions of decoders:

  • TextSubtitleDecoder calls emit_text_start which uses TEXT_FONT_ID
  • DCPSubtitleDecoder / DCPDecoder gets its from the source file (and there may be many in SMPTE).

You can ask SubtitleContent for its fonts; it knows what is going on. But how do you change those mappings?
Each SubtitleContent would need a mapping table for IDs, which we indirect through when SubtitleDecoder emits.


2018-07-23 00:49

manager   ~0002544

Hmm, am I missing something - how do you switch e.g. from normal to italic between consecutive subs if the second (italic) font is ignored?

  • Carsten


2018-07-23 01:38

administrator   ~0002547

It's a good question, and I don't know the answer... perhaps the projection system is expected to make a "slanted" (fake italic) version of the font? Maybe you should just not specify the font with Interop and let the projection system sort it out.


2018-07-23 01:46

manager   ~0002548

Something new to learn everyday...

  • Carsten


2018-07-23 01:54

administrator   ~0002552

Maybe we need a short survey of Interop DCPs with italic subs to see how they handle it.


2018-07-23 03:37

manager   ~0002553

Last edited: 2018-07-23 03:53

suggests that the projector does a cheap 'italic skew'. I was also mislead by DCP-o-matic's option to choose normal, italic and bold fonts and never spent much thinking into it. Wow, how did that escape me...? My general ignorance about subt(it)le details, I guess...

  • Carsten


2018-07-27 01:53

manager   ~0002578

Last edited: 2018-07-27 01:58

I guess we should simply disallow to select a second font file (somehow). As we are only allowed a single subtitle asset per reel. would be allowed to have a different font per reel, but, that could become complicated to conform in reeled projects. But it could be necessary if font compressor is used on reeled timed text xmls...then every reel needs it's own font file...hmm...a lot of work for some probably rare usage profiles. Is there a simple way to restrict a project to a single font file? Allow font selection only in prefs? That would also allow to set a default font different from the system standard font.

Am I right to suggest the option to select italic and bold font is unnecessary? Does any of that impact text burn-in in an unnecessary way? I guess that having multiple fonts is no problem when burning in. Do we need to allow this?

  • Carsten


2018-07-27 02:11

manager   ~0002579

Last edited: 2018-07-27 02:21

Thinking... I guess it is completely legitimate to have different fonts in one project, especially since burning in is also a way to cater for special needs. As such, using a separate font per caption content is useful. Some people may want to separate speakers, or narration from description, by using dedicated fonts, or have dual subtitles with different fonts (the swiss often use dual-language subtitles). Or one burn-in as forced subs, and one timed-text with separate fonts. E.g. to use a special foreign language font mixed with a standard font for translation. Actually, now that I think of it, I am surprised that SMPTE does not approve multiple fonts for timed text could probably merge your own font, though, if there is not a single font with the necessary glyphs...

Is there a way to restrict just timed-text to a single font, if the user accidentally chose two fonts? Then give a hint about this?
What if you set the font for every additional caption source file automatically to that one chosen for the first one and disallow a change (grey out) - until 'burn-in' or 'use as CCAP' is active?

  • Carsten

Bug History

Date Modified Username Field Change
2018-04-11 00:38 carl New Bug
2018-04-26 12:39 Carsten Note Added: 0002403
2018-04-26 12:42 Carsten Note Edited: 0002403
2018-04-26 12:43 Carsten Note Edited: 0002403
2018-04-26 14:24 Carsten Note Edited: 0002403
2018-05-18 00:10 carl Priority normal => high
2018-07-09 20:10 carl Note Added: 0002524
2018-07-09 20:27 carl Note Added: 0002525
2018-07-23 00:49 Carsten Note Added: 0002544
2018-07-23 01:38 carl Note Added: 0002547
2018-07-23 01:46 Carsten Note Added: 0002548
2018-07-23 01:54 carl Note Added: 0002552
2018-07-23 03:37 Carsten Note Added: 0002553
2018-07-23 03:53 Carsten Note Edited: 0002553
2018-07-27 01:53 Carsten Note Added: 0002578
2018-07-27 01:55 Carsten Note Edited: 0002578
2018-07-27 01:57 Carsten Note Edited: 0002578
2018-07-27 01:58 Carsten Note Edited: 0002578
2018-07-27 02:11 Carsten Note Added: 0002579
2018-07-27 02:16 Carsten Note Edited: 0002579
2018-07-27 02:18 Carsten Note Edited: 0002579
2018-07-27 02:21 Carsten Note Edited: 0002579
2019-01-10 20:16 carl Target Version 2.14.0 =>
2021-08-17 21:44 carl Relationship added related to 0001595