-
0996670020
fix: random portrait always uses 9:16
Ethanfel
2026-04-11 23:40:47 +02:00
-
ffb99d3e66
fix: scale random portrait count — 1 per 3 clips (e.g. 2 for 6 clips)
Ethanfel
2026-04-11 23:39:42 +02:00
-
439bc85505
feat: random portrait — one clip per batch gets a random crop ratio + position
Ethanfel
2026-04-11 23:38:56 +02:00
-
13973dd53d
fix: read clip_count/spread from settings before timeline init
Ethanfel
2026-04-11 23:34:03 +02:00
-
9e07910df1
feat: make clip count configurable (1–10, default 3)
Ethanfel
2026-04-11 23:28:12 +02:00
-
25250d6d8d
fix: use lossless PCM audio in MP4 exports
Ethanfel
2026-04-11 23:26:02 +02:00
-
93cee40b06
feat: export 3 overlapping 8s clips per press with configurable spread
Ethanfel
2026-04-11 23:22:41 +02:00
-
47ea6199fa
feat: add Delete button to remove exports from disk, DB, and dataset.json
Ethanfel
2026-04-07 14:23:16 +02:00
-
8bc42cabd9
fix: store absolute paths in dataset.json
Ethanfel
2026-04-07 14:10:06 +02:00
-
8148971aae
refactor: remove fps from annotation — path + label only
Ethanfel
2026-04-07 14:09:08 +02:00
-
a8d8bd7fdc
Revert "fix: pass source fps to ffmpeg export via fps filter"
Ethanfel
2026-04-07 14:08:00 +02:00
-
f0484fac86
Revert "feat: write fps.txt alongside WebP sequence audio"
Ethanfel
2026-04-07 14:08:00 +02:00
-
fd25e8fa37
feat: add migration script to generate dataset.json from DB history
Ethanfel
2026-04-07 14:04:29 +02:00
-
c3c480acc7
feat: replace dataset.tsv with dataset.json annotation file
Ethanfel
2026-04-07 14:01:50 +02:00
-
cf62940b84
feat: write fps.txt alongside WebP sequence audio
Ethanfel
2026-04-07 13:56:13 +02:00
-
fc9287a5a6
fix: pass source fps to ffmpeg export via fps filter
Ethanfel
2026-04-07 13:54:38 +02:00
-
1256819dde
ui: warn mask generation is untested, recommend ComfyUI
Ethanfel
2026-04-07 12:35:44 +02:00
-
58043dd7e3
docs: warn mask generation is untested, recommend ComfyUI
Ethanfel
2026-04-07 12:35:13 +02:00
-
a652872d15
docs: add GPL v3 license and GitHub source link
Ethanfel
2026-04-07 12:34:13 +02:00
-
9d7791557b
revert: restore
ff0cd00 (label history, overwrite mode, crop overlay)
Ethanfel
2026-04-07 12:11:36 +02:00
-
2352d530d0
feat: queue done marks, export UX, scrub-while-playing, counter fix
Ethanfel
2026-04-07 11:41:07 +02:00
-
6e02a08046
Revert "feat: label history, overwrite mode, crop overlay, UX improvements"
Ethanfel
2026-04-07 11:36:40 +02:00
-
ff0cd00309
feat: label history, overwrite mode, crop overlay, UX improvements
Ethanfel
2026-04-07 11:34:47 +02:00
-
6573fa6e05
feat: mpv Wayland embedding, timeline redesign, UX polish
Ethanfel
2026-04-06 22:22:58 +02:00
-
7931a0e3db
debug: write mpv log to /tmp/8cut-mpv.log
Ethanfel
2026-04-06 20:56:14 +02:00
-
939199717f
fix: use QOpenGLContext.getProcAddress for mpv render context proc lookup
Ethanfel
2026-04-06 20:54:19 +02:00
-
8863634bce
debug: add mpv log output and initializeGL trace
Ethanfel
2026-04-06 20:51:11 +02:00
-
e5f2c732d9
fix: wrap get_proc_address as CFUNCTYPE for mpv render context
Ethanfel
2026-04-06 20:50:02 +02:00
-
1e0c1ae892
fix: replace wid embedding with OpenGL render context — works on Wayland and X11
Ethanfel
2026-04-06 20:48:59 +02:00
-
2c95c2618a
debug: print platform/wid/WAYLAND_DISPLAY at mpv init
Ethanfel
2026-04-06 20:41:55 +02:00
-
c130010e36
fix: hide WAYLAND_DISPLAY during mpv init so it uses X11 wid embedding
Ethanfel
2026-04-06 20:41:16 +02:00
-
02c63bdfde
fix: force QT_QPA_PLATFORM=xcb so mpv embeds correctly on Wayland sessions
Ethanfel
2026-04-06 20:39:12 +02:00
-
f30955b63c
debug: print drag-drop events to diagnose Wayland DnD
Ethanfel
2026-04-06 20:37:13 +02:00
-
c80ebf9383
fix: move drag-drop to MainWindow to bypass QListWidget viewport on Wayland
Ethanfel
2026-04-06 20:35:47 +02:00
-
3d92a66660
fix: re-apply LC_NUMERIC=C after QApplication resets locale
Ethanfel
2026-04-06 20:33:51 +02:00
-
bdfb9354ca
fix: set LC_NUMERIC=C before mpv init to prevent segfault on non-C locales
Ethanfel
2026-04-06 20:32:56 +02:00
-
41c36267e9
fix: use NoDragDrop mode + viewport.setAcceptDrops for Wayland/KDE compatibility
Ethanfel
2026-04-06 20:31:37 +02:00
-
d720fc0541
fix: accept dragMoveEvent so file drops work on all desktop environments
Ethanfel
2026-04-06 20:30:31 +02:00
-
31f4df4c5b
fix: suppress QFrame paintEvent on mpv native window
Ethanfel
2026-04-06 20:29:06 +02:00
-
39bbfedb9d
fix: suppress paintEngine warnings from mpv native window embedding
Ethanfel
2026-04-06 20:28:00 +02:00
-
025d5afe1f
chore: add shebang for direct execution
Ethanfel
2026-04-06 20:25:07 +02:00
-
191d1cf299
fix: move SELVA_CATEGORIES to module level, harden append_to_tsv, fix tests
Ethanfel
2026-04-06 18:48:46 +02:00
-
c76eb9ec84
feat: add label/category annotation fields and TSV export for SELVA
Ethanfel
2026-04-06 18:45:29 +02:00
-
8fb8782e65
fix: use correct venv path on Windows (Scripts/python.exe)
Ethanfel
2026-04-06 18:30:37 +02:00
-
a74e5022b3
docs: add README
Ethanfel
2026-04-06 18:28:59 +02:00
-
e62a712de2
perf: skip redundant repaints, cache fps, O(1) playlist dedup, fix worker leak
Ethanfel
2026-04-06 18:18:31 +02:00
-
16e0bc231c
perf: playlist O(1) updates, marker hover cache, crop pen cache, keyboard debounce, export marker fast-path
Ethanfel
2026-04-06 18:07:58 +02:00
-
4c44d78c37
perf: seek debounce, cached paint resources, async DB lookup, regex pre-compile
Ethanfel
2026-04-06 18:04:18 +02:00
-
b57131a3d9
feat: keyboard navigation for timeline
Ethanfel
2026-04-06 17:35:46 +02:00
-
9652b249ba
feat: extract audio alongside WebP image sequence
Ethanfel
2026-04-06 17:20:40 +02:00
-
fe3e642dfa
fix: guard mask generation against WebP sequence export path
Ethanfel
2026-04-06 17:19:03 +02:00
-
855797a1b3
docs: clarify _last_export_path holds dir path for WebP sequence
Ethanfel
2026-04-06 16:07:44 +02:00
-
f9649f7584
feat: wire WebP sequence format into export flow
Ethanfel
2026-04-06 16:05:26 +02:00
-
13c8a8aeab
style: rename fmt_idx to idx in _cmb_format setup
Ethanfel
2026-04-06 16:04:30 +02:00
-
c163b298c4
feat: add format combo (MP4 / WebP sequence) to export row
Ethanfel
2026-04-06 16:02:26 +02:00
-
d3c4dea597
fix: guard makedirs in ExportWorker.run inside try/except
Ethanfel
2026-04-06 16:01:16 +02:00
-
f86442322f
feat: ExportWorker supports image_sequence mode
Ethanfel
2026-04-06 15:59:17 +02:00
-
1ab18e6ab5
fix: use -c:v and explicit -an in image_sequence ffmpeg command
Ethanfel
2026-04-06 15:58:33 +02:00
-
93028d9ac7
feat: build_sequence_dir and image_sequence flag for build_ffmpeg_command
Ethanfel
2026-04-06 15:56:16 +02:00
-
c57ab4df77
docs: image sequence export implementation plan
Ethanfel
2026-04-06 15:54:31 +02:00
-
4f2feb1907
docs: image sequence export design
Ethanfel
2026-04-06 15:53:13 +02:00
-
eca49caee9
fix: sam_masks — correct SAM2 API and mask logit threshold
Ethanfel
2026-04-06 15:45:53 +02:00
-
3c6f83de5a
feat: wire mask generation and settings into MainWindow
Ethanfel
2026-04-06 15:39:07 +02:00
-
ccc1e04acb
feat: MaskWorker, SetupWorker, SettingsDialog
Ethanfel
2026-04-06 15:37:12 +02:00
-
44bcb285ac
feat: sam_masks.py script using SAM2 video predictor
Ethanfel
2026-04-06 15:35:29 +02:00
-
de6f48b508
feat: depth_masks.py script using Depth Anything V2
Ethanfel
2026-04-06 15:34:55 +02:00
-
9bc65a2b25
feat: add build_mask_output_dir utility
Ethanfel
2026-04-06 15:34:08 +02:00
-
8fe3dc1c1b
docs: mask generation implementation plan
Ethanfel
2026-04-06 15:32:36 +02:00
-
da5d903286
docs: mask generation design
Ethanfel
2026-04-06 15:26:03 +02:00
-
29b404ec23
feat: wire portrait crop into MainWindow
Ethanfel
2026-04-06 13:53:55 +02:00
-
d8c7642f15
feat: CropBarWidget for portrait crop positioning
Ethanfel
2026-04-06 13:51:56 +02:00
-
1a43c4725d
feat: portrait crop filter in build_ffmpeg_command
Ethanfel
2026-04-06 13:51:02 +02:00
-
d7b704efc3
docs: portrait crop implementation plan
Ethanfel
2026-04-06 13:48:40 +02:00
-
87be0d2408
docs: portrait crop design
Ethanfel
2026-04-06 13:44:24 +02:00
-
625ca2d21c
feat: resize short-side field with QSettings persistence
Ethanfel
2026-04-06 13:33:13 +02:00
-
798c5ff4f4
feat: add short_side resize to build_ffmpeg_command
Ethanfel
2026-04-06 13:31:58 +02:00
-
ce7e808249
docs: resize output implementation plan
Ethanfel
2026-04-06 13:17:35 +02:00
-
b8f9d6541b
docs: resize output design
Ethanfel
2026-04-06 13:16:28 +02:00
-
207518902f
feat: wire timeline markers into MainWindow
Ethanfel
2026-04-06 13:11:05 +02:00
-
5960a2fe78
feat: timeline markers with hover tooltip
Ethanfel
2026-04-06 13:10:12 +02:00
-
63d48a968c
feat: DB schema v2 — store start_time and output_path, add get_markers
Ethanfel
2026-04-06 13:08:49 +02:00
-
c34f3b4039
docs: timeline markers design
Ethanfel
2026-04-06 13:03:07 +02:00
-
bcde41c4fc
fix: list item selection styling, advance() guard against no selection
Ethanfel
2026-04-06 12:59:18 +02:00
-
f93fea2a22
fix: clear stale DB warning, allow playlist panel to resize
Ethanfel
2026-04-06 12:55:58 +02:00
-
ccdb50c6a4
feat: wire playlist and DB into MainWindow
Ethanfel
2026-04-06 12:53:41 +02:00
-
75fd43577e
feat: PlaylistWidget with drop support and auto-advance
Ethanfel
2026-04-06 12:51:46 +02:00
-
dab4b26ce1
fix: utcnow deprecation, DB unique constraint and index, regex comment
Ethanfel
2026-04-06 12:50:53 +02:00
-
558fa23da4
feat: ProcessedDB and _normalize_filename with tests
Ethanfel
2026-04-06 12:42:03 +02:00
-
3124b64c29
docs: playlist and processed-files DB design
Ethanfel
2026-04-06 12:37:58 +02:00
-
c5f508ffb9
fix: remove redundant _reset_counter call in _pick_folder
Ethanfel
2026-04-06 12:27:51 +02:00
-
1fb69b10fb
fix: Wayland XCB force, AB-loop clamp, folder textChanged, drop validation
Ethanfel
2026-04-06 12:26:08 +02:00
-
73abd5429a
feat: dark theme, complete 8-cut tool
Ethanfel
2026-04-06 12:22:49 +02:00
-
9981cc84c1
docs: clarify format_time truncation and counter reset behavior
Ethanfel
2026-04-06 12:22:17 +02:00
-
322d89b688
feat: complete MainWindow UI with playback and export
Ethanfel
2026-04-06 12:19:54 +02:00
-
ad1a4283e8
feat: MpvWidget with seek and AB-loop
Ethanfel
2026-04-06 12:12:53 +02:00
-
ba736fe532
fix: end QPainter in finally block to prevent resource leak
Ethanfel
2026-04-06 12:11:39 +02:00
-
f0313b10a8
feat: TimelineWidget with cursor and 8s highlight
Ethanfel
2026-04-06 12:09:35 +02:00
-
8a97c3c7c2
fix: ffmpeg command type hint, -ss comment, FileNotFoundError handler
Ethanfel
2026-04-06 12:08:42 +02:00
-
f6832f58a6
feat: ExportWorker with ffmpeg command builder
Ethanfel
2026-04-06 12:06:32 +02:00
-
68f9a01d2b
fix: format_time rollover, move sys.path to conftest
Ethanfel
2026-04-06 11:16:52 +02:00