Counting Modes
A CountingMode defines the frame counting behavior of a Timecode or
TimecodeRange object. It also handles string formatting, as different modes may be represented
differently (e.g. DropFrame timecode traditionally uses a ; separator).
- class timecode.modes.CountingMode
An abstract class to facilitate timecode frame counting modes
Two of the most common modes are provided: NonDropFrame and DropFrame.
Additional modes may be created by subclassing the CountingMode class.
Note
The CountingMode classes are provided in the timecode.modes subpackage.
Using a Counting Mode
A CountingMode is typically provided by setting the mode parameter to an instance of a
CountingMode during the creation of a Timecode object:
>>> from timecode import Timecode
>>> from timecode.modes import DropFrame, NonDropFrame
>>> Timecode("01:00:00:00", mode=DropFrame())
<Timecode 01;00;00;00 @ 30 DF>
See also: Specifying The Counting Mode
Defaults
A CountingMode defines a default rate to use if the rate is not explicitly set during
the creation of a Timecode object. It may also define additional rules to validate the rate.
Below are the defaults and rules for the out-of-the-box CountingMode classes:
Mode |
Default Rate |
Additional Rules |
|---|---|---|
24 |
Rate must be a positive integer |
|
30 |
Rate must be a positive integer, and a multiple of 30 |
Here we illustrate the default rates and rate validation:
>>> from timecode import Timecode
>>> from timecode.modes import DropFrame, NonDropFrame
..
>>> # NonDropFrame defaults to 24 fps
>>> Timecode("01:00:00:00", mode=NonDropFrame())
<Timecode 01:00:00:00 @ 24 NDF>
..
>>> # DropFrame defaults to 30 fps
>>> Timecode("01:00:00:00", mode=DropFrame())
<Timecode 01;00;00;00 @ 30 DF>
..
>>> # DropFrame throws a `ValueError` for rates
>>> # that are not multiples of 30
>>> Timecode("01:00:00:00", mode=DropFrame(), rate=24)
ValueError: Drop Frame mode requires the rate to be a multiple of 30.
See also: Specifying The Rate
More Info
See timecode.modes.CountingMode in the API Documentation.