첫 소스 매핑 체감 속도 개선 — 열거 직후 그리드 표시(메타 대기 안 함)

증상: 파일(특히 영상)이 많으면 첫 소스 추가 시 오래 걸림. 원인은
library-changed(그리드 표시)가 스캔+이미지메타+영상메타를 모두 마친 뒤에야
발생 → 영상마다 ffprobe 프로세스를 띄우는 영상 메타가 끝날 때까지 그리드가 빈 채로.

수정: run_scan_pipeline에 on_refresh 콜백 추가.
- 열거(파일 DB 삽입) 직후 썸네일 생성 시작 + library-changed 발생 → 그리드 즉시 표시
- 이미지 메타(헤더, 빠름) 후 재배치
- 영상 메타(ffprobe, 느림)는 백그라운드 진행, 완료 후 최종 재배치
watcher 재스캔도 동일 적용.

검증(영상 250개): 그리드가 300ms에 표시(메타 250 대기 중), 썸네일은 백그라운드로
채워지고 영상 메타 완료(~6.6s) 후 종횡비 재배치. 기존엔 ~6.6s 내내 빈 화면이었음.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
강 한
2026-07-19 21:37:45 +09:00
co-authored by Claude Fable 5
parent ce94842a8a
commit 938b3b840e
2 changed files with 32 additions and 7 deletions
+3
View File
@@ -64,6 +64,9 @@ impl WatcherManager {
Path::new(&root),
&state.scan_cancel,
|_| {},
|| {
let _ = app.emit("library-changed", source_id);
},
);
state.scan_running.store(false, Ordering::SeqCst);
let _ = app.emit("library-changed", source_id);