Trickplay generation, manager, storage

This commit is contained in:
nicknsy
2023-02-22 00:08:35 -08:00
committed by Nick
parent a1eb2f6ea8
commit ca7d1a1300
16 changed files with 1103 additions and 0 deletions

View File

@@ -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
/// </summary>
public bool EnableHardwareEncoding { get; set; }
/// <summary>
/// Gets or sets a value indicating whether hardware acceleration is enabled for trickplay generation.
/// </summary>
public bool EnableTrickplayHwAccel { get; set; }
/// <summary>
/// Gets or sets a value indicating whether HEVC encoding is enabled.
/// </summary>
public bool AllowHevcEncoding { get; set; }
/// <summary>
/// Gets or sets a value indicating whether MJPEG encoding is enabled.
/// </summary>
public bool AllowMjpegEncoding { get; set; }
/// <summary>
/// Gets or sets a value indicating whether subtitle extraction is enabled.
/// </summary>

View File

@@ -568,6 +568,12 @@ namespace MediaBrowser.Model.Dto
/// <value>The chapters.</value>
public List<ChapterInfo> Chapters { get; set; }
/// <summary>
/// Gets or sets the trickplay manifest.
/// </summary>
/// <value>The trickplay manifest.</value>
public Dictionary<Guid, Dictionary<int, TrickplayTilesInfo>> Trickplay { get; set; }
/// <summary>
/// Gets or sets the type of the location.
/// </summary>

View File

@@ -0,0 +1,50 @@
namespace MediaBrowser.Model.Entities
{
/// <summary>
/// Class TrickplayTilesInfo.
/// </summary>
public class TrickplayTilesInfo
{
/// <summary>
/// Gets or sets width of an individual tile.
/// </summary>
/// <value>The width.</value>
public int Width { get; set; }
/// <summary>
/// Gets or sets height of an individual tile.
/// </summary>
/// <value>The height.</value>
public int Height { get; set; }
/// <summary>
/// Gets or sets amount of tiles per row.
/// </summary>
/// <value>The tile grid's width.</value>
public int TileWidth { get; set; }
/// <summary>
/// Gets or sets amount of tiles per column.
/// </summary>
/// <value>The tile grid's height.</value>
public int TileHeight { get; set; }
/// <summary>
/// Gets or sets total amount of non-black tiles.
/// </summary>
/// <value>The tile count.</value>
public int TileCount { get; set; }
/// <summary>
/// Gets or sets interval in milliseconds between each trickplay tile.
/// </summary>
/// <value>The interval.</value>
public int Interval { get; set; }
/// <summary>
/// Gets or sets peak bandwith usage in bits per second.
/// </summary>
/// <value>The bandwidth.</value>
public int Bandwidth { get; set; }
}
}

View File

@@ -34,6 +34,11 @@ namespace MediaBrowser.Model.Querying
/// </summary>
Chapters,
/// <summary>
/// The trickplay manifest.
/// </summary>
Trickplay,
ChildCount,
/// <summary>