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));
        }
 public static void Parse(this M3U8Parser parser, Uri baseUrl, TextReader textReader)
 {
     parser.Parse(baseUrl, M3U8ParserExtensions.GetExtendedLines(textReader));
 }