using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Entities; namespace MediaBrowser.Controller.Trickplay; /// /// Interface ITrickplayManager. /// public interface ITrickplayManager { /// /// Generate or replace trickplay data. /// /// The video. /// Whether or not existing data should be replaced. /// CancellationToken to use for operation. /// Task. Task RefreshTrickplayDataAsync(Video video, bool replace, CancellationToken cancellationToken); /// /// Get available trickplay resolutions and corresponding info. /// /// The item. /// Map of width resolutions to trickplay tiles info. Dictionary GetTilesResolutions(Guid itemId); /// /// Saves trickplay tiles info. /// /// The item. /// The trickplay tiles info. void SaveTilesInfo(Guid itemId, TrickplayTilesInfo tilesInfo); /// /// Gets the trickplay manifest. /// /// The item. /// A map of media source id to a map of tile width to tile info. Dictionary> GetTrickplayManifest(BaseItem item); /// /// Gets the path to a trickplay tiles image. /// /// The item. /// The width of a single tile. /// The tile grid's index. /// The absolute path. string GetTrickplayTilePath(BaseItem item, int width, int index); }