X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Flib%2Ftext_decoder.cc;h=c691f795d2d5133f7b64e63a44275a72ce0abf30;hb=486038a7eb23498e1e5097e73a32929d889ca505;hp=b1b6cbcc4d503d438fb46074dcc9ec8541444a35;hpb=c8a036eb727ceddc64a0304d781c916eb952c001;p=dcpomatic.git diff --git a/src/lib/text_decoder.cc b/src/lib/text_decoder.cc index b1b6cbcc4..c691f795d 100644 --- a/src/lib/text_decoder.cc +++ b/src/lib/text_decoder.cc @@ -102,12 +102,17 @@ set_forced_appearance(shared_ptr content, StringText& subtitl void -TextDecoder::emit_plain_start (ContentTime from, vector subtitles) +TextDecoder::emit_plain_start (ContentTime from, vector subtitles, dcp::Standard valign_standard) { vector string_texts; for (auto& subtitle: subtitles) { - auto string_text = StringText(subtitle, content()->outline_width(), subtitle.font() ? content()->get_font(*subtitle.font()) : shared_ptr()); + auto string_text = StringText( + subtitle, + content()->outline_width(), + subtitle.font() ? content()->get_font(*subtitle.font()) : shared_ptr(), + valign_standard + ); string_text.set_text(escape_text(string_text.text())); set_forced_appearance(content(), string_text); string_texts.push_back(string_text); @@ -162,10 +167,10 @@ TextDecoder::emit_plain_start (ContentTime from, sub::Subtitle const & sub_subti switch (line.vertical_position.reference.get_value_or(sub::BOTTOM_OF_SCREEN)) { case sub::BOTTOM_OF_SCREEN: case sub::TOP_OF_SUBTITLE: - /* This 1.015 is an arbitrary value to lift the bottom sub off the bottom + /* This 0.9 is an arbitrary value to lift the bottom sub off the bottom of the screen a bit to a pleasing degree. */ - v_position = 1.015 - + v_position = 0.9 - (1 + bottom_line.get() - line.vertical_position.line.get()) * multiplier; v_align = dcp::VAlign::TOP; @@ -265,7 +270,12 @@ TextDecoder::emit_plain_start (ContentTime from, sub::Subtitle const & sub_subti 0 ); - auto string_text = StringText(dcp_subtitle, content()->outline_width(), content()->get_font(block.font.get_value_or(""))); + auto string_text = StringText( + dcp_subtitle, + content()->outline_width(), + content()->get_font(block.font.get_value_or("")), + dcp::Standard::SMPTE + ); set_forced_appearance(content(), string_text); string_texts.push_back(string_text); } @@ -284,9 +294,9 @@ TextDecoder::emit_stop (ContentTime to) void -TextDecoder::emit_plain (ContentTimePeriod period, vector subtitles) +TextDecoder::emit_plain (ContentTimePeriod period, vector subtitles, dcp::Standard valign_standard) { - emit_plain_start (period.from, subtitles); + emit_plain_start (period.from, subtitles, valign_standard); emit_stop (period.to); }