@@ -34,7 +34,10 @@ constexpr std::string_view PROP_MANIFEST_HEADERS = "inputstream.adaptive.manifes
3434constexpr std::string_view PROP_STREAM_PARAMS = " inputstream.adaptive.stream_params" ;
3535constexpr std::string_view PROP_STREAM_HEADERS = " inputstream.adaptive.stream_headers" ;
3636
37- constexpr std::string_view PROP_AUDIO_LANG_ORIG = " inputstream.adaptive.original_audio_language" ;
37+ constexpr std::string_view PROP_AUDIO_LANG_ORIG = " inputstream.adaptive.original_audio_language" ; // ! @todo: deprecated, to be removed on next Kodi release
38+ constexpr std::string_view PROP_STREAM_AUDIO_CFG = " inputstream.adaptive.stream_audio_cfg" ;
39+ constexpr std::string_view PROP_STREAM_SUBTITLES_CFG = " inputstream.adaptive.stream_subtitles_cfg" ;
40+
3841constexpr std::string_view PROP_PLAY_TIMESHIFT_BUFFER = " inputstream.adaptive.play_timeshift_buffer" ;
3942constexpr std::string_view PROP_LIVE_DELAY = " inputstream.adaptive.live_delay" ;
4043constexpr std::string_view PROP_PRE_INIT_DATA = " inputstream.adaptive.pre_init_data" ;
@@ -113,9 +116,29 @@ KodiProperties UTILS::PROPERTIES::ParseKodiProperties(
113116 {
114117 ParseHeaderString (props.m_streamHeaders , prop.second );
115118 }
116- else if (prop.first == PROP_AUDIO_LANG_ORIG)
119+ else if (prop.first == PROP_AUDIO_LANG_ORIG) // ! @todo: deprecated, to be removed on next Kodi release
120+ {
121+ LOG::Log (LOGWARNING,
122+ " Warning \" inputstream.adaptive.original_audio_language\" property is deprecated "
123+ " has been replaced by \" inputstream.adaptive.stream_audio_cfg\" . "
124+ " Please read Wiki \" Integration\" page to learn more about the new properties." );
125+ props.m_audioLangOriginal = prop.second ;
126+ }
127+ else if (prop.first == PROP_STREAM_AUDIO_CFG)
117128 {
118- props.m_audioLanguageOrig = prop.second ;
129+ auto values = STRING::ToMap (prop.second , ' =' , ' ;' );
130+
131+ if (STRING::KeyExists (values, " default_flag_langcode" ))
132+ props.m_audioLangDefault = STRING::Trim (values[" default_flag_langcode" ]);
133+ if (STRING::KeyExists (values, " original_flag_langcode" ))
134+ props.m_audioLangOriginal = STRING::Trim (values[" original_flag_langcode" ]);
135+ }
136+ else if (prop.first == PROP_STREAM_SUBTITLES_CFG)
137+ {
138+ auto values = STRING::ToMap (prop.second , ' =' , ' ;' );
139+
140+ if (STRING::KeyExists (values, " default_flag_langcode" ))
141+ props.m_subtitleLangDefault = STRING::Trim (values[" default_flag_langcode" ]);
119142 }
120143 else if (prop.first == PROP_PLAY_TIMESHIFT_BUFFER)
121144 {
0 commit comments