Files
gui-video-clipper/src/lib/bindings/mediaAnalysis.ts

37 lines
915 B
TypeScript
Raw Normal View History

import { invoke } from '@tauri-apps/api/core';
export interface ThumbnailSpritesheet {
filePath: string;
startIndex: number;
count: number;
thumbWidth: number;
thumbHeight: number;
columns: number;
intervalSeconds: number;
}
export async function extractKeyframes(filePath: string): Promise<number[]> {
return invoke<number[]>('extract_keyframes', { filePath });
}
export async function extractWaveform(
filePath: string,
sampleCount: number
): Promise<number[]> {
return invoke<number[]>('extract_waveform', { filePath, sampleCount });
}
export async function extractThumbnails(
filePath: string,
duration: number
): Promise<ThumbnailSpritesheet[]> {
return invoke<ThumbnailSpritesheet[]>('extract_thumbnails', {
filePath,
duration,
});
}
export async function cleanupThumbnails(paths: string[]): Promise<void> {
return invoke<void>('cleanup_thumbnails', { paths });
}