Current section

Files

Jump to
hls_playlist lib hls_playlist_segments.ex
Raw

lib/hls_playlist_segments.ex

defmodule HlsPlaylist.Segments do
def generate(duration, segment_length \\ 3) when duration > 0 and segment_length > 0 do
spread_duration(duration, segment_length, [])
end
defp spread_duration(duration, _segment_length, acc) when duration <= 0 do
Enum.reverse(acc)
end
defp spread_duration(duration, segment_length, acc) do
next_duration = min(duration, segment_length)
spread_duration(duration - next_duration, segment_length, [next_duration | acc])
end
end