<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>