Current section

Files

Jump to
vtc lib sources frames string.ex
Raw

lib/sources/frames/string.ex

defimpl Vtc.Source.Frames, for: [String, BitString] do
alias Vtc.Framerate
alias Vtc.Source.Frames
alias Vtc.Source.Frames.FeetAndFrames
alias Vtc.Source.Frames.TimecodeStr
@spec frames(String.t(), Framerate.t()) :: Frames.result()
def frames(value, rate) do
tc_result = Frames.frames(%TimecodeStr{in: value}, rate)
with {:error, %{reason: reason}} when reason != :bad_drop_frames <- tc_result,
{:ok, feet_and_frames} <- FeetAndFrames.from_string(value) do
Frames.frames(feet_and_frames, rate)
end
end
end