From 0ebf6a6db6dbd3d3148c8075427de0516b274537 Mon Sep 17 00:00:00 2001 From: crimsonspecter <246959308+crimsonspecter@users.noreply.github.com> Date: Fri, 6 Mar 2026 16:58:07 -0500 Subject: [PATCH] Backport pull request #16341 from jellyfin/release-10.11.z Fix hls segment length adjustment for remuxed content Original-merge: 09ba04662acf256ec0a22f56de7e02d65d0805f6 Merged-by: Bond-009 Backported-by: Bond_009 --- Jellyfin.Api/Controllers/DynamicHlsController.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jellyfin.Api/Controllers/DynamicHlsController.cs b/Jellyfin.Api/Controllers/DynamicHlsController.cs index f80b36c390..acd5dd64ec 100644 --- a/Jellyfin.Api/Controllers/DynamicHlsController.cs +++ b/Jellyfin.Api/Controllers/DynamicHlsController.cs @@ -1403,8 +1403,8 @@ public class DynamicHlsController : BaseJellyfinApiController double fps = state.TargetFramerate ?? 0.0f; int segmentLength = state.SegmentLength * 1000; - // If framerate is fractional (i.e. 23.976), we need to slightly adjust segment length - if (Math.Abs(fps - Math.Floor(fps + 0.001f)) > 0.001) + // If video is transcoded and framerate is fractional (i.e. 23.976), we need to slightly adjust segment length + if (!EncodingHelper.IsCopyCodec(state.OutputVideoCodec) && Math.Abs(fps - Math.Floor(fps + 0.001f)) > 0.001) { double nearestIntFramerate = Math.Ceiling(fps); segmentLength = (int)Math.Ceiling(segmentLength * (nearestIntFramerate / fps));