[vlc-devel] [PATCH 3/3] hls: Don't fail when a STREAM-INF is commented.
Hugo Beauzée-Luyssen
beauze.h at gmail.com
Fri Jan 20 16:04:17 CET 2012
---
modules/stream_filter/httplive.c | 44 ++++++++++++++++++++++---------------
1 files changed, 26 insertions(+), 18 deletions(-)
diff --git a/modules/stream_filter/httplive.c b/modules/stream_filter/httplive.c
index 126b71f..386cbbd 100644
--- a/modules/stream_filter/httplive.c
+++ b/modules/stream_filter/httplive.c
@@ -1040,27 +1040,35 @@ static int parse_M3U8(stream_t *s, vlc_array_t *streams, uint8_t *buffer, const
err = VLC_ENOMEM;
else
{
- hls_stream_t *hls = NULL;
- err = parse_StreamInformation(s, &streams, &hls, line, uri);
- free(uri);
-
- /* Download playlist file from server */
- uint8_t *buf = NULL;
- ssize_t len = read_M3U8_from_url(s, &hls->url, &buf);
- if (len < 0)
- err = VLC_EGENERIC;
- else
+ if ( *uri == '#' )
{
- /* Parse HLS m3u8 content. */
- err = parse_M3U8(s, streams, buf, len);
- free(buf);
+ msg_Info( s, "Skipping invalid stream-inf: %s", uri );
+ free( uri );
}
-
- if (hls)
+ else
{
- hls->version = version;
- if (!p_sys->b_live)
- hls->size = hls_GetStreamSize(hls); /* Stream size (approximate) */
+ hls_stream_t *hls = NULL;
+ err = parse_StreamInformation(s, &streams, &hls, line, uri);
+ free(uri);
+
+ /* Download playlist file from server */
+ uint8_t *buf = NULL;
+ ssize_t len = read_M3U8_from_url(s, &hls->url, &buf);
+ if (len < 0)
+ err = VLC_EGENERIC;
+ else
+ {
+ /* Parse HLS m3u8 content. */
+ err = parse_M3U8(s, streams, buf, len);
+ free(buf);
+ }
+
+ if (hls)
+ {
+ hls->version = version;
+ if (!p_sys->b_live)
+ hls->size = hls_GetStreamSize(hls); /* Stream size (approximate) */
+ }
}
}
p_begin = p_read;
--
1.7.8.4
More information about the vlc-devel
mailing list