Current section
Files
Jump to
Current section
Files
lib/subtitle/web_vtt/header_line.ex
defmodule Subtitle.WebVTT.HeaderLine do
defstruct [:key, :original, :data]
def new(line = "X-TIMESTAMP-MAP=" <> offsets) do
offset =
offsets
|> String.split(",")
|> Enum.map(&parse_offset/1)
|> Enum.sum()
%__MODULE__{key: :x_timestamp_map, original: line, data: %{offset: offset}}
end
def new(line) do
%__MODULE__{key: :description, original: line, data: %{}}
end
defp parse_offset("MPEGTS:" <> amount) do
timing =
amount
|> String.trim()
|> String.to_integer()
round(timing / 90)
end
defp parse_offset("LOCAL:" <> amount) do
{:ok, timing} =
amount
|> String.trim()
|> Subtitle.WebVTT.Timing.parse()
-timing
end
end