public static void Parse(this M3U8Parser parser, Uri baseUrl, Stream stream, Encoding encoding = null) { if (null == encoding) { encoding = UriExtensions.HasExtension(baseUrl, ".m3u") ? SmEncodings.Latin1 : Encoding.UTF8; } using (StreamReader streamReader = new StreamReader(stream, encoding)) M3U8ParserExtensions.Parse(parser, baseUrl, (TextReader)streamReader); }
public static Task <Uri> ParseAsync(this M3U8Parser parser, IWebReader webReader, IRetryManager retryManager, Uri playlist, CancellationToken cancellationToken) { IRetry retry = RetryManagerExtensions.CreateWebRetry(retryManager, 2, 250); return(retry.CallAsync <Uri>((Func <Task <Uri> >)(() => WebReaderExtensions.ReadStreamAsync <Uri>(webReader, playlist, retry, (Func <Uri, Stream, Uri>)((actualPlaylist, stream) => { M3U8ParserExtensions.Parse(parser, actualPlaylist, stream, (Encoding)null); return actualPlaylist; }), cancellationToken)), cancellationToken)); }