Timecode.atTimecode constructor

Timecode.atTimecode(
  1. String timecodeString, {
  2. 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);
}