From 332648d29e04afb094fd7f82f2d7d8f760d560c6 Mon Sep 17 00:00:00 2001 From: imeepos Date: Mon, 11 Aug 2025 13:09:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=85=B3=E9=94=AE?= =?UTF-8?q?=E5=B8=A7=E6=8F=90=E5=8F=96=E4=B8=AD=E7=9A=84=E6=95=B4=E6=95=B0?= =?UTF-8?q?=E6=BA=A2=E5=87=BA=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复 jpeg_quality_to_qscale 函数中的 u8 乘法溢出问题 - 将计算过程转换为 u32 类型以避免溢出 - 解决了导致线程 panic 和前端界面卡住的问题 --- apps/desktop/src-tauri/src/infrastructure/frame_extractor.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/desktop/src-tauri/src/infrastructure/frame_extractor.rs b/apps/desktop/src-tauri/src/infrastructure/frame_extractor.rs index a1dd2a6..ab88e41 100644 --- a/apps/desktop/src-tauri/src/infrastructure/frame_extractor.rs +++ b/apps/desktop/src-tauri/src/infrastructure/frame_extractor.rs @@ -527,8 +527,8 @@ impl FrameExtractorService { fn jpeg_quality_to_qscale(quality: u8) -> u8 { // FFmpeg qscale: 1 (最高质量) 到 31 (最低质量) // 质量值: 1-100 - let clamped_quality = quality.clamp(1, 100); - 31 - ((clamped_quality - 1) * 30 / 99) + let clamped_quality = quality.clamp(1, 100) as u32; + (31 - ((clamped_quality - 1) * 30 / 99)) as u8 } /// 计算提取时间点