Packages
vtc
0.16.8
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/errors/framestamp_parse_error.ex
defmodule Vtc.Framestamp.ParseError do
@moduledoc """
Exception returned when there is an error parsing a Timecode value.
## Struct Fields
- `reason`: The reason the error occurred.
## Failure Reasons
The following values can appear in the `:reason` fields:
- `:unrecognized_format`: Returned when a string value is not a recognized
timecode, runtime, etc. format.
- `:bad_drop_frames`: Returned when parsing SMPTE, drop-frame timecode. Indicates that
the 'frames' field represents a frame that should have been dropped.
"""
defexception [:reason]
@typedoc """
Type of `Framestamp.ParseError`.
"""
@type t() :: %__MODULE__{
reason: :unrecognized_format | :bad_drop_frames | :drop_frame_maximum_exceeded | :partial_frame
}
@doc """
Returns a message for the error reason.
"""
@spec message(t()) :: String.t()
def message(%{reason: :unrecognized_format}), do: "string format not recognized"
def message(%{reason: :bad_drop_frames}),
do: "frames value not allowed for drop-frame timecode. frame should have been dropped"
def message(%{reason: :partial_frame}), do: "`seconds` is not cleanly divisible by `rate.playback`"
def message(%{reason: :drop_frame_maximum_exceeded}), do: "frame number exceeded 24 hours for drop-frame timecode"
end