private async Task <object> GetAsync(GetMasterHlsVideoStream request, string method) { var state = await GetState(request, CancellationToken.None).ConfigureAwait(false); if (string.Equals(request.AudioCodec, "copy", StringComparison.OrdinalIgnoreCase)) { throw new ArgumentException("Audio codec copy is not allowed here."); } if (string.Equals(request.VideoCodec, "copy", StringComparison.OrdinalIgnoreCase)) { throw new ArgumentException("Video codec copy is not allowed here."); } if (string.IsNullOrEmpty(request.MediaSourceId)) { throw new ArgumentException("MediaSourceId is required"); } var playlistText = string.Empty; if (string.Equals(method, "GET", StringComparison.OrdinalIgnoreCase)) { var audioBitrate = state.OutputAudioBitrate ?? 0; var videoBitrate = state.OutputVideoBitrate ?? 0; playlistText = GetMasterPlaylistFileText(state, videoBitrate + audioBitrate); } return(ResultFactory.GetResult(playlistText, Common.Net.MimeTypes.GetMimeType("playlist.m3u8"), new Dictionary <string, string>())); }
private async Task <object> GetAsync(GetMasterHlsVideoStream request) { var state = await GetState(request, CancellationToken.None).ConfigureAwait(false); if (!state.VideoRequest.VideoBitRate.HasValue && (!state.VideoRequest.VideoCodec.HasValue || state.VideoRequest.VideoCodec.Value != VideoCodecs.Copy)) { throw new ArgumentException("A video bitrate is required"); } if (!state.Request.AudioBitRate.HasValue && (!state.Request.AudioCodec.HasValue || state.Request.AudioCodec.Value != AudioCodecs.Copy)) { throw new ArgumentException("An audio bitrate is required"); } int audioBitrate; int videoBitrate; GetPlaylistBitrates(state, out audioBitrate, out videoBitrate); var appendBaselineStream = false; var baselineStreamBitrate = 64000; var hlsVideoRequest = state.VideoRequest as GetMasterHlsVideoStream; if (hlsVideoRequest != null) { appendBaselineStream = hlsVideoRequest.AppendBaselineStream; baselineStreamBitrate = hlsVideoRequest.BaselineStreamAudioBitRate ?? baselineStreamBitrate; } var playlistText = GetMasterPlaylistFileText(videoBitrate + audioBitrate, appendBaselineStream, baselineStreamBitrate); return(ResultFactory.GetResult(playlistText, MimeTypes.GetMimeType("playlist.m3u8"), new Dictionary <string, string>())); }
private async Task <object> GetAsync(GetMasterHlsVideoStream request) { var state = await GetState(request, CancellationToken.None).ConfigureAwait(false); int audioBitrate; int videoBitrate; GetPlaylistBitrates(state, out audioBitrate, out videoBitrate); var appendBaselineStream = false; var baselineStreamBitrate = 64000; var hlsVideoRequest = state.VideoRequest as GetMasterHlsVideoStream; if (hlsVideoRequest != null) { appendBaselineStream = hlsVideoRequest.AppendBaselineStream; baselineStreamBitrate = hlsVideoRequest.BaselineStreamAudioBitRate ?? baselineStreamBitrate; } var playlistText = GetMasterPlaylistFileText(videoBitrate + audioBitrate, appendBaselineStream, baselineStreamBitrate); return(ResultFactory.GetResult(playlistText, MimeTypes.GetMimeType("playlist.m3u8"), new Dictionary <string, string>())); }
public object Head(GetMasterHlsVideoStream request) { var result = GetAsync(request, "HEAD").Result; return result; }
public object Get(GetMasterHlsVideoStream request) { var result = GetAsync(request, "GET").Result; return result; }
private async Task<object> GetAsync(GetMasterHlsVideoStream request, string method) { var state = await GetState(request, CancellationToken.None).ConfigureAwait(false); if (string.Equals(request.AudioCodec, "copy", StringComparison.OrdinalIgnoreCase)) { throw new ArgumentException("Audio codec copy is not allowed here."); } if (string.Equals(request.VideoCodec, "copy", StringComparison.OrdinalIgnoreCase)) { throw new ArgumentException("Video codec copy is not allowed here."); } if (string.IsNullOrEmpty(request.MediaSourceId)) { throw new ArgumentException("MediaSourceId is required"); } var playlistText = string.Empty; if (string.Equals(method, "GET", StringComparison.OrdinalIgnoreCase)) { var audioBitrate = state.OutputAudioBitrate ?? 0; var videoBitrate = state.OutputVideoBitrate ?? 0; playlistText = GetMasterPlaylistFileText(state, videoBitrate + audioBitrate); } return ResultFactory.GetResult(playlistText, Common.Net.MimeTypes.GetMimeType("playlist.m3u8"), new Dictionary<string, string>()); }
public Task <object> Head(GetMasterHlsVideoStream request) { return(GetAsync(request, "HEAD")); }
public Task <object> Get(GetMasterHlsVideoStream request) { return(GetAsync(request, "GET")); }
private async Task<object> GetAsync(GetMasterHlsVideoStream request) { var state = await GetState(request, CancellationToken.None).ConfigureAwait(false); if (!state.VideoRequest.VideoBitRate.HasValue && (!state.VideoRequest.VideoCodec.HasValue || state.VideoRequest.VideoCodec.Value != VideoCodecs.Copy)) { throw new ArgumentException("A video bitrate is required"); } if (!state.Request.AudioBitRate.HasValue && (!state.Request.AudioCodec.HasValue || state.Request.AudioCodec.Value != AudioCodecs.Copy)) { throw new ArgumentException("An audio bitrate is required"); } int audioBitrate; int videoBitrate; GetPlaylistBitrates(state, out audioBitrate, out videoBitrate); var appendBaselineStream = false; var baselineStreamBitrate = 64000; var hlsVideoRequest = state.VideoRequest as GetMasterHlsVideoStream; if (hlsVideoRequest != null) { appendBaselineStream = hlsVideoRequest.AppendBaselineStream; baselineStreamBitrate = hlsVideoRequest.BaselineStreamAudioBitRate ?? baselineStreamBitrate; } var playlistText = GetMasterPlaylistFileText(videoBitrate + audioBitrate, appendBaselineStream, baselineStreamBitrate); return ResultFactory.GetResult(playlistText, MimeTypes.GetMimeType("playlist.m3u8"), new Dictionary<string, string>()); }
public object Head(GetMasterHlsVideoStream request) { var result = GetAsync(request, "HEAD").Result; return(result); }
public object Get(GetMasterHlsVideoStream request) { var result = GetAsync(request, "GET").Result; return(result); }