|
|
@ -1,5 +1,6 @@
|
|
|
|
using System;
|
|
|
|
using System;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
using System.Net.Http;
|
|
|
|
using System.Threading;
|
|
|
|
using System.Threading;
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
using Jellyfin.Api.Helpers;
|
|
|
|
using Jellyfin.Api.Helpers;
|
|
|
@ -40,6 +41,7 @@ namespace Jellyfin.Api.Controllers
|
|
|
|
private readonly IConfiguration _configuration;
|
|
|
|
private readonly IConfiguration _configuration;
|
|
|
|
private readonly IDeviceManager _deviceManager;
|
|
|
|
private readonly IDeviceManager _deviceManager;
|
|
|
|
private readonly TranscodingJobHelper _transcodingJobHelper;
|
|
|
|
private readonly TranscodingJobHelper _transcodingJobHelper;
|
|
|
|
|
|
|
|
private readonly HttpClient _httpClient;
|
|
|
|
|
|
|
|
|
|
|
|
private readonly TranscodingJobType _transcodingJobType = TranscodingJobType.Progressive;
|
|
|
|
private readonly TranscodingJobType _transcodingJobType = TranscodingJobType.Progressive;
|
|
|
|
|
|
|
|
|
|
|
@ -59,6 +61,7 @@ namespace Jellyfin.Api.Controllers
|
|
|
|
/// <param name="configuration">Instance of the <see cref="IConfiguration"/> interface.</param>
|
|
|
|
/// <param name="configuration">Instance of the <see cref="IConfiguration"/> interface.</param>
|
|
|
|
/// <param name="deviceManager">Instance of the <see cref="IDeviceManager"/> interface.</param>
|
|
|
|
/// <param name="deviceManager">Instance of the <see cref="IDeviceManager"/> interface.</param>
|
|
|
|
/// <param name="transcodingJobHelper">The <see cref="TranscodingJobHelper"/> singleton.</param>
|
|
|
|
/// <param name="transcodingJobHelper">The <see cref="TranscodingJobHelper"/> singleton.</param>
|
|
|
|
|
|
|
|
/// <param name="httpClient">Instance of the <see cref="HttpClient"/>.</param>
|
|
|
|
public AudioController(
|
|
|
|
public AudioController(
|
|
|
|
IDlnaManager dlnaManager,
|
|
|
|
IDlnaManager dlnaManager,
|
|
|
|
IUserManager userManger,
|
|
|
|
IUserManager userManger,
|
|
|
@ -72,7 +75,8 @@ namespace Jellyfin.Api.Controllers
|
|
|
|
ISubtitleEncoder subtitleEncoder,
|
|
|
|
ISubtitleEncoder subtitleEncoder,
|
|
|
|
IConfiguration configuration,
|
|
|
|
IConfiguration configuration,
|
|
|
|
IDeviceManager deviceManager,
|
|
|
|
IDeviceManager deviceManager,
|
|
|
|
TranscodingJobHelper transcodingJobHelper)
|
|
|
|
TranscodingJobHelper transcodingJobHelper,
|
|
|
|
|
|
|
|
HttpClient httpClient)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
_dlnaManager = dlnaManager;
|
|
|
|
_dlnaManager = dlnaManager;
|
|
|
|
_authContext = authorizationContext;
|
|
|
|
_authContext = authorizationContext;
|
|
|
@ -87,6 +91,7 @@ namespace Jellyfin.Api.Controllers
|
|
|
|
_configuration = configuration;
|
|
|
|
_configuration = configuration;
|
|
|
|
_deviceManager = deviceManager;
|
|
|
|
_deviceManager = deviceManager;
|
|
|
|
_transcodingJobHelper = transcodingJobHelper;
|
|
|
|
_transcodingJobHelper = transcodingJobHelper;
|
|
|
|
|
|
|
|
_httpClient = httpClient;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
@ -295,7 +300,7 @@ namespace Jellyfin.Api.Controllers
|
|
|
|
|
|
|
|
|
|
|
|
using (state)
|
|
|
|
using (state)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return await FileStreamResponseHelpers.GetStaticRemoteStreamResult(state, isHeadRequest, this).ConfigureAwait(false);
|
|
|
|
return await FileStreamResponseHelpers.GetStaticRemoteStreamResult(state, isHeadRequest, this, _httpClient).ConfigureAwait(false);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -327,13 +332,6 @@ namespace Jellyfin.Api.Controllers
|
|
|
|
return File(Response.Body, contentType);
|
|
|
|
return File(Response.Body, contentType);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
TimeSpan? cacheDuration = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(tag))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
cacheDuration = TimeSpan.FromDays(365);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return FileStreamResponseHelpers.GetStaticFileResult(
|
|
|
|
return FileStreamResponseHelpers.GetStaticFileResult(
|
|
|
|
state.MediaPath,
|
|
|
|
state.MediaPath,
|
|
|
|
contentType,
|
|
|
|
contentType,
|
|
|
|