Commit Graph
3394 Commits
Author SHA1 Message Date
tylerjenningsw 852f98d6a5 Merge enhance/filmcraft-avi-backend into enhance/avi-import
# Conflicts:
#	crates/export/tests/it/movie_bytes.rs
2026-10-29 18:58:57 -04:00
tylerjenningsw c9a91d9ddf Merge remote-tracking branch 'origin/main' into pr1736-avi-backend 2026-10-29 18:49:01 -04:00
tylerjenningsw aecdffecb0 Media: read the LATM configuration only when FilmCraft plays that MPEG stream, not an ADTS one before it (#1701) 2026-10-29 18:44:34 -04:00
tylerjenningsw 800b555e51 Media: read the AAC configuration of the MP4 or Matroska track FilmCraft plays, not an empty one before it (#1701) 2026-10-29 18:44:05 -04:00
BFlat 77bea50f0b Merge pull request #2617 from storytold/docs/2565-readme-effect-count
README: 308 effects, and a test keeps the count current (#2565)
2026-10-30 05:42:00 +07:00
BFlat 87767b1252 Merge pull request #2616 from storytold/fix/999-viewer-edge-pan
Viewer: a mask vertex held at the panel edge pans the view (#999)
2026-10-30 05:41:55 +07:00
BFlat d766467000 Merge pull request #2612 from storytold/fix/2210-timeline-group-drag
Timeline: drag effects, masks and shape items to reorder them (#2210)
2026-10-30 05:41:49 +07:00
BFlat b724eb6842 Merge pull request #2611 from storytold/fix/2261-pad-budget
Effects: padded buffers stay within a pixel budget (#2261)
2026-10-30 05:41:43 +07:00
BFlat cdc5fddaff Merge pull request #2610 from storytold/fix/text-line-join
Text: stroke Line Join — Miter, Round or Bevel (#2077)
2026-10-30 05:41:27 +07:00
tylerjenningsw 4daff9a74a Export tests: say why the H.264 pin moved with FilmCraft 09aaf9b (#1701) 2026-10-29 18:20:09 -04:00
tylerjenningsw 799303ad68 Media tests: read ffmpeg 4.2's PCE fixtures with their real channel count (#1701)
ffmpeg 4.2 writes 2 in the sample entry of an AAC PCE layout and FilmCraft
decodes as many channels as that names, so the 6.1 check now reads a copy
naming all seven instead of skipping. Configuration 12 moves to the
synthetic layout tests.
2026-10-29 18:20:09 -04:00
tylerjenningsw ec86f24afe Media tests: every AAC layout mixes by speaker in MP4, Matroska and ADTS (#1701)
Tones encoded with FilmCraft's AAC encoder, with the configuration rewritten
to 11, 12 or ffmpeg's 6.1 PCE where the coded elements fit it, so nothing
depends on ffmpeg or skips. Expected gains come from each channel's speaker.
2026-10-29 18:20:09 -04:00
tylerjenningsw e675df7cab Media: downmix AAC by where each decoded channel plays (#1701)
The gains of an AAC source now come from the configuration FilmCraft decodes
it with, read from MP4/MOV (esds), Matroska (CodecPrivate) and LATM in MPEG
TS/PS (its first StreamMuxConfig). Channel configurations 3 to 6, 11 and 12
arrive reordered to WAVE order, 4 as L R C Cs, 7 in element order. A program
config element goes by its element positions, except the six structures in
which ffmpeg's encoder fills its own channel order across them (an LFE in a
side SCE, a back centre in a side pair), recognised by its "Lavc" comment.
ADTS can only signal configurations 1 to 7 that FilmCraft decodes, which the
channel count tells apart. A decode of fewer channels than the layout keeps
its first ones (7 of configuration 7's 8 in MPEG-TS LATM).
2026-10-29 18:20:08 -04:00
bflatastic 9437652b8f Merge branch 'fix/2261-pad-budget' of https://github.com/storytold/effectcraft into fix/2261-pad-budget 2026-10-30 05:18:14 +07:00
bflatastic 2e9542dada Merge remote-tracking branch 'origin/main' into fix/2261-pad-budget
# Conflicts:
#	crates/effects/src/lib.rs
2026-10-30 05:17:57 +07:00
bflatasticandClaude Opus 5.5 f5363e9d39 README: 308 effects, and a test keeps the count current (#2565)
The README quoted 306 effects in three places while the registry (and the
generated docs/effects.md) had 307, now 308. A catalog test checks every
effect count the README gives against the registry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 05:16:23 +07:00
bflatasticandClaude Opus 5.5 e2cf4477e7 Viewer: a mask vertex held at the panel edge pans the view (#999)
Dragging a mask or shape vertex, a tangent or a Pen point against the
edge of the Composition panel now pans the view toward that edge, faster
the further out the pointer is, and the point keeps moving with it, so
zoomed-in rotoscoping no longer stops at the panel edge (as in After
Effects).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 05:15:35 +07:00
BFlat f20dfcbda2 Merge pull request #2263 from SusieeTheLinuxUser/fix/2227-clear-text-edit-standdown
Edit: an open text edit stands down the Project-panel Clear redirect (#2227)
2026-10-30 05:11:05 +07:00
BFlat c35fe911e2 Merge pull request #2266 from SusieeTheLinuxUser/fix/2226-duplicate-ends-text-edit
Edit: duplicating during a text edit ends the edit (#2226)
2026-10-30 05:11:00 +07:00
BFlat e5f2b5b1a9 Merge pull request #2262 from SusieeTheLinuxUser/fix/2198-fit-to-comp-shapes
Transform: Fit to Comp sizes shape and text layers by their painted bounds (#2198)
2026-10-30 05:10:54 +07:00
bflatastic ee01d7d4f6 Merge main; keep the batch-tested versions of crates/engine/src/cmd/layer/transform.rs 2026-10-30 05:10:42 +07:00
bflatastic fdb0e5d3c9 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 05:10:41 +07:00
BFlat faab5b1c81 Merge pull request #2039 from midasdf/jp/cjk-composition-rendering
Text: Chinese Han text uses the installed Chinese face (#453)
2026-10-30 05:10:35 +07:00
BFlat 5a1d909496 Merge pull request #2109 from gmrmad1/fix/2072-variable-font-tests
tests: count variable font named instances as styles (#2072)
2026-10-30 05:10:30 +07:00
BFlat 376f303d8f Merge pull request #2107 from gmrmad1/fix/2073-replace-footage-kind
engine: Replace Footage keeps a still a still (#2073)
2026-10-30 05:10:25 +07:00
BFlat 6a239ddbee Merge pull request #2532 from klosixgaming-arch/fix/1577-roi-crop-valid-endpoints
project: keep valid ROI crops on wide frames while still refusing overflow (#1577)
2026-10-30 05:10:19 +07:00
bflatastic f2773f68ac Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	crates/project/src/render_queue.rs
2026-10-30 05:10:05 +07:00
BFlat 90fbd6609d Merge pull request #2270 from mypenc/altfix
Viewer: Alt/Option-drop of a Project item replaces the layer under the pointer
2026-10-30 05:09:55 +07:00
BFlat 07d1de1764 Merge pull request #2534 from klosixgaming-arch/fix/2022-render-banding
export: dither 16/32 bpc renders on the way to 8 bits, and let Render Settings Color Depth set the render's depth (#2022)
2026-10-30 05:09:48 +07:00
BFlat e28612dedd Merge pull request #2574 from roadhong/fix/audio-level-keyframes-per-sample
Audio: keyframed Audio Levels and Stereo Mixer levels ramp within a mix block
2026-10-30 05:09:38 +07:00
BFlat 8bbc7904b1 Merge pull request #2575 from storytold/dependabot/github_actions/actions-db49d30d5d
ci(deps): bump storytold/craft-common-actions/.github/workflows/windows-arm64.yml from 8bb4e5ab95443171104ad88113fe1ef9b0e5ce3f to fa5ef18780cf5e7d5d3b8de068de56cffc83cac5 in the actions group
2026-10-30 05:09:31 +07:00
BFlat 6e10dc6ccf Merge pull request #2569 from Zaxaerith/docs/2564-clarify-command-dispatch
docs: clarify engine and UI-only command access (#2564)
2026-10-30 05:09:22 +07:00
BFlat e2128a6743 Merge pull request #2118 from ChristopherLinnett/fix/issue-2092-camera-focus-crash
fix: bound Classic 3D depth-of-field blur and reject non-finite focus distances (#2092)
2026-10-30 05:09:17 +07:00
BFlat 11ad7cf5ce Merge pull request #2427 from FeiLiuEM/i18n/preview-panel
i18n: the Preview panel's labels reach the catalog
2026-10-30 05:09:12 +07:00
bflatastic e37df317af Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	crates/ui-egui/src/i18n/ui.rs
2026-10-30 05:08:59 +07:00
BFlat 218b8e34ae Merge pull request #1514 from FeiLiuEM/i18n/1451-tool-names
i18n: the 31 tool names are translated (zh-hans, zh-hant)
2026-10-30 05:08:49 +07:00
BFlat 5658d68e69 Merge pull request #2410 from Minher0/feat/2100-instance3d-layer-create
layer.create: implement the instance3d op - a 2D copy of a 3D model layer (#2100)
2026-10-30 05:08:44 +07:00
bflatastic de40efed7c Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 05:08:34 +07:00
BFlat db5627a601 Merge pull request #1951 from ki2pixel/fix/1747-collapse-essential-overrides
Fix #1747: keep collapsed precomp instance overrides unclipped
2026-10-30 05:08:28 +07:00
bflatastic 971e75d06a Merge main; keep the batch-tested versions of crates/engine/src/tests/rig3d.rs 2026-10-30 05:08:15 +07:00
bflatastic 57b76bcc88 Merge remote-tracking branch 'origin/main' into HEAD 2026-10-30 05:08:13 +07:00
BFlat 5874304437 Merge pull request #1887 from ki2pixel/expressions-cubic-bezier
Expressions: cubic-Bezier easing helper (bezier(...)) (#1884)
2026-10-30 05:08:06 +07:00
BFlat dac865f134 Merge pull request #1423 from nanox333/fix/1417-wav-markers
#1417: WAV markers show on the audio layer
2026-10-30 05:08:00 +07:00
BFlat 5ba07d18c4 Merge pull request #1165 from nanox333/fix/1010-orientation-followup
Parented cameras and lights keep their static and keyed Orientation (refs #1010)
2026-10-30 05:07:53 +07:00
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
tylerjenningsw 71920d995c Merge remote-tracking branch 'origin/main' into pr1736-avi-backend 2026-10-29 18:07:39 -04:00
tylerjenningsw 393a7aa565 Export tests: pin the H.264 bytes FilmCraft 09aaf9b writes (#1701)
The encoder's first-frame user_data_unregistered SEI now lists its settings
("... - options: rc=vbr bitrate=10000 ... scenecut=1", 211 bytes where
"filmcraft-h264enc 0.1.1 - clean-room H.264 encoder" took 50): +161 bytes.
The same build gives (104322, 11051847956767423392), the pin Linux CI took on
a base before the 19-byte nclx colr box, when that box is left out, so the
bytes match across platforms.
2026-10-29 17:57:08 -04:00
tylerjenningsw 8bb5dbb81e Media: downmix AAC in the order its channel configuration decodes in (#1701)
FilmCraft reorders AAC configurations 3 to 6, 11 and 12 to WAVE/SMPTE order
and leaves configuration 7 and program config elements as coded, so the
channel count alone can't say which order arrives: ffmpeg writes 7.1 as
configuration 7 (C L R first) and 6.1 as a PCE it fills in its own order
(L R C LFE Cs Ls Rs), while FilmCraft's encoder writes a centre-first PCE.
The order is now read from an MP4/MOV's AudioSpecificConfig when the source
opens; other containers keep a channel-count guess.

The ffmpeg oracle test gains configuration 12 (ffmpeg's 7.1 relabelled) and
skips PCE files ffmpeg 4.2 marks as stereo, which FilmCraft reads as two
channels.
2026-10-29 17:52:57 -04:00
bflatasticandClaude Opus 5.5 8b846ffdf1 Render cache: the soloed-model key reads main's two-argument reads_other_times
#2410's dependency walk for a soloed 3D model was written before
reads_other_times took the effect count; it asks about all effects (None),
as the other walks do.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 04:48:42 +07:00