diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-08-04 22:47:49 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-08-04 22:47:49 +0200 |
| commit | 6d716e405a0781c3d6cdc37d3718a8858faf3dd9 (patch) | |
| tree | 7e586a10ded5d4091a998446c8fcf21a89914442 /src/lib/film.cc | |
| parent | 4e2ff7851127cd85c3e7d78b42eb884d0cda0ac3 (diff) | |
Allow specifying and writing sign language video language metadata (#2062).v2.15.157
Diffstat (limited to 'src/lib/film.cc')
| -rw-r--r-- | src/lib/film.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc index 44c49220b..acfea9991 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -481,6 +481,9 @@ Film::metadata (bool with_content_paths) const if (_release_territory) { root->add_child("ReleaseTerritory")->add_child_text(_release_territory->subtag()); } + if (_sign_language_video_language) { + root->add_child("SignLanguageVideoLanguage")->add_child_text(_sign_language_video_language->to_string()); + } root->add_child("VersionNumber")->add_child_text(raw_convert<string>(_version_number)); root->add_child("Status")->add_child_text(dcp::status_to_string(_status)); if (_chain) { @@ -662,6 +665,11 @@ Film::read_metadata (optional<boost::filesystem::path> path) _release_territory = dcp::LanguageTag::RegionSubtag (*release_territory); } + auto sign_language_video_language = f.optional_string_child("SignLanguageVideoLanguage"); + if (sign_language_video_language) { + _sign_language_video_language = dcp::LanguageTag(*sign_language_video_language); + } + _version_number = f.optional_number_child<int>("VersionNumber").get_value_or(0); auto status = f.optional_string_child("Status"); @@ -2145,3 +2153,18 @@ Film::set_audio_language (optional<dcp::LanguageTag> language) _audio_language = language; } + +bool +Film::has_sign_language_video_channel () const +{ + return _audio_channels >= static_cast<int>(dcp::Channel::SIGN_LANGUAGE); +} + + +void +Film::set_sign_language_video_language (optional<dcp::LanguageTag> lang) +{ + FilmChangeSignaller ch (this, Property::SIGN_LANGUAGE_VIDEO_LANGUAGE); + _sign_language_video_language = lang; +} + |
