diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-09-06 00:45:44 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2025-09-07 20:04:44 +0200 |
| commit | 0eadbd860d04cc2322d18046f69e7a9b2cb437f4 (patch) | |
| tree | 84f39eead37d204cbb80e956122b8f48f001cf42 /src/lib | |
| parent | 506b98d414e96e53eb56a41ca991b691c8393408 (diff) | |
Add audio delay option to Config and player prefs.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/config.cc | 4 | ||||
| -rw-r--r-- | src/lib/config.h | 13 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/lib/config.cc b/src/lib/config.cc index 9b5bd34be..af97c7af7 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -115,6 +115,7 @@ Config::set_defaults() _default_video_bit_rate[VideoEncoding::JPEG2000] = 150000000; _default_video_bit_rate[VideoEncoding::MPEG2] = 5000000; _default_audio_delay = 0; + _player_audio_delay = 0; _default_interop = false; _default_metadata.clear(); _upload_after_make_dcp = false; @@ -385,6 +386,7 @@ try } _default_video_bit_rate[VideoEncoding::MPEG2] = f.optional_number_child<int64_t>("DefaultMPEG2VideoBitRate").get_value_or(5000000); _default_audio_delay = f.optional_number_child<int>("DefaultAudioDelay").get_value_or(0); + _player_audio_delay = f.optional_number_child<int>("PlayerAudioDelay").get_value_or(0); _default_interop = f.optional_bool_child("DefaultInterop").get_value_or(false); try { @@ -812,6 +814,8 @@ Config::write_config() const cxml::add_text_child(root, "DefaultStillLength", fmt::to_string(_default_still_length)); /* [XML] DefaultAudioDelay Default delay to apply to audio (positive moves audio later) in milliseconds. */ cxml::add_text_child(root, "DefaultAudioDelay", fmt::to_string(_default_audio_delay)); + /* [XML] PlayerAudioDelay Delay to apply to audio in the player (positive moves audio later) in milliseconds. */ + cxml::add_text_child(root, "PlayerAudioDelay", fmt::to_string(_player_audio_delay)); if (_default_audio_language) { /* [XML] DefaultAudioLanguage Default audio language to use for new films */ cxml::add_text_child(root, "DefaultAudioLanguage", _default_audio_language->as_string()); diff --git a/src/lib/config.h b/src/lib/config.h index 2bc700e86..d8ff70db8 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -254,6 +254,10 @@ public: return _default_audio_delay; } + int player_audio_delay() const { + return _player_audio_delay; + } + bool default_interop() const { return _default_interop; } @@ -821,6 +825,10 @@ public: maybe_set(_default_audio_delay, d); } + void set_player_audio_delay(int d) { + maybe_set(_player_audio_delay, d); + } + void set_default_audio_language(dcp::LanguageTag tag) { maybe_set(_default_audio_language, tag); } @@ -1400,7 +1408,12 @@ private: std::string _dcp_product_version; std::string _dcp_j2k_comment; EnumIndexedVector<int64_t, VideoEncoding> _default_video_bit_rate; + /** Default audio delay in ms */ int _default_audio_delay; + /** Delay for audio (with respect to picture) in the player, in ms. + * Can be negative to advance audio. + */ + int _player_audio_delay; bool _default_interop; boost::optional<dcp::LanguageTag> _default_audio_language; boost::optional<dcp::LanguageTag::RegionSubtag> _default_territory; |
