aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcvium <clausvium@gmail.com>2021-09-25 23:28:10 +0200
committercvium <clausvium@gmail.com>2021-09-25 23:28:10 +0200
commit64a13a5d42da4a27d203f49d69069a635b5f199e (patch)
tree7421f542b4e2bfeb6a7daacee39f9b12fb07c43b /src
parent43ea4af30fa16d02ae12ebd0b3b65e55658dcc74 (diff)
Add ComputeSegments test
Diffstat (limited to 'src')
-rw-r--r--src/Jellyfin.MediaEncoding.Hls/Playlist/DynamicHlsPlaylistGenerator.cs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/Jellyfin.MediaEncoding.Hls/Playlist/DynamicHlsPlaylistGenerator.cs b/src/Jellyfin.MediaEncoding.Hls/Playlist/DynamicHlsPlaylistGenerator.cs
index 5c6809a87..5411d5667 100644
--- a/src/Jellyfin.MediaEncoding.Hls/Playlist/DynamicHlsPlaylistGenerator.cs
+++ b/src/Jellyfin.MediaEncoding.Hls/Playlist/DynamicHlsPlaylistGenerator.cs
@@ -198,6 +198,11 @@ namespace Jellyfin.MediaEncoding.Hls.Playlist
internal static IReadOnlyList<double> ComputeSegments(KeyframeData keyframeData, int desiredSegmentLengthMs)
{
+ if (keyframeData.KeyframeTicks.Count > 0 && keyframeData.TotalDuration < keyframeData.KeyframeTicks[^1])
+ {
+ throw new ArgumentException("Invalid duration in keyframe data", nameof(keyframeData));
+ }
+
long lastKeyframe = 0;
var result = new List<double>();
// Scale the segment length to ticks to match the keyframes
@@ -219,7 +224,7 @@ namespace Jellyfin.MediaEncoding.Hls.Playlist
return result;
}
- internal static double[] ComputeEqualLengthSegments(long desiredSegmentLengthMs, long totalRuntimeTicks)
+ internal static double[] ComputeEqualLengthSegments(int desiredSegmentLengthMs, long totalRuntimeTicks)
{
if (desiredSegmentLengthMs == 0 || totalRuntimeTicks == 0)
{