Add tests for ComputeEqualLengthSegments and fix bug

This commit is contained in:
cvium
2021-09-25 11:47:44 +02:00
parent c7b25a9fe4
commit 3e5cb8e04e
2 changed files with 40 additions and 3 deletions

View File

@@ -221,7 +221,14 @@ namespace Jellyfin.MediaEncoding.Hls.Playlist
internal static double[] ComputeEqualLengthSegments(long desiredSegmentLengthMs, long totalRuntimeTicks)
{
var segmentLengthTicks = TimeSpan.FromMilliseconds(desiredSegmentLengthMs).Ticks;
if (desiredSegmentLengthMs == 0 || totalRuntimeTicks == 0)
{
throw new InvalidOperationException($"Invalid segment length ({desiredSegmentLengthMs}) or runtime ticks ({totalRuntimeTicks})");
}
var desiredSegmentLength = TimeSpan.FromMilliseconds(desiredSegmentLengthMs);
var segmentLengthTicks = desiredSegmentLength.Ticks;
var wholeSegments = totalRuntimeTicks / segmentLengthTicks;
var remainingTicks = totalRuntimeTicks % segmentLengthTicks;
@@ -229,7 +236,7 @@ namespace Jellyfin.MediaEncoding.Hls.Playlist
var segments = new double[segmentsLen];
for (int i = 0; i < wholeSegments; i++)
{
segments[i] = desiredSegmentLengthMs;
segments[i] = desiredSegmentLength.TotalSeconds;
}
if (remainingTicks != 0)