diff --git a/inputstream.ffmpegdirect/resources/language/resource.language.en_gb/strings.po b/inputstream.ffmpegdirect/resources/language/resource.language.en_gb/strings.po index 36ce1395..47e5659c 100644 --- a/inputstream.ffmpegdirect/resources/language/resource.language.en_gb/strings.po +++ b/inputstream.ffmpegdirect/resources/language/resource.language.en_gb/strings.po @@ -133,8 +133,12 @@ msgctxt "#30046" msgid "For catchup streams report stream is not realtime" msgstr "" -#empty strings from id 30047 to 30599 +#. help: Advanced - disableStrictHLSfileExtensionCheck +msgctxt "#30047" +msgid "Disable strict HLS file extension check" +msgstr "" +# empty strings from id 30048 to 30599 #. ############ #. help info # #. ############ @@ -233,3 +237,8 @@ msgstr "" msgctxt "#30645" msgid "For certain catchup streams such as HLS reporting that a live stream is not live can improve stream open times. If testing this option works for a catchup stream/provider, then add a [I]\"#KODIPROP=inputstream.ffmpegdirect.is_realtime_stream=false\"[/I] to the M3U entry in question. This setting should not be left enabled for all streams." msgstr "" + +#. help: Advanced - disableStrictHLSfileExtensionCheck +msgctxt "#30646" +msgid "Allows playing HLS streams without file extension or with unsuported file extension. This lowers the security requirements in ffmpeg." +msgstr "" diff --git a/inputstream.ffmpegdirect/resources/settings.xml b/inputstream.ffmpegdirect/resources/settings.xml index bcde0be9..5fafa74e 100644 --- a/inputstream.ffmpegdirect/resources/settings.xml +++ b/inputstream.ffmpegdirect/resources/settings.xml @@ -140,6 +140,11 @@ false + + 2 + false + + diff --git a/src/stream/FFmpegStream.cpp b/src/stream/FFmpegStream.cpp index c77e09dd..b7bb7c6c 100644 --- a/src/stream/FFmpegStream.cpp +++ b/src/stream/FFmpegStream.cpp @@ -2287,6 +2287,10 @@ AVDictionary* FFmpegStream::GetFFMpegOptionsFromInput() if (url.GetProtocol().empty() || url.IsProtocol("file")) av_dict_set(&options, "protocol_whitelist", "file,http,https,tcp,tls,crypto", 0); + // Disable strict HLS file extension check + if (kodi::addon::GetSettingBoolean("disableStrictHLSfileExtensionCheck")) + av_dict_set(&options, "extension_picky", "0", 0); + if (url.IsProtocol("http") || url.IsProtocol("https")) { std::map protocolOptions;