aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornicknsy <20588554+nicknsy@users.noreply.github.com>2023-02-23 18:03:22 -0800
committerNick <20588554+nicknsy@users.noreply.github.com>2023-06-22 16:19:59 -0700
commitd448cc18ea14237c3fe9c2812a4eea1927a2d83f (patch)
tree896b4f792f77b7e7683d2b64c45fa86d77796db7
parent6c649a7e723454e94303d95d178e91b820ba6b50 (diff)
update
-rw-r--r--Jellyfin.Api/Controllers/TrickplayController.cs3
-rw-r--r--MediaBrowser.Providers/Trickplay/TrickplayManager.cs6
-rw-r--r--MediaBrowser.Providers/Trickplay/TrickplayProvider.cs2
3 files changed, 5 insertions, 6 deletions
diff --git a/Jellyfin.Api/Controllers/TrickplayController.cs b/Jellyfin.Api/Controllers/TrickplayController.cs
index 389eb43ff..46289f170 100644
--- a/Jellyfin.Api/Controllers/TrickplayController.cs
+++ b/Jellyfin.Api/Controllers/TrickplayController.cs
@@ -128,6 +128,7 @@ public class TrickplayController : BaseJellyfinApiController
var layout = tilesInfo.TileWidth.ToString(CultureInfo.InvariantCulture) + "x" + tilesInfo.TileHeight.ToString(CultureInfo.InvariantCulture);
var tilesPerGrid = tilesInfo.TileWidth * tilesInfo.TileHeight;
var tileDuration = (decimal)tilesInfo.Interval / 1000;
+ var infDuration = tileDuration * tilesPerGrid;
var tileGridCount = (int)Math.Ceiling((decimal)tilesInfo.TileCount / tilesPerGrid);
builder.AppendLine("#EXTM3U");
@@ -144,9 +145,9 @@ public class TrickplayController : BaseJellyfinApiController
if (i == tileGridCount - 1)
{
tilesPerGrid = tilesInfo.TileCount - (i * tilesPerGrid);
+ infDuration = tileDuration * tilesPerGrid;
}
- var infDuration = tileDuration * tilesPerGrid;
var url = string.Format(
CultureInfo.InvariantCulture,
urlFormat,
diff --git a/MediaBrowser.Providers/Trickplay/TrickplayManager.cs b/MediaBrowser.Providers/Trickplay/TrickplayManager.cs
index 4b4514897..cb916dfdb 100644
--- a/MediaBrowser.Providers/Trickplay/TrickplayManager.cs
+++ b/MediaBrowser.Providers/Trickplay/TrickplayManager.cs
@@ -127,7 +127,7 @@ namespace MediaBrowser.Providers.Trickplay
// Create tiles
var tilesTempDir = Path.Combine(imgTempDir, Guid.NewGuid().ToString("N"));
- var tilesInfo = CreateTiles(images, width, interval, tileWidth, tileHeight, tilesTempDir, outputDir);
+ var tilesInfo = CreateTiles(images, width, interval, tileWidth, tileHeight, 100/* todo _config.JpegQuality*/, tilesTempDir, outputDir);
// Save tiles info
try
@@ -166,7 +166,7 @@ namespace MediaBrowser.Providers.Trickplay
}
}
- private TrickplayTilesInfo CreateTiles(List<FileSystemMetadata> images, int width, int interval, int tileWidth, int tileHeight, string workDir, string outputDir)
+ private TrickplayTilesInfo CreateTiles(List<FileSystemMetadata> images, int width, int interval, int tileWidth, int tileHeight, int quality, string workDir, string outputDir)
{
if (images.Count == 0)
{
@@ -244,7 +244,7 @@ namespace MediaBrowser.Providers.Trickplay
var tileGridPath = Path.Combine(workDir, $"{imgNo}.jpg");
using (var stream = File.OpenWrite(tileGridPath))
{
- tileGrid.Encode(stream, SKEncodedImageFormat.Jpeg, 100/* todo _config.JpegQuality*/);
+ tileGrid.Encode(stream, SKEncodedImageFormat.Jpeg, quality);
}
var bitrate = (int)Math.Ceiling((decimal)new FileInfo(tileGridPath).Length * 8 / tilesInfo.TileWidth / tilesInfo.TileHeight / (tilesInfo.Interval / 1000));
diff --git a/MediaBrowser.Providers/Trickplay/TrickplayProvider.cs b/MediaBrowser.Providers/Trickplay/TrickplayProvider.cs
index 2b3879ca3..e4bd9e3c2 100644
--- a/MediaBrowser.Providers/Trickplay/TrickplayProvider.cs
+++ b/MediaBrowser.Providers/Trickplay/TrickplayProvider.cs
@@ -107,14 +107,12 @@ namespace MediaBrowser.Providers.Trickplay
if (options.IsAutomated && !enableDuringScan.GetValueOrDefault(false))
{
- _logger.LogDebug("exit refresh: automated - {0} enable scan - {1}", options.IsAutomated, enableDuringScan.GetValueOrDefault(false));
return ItemUpdateType.None;
}
// TODO: this is always blocking for metadata collection, make non-blocking option
if (true)
{
- _logger.LogDebug("called refresh");
await _trickplayManager.RefreshTrickplayData(video, replace, cancellationToken).ConfigureAwait(false);
}