{"version":3,"file":"playbackFrameTime.mjs","names":[],"sources":["../../../src/hooks/playback/playbackFrameTime.ts"],"sourcesContent":["import {\n  fromTimecodeFrameNumber,\n  resolveTimecodeFrameRate,\n  toSeconds,\n  type RationalTime,\n  type TimecodeFrameRate,\n} from '@techsquidtv/canvas-timeline-utils';\n\nexport function quantizeTimelineTimeToFrame(\n  time: RationalTime,\n  frameRate: TimecodeFrameRate | undefined,\n  rounding: 'ceil' | 'floor' = 'floor'\n) {\n  if (frameRate === undefined) {\n    return time;\n  }\n\n  const resolvedFrameRate = resolveTimecodeFrameRate(frameRate);\n  const unroundedFrameNumber = Math.max(0, toSeconds(time)) * resolvedFrameRate;\n  const frameNumber =\n    rounding === 'ceil'\n      ? Math.ceil(unroundedFrameNumber - 1e-9)\n      : Math.floor(unroundedFrameNumber + 1e-9);\n  return fromTimecodeFrameNumber(frameNumber, frameRate, time.r);\n}\n"],"mappings":";;AAQA,SAAgB,4BACd,MACA,WACA,WAA6B,SAC7B;CACA,IAAI,cAAc,KAAA,GAChB,OAAO;CAGT,MAAM,oBAAoB,yBAAyB,SAAS;CAC5D,MAAM,uBAAuB,KAAK,IAAI,GAAG,UAAU,IAAI,CAAC,IAAI;CAC5D,MAAM,cACJ,aAAa,SACT,KAAK,KAAK,uBAAuB,IAAI,IACrC,KAAK,MAAM,uBAAuB,IAAI;CAC5C,OAAO,wBAAwB,aAAa,WAAW,KAAK,CAAC;AAC/D"}