aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick <20588554+nicknsy@users.noreply.github.com>2023-05-17 23:25:52 -0700
committerNick <20588554+nicknsy@users.noreply.github.com>2023-06-22 16:23:52 -0700
commit98e41d5a14a579113f354ae3cb32a9ff6bc41958 (patch)
tree6bdd40c6e94ce5c5cd3e5feecf445c11f04f288e
parent07e6804f7a892514487334066a24661b395aab3d (diff)
Styling, format, minor code changes (crobibero)
-rw-r--r--Jellyfin.Api/Controllers/TrickplayController.cs53
-rw-r--r--MediaBrowser.Providers/Trickplay/TrickplayImagesTask.cs2
-rw-r--r--MediaBrowser.Providers/Trickplay/TrickplayManager.cs8
-rw-r--r--MediaBrowser.Providers/Trickplay/TrickplayProvider.cs4
4 files changed, 26 insertions, 41 deletions
diff --git a/Jellyfin.Api/Controllers/TrickplayController.cs b/Jellyfin.Api/Controllers/TrickplayController.cs
index 46289f170..6dee02342 100644
--- a/Jellyfin.Api/Controllers/TrickplayController.cs
+++ b/Jellyfin.Api/Controllers/TrickplayController.cs
@@ -6,18 +6,14 @@ using System.IO;
using System.Linq;
using System.Net.Mime;
using System.Text;
-using System.Threading.Tasks;
using Jellyfin.Api.Attributes;
using Jellyfin.Api.Extensions;
-using Jellyfin.Api.Helpers;
-using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Trickplay;
using MediaBrowser.Model;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.Logging;
namespace Jellyfin.Api.Controllers;
@@ -28,26 +24,18 @@ namespace Jellyfin.Api.Controllers;
[Authorize]
public class TrickplayController : BaseJellyfinApiController
{
- private readonly ILogger<TrickplayController> _logger;
- private readonly IHttpContextAccessor _httpContextAccessor;
private readonly ILibraryManager _libraryManager;
private readonly ITrickplayManager _trickplayManager;
/// <summary>
/// Initializes a new instance of the <see cref="TrickplayController"/> class.
/// </summary>
- /// <param name="logger">Instance of the <see cref="ILogger{TrickplayController}"/> interface.</param>
- /// <param name="httpContextAccessor">Instance of the <see cref="IHttpContextAccessor"/> interface.</param>
/// <param name="libraryManager">Instance of <see cref="ILibraryManager"/>.</param>
/// <param name="trickplayManager">Instance of <see cref="ITrickplayManager"/>.</param>
public TrickplayController(
- ILogger<TrickplayController> logger,
- IHttpContextAccessor httpContextAccessor,
ILibraryManager libraryManager,
ITrickplayManager trickplayManager)
{
- _logger = logger;
- _httpContextAccessor = httpContextAccessor;
_libraryManager = libraryManager;
_trickplayManager = trickplayManager;
}
@@ -66,9 +54,9 @@ public class TrickplayController : BaseJellyfinApiController
public ActionResult GetTrickplayHlsPlaylist(
[FromRoute, Required] Guid itemId,
[FromRoute, Required] int width,
- [FromQuery] string? mediaSourceId)
+ [FromQuery] Guid? mediaSourceId)
{
- return GetTrickplayPlaylistInternal(width, mediaSourceId ?? itemId.ToString("N"));
+ return GetTrickplayPlaylistInternal(width, mediaSourceId ?? itemId);
}
/// <summary>
@@ -89,9 +77,9 @@ public class TrickplayController : BaseJellyfinApiController
[FromRoute, Required] Guid itemId,
[FromRoute, Required] int width,
[FromRoute, Required] int index,
- [FromQuery] string? mediaSourceId)
+ [FromQuery] Guid? mediaSourceId)
{
- var item = _libraryManager.GetItemById(mediaSourceId ?? itemId.ToString("N"));
+ var item = _libraryManager.GetItemById(mediaSourceId ?? itemId);
if (item is null)
{
return NotFound();
@@ -106,28 +94,22 @@ public class TrickplayController : BaseJellyfinApiController
return NotFound();
}
- private ActionResult GetTrickplayPlaylistInternal(int width, string mediaSourceId)
+ private ActionResult GetTrickplayPlaylistInternal(int width, Guid mediaSourceId)
{
- if (_httpContextAccessor.HttpContext is null)
- {
- throw new ResourceNotFoundException(nameof(_httpContextAccessor.HttpContext));
- }
-
- var tilesResolutions = _trickplayManager.GetTilesResolutions(Guid.Parse(mediaSourceId));
- if (tilesResolutions is not null && tilesResolutions.ContainsKey(width))
+ var tilesResolutions = _trickplayManager.GetTilesResolutions(mediaSourceId);
+ if (tilesResolutions is not null && tilesResolutions.TryGetValue(width, out var tilesInfo))
{
var builder = new StringBuilder(128);
- var tilesInfo = tilesResolutions[width];
if (tilesInfo.TileCount > 0)
{
const string urlFormat = "Trickplay/{0}/{1}.jpg?MediaSourceId={2}&api_key={3}";
const string decimalFormat = "{0:0.###}";
- var resolution = tilesInfo.Width.ToString(CultureInfo.InvariantCulture) + "x" + tilesInfo.Height.ToString(CultureInfo.InvariantCulture);
- var layout = tilesInfo.TileWidth.ToString(CultureInfo.InvariantCulture) + "x" + tilesInfo.TileHeight.ToString(CultureInfo.InvariantCulture);
+ var resolution = $"{tilesInfo.Width}x{tilesInfo.Height}";
+ var layout = $"{tilesInfo.TileWidth}x{tilesInfo.TileHeight}";
var tilesPerGrid = tilesInfo.TileWidth * tilesInfo.TileHeight;
- var tileDuration = (decimal)tilesInfo.Interval / 1000;
+ var tileDuration = tilesInfo.Interval / 1000m;
var infDuration = tileDuration * tilesPerGrid;
var tileGridCount = (int)Math.Ceiling((decimal)tilesInfo.TileCount / tilesPerGrid);
@@ -153,15 +135,22 @@ public class TrickplayController : BaseJellyfinApiController
urlFormat,
width.ToString(CultureInfo.InvariantCulture),
i.ToString(CultureInfo.InvariantCulture),
- mediaSourceId,
- _httpContextAccessor.HttpContext.User.GetToken());
+ mediaSourceId.ToString("N"),
+ User.GetToken());
// EXTINF
- builder.Append("#EXTINF:").Append(string.Format(CultureInfo.InvariantCulture, decimalFormat, infDuration))
+ builder
+ .Append("#EXTINF:")
+ .Append(string.Format(CultureInfo.InvariantCulture, decimalFormat, infDuration))
.AppendLine(",");
// EXT-X-TILES
- builder.Append("#EXT-X-TILES:RESOLUTION=").Append(resolution).Append(",LAYOUT=").Append(layout).Append(",DURATION=")
+ builder
+ .Append("#EXT-X-TILES:RESOLUTION=")
+ .Append(resolution)
+ .Append(",LAYOUT=")
+ .Append(layout)
+ .Append(",DURATION=")
.AppendLine(string.Format(CultureInfo.InvariantCulture, decimalFormat, tileDuration));
// URL
diff --git a/MediaBrowser.Providers/Trickplay/TrickplayImagesTask.cs b/MediaBrowser.Providers/Trickplay/TrickplayImagesTask.cs
index f32557cd1..8ac7641aa 100644
--- a/MediaBrowser.Providers/Trickplay/TrickplayImagesTask.cs
+++ b/MediaBrowser.Providers/Trickplay/TrickplayImagesTask.cs
@@ -94,7 +94,7 @@ public class TrickplayImagesTask : IScheduledTask
}
catch (Exception ex)
{
- _logger.LogError("Error creating trickplay files for {ItemName}: {Msg}", item.Name, ex);
+ _logger.LogError(ex, "Error creating trickplay files for {ItemName}", item.Name);
}
numComplete++;
diff --git a/MediaBrowser.Providers/Trickplay/TrickplayManager.cs b/MediaBrowser.Providers/Trickplay/TrickplayManager.cs
index 9b8eb8150..d377d2d80 100644
--- a/MediaBrowser.Providers/Trickplay/TrickplayManager.cs
+++ b/MediaBrowser.Providers/Trickplay/TrickplayManager.cs
@@ -33,6 +33,7 @@ public class TrickplayManager : ITrickplayManager
private readonly IServerConfigurationManager _config;
private static readonly SemaphoreSlim _resourcePool = new(1, 1);
+ private static readonly string[] _trickplayImgExtensions = { ".jpg" };
/// <summary>
/// Initializes a new instance of the <see cref="TrickplayManager"/> class.
@@ -95,10 +96,10 @@ public class TrickplayManager : ITrickplayManager
var imgTempDir = string.Empty;
var outputDir = GetTrickplayDirectory(video, width);
+ await _resourcePool.WaitAsync(cancellationToken).ConfigureAwait(false);
+
try
{
- await _resourcePool.WaitAsync(cancellationToken).ConfigureAwait(false);
-
if (!replace && Directory.Exists(outputDir) && GetTilesResolutions(video.Id).ContainsKey(width))
{
_logger.LogDebug("Found existing trickplay files for {ItemId}. Exiting.", video.Id);
@@ -139,8 +140,7 @@ public class TrickplayManager : ITrickplayManager
throw new InvalidOperationException("Null or invalid directory from media encoder.");
}
- var images = _fileSystem.GetFiles(imgTempDir, new string[] { ".jpg" }, false, false)
- .Where(img => string.Equals(img.Extension, ".jpg", StringComparison.Ordinal))
+ var images = _fileSystem.GetFiles(imgTempDir, _trickplayImgExtensions, false, false)
.OrderBy(i => i.FullName)
.ToList();
diff --git a/MediaBrowser.Providers/Trickplay/TrickplayProvider.cs b/MediaBrowser.Providers/Trickplay/TrickplayProvider.cs
index d467c480e..17e9efdde 100644
--- a/MediaBrowser.Providers/Trickplay/TrickplayProvider.cs
+++ b/MediaBrowser.Providers/Trickplay/TrickplayProvider.cs
@@ -25,7 +25,6 @@ public class TrickplayProvider : ICustomMetadataProvider<Episode>,
IHasOrder,
IForcedProvider
{
- private readonly ILogger<TrickplayProvider> _logger;
private readonly IServerConfigurationManager _config;
private readonly ITrickplayManager _trickplayManager;
private readonly ILibraryManager _libraryManager;
@@ -33,17 +32,14 @@ public class TrickplayProvider : ICustomMetadataProvider<Episode>,
/// <summary>
/// Initializes a new instance of the <see cref="TrickplayProvider"/> class.
/// </summary>
- /// <param name="logger">The logger.</param>
/// <param name="config">The configuration manager.</param>
/// <param name="trickplayManager">The trickplay manager.</param>
/// <param name="libraryManager">The library manager.</param>
public TrickplayProvider(
- ILogger<TrickplayProvider> logger,
IServerConfigurationManager config,
ITrickplayManager trickplayManager,
ILibraryManager libraryManager)
{
- _logger = logger;
_config = config;
_trickplayManager = trickplayManager;
_libraryManager = libraryManager;