( state: VideoTimelineState, sourceTime: number, )
| 461 | } |
| 462 | |
| 463 | export function mapTimelineSourceTimeToDisplayTime( |
| 464 | state: VideoTimelineState, |
| 465 | sourceTime: number, |
| 466 | ) { |
| 467 | const duration = normalizeDuration(state.duration); |
| 468 | if (duration <= 0 || !isFiniteNumber(sourceTime)) return 0; |
| 469 | |
| 470 | const time = clampEditTime(sourceTime, 0, duration); |
| 471 | let deletedBefore = 0; |
| 472 | for (const range of getDisplayDeletedRanges({ ...state, duration })) { |
| 473 | if (time <= range.start + EPSILON) break; |
| 474 | if (time < range.end - EPSILON) { |
| 475 | return roundEditTime(range.start - deletedBefore); |
| 476 | } |
| 477 | deletedBefore += range.end - range.start; |
| 478 | } |
| 479 | |
| 480 | return roundEditTime(Math.max(0, time - deletedBefore)); |
| 481 | } |
| 482 | |
| 483 | export function mapTimelineDisplayTimeToSourceTime( |
| 484 | state: VideoTimelineState, |
no test coverage detected