Commit Graph
3253 Commits
Author SHA1 Message Date
BFlat 2ffc2bdf61 Merge pull request #1164 from nanox333/fix/1063-text-animator-stacked
Scripts: text animator properties resolve by their After Effects names (refs #1063)
2026-10-30 05:07:48 +07:00
BFlat 664ca1a85b Merge pull request #1568 from midasmatterhorn/fix/r4-output-size-clamp
project: output_size never asks for sides past the comp limit
2026-10-30 05:07:42 +07:00
BFlat d26ab3b83e Merge pull request #2609 from storytold/fix/qa-sequence-import
Tests: QA scenarios ask for image sequences explicitly
2026-10-30 04:33:27 +07:00
BFlat f868cc68f3 Merge pull request #1875 from vangel76/rfx-text
Text lays out as in After Effects: box text baseline, right-to-left text, Justify All, animator tracking, per-character 3D rotation
2026-10-30 04:10:22 +07:00
BFlat a8a8267dac Merge pull request #2363 from Kaedo17/split/ci-alsa
ci: name the missing ALSA package instead of dying at link time
2026-10-30 04:10:14 +07:00
BFlat 8b4dca7635 Merge pull request #2601 from pravdomil/claude/ecproj-compact-opt-in
Project files: opt-in compact .ecproj JSON (Save Compact Project Files)
2026-10-30 04:10:07 +07:00
BFlat f4ca883dac Merge pull request #2346 from vangel76/camtrack-matrix-free-schur
Avoid quadratic Schur assembly for long camera tracks
2026-10-30 04:09:59 +07:00
BFlat ef3d14b0fe Merge pull request #2580 from gjrtimmer/feat/web-startup-option
feat(web): choose the project the page opens with a `startup` config key
2026-10-30 04:09:49 +07:00
BFlat a0bec0905c Merge pull request #2595 from zitann2020/text/keep-empty-layer
fix(text): keep an empty Type-tool layer, as AE does
2026-10-30 04:09:42 +07:00
BFlat f87963d3fa Merge pull request #2583 from zitann2020/i18n/ja-generate-category
i18n(ja): the Generate effect category is 描画
2026-10-30 04:09:35 +07:00
BFlat 95aa34c247 Merge pull request #2539 from nanox333/fix/ease-preset-linear
Ease Presets: restore Linear interpolation and diamond keyframes
2026-10-30 04:09:28 +07:00
BFlat 69f53d8daa Merge pull request #2528 from nanox333/fix/native-text-undo-labels
Native Edit menu: use text-field Undo and Redo labels while typing
2026-10-30 04:09:18 +07:00
BFlat 826a30cdb2 Merge pull request #2426 from jerome25000/fix/2201-mask-free-transform-undo
Fix #2201: one undo reverts a whole mask free-transform drag
2026-10-30 04:09:12 +07:00
BFlat 1cb8c40def Merge pull request #2400 from vangel76/av1enc-quant-tables
av1enc: truncate instead of floor, log2 lookup table, skip division in the dead zone
2026-10-30 04:09:06 +07:00
BFlat 19d75179f9 Merge pull request #2250 from slager2/fix/2172-animation-browse-presets
Fix Animation > Browse Presets command
2026-10-30 04:08:59 +07:00
BFlat 3b300b4af1 Merge pull request #1820 from kk376/fix/png-frame-alpha-preservation
fix(engine): preserve alpha channel when saving still PNG frames
2026-10-30 04:08:53 +07:00
BFlat b614693b51 Merge pull request #1654 from elZanco/tools-double-click-create
UI: double-clicking a creation tool in the Tools bar makes an instance (#1072)
2026-10-30 04:08:44 +07:00
BFlat b416feb00d Merge pull request #1737 from elZanco/fix/trim-out-keeps-playhead-frame
Timeline: trimming the Out point to the playhead keeps its frame visible
2026-10-30 04:08:36 +07:00
BFlat ee8adf97c5 Merge pull request #1655 from elZanco/dev-line-tables-only
build: add an optional dev-full profile with full debug info
2026-10-30 04:08:25 +07:00
BFlat 7043fde70a Merge pull request #1314 from tylerjenningsw/fix/expression-value-color
UI: colour expression-driven numeric values consistently (refs #1072)
2026-10-30 04:08:14 +07:00
BFlat 686da9f7eb Merge pull request #1291 from tylerjenningsw/enhance/batch-parent-matte
Timeline: parent and matte selected layers together (#1260)
2026-10-30 04:08:08 +07:00
BFlat 052cd1f89c Merge pull request #1121 from pravdomil/claude/ram-preview-prefetch-bug-873f91
#595: RAM preview no longer stalls on a gap right after the playhead
2026-10-30 04:08:00 +07:00
BFlat bcbd6db402 Merge pull request #1100 from pravdomil/claude/compositing-buttons-positioning-b52693
UI: Composition Settings keeps Cancel and OK in place between tabs
2026-10-30 04:07:53 +07:00
BFlat 43a5b6ef7a Merge pull request #1036 from pravdomil/claude/trackpad-gestures-viewer-e43bc3
Viewer trackpad gestures: two-finger scroll pans, pinch zooms
2026-10-30 04:07:45 +07:00
BFlat 365e4dd4ab Merge pull request #822 from pravdomil/claude/remove-panel-title-underline-9dd90c
UI: open padlock on an unlocked viewer lock; inactive comp tabs show their × on hover
2026-10-30 04:07:37 +07:00
bflatasticandClaude Opus 5.5 4c787734fd Tests: QA scenarios ask for image sequences explicitly (#2018)
Since #2604 a picked numbered still imports as itself unless the import
asks for a sequence, as in After Effects. The compositing and tracking QA
scenarios import a PNG run, so they pass `sequence: true`; docs/agents.md
describes the new default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 04:04:04 +07:00
midasmatterhorn 3217320c1c export: the yuv420 fast path checks the effective scale too 2026-10-29 23:48:55 +03:00
midasmatterhorn 7216e0eb6a Merge remote-tracking branch 'upstream/main' into fix-1568 2026-10-29 23:42:14 +03:00
bflatasticandClaude Opus 5.5 054d884cdf Templates: rustfmt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:41:14 +07:00
bflatasticandClaude Opus 5.5 bb7fda41bb Text tests: drop the tracking test #1822 already landed on main
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:40:17 +07:00
bflatasticandClaude Opus 5.5 aa97fcbee8 xtask tests: the ALSA probe test runs on Linux only, where the stage does
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:40:14 +07:00
bflatasticandClaude Opus 5.5 31a2716a19 Templates: packages keep indented project JSON, as the docs say; only Save Compact applies
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:40:12 +07:00
bflatastic 1b8477c5d1 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 03:39:46 +07:00
bflatastic 16307e270e Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 03:39:44 +07:00
bflatastic bcf2d2b7e5 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 03:39:42 +07:00
BFlat fbd7bcd957 Merge pull request #2608 from storytold/fix/2141-header-sized-allocations
Media: header-sized EXR windows and audio sample rates are bounded (#2141)
2026-10-30 03:36:36 +07:00
bflatasticandClaude Opus 5.5 4f20c31c37 Media: header-sized EXR windows and audio sample rates are bounded (#2141)
An EXR's display window sizes a plane per channel, so 60000² over a 1×1 data window
was a multi-gigabyte allocation per channel; past 16384² (the vector footage limit)
the file is refused. An audio header's sample rate scales the samples read, so
0xFFFFFFFF Hz made one conform chunk about 47 GB; rates outside 1–768 kHz are an
error, and the audio reads as silence as for any unreadable source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:36:06 +07:00
BFlat 77de46a490 Merge pull request #2607 from storytold/fix/2134-special-files
Footage reads refuse anything that isn't a regular file (#2134)
2026-10-30 03:34:07 +07:00
bflatasticandClaude Opus 5.5 2510e17421 Footage reads refuse anything that isn't a regular file (#2134)
A project can name /dev/zero, a FIFO or a folder as footage; reading those whole
never ended (or ran out of memory). The media layer's whole-file reads (probe,
pool, model side files) and the engine's FsServices::read_file now open the file,
refuse a non-regular one, and reserve its length fallibly, so a sparse file that
claims more than memory is an error too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:33:47 +07:00
BFlat c516641001 Merge pull request #2606 from storytold/fix/2136-vector-footage-budget
Media: vector footage past 16384×16384 is an error, not an abort (#2136)
2026-10-30 03:19:57 +07:00
bflatasticandClaude Opus 5.5 592b96ed2e Media: vector footage past 16384×16384 is an error, not an abort (#2136)
An SVG or PDF declaring up to 30000×30000 was drawn into one 14 GB image whose failed
allocation aborted the app. Decoding now refuses sizes past what Continuously Rasterize
draws (16384 a side, shared as MAX_VECTOR_SIDE) with an error naming the size.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:19:12 +07:00
BFlat d3c34b4efb Merge pull request #2605 from storytold/fix/1964-shift-vertex-drag
Viewer: Shift keeps a dragged mask or shape vertex to one axis (#1964)
2026-10-30 03:18:22 +07:00
BFlat 95964882bc Merge pull request #2604 from storytold/fix/2018-import-sequence-default
Import: a numbered still named without sequence imports as itself, as in After Effects (#2018)
2026-10-30 03:18:06 +07:00
bflatasticandClaude Opus 5.5 1549d63c66 Viewer: Shift keeps a dragged mask or shape vertex to one axis, as in After Effects (#1964)
Gesture::Vertices took the raw drag delta; it now goes through one_axis, as a
Shift-dragged layer's move does, before snapping.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:17:26 +07:00
bflatasticandClaude Opus 5.5 6b75033485 Import: a numbered still named without sequence imports as itself, as in After Effects (#2018)
file.import without the flag (scripts, agents, files opened from the command line,
the CLI's templates) turned `lockin_line1.png` into a one-frame image sequence.
ImportOptions.sequence defaults to false in After Effects, so picked and dropped files
now import as stills unless `sequence: true`; folders' numbered runs still import as
sequences, and the Import dialog's Sequence checkbox is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:17:09 +07:00
pravdomilandClaude Opus 5.5 b70d69fcb1 UI: an inactive comp tab shows its × on hover
The Timeline's comp tabs had a × on the shown comp only, so closing another
comp meant showing it first. A comp tab the Timeline does not show now shows
its × while the pointer is over it, and clicking it closes that comp without
showing it. Every comp tab keeps the ×'s room, so a tab keeps its width when
it is shown or hovered. Automation: `panel.tab.Timeline.<comp>.close` for
each comp's ×; `panel.tab.Timeline.close` stays for the shown comp's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 20:41:46 +01:00
vangel76andClaude Sonnet 5.5 06d5a6fc80 Merge upstream/main into camtrack-matrix-free-schur
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-29 20:32:17 +01:00
vangel76 88c02a953e Merge remote-tracking branch 'upstream/main' into q2400-merge
# Conflicts:
#	crates/av1enc/src/decide.rs
2026-10-29 20:32:16 +01:00
vangel76andClaude Sonnet 5.5 99caf83c62 Merge upstream/main into rfx-text
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-29 20:31:32 +01:00
pravdomilandClaude Opus 5.5 caedb0727a Viewer trackpad gestures: two-finger scroll pans, pinch zooms
The Composition and Layer viewers took every scroll as a zoom, so a trackpad
could not pan. A trackpad's two-finger scroll now pans; a pinch,
Ctrl/Cmd+scroll, a mouse wheel and Alt + a trackpad scroll zoom around the
pointer.

Where the platform names the device (egui's MouseWheelSource, macOS), that
decides. Elsewhere browsers and some high-resolution wheels report a mouse
wheel in points, as a trackpad does, so the unit alone doesn't decide. A
scroll in points pans only once it has shown it is a trackpad: a touch phase,
movement on both axes at once, or a pinch. That holds until a wheel scrolls
in lines. Until then the vertical part zooms and the horizontal part pans.

ui.scroll gains unit (point|line), source (wheel|trackpad) and pinch so
agents can drive both gestures.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 20:21:10 +01:00