Example #1
0
        public static HLSPlaylist ParsePlaylists(string url)
        {
            WebRequest request = WebRequest.Create(url);

            if (request != null)
            {
                request.Method      = "GET";
                request.Timeout     = 12000;
                request.ContentType = "application/json";

                using (var response = request.GetResponse())
                {
                    return(HLSPlaylist.GetFromStream(response.GetResponseStream()));
                }
            }

            return(null);
        }
Example #2
0
        /// <summary>
        /// Load list of avaliable qualities for stream
        /// </summary>
        /// <param name="playlist">Stream playlist source</param>
        public void LoadQualityList(HLSPlaylist playlist)
        {
            if (playlist?.Playlist != null && playlist.Playlist.Count() > 0)
            {
                StreamQualities.ClearQualityList();

                foreach (var stream in playlist.Playlist)
                {
                    if (stream.Name.StartsWith("audio"))
                    {
                        continue;
                    }

                    StreamQualities.AddQuality(new StreamQualityViewModel
                    {
                        Name      = stream.Name,
                        HLSStream = stream
                    });
                }
            }
        }
 // Summary:
 //     Initializes a new instance of the System.Windows.Media.MediaStreamSource
 //     class.
 public HLSMediaStreamSource(HLSMediaStreamSourceOpenParam openParam)
 {
     _openParam = new HLSMediaStreamSourceOpenParam(openParam);
     _bwHistory = new HttpLiveStreaming.BandwidthHistory(openParam.initialBandwidth);
     _playlist = new HLSPlaylist(openParam.uri);
     _playlist.MSS = this;
     Construct();
 }
 /// <summary>
 /// Handler for Close command
 /// </summary>
 private void DoCloseMedia()
 {
     lock (_workQueueThreadLock)
     {
         HLSTrace.WriteLine("DoCloseMedia");
         _bwHistory.Close();
         _playback.AbortStreamDownloads();
         _isWorkQueueThreadStarted = false;
         _workQueueThread = null;
         _workQueue = null;
         _audioBuffer = null;
         _videoBuffer = null;
         _playlist = null;
         _playback = null;
         _program = null;
         if (_demux != null)
         {
             _demux.Dispose();
             _demux = null;
         }
     }
 }