From ca7d1a13000ad948eebbfdeb40542312f3e37d3e Mon Sep 17 00:00:00 2001
From: nicknsy <20588554+nicknsy@users.noreply.github.com>
Date: Wed, 22 Feb 2023 00:08:35 -0800
Subject: Trickplay generation, manager, storage
---
.../Configuration/EncodingOptions.cs | 12 ++++++
MediaBrowser.Model/Dto/BaseItemDto.cs | 6 +++
MediaBrowser.Model/Entities/TrickplayTilesInfo.cs | 50 ++++++++++++++++++++++
MediaBrowser.Model/Querying/ItemFields.cs | 5 +++
4 files changed, 73 insertions(+)
create mode 100644 MediaBrowser.Model/Entities/TrickplayTilesInfo.cs
(limited to 'MediaBrowser.Model')
diff --git a/MediaBrowser.Model/Configuration/EncodingOptions.cs b/MediaBrowser.Model/Configuration/EncodingOptions.cs
index a53be0fee7..e1d9e00b7a 100644
--- a/MediaBrowser.Model/Configuration/EncodingOptions.cs
+++ b/MediaBrowser.Model/Configuration/EncodingOptions.cs
@@ -48,7 +48,9 @@ public class EncodingOptions
EnableIntelLowPowerH264HwEncoder = false;
EnableIntelLowPowerHevcHwEncoder = false;
EnableHardwareEncoding = true;
+ EnableTrickplayHwAccel = false;
AllowHevcEncoding = false;
+ AllowMjpegEncoding = false;
EnableSubtitleExtraction = true;
AllowOnDemandMetadataBasedKeyframeExtractionForExtensions = new[] { "mkv" };
HardwareDecodingCodecs = new string[] { "h264", "vc1" };
@@ -244,11 +246,21 @@ public class EncodingOptions
///
public bool EnableHardwareEncoding { get; set; }
+ ///
+ /// Gets or sets a value indicating whether hardware acceleration is enabled for trickplay generation.
+ ///
+ public bool EnableTrickplayHwAccel { get; set; }
+
///
/// Gets or sets a value indicating whether HEVC encoding is enabled.
///
public bool AllowHevcEncoding { get; set; }
+ ///
+ /// Gets or sets a value indicating whether MJPEG encoding is enabled.
+ ///
+ public bool AllowMjpegEncoding { get; set; }
+
///
/// Gets or sets a value indicating whether subtitle extraction is enabled.
///
diff --git a/MediaBrowser.Model/Dto/BaseItemDto.cs b/MediaBrowser.Model/Dto/BaseItemDto.cs
index 8fab1ca6d6..ab424c6f5c 100644
--- a/MediaBrowser.Model/Dto/BaseItemDto.cs
+++ b/MediaBrowser.Model/Dto/BaseItemDto.cs
@@ -568,6 +568,12 @@ namespace MediaBrowser.Model.Dto
/// The chapters.
public List Chapters { get; set; }
+ ///
+ /// Gets or sets the trickplay manifest.
+ ///
+ /// The trickplay manifest.
+ public Dictionary> Trickplay { get; set; }
+
///
/// Gets or sets the type of the location.
///
diff --git a/MediaBrowser.Model/Entities/TrickplayTilesInfo.cs b/MediaBrowser.Model/Entities/TrickplayTilesInfo.cs
new file mode 100644
index 0000000000..84b6b03228
--- /dev/null
+++ b/MediaBrowser.Model/Entities/TrickplayTilesInfo.cs
@@ -0,0 +1,50 @@
+namespace MediaBrowser.Model.Entities
+{
+ ///
+ /// Class TrickplayTilesInfo.
+ ///
+ public class TrickplayTilesInfo
+ {
+ ///
+ /// Gets or sets width of an individual tile.
+ ///
+ /// The width.
+ public int Width { get; set; }
+
+ ///
+ /// Gets or sets height of an individual tile.
+ ///
+ /// The height.
+ public int Height { get; set; }
+
+ ///
+ /// Gets or sets amount of tiles per row.
+ ///
+ /// The tile grid's width.
+ public int TileWidth { get; set; }
+
+ ///
+ /// Gets or sets amount of tiles per column.
+ ///
+ /// The tile grid's height.
+ public int TileHeight { get; set; }
+
+ ///
+ /// Gets or sets total amount of non-black tiles.
+ ///
+ /// The tile count.
+ public int TileCount { get; set; }
+
+ ///
+ /// Gets or sets interval in milliseconds between each trickplay tile.
+ ///
+ /// The interval.
+ public int Interval { get; set; }
+
+ ///
+ /// Gets or sets peak bandwith usage in bits per second.
+ ///
+ /// The bandwidth.
+ public int Bandwidth { get; set; }
+ }
+}
diff --git a/MediaBrowser.Model/Querying/ItemFields.cs b/MediaBrowser.Model/Querying/ItemFields.cs
index 6fa1d778ad..242a1c6e99 100644
--- a/MediaBrowser.Model/Querying/ItemFields.cs
+++ b/MediaBrowser.Model/Querying/ItemFields.cs
@@ -34,6 +34,11 @@ namespace MediaBrowser.Model.Querying
///
Chapters,
+ ///
+ /// The trickplay manifest.
+ ///
+ Trickplay,
+
ChildCount,
///
--
cgit v1.2.3