feat: add optional output_dir param to extract_thumbnails
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -51,15 +51,19 @@ pub async fn extract_waveform_tiers(
|
|||||||
pub async fn extract_thumbnails(
|
pub async fn extract_thumbnails(
|
||||||
file_path: String,
|
file_path: String,
|
||||||
duration: f64,
|
duration: f64,
|
||||||
|
output_dir: Option<String>,
|
||||||
) -> Result<Vec<ThumbnailSpritesheet>, String> {
|
) -> Result<Vec<ThumbnailSpritesheet>, String> {
|
||||||
eprintln!(
|
eprintln!(
|
||||||
"[video-clipper:thumbnails] starting for '{}' (duration={})",
|
"[video-clipper:thumbnails] starting for '{}' (duration={})",
|
||||||
file_path, duration
|
file_path, duration
|
||||||
);
|
);
|
||||||
let result = tokio::task::spawn_blocking(move || {
|
let result = tokio::task::spawn_blocking(move || {
|
||||||
let temp_dir = std::env::temp_dir()
|
let temp_dir = match output_dir {
|
||||||
.join("video-clipper-thumbs")
|
Some(dir) => std::path::PathBuf::from(dir),
|
||||||
.join(uuid::Uuid::new_v4().to_string());
|
None => std::env::temp_dir()
|
||||||
|
.join("video-clipper-thumbs")
|
||||||
|
.join(uuid::Uuid::new_v4().to_string()),
|
||||||
|
};
|
||||||
let temp_dir_str = temp_dir.to_string_lossy().to_string();
|
let temp_dir_str = temp_dir.to_string_lossy().to_string();
|
||||||
thumbnail_extractor::extract_thumbnails(&file_path, duration, &temp_dir_str)
|
thumbnail_extractor::extract_thumbnails(&file_path, duration, &temp_dir_str)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -41,11 +41,13 @@ export async function extractWaveformTiers(
|
|||||||
|
|
||||||
export async function extractThumbnails(
|
export async function extractThumbnails(
|
||||||
filePath: string,
|
filePath: string,
|
||||||
duration: number
|
duration: number,
|
||||||
|
outputDir?: string
|
||||||
): Promise<ThumbnailSpritesheet[]> {
|
): Promise<ThumbnailSpritesheet[]> {
|
||||||
return invoke<ThumbnailSpritesheet[]>('extract_thumbnails', {
|
return invoke<ThumbnailSpritesheet[]>('extract_thumbnails', {
|
||||||
filePath,
|
filePath,
|
||||||
duration,
|
duration,
|
||||||
|
outputDir: outputDir ?? null,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user