defmodule Vtc.Rates do
@moduledoc """
Pre-defined framerates commonly found in the wild.
"""
alias Vtc.Framerate
@doc section: :consts
@doc """
23.98 NTSC, non-drop.
"""
@spec f23_98 :: Framerate.t()
def f23_98, do: Framerate.new!(Ratio.new(24_000, 1001), ntsc: :non_drop)
@doc section: :consts
@doc """
24 fps.
"""
@spec f24 :: Framerate.t()
def f24, do: Framerate.new!(24)
@doc section: :consts
@doc """
29.97 NTSC, non-drop.
"""
@spec f29_97_ndf :: Framerate.t()
def f29_97_ndf, do: Framerate.new!(Ratio.new(30_000, 1001), ntsc: :non_drop)
@doc section: :consts
@doc """
29.97 NTSC, drop-frame.
"""
@spec f29_97_df :: Framerate.t()
def f29_97_df, do: Framerate.new!(Ratio.new(30_000, 1001), ntsc: :drop)
@doc section: :consts
@doc """
30 fps.
"""
@spec f30 :: Framerate.t()
def f30, do: Framerate.new!(30)
@doc section: :consts
@doc """
47.95 NTSC non-drop.
"""
@spec f47_95 :: Framerate.t()
def f47_95, do: Framerate.new!(Ratio.new(48_000, 1001), ntsc: :non_drop)
@doc section: :consts
@doc """
48 fps.
"""
@spec f48 :: Framerate.t()
def f48, do: Framerate.new!(48)
@doc section: :consts
@doc """
59.94 NTSC non-drop.
"""
@spec f59_94_ndf :: Framerate.t()
def f59_94_ndf, do: Framerate.new!(Ratio.new(60_000, 1001), ntsc: :non_drop)
@doc section: :consts
@doc """
59.94 NTSC drop-frame.
"""
@spec f59_94_df :: Framerate.t()
def f59_94_df, do: Framerate.new!(Ratio.new(60_000, 1001), ntsc: :drop)
@doc section: :consts
@doc """
60 fps.
"""
@spec f60 :: Framerate.t()
def f60, do: Framerate.new!(60)
end