diff options
| author | nicknsy <20588554+nicknsy@users.noreply.github.com> | 2023-02-22 18:17:54 -0800 |
|---|---|---|
| committer | Nick <20588554+nicknsy@users.noreply.github.com> | 2023-06-22 16:19:59 -0700 |
| commit | 515ee90fb96b32d89134852b95ebcd8dbb656b94 (patch) | |
| tree | 3c8f10d4e130401dcb9a860a0f37878e7a2e61be /Jellyfin.Api/Controllers/DynamicHlsController.cs | |
| parent | ca7d1a13000ad948eebbfdeb40542312f3e37d3e (diff) | |
Hls playlist
Diffstat (limited to 'Jellyfin.Api/Controllers/DynamicHlsController.cs')
| -rw-r--r-- | Jellyfin.Api/Controllers/DynamicHlsController.cs | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/Jellyfin.Api/Controllers/DynamicHlsController.cs b/Jellyfin.Api/Controllers/DynamicHlsController.cs index 9f2088e36..2dbc343e9 100644 --- a/Jellyfin.Api/Controllers/DynamicHlsController.cs +++ b/Jellyfin.Api/Controllers/DynamicHlsController.cs @@ -407,6 +407,7 @@ public class DynamicHlsController : BaseJellyfinApiController /// <param name="context">Optional. The <see cref="EncodingContext"/>.</param> /// <param name="streamOptions">Optional. The streaming options.</param> /// <param name="enableAdaptiveBitrateStreaming">Enable adaptive bitrate streaming.</param> + /// <param name="enableTrickplay">Enable trickplay image playlists being added to master playlist.</param> /// <response code="200">Video stream returned.</response> /// <returns>A <see cref="FileResult"/> containing the playlist file.</returns> [HttpGet("Videos/{itemId}/master.m3u8")] @@ -464,7 +465,8 @@ public class DynamicHlsController : BaseJellyfinApiController [FromQuery] int? videoStreamIndex, [FromQuery] EncodingContext? context, [FromQuery] Dictionary<string, string> streamOptions, - [FromQuery] bool enableAdaptiveBitrateStreaming = true) + [FromQuery] bool enableAdaptiveBitrateStreaming = true, + [FromQuery] bool enableTrickplay = true) { var streamingRequest = new HlsVideoRequestDto { @@ -518,7 +520,8 @@ public class DynamicHlsController : BaseJellyfinApiController VideoStreamIndex = videoStreamIndex, Context = context ?? EncodingContext.Streaming, StreamOptions = streamOptions, - EnableAdaptiveBitrateStreaming = enableAdaptiveBitrateStreaming + EnableAdaptiveBitrateStreaming = enableAdaptiveBitrateStreaming, + EnableTrickplay = enableTrickplay }; return await _dynamicHlsHelper.GetMasterHlsPlaylist(TranscodingJobType, streamingRequest, enableAdaptiveBitrateStreaming).ConfigureAwait(false); @@ -1026,6 +1029,25 @@ public class DynamicHlsController : BaseJellyfinApiController } /// <summary> + /// Gets an image tiles playlist for trickplay. + /// </summary> + /// <param name="itemId">The item id.</param> + /// <param name="width">The width of a single tile.</param> + /// <param name="mediaSourceId">The media version id.</param> + /// <response code="200">Tiles stream returned.</response> + /// <returns>A <see cref="FileResult"/> containing the trickplay tiles file.</returns> + [HttpGet("Videos/{itemId}/tiles.m3u8")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesPlaylistFile] + public ActionResult GetTrickplayTilesHlsPlaylist( + [FromRoute, Required] Guid itemId, + [FromQuery, Required] int width, + [FromQuery, Required] string mediaSourceId) + { + return _dynamicHlsHelper.GetTilesHlsPlaylist(width, mediaSourceId); + } + + /// <summary> /// Gets a video stream using HTTP live streaming. /// </summary> /// <param name="itemId">The item id.</param> |
