pickStepFromIds method

ParakeetTdtStep pickStepFromIds({
  1. required int tokenId,
  2. required int durationId,
  3. required ParakeetTdtDecodeState state,
})

Implementation

ParakeetTdtStep pickStepFromIds({
  required int tokenId,
  required int durationId,
  required ParakeetTdtDecodeState state,
}) {
  final isBlank = tokenId == manifest.blankTokenId;
  final rawAdvance = manifest.durations[durationId];
  final hitMaxSymbols =
      !isBlank &&
      rawAdvance == 0 &&
      state.emittedSymbols + 1 >= manifest.maxSymbols;
  final advanceFrames = hitMaxSymbols ? 1 : rawAdvance;
  return ParakeetTdtStep(
    tokenId: tokenId,
    durationId: durationId,
    frameIndex: state.frameIndex,
    durationFrames: rawAdvance,
    isBlank: isBlank,
    emitToken: !isBlank,
    advanceFrames: advanceFrames,
  );
}