<html><head></head><body>François, I would appreciate if you could check at least this one patch.<br><br>TIA.<br><br><div class="gmail_quote">Le 27 septembre 2020 13:36:07 GMT+03:00, "Rémi Denis-Courmont" <remi@remlab.net> a écrit :<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">The M3U parser has lower priority than the adaptive module. If we get an<br>M3U input here, it's either not HLS or HLS support is not installed.<hr> modules/demux/playlist/m3u.c | 58 ++++--------------------------------<br> 1 file changed, 5 insertions(+), 53 deletions(-)<br><br>diff --git a/modules/demux/playlist/m3u.c b/modules/demux/playlist/m3u.c<br>index 73156cf3ed..038e2077d1 100644<br>--- a/modules/demux/playlist/m3u.c<br>+++ b/modules/demux/playlist/m3u.c<br>@@ -52,24 +52,6 @@ static char *CheckUnicode (const char *str)<br> return IsUTF8 (str) ? strdup (str): NULL;<br> }<br> <br>-static bool IsHLS(const unsigned char *buf, size_t length)<br>-{<br>- static const char *const hlsexts[] =<br>- {<br>- "#EXT-X-MEDIA:",<br>- "#EXT-X-VERSION:",<br>- "#EXT-X-TARGETDURATION:",<br>- "#EXT-X-MEDIA-SEQUENCE:",<br>- "#EXT-X-STREAM-INF:",<br>- };<br>-<br>- for (size_t i = 0; i < ARRAY_SIZE(hlsexts); i++)<br>- if (strnstr((const char *)buf, hlsexts[i], length) != NULL)<br>- return true;<br>-<br>- return false;<br>-}<br>-<br> /*****************************************************************************<br> * Import_M3U: main import function<br> *****************************************************************************/<br>@@ -101,41 +83,11 @@ int Import_M3U( vlc_object_t *p_this )<br> i_peek -= offset;<br> }<br> <br>- /* File type: playlist, or not (HLS manifest or whatever else) */<br>- char *type = stream_MimeType(p_stream->s);<br>- bool match;<br>-<br>- if (p_stream->obj.force)<br>- match = true;<br>- else<br>- if (type != NULL<br>- && !vlc_ascii_strcasecmp(type, "application/vnd.apple.mpegurl")) /* HLS */<br>- match = false;<br>- else<br>- if (memcmp(p_peek, "#EXTM3U", 7 ) == 0<br>- || (type != NULL<br>- && (vlc_ascii_strcasecmp(type, "application/mpegurl") == 0<br>- || vlc_ascii_strcasecmp(type, "application/x-mpegurl") == 0<br>- || vlc_ascii_strcasecmp(type, "audio/mpegurl") == 0<br>- || vlc_ascii_strcasecmp(type, "vnd.apple.mpegURL") == 0<br>- || vlc_ascii_strcasecmp(type, "audio/x-mpegurl") == 0))<br>- || stream_HasExtension(p_stream, ".m3u8")<br>- || stream_HasExtension(p_stream, ".m3u"))<br>- match = !IsHLS(p_peek, i_peek);<br>- else<br>- if (stream_HasExtension(p_stream, ".vlc")<br>- || strncasecmp((const char *)p_peek, "RTSPtext", 8) == 0<br>- || ContainsURL(p_peek, i_peek))<br>- match = true;<br>- else<br>- match = false;<br>-<br>- free(type);<br>-<br>- if (!match)<br>- return VLC_EGENERIC;<br>-<br>- if (offset != 0 && vlc_stream_Seek(p_stream->s, offset))<br>+ if (!p_stream->obj.force<br>+ && memcmp(p_peek, "#EXTM3U", 7 ) != 0<br>+ && !stream_HasExtension(p_stream, ".vlc")<br>+ && strncasecmp((const char *)p_peek, "RTSPtext", 8) != 0<br>+ && !ContainsURL(p_peek, i_peek))<br> return VLC_EGENERIC;<br> <br> msg_Dbg( p_stream, "found valid M3U playlist" );</pre></blockquote></div><br>-- <br>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.</body></html>