What's Changed
- Keep draft-decoder counter assertions in one test by @lisn0 in #3286
- Report parameter and accepted value from effects.setParam by @lisn0 in #3281
- Frame workers: a replaced frame server's workers end and release its cache and media pool by @dotCooCoo in #3244
- codecs: the rayon deadlock test allows 120 s between two answered frame requests by @dotCooCoo in #3241
- UI tests: wait up to 120 seconds for background work instead of a fixed number of frames by @dotCooCoo in #3239
- Enable only the Alt-selected side of a linked clip by @Silvertree2010 in #3235
- Fit typewriter transition grid and caret to the layer's content by @Silvertree2010 in #3229
- i18n(fr): translate the 42 strings French still lacked by @Atalantis in #3226
- Trim Mode: select and edit linked audio with picture (#3085) by @thecyberbutler in #3224
- frame: 10-bit Y'CbCr normalisation through per-code tables by @zsoli69 in #3216
- text, ui: font coverage tests probe faces without keeping every font file loaded by @zsoli69 in #3252
- Lift and Extract put the removed range on the clipboard by @EduardoAndradeMachado in #3211
- Program: drag a marquee or Shift-click to select several mask vertices, and move them together by @marcoarnulfo in #3209
- Stop reading on-the-hour times with a spurious "zero" by @Silvertree2010 in #3190
- captions: bound MCC export work to scheduled data (#2811) by @thecyberbutler in #3307
- Alt-drag of a clip edge trims only that side of a link by @Silvertree2010 in #3301
- Merge 15 open PRs verified on a packaged build (tested batch) by @aiongg in #3288
- #1545: effects.apply answers with the applied instances (clip, index, effect) by @00xJS in #1841
- PNG Sequence writes RGB files when Include Alpha Channel is off by @marcoarnulfo in #1869
- #1216: a cap on the CPU threads an export uses (maxThreads) by @Guilhermeb-Ferrarezi in #1870
- edit: reject repeated clip identities in move plans by @earlvanze in #1915
- fix(media): time Counting Leader beeps by source frame rate by @nuclearspike in #1950
- fix(engine): Close Gap with no gap selected closes the sequence's gaps (#1986) by @ssandweiss in #2008
- fix(engine): Unlink a selection that also holds unlinked clips (#1103) by @ssandweiss in #2011
- fix(interchange): OTIO export stops writing nested-sequence copies past a limit by @Wbunker in #2287
- #2343: saving a project creates its previews folder only when there are previews by @Felix-Helleckes in #2387
- Fix TTML/DFXP export overflow for cue times near i64::MAX by @Silvertree2010 in #2394
- #2340: uncompressed QuickTime video (raw 24-bit RGB, 2vuy, v210) decodes by @Felix-Helleckes in #2415
- Keep '#' inside a quoted .cube TITLE when parsing by @Silvertree2010 in #2427
- fix(engine): clip.audioChannels no longer resets channels on a channels-less call (#1845) by @MichaelMuClaude in #2483
- Centre Transform's auto points in the clip's picture on apply and reset (#2588) by @MarekSpodBiedry in #2597
- Stop writing an empty ref for FCPXML titles and adjustment layers (#2638) by @MarekSpodBiedry in #2653
- docs: add structured issue intake and security reporting guidance by @channelramble in #2054
- Migrate FilmCraft to egui 0.37 with current editing changes preserved by @skylartaylor in #3249
- security(media): bound generator frames, imported audio dimensions, and render images by @dylanmtaylor in #3080
- feat: startup update prompt modal and direct self-updating by @dylanmtaylor in #3298
- security(av1): reject non-increasing grain points by @earlvanze in #2888
- fix(av1): drop the duplicate strictly_increasing and its test by @dylanmtaylor in #3321
- build: pin craft-update to craft-libs main (495e597) by @dylanmtaylor in #3322
- Linux: default to XWayland for file drag-and-drop on Wayland desktops by @dylanmtaylor in #634
- chore(deps): bump safe dependency updates by @skylartaylor in #3325
- chore: resolve SonarCloud maintainability issues by @dylanmtaylor in #3329
- refactor: use method paths instead of closures (S1612) by @dylanmtaylor in #3335
- refactor: clear S9045 and S107 new-code issues by @dylanmtaylor in #3336
- test: split fuzz sweeps into helpers (S3776) by @dylanmtaylor in #3337
- Panels: move onto craft-ui's shared docking by @aiongg in #2549
- Text tool: the IME preedit and its active clause show on the video, through craft-ui's composer by @aiongg in #3340
- ci: require nextest 0.9.150 by @skylartaylor in #3412
- refactor: shared module layout (craft-contrib#20) by @aiongg in #3410
- refactor(ui): use craft-ui's ComboBox for every dropdown by @aiongg in #3445
- Speed up H.264 export by a fifth with byte-identical output by @Silvertree2010 in #3456
- Captions: the font picker test allows glyphs the interface fonts lack by @dotCooCoo in #3331
- Menus: the hover test draws with the app's fonts, so it passes on macOS by @dotCooCoo in #3345
- Audio Track Mixer: mixer.meterInputOnly refuses parameters that are not an object by @dotCooCoo in #3349
- Windows installation policy: FilmCraft by @Jeremy8776 in #3419
- Enforce Rust coding standards via Clippy by @dylanmtaylor in #3426
New Contributors
- @lisn0 made their first contribution in #3286
- @Atalantis made their first contribution in #3226
- @zsoli69 made their first contribution in #3216
- @EduardoAndradeMachado made their first contribution in #3211
- @channelramble made their first contribution in #2054
- @Jeremy8776 made their first contribution in #3419
Full Changelog: v0.13.0...v0.14.0