Packages
vtc
0.13.12
0.17.5
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.9
0.16.8
0.16.7
0.16.6
0.16.5
0.16.4
0.16.2
0.16.1
0.16.0
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.15
0.13.14
0.13.13
0.13.12
0.13.11
0.13.10
0.13.9
0.13.8
0.13.7
0.13.6
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.1
0.11.0
0.10.10
0.10.9
0.10.8
0.10.7
0.10.6
0.10.5
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.2
0.9.1
0.9.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.3
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.3
0.5.2
0.5.1
0.4.0
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
A SMPTE timecode library for Elixir
Current section
Files
Jump to
Current section
Files
lib/sources/frames.ex
defprotocol Vtc.Source.Frames do
@moduledoc """
Protocol which types can implement to be passed as the main value of
`Framestamp.with_frames/2`.
## Implementations
Out of the box, this protocol is implemented for the following types:
- `Integer`
- `String` & `BitString`
- timecode ("01:00:00:00")
- integer ("86400")
- Feet+Frames ("5400+00")
- [SMPTETimecodeStr](`Vtc.Source.Frames.SMPTETimecodeStr`)
- [FeetAndFrames](`Vtc.Source.Frames.FeetAndFrames`)
"""
alias Vtc.Framerate
alias Vtc.Framestamp
@typedoc """
Result type of `frames/2`.
"""
@type result() :: {:ok, integer()} | {:error, Framestamp.ParseError.t()}
@doc """
Returns the value as a frame count.
# Arguments
- **value**: The source value.
- **rate**: The framerate of the framestamp being parsed.
# Returns
A result tuple with an integer value representing the frame count on success.
"""
@spec frames(t(), Framerate.t()) :: result()
def frames(value, rate)
end