From a4e28a60a4de902ef58ecfef54cb56250c23e5e7 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 30 Apr 2015 11:06:37 -0400 Subject: [PATCH] add endpoint to estimate bitrate --- MediaBrowser.Api/Playback/MediaInfoService.cs | 25 +++++++++++++++++++ MediaBrowser.Model/ApiClient/IApiClient.cs | 6 +++++ 2 files changed, 31 insertions(+) diff --git a/MediaBrowser.Api/Playback/MediaInfoService.cs b/MediaBrowser.Api/Playback/MediaInfoService.cs index 5fa6122052..72d4961cd7 100644 --- a/MediaBrowser.Api/Playback/MediaInfoService.cs +++ b/MediaBrowser.Api/Playback/MediaInfoService.cs @@ -45,6 +45,19 @@ namespace MediaBrowser.Api.Playback public string LiveStreamId { get; set; } } + [Route("/Playback/BitrateTest", "GET")] + public class GetBitrateTestBytes : IReturn + { + [ApiMember(Name = "Size", Description = "Size", IsRequired = true, DataType = "int", ParameterType = "query", Verb = "GET")] + public long Size { get; set; } + + public GetBitrateTestBytes() + { + // 100k + Size = 102400; + } + } + [Authenticated] public class MediaInfoService : BaseApiService { @@ -63,6 +76,18 @@ namespace MediaBrowser.Api.Playback _networkManager = networkManager; } + public object Get(GetBitrateTestBytes request) + { + var bytes = new byte[request.Size]; + + for (var i = 0; i < bytes.Length; i++) + { + bytes[i] = 0; + } + + return ResultFactory.GetResult(bytes, "application/octet-stream"); + } + public async Task Get(GetPlaybackInfo request) { var result = await GetPlaybackInfo(request.Id, request.UserId, new[] { MediaType.Audio, MediaType.Video }).ConfigureAwait(false); diff --git a/MediaBrowser.Model/ApiClient/IApiClient.cs b/MediaBrowser.Model/ApiClient/IApiClient.cs index 8c7ca0ad97..026e65ec45 100644 --- a/MediaBrowser.Model/ApiClient/IApiClient.cs +++ b/MediaBrowser.Model/ApiClient/IApiClient.cs @@ -1499,5 +1499,11 @@ namespace MediaBrowser.Model.ApiClient /// The item ids. /// Task. Task CancelSyncLibraryItems(string targetId, IEnumerable itemIds); + /// + /// Gets the supported bitrate. + /// + /// The cancellation token. + /// Task<System.Int32>. + Task GetSupportedBitrate(CancellationToken cancellationToken); } } \ No newline at end of file