diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-11-18 01:31:30 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-11-20 23:47:03 +0100 |
| commit | 84a0d8a228f36f95ac265bac163c8e3f02dc1fd0 (patch) | |
| tree | ed7a3bf3a9d0806ddb3a9ea6196230dfeaa1679e /src/lib | |
| parent | 7ec57dea9d77070244c411c354623cfb5bac09ca (diff) | |
Remove subtitle language from text content.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/dcp_subtitle_content.cc | 6 | ||||
| -rw-r--r-- | src/lib/text_content.cc | 41 | ||||
| -rw-r--r-- | src/lib/text_content.h | 13 | ||||
| -rw-r--r-- | src/lib/writer.cc | 13 |
4 files changed, 18 insertions, 55 deletions
diff --git a/src/lib/dcp_subtitle_content.cc b/src/lib/dcp_subtitle_content.cc index f8d12d4e4..43936314b 100644 --- a/src/lib/dcp_subtitle_content.cc +++ b/src/lib/dcp_subtitle_content.cc @@ -69,12 +69,6 @@ DCPSubtitleContent::examine (shared_ptr<const Film> film, shared_ptr<Job> job) /* Default to turning these subtitles on */ only_text()->set_use (true); - if (iop) { - only_text()->set_language (iop->language ()); - } else if (smpte) { - only_text()->set_language (smpte->language().get_value_or ("")); - } - _length = ContentTime::from_seconds (sc->latest_subtitle_out().as_seconds ()); sc->fix_empty_font_ids (); diff --git a/src/lib/text_content.cc b/src/lib/text_content.cc index 901d38647..ecd28d1a0 100644 --- a/src/lib/text_content.cc +++ b/src/lib/text_content.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2013-2018 Carl Hetherington <cth@carlh.net> + Copyright (C) 2013-2020 Carl Hetherington <cth@carlh.net> This file is part of DCP-o-matic. @@ -47,17 +47,16 @@ int const TextContentProperty::X_SCALE = 502; int const TextContentProperty::Y_SCALE = 503; int const TextContentProperty::USE = 504; int const TextContentProperty::BURN = 505; -int const TextContentProperty::LANGUAGE = 506; -int const TextContentProperty::FONTS = 507; -int const TextContentProperty::COLOUR = 508; -int const TextContentProperty::EFFECT = 509; -int const TextContentProperty::EFFECT_COLOUR = 510; -int const TextContentProperty::LINE_SPACING = 511; -int const TextContentProperty::FADE_IN = 512; -int const TextContentProperty::FADE_OUT = 513; -int const TextContentProperty::OUTLINE_WIDTH = 514; -int const TextContentProperty::TYPE = 515; -int const TextContentProperty::DCP_TRACK = 516; +int const TextContentProperty::FONTS = 506; +int const TextContentProperty::COLOUR = 507; +int const TextContentProperty::EFFECT = 508; +int const TextContentProperty::EFFECT_COLOUR = 509; +int const TextContentProperty::LINE_SPACING = 510; +int const TextContentProperty::FADE_IN = 511; +int const TextContentProperty::FADE_OUT = 512; +int const TextContentProperty::OUTLINE_WIDTH = 513; +int const TextContentProperty::TYPE = 514; +int const TextContentProperty::DCP_TRACK = 515; TextContent::TextContent (Content* parent, TextType type, TextType original_type) : ContentPart (parent) @@ -215,12 +214,6 @@ TextContent::TextContent (Content* parent, cxml::ConstNodePtr node, int version) _fade_out = ContentTime (*fo); } - if (version >= 37) { - _language = node->optional_string_child ("Language").get_value_or (""); - } else { - _language = node->optional_string_child ("SubtitleLanguage").get_value_or (""); - } - list<cxml::NodePtr> fonts = node->node_children ("Font"); for (list<cxml::NodePtr>::const_iterator i = fonts.begin(); i != fonts.end(); ++i) { _fonts.push_back (shared_ptr<Font> (new Font (*i))); @@ -316,7 +309,6 @@ TextContent::TextContent (Content* parent, vector<shared_ptr<Content> > c) _y_offset = ref->y_offset (); _x_scale = ref->x_scale (); _y_scale = ref->y_scale (); - _language = ref->language (); _fonts = ref_fonts; _line_spacing = ref->line_spacing (); _fade_in = ref->fade_in (); @@ -343,7 +335,6 @@ TextContent::as_xml (xmlpp::Node* root) const text->add_child("YOffset")->add_child_text (raw_convert<string> (_y_offset)); text->add_child("XScale")->add_child_text (raw_convert<string> (_x_scale)); text->add_child("YScale")->add_child_text (raw_convert<string> (_y_scale)); - text->add_child("Language")->add_child_text (_language); if (_colour) { text->add_child("Red")->add_child_text (raw_convert<string> (_colour->r)); text->add_child("Green")->add_child_text (raw_convert<string> (_colour->g)); @@ -410,9 +401,7 @@ TextContent::identifier () const s += "_" + f->file().get_value_or("Default").string(); } - /* The DCP track and language are for metadata only, and don't affect - how this content looks. - */ + /* The DCP track is for metadata only, and doesn't affect how this content looks */ return s; } @@ -518,12 +507,6 @@ TextContent::set_y_scale (double s) } void -TextContent::set_language (string language) -{ - maybe_set (_language, language, TextContentProperty::LANGUAGE); -} - -void TextContent::set_line_spacing (double s) { maybe_set (_line_spacing, s, TextContentProperty::LINE_SPACING); diff --git a/src/lib/text_content.h b/src/lib/text_content.h index 5eda8764f..1c7eef19a 100644 --- a/src/lib/text_content.h +++ b/src/lib/text_content.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2013-2019 Carl Hetherington <cth@carlh.net> + Copyright (C) 2013-2020 Carl Hetherington <cth@carlh.net> This file is part of DCP-o-matic. @@ -40,7 +40,6 @@ public: static int const Y_SCALE; static int const USE; static int const BURN; - static int const LANGUAGE; static int const FONTS; static int const COLOUR; static int const EFFECT; @@ -77,7 +76,6 @@ public: void set_y_offset (double); void set_x_scale (double); void set_y_scale (double); - void set_language (std::string language); void set_colour (dcp::Colour); void unset_colour (); void set_effect (dcp::Effect); @@ -129,11 +127,6 @@ public: return _fonts; } - std::string language () const { - boost::mutex::scoped_lock lm (_mutex); - return _language; - } - boost::optional<dcp::Colour> colour () const { boost::mutex::scoped_lock lm (_mutex); return _colour; @@ -186,10 +179,6 @@ public: static std::list<boost::shared_ptr<TextContent> > from_xml (Content* parent, cxml::ConstNodePtr, int version); -protected: - /** subtitle language (e.g. "German") or empty if it is not known */ - std::string _language; - private: friend struct ffmpeg_pts_offset_test; diff --git a/src/lib/writer.cc b/src/lib/writer.cc index 346cbb0c2..79e5ad73b 100644 --- a/src/lib/writer.cc +++ b/src/lib/writer.cc @@ -660,15 +660,12 @@ Writer::write_cover_sheet () boost::algorithm::replace_all (text, "$CONTAINER", _film->container()->container_nickname()); boost::algorithm::replace_all (text, "$AUDIO_LANGUAGE", _film->isdcf_metadata().audio_language); - optional<string> subtitle_language; - BOOST_FOREACH (shared_ptr<Content> i, _film->content()) { - BOOST_FOREACH (shared_ptr<TextContent> j, i->text) { - if (j->type() == TEXT_OPEN_SUBTITLE && j->use()) { - subtitle_language = j->language (); - } - } + vector<dcp::LanguageTag> subtitle_languages = _film->subtitle_languages(); + if (subtitle_languages.empty()) { + boost::algorithm::replace_all (text, "$SUBTITLE_LANGUAGE", "None"); + } else { + boost::algorithm::replace_all (text, "$SUBTITLE_LANGUAGE", subtitle_languages.front().description()); } - boost::algorithm::replace_all (text, "$SUBTITLE_LANGUAGE", subtitle_language.get_value_or("None")); boost::uintmax_t size = 0; for ( |
