Handle vertical alignment of subs correctly wrt the difference between Interop and...
[dcpomatic.git] / src / lib / dcp_subtitle_decoder.cc
index 4743ecf42c228fb1dcb2b65ee021ecb7289ce96f..cbfe6fdbe29866302a1ee7218e55c4f4d1ed253b 100644 (file)
@@ -41,11 +41,17 @@ DCPSubtitleDecoder::DCPSubtitleDecoder (shared_ptr<const Film> film, shared_ptr<
        : Decoder (film)
 {
        /* Load the XML or MXF file */
-       auto const c = load (content->path(0));
-       c->fix_empty_font_ids ();
-       _subtitles = c->subtitles ();
+       auto const asset = load (content->path(0));
+       asset->fix_empty_font_ids ();
+       _subtitles = asset->subtitles ();
        _next = _subtitles.begin ();
 
+       if (dynamic_pointer_cast<dcp::InteropSubtitleAsset>(asset)) {
+               _standard = dcp::Standard::INTEROP;
+       } else {
+               _standard = dcp::Standard::SMPTE;
+       }
+
        text.push_back (make_shared<TextDecoder>(this, content->only_text()));
        update_position();
 }
@@ -102,7 +108,7 @@ DCPSubtitleDecoder::pass ()
                }
        }
 
-       only_text()->emit_plain (p, s);
+       only_text()->emit_plain(p, s, _standard);
 
        update_position();