Timecode.atTimecode constructor
Timecode.atTimecode(
- String timecodeString, {
- TimecodeFramerate? framerate,
Creates a timecode with a specific timecode string and framerate.
If framerate
is omitted, the following defaults will be used:
- default timecodes (00:00:00:00) -> 24 fps
- drop frame timecodes (00:00:00;00) -> 29.97 fps
- ms timecodes (00:00:00.000) -> 1000 fps
NOTE: When using drop frame framerates, some timecode strings are considered invalid and will be corrected to valid timecodes. Consider the following examples.
var fps = TimecodeFramerate(29.97);
Timecode.atTimecode('00:00:59;29', framerate: fps); // -> 00:00:59;29
Timecode.atTimecode('00:01:00;00', framerate: fps); // -> 00:01:00;02 (!!)
Timecode.atTimecode('00:01:00;01', framerate: fps); // -> 00:01:00;02 (!!)
Timecode.atTimecode('00:01:00;02', framerate: fps); // -> 00:01:00;02
Implementation
factory Timecode.atTimecode(String timecodeString, {TimecodeFramerate? framerate}) {
double def = 24;
if (timecodeString.contains(';')) {
def = 29.97;
} else if (timecodeString.contains('.')) {
def = 1000;
}
framerate ??= TimecodeFramerate(def);
var startFrames = parseToFrames(timecodeString, framerate: framerate);
return Timecode(framerate: framerate, startFrames: startFrames);
}