What's Changed
- CLI: a closed stderr no longer panics with exit 101 (#537) by @MarekSpodBiedry in #567
- CLI export: forward a lone --start or --end so the engine reports the missing bound (#538) by @MarekSpodBiedry in #568
- Roll: reversed clips take the cut from the opposite source end (#526) by @MarekSpodBiedry in #558
- fix(edit): reversed trims use the media handle their playback direction consumes (#527) by @MarekSpodBiedry in #559
- Trim: extend each selected edit point to the playhead by its own distance (#528) by @MarekSpodBiedry in #560
- Linked slip: clamp to one shared delta so picture and sound stay aligned (#529) by @MarekSpodBiedry in #561
- Frame-held Regular In trim stops at the previous clip instead of overlapping it (#530) by @MarekSpodBiedry in #562
- Export settings: accept camelCase for nested snake_case fields (#531) by @MarekSpodBiedry in #563
- Queue move: saturate a huge relative offset instead of overflowing (#532) by @MarekSpodBiedry in #564
- Forced relink and Replace Footage keep the new file's properties (#534) by @MarekSpodBiedry in #565
- Project Manager: keep every parent of a nested subclip when collecting (#535) by @MarekSpodBiedry in #566
- Parametric Equalizer: use the full EQ so master gain, bands 1/2/4/5 and pass filters reach the audio (#540) by @MarekSpodBiedry in #570
- Audio Gain: measure the peak of the audio stream each clip plays (#541) by @MarekSpodBiedry in #571
- masks.addVertex: clamp oversized index on animated paths, reject empty paths instead of panicking (#543) by @MarekSpodBiedry in #572
- MCC export: end each ancillary packet with its checksum byte so FFmpeg reads the captions (#544) by @MarekSpodBiedry in #573
- Text panel: word navigation ignores a selection the transcript no longer has (#546) by @MarekSpodBiedry in #574
- Slide: keep reversed neighbours' source ranges correct (#548) by @MarekSpodBiedry in #575
- #323: AAF files open in readers that load the meta-dictionary by @txiki739 in #419
- Keep selected audio streams distinct in AAF/OMF exports by @sanyamsingh001 in #467
- interchange: fix file:// URLs for Windows verbatim paths (FCP7 XML media offline in Premiere) by @digitaldecaycreations-lgtm in #497
- Export sequence markers to a spreadsheet-safe CSV by @vbasky in #454
- #447: HybridDecoder fallback replay goes on past samples the software decoder rejects by @MrCloudy2 in #453
- fix(export): Selection as Project exports a selected bin's contents (#536) by @maxm11 in #557
- Issue #545: captions.list with a track that names no caption track is an error by @LloydNicholson in #556
- MCP render_frame: max_side 0 means no limit (#459) by @MarekSpodBiedry in #464
- Keep frame navigation precise and time arithmetic bounded by @sanyamsingh001 in #494
- #219: right-clicking a cut opens the edit point menu by @MrCloudy2 in #257
- Audio plays while scrubbing (#211) by @carlitosteso3 in #275
- Audio of video clips: volume in Effect Controls + draggable volume line (#223) by @ossini in #472
- Preview transition placement while dragging onto timeline clips (#482) by @DWAA1660 in #487
- timeline, monitors: drag the current-time timecode to scrub, click to type a time by @ReReddo in #576
- #484: Enable flips each selected clip on its own by @liangforstudy in #511
- Fill graphic shapes and text with a linear gradient by @vbasky in #514
- ui: add an eyedropper to colour parameters (Ultra Key, Color Key...) by @Guilhermeb-Ferrarezi in #518
- graphics: shape commands document
seconds/track/time, and placement errors name the command that asked by @maccagnit in #521 - Project files: each sequence reopens with its playhead where it was left by @liangforstudy in #506
- Implement scrollable areas for media dialog by @chuygarcia92 in #516
- i18n: the tl! source scan in tests passes on CRLF checkouts by @ReReddo in #488
- Text panel: tab widths follow the drawn label (Japanese tabs overlapped) by @haranishi in #450
- i18n: Japanese for the whole interface by @haranishi in #449
- Fix Light theme inconsistencies by @adurr21 in #555
- #474: VA-API decoders share one display (no 0.3 s open / 70 ms close per decoder on NVIDIA) by @MrCloudy2 in #475
- M-HW: NVENC takes the export's RGBA and converts it on the GPU (#30) by @MasakatsuFunaki in #486
- Issue #552: MP4 and Matroska colour from the bitstream when the container has none by @LloydNicholson in #446
- #346: the from-source Flatpak includes the CLI and MCP server by @txiki739 in #420
- chore: bump github actions to fix Node 20 deprecation warnings by @dylanmtaylor in #501
- docs: register the MCP server from an installed release by @sawizzle in #504
- Windows: skip AV1 oracle tests when ffmpeg lacks libsvtav1/libdav1d by @Tom1tk in #427
- CLI render: report the real reason for an invalid scale instead of no sequence (#539) by @MarekSpodBiedry in #569
- appearance: View > Appearance names the middle theme "Dark", as Settings does by @ReReddo in #489
- i18n: add Ukrainian (uk) interface translation by @dmatviichuk in #407
- #288: MP4 / MOV pictures are cropped as the file says (H.264 / HEVC cropping, clean aperture) by @MrCloudy2 in #492
- Issue #551: Anamorphic media: honour pixel aspect ratio in placement, monitors and New Sequence From Clip by @LloydNicholson in #445
- Linux: NVDEC hardware decoding for H.264 and HEVC by @SilentYeti in #549
- Add Simplified Chinese (zh) translation by @hadmark in #550
- Standardise system appearance modes and FilmCraft theme previews by @luniiya in #505
- FCP7 XML: keep the source channel of split mono audio tracks (#463) by @MarekSpodBiedry in #465
- fix(mcp): media_import schema mirrors file.import (#499) by @mjohnson7cd in #509
- Start scalar graph drags at the pointer press position by @sanyamsingh001 in #470
- Essential Graphics: Make a property drag one undo step by @gyroninja in #522
- clip.link: pair video clips with overlapping audio clips (#507) by @Hathor875 in #515
- effects.setParam: choices by name, a
keyframeoption, and the keyframe count in the result by @maccagnit in #520 - #430, #224: select, edit, delete and resize transitions by @swillunderscore in #503
- project: share sequences across edit snapshots by @David-T-Campos in #434
- [feat] files dropped onto the Timeline are placed there, not just imported. Supports preview too by @mitchmckinstry in #517
- #262: file dialogs list extensions in any capitalisation on Linux by @txiki739 in #390
- cli: make --help print usage successfully by @jnohclee-rgb in #357
- WINCI: Repair HEVC timing and CRLF translation validation by @cshapiro in #442
- Playback: fall back to a working output device when the ALSA default cannot be opened by @ahmedhosnypro in #254
- linux: install a dev desktop entry so the taskbar shows the app icon by @ahmedhosnypro in #246
- Text to Speech narrations: panel, natural voices (Kokoro-82M in pure Rust), click-to-edit by @mutombopr in #278
- GPU export rendering (on by default) and Vignette, Video Limiter, Lumetri Color on the GPU compositor by @mutombopr in #421
- Progress docs per the craftrules standard; re-measure against Premiere Pro 26.5.2 by @echelon in #700
- Hardening: an AAF weak-reference collection with a zero key size can't exhaust memory by @haranishi in #584
- CFB: bound the DIFAT and FAT chain walks by the file's own size by @haranishi in #585
- fix(i18n): prefer Japanese system glyphs over Chinese fallback (#547) by @Ni-zav in #589
- Keyboard slip: clamp linked clips by one shared delta (#529) by @MarekSpodBiedry in #594
- Reject unknown mcp options instead of silently ignoring them (#476) by @MarekSpodBiedry in #595
- Audio Clip Mixer: click the dB readout to type a volume (#481) by @MarekSpodBiedry in #596
- #402: WebM transparency (VP9 alpha in BlockAdditions) by @liangforstudy in #597
- Trim Monitor: Make trim drags no longer deadlock by @gyroninja in #599
- Export: CRF (constant quality) for H.264 by @JordyUSA in #600
- Export: never crash on WAV/AIFF over 4 GiB; stream PCM to disk by @JordyUSA in #606
- project panel: drag in empty space to marquee-select, in List, Icon and Freeform views by @ReReddo in #607
- timeline, project panel: paste images and copied files from the system clipboard by @ReReddo in #615
- Let a bin be cleared from its context menu, the trash button, the panel menu and Delete (#587) by @MarekSpodBiedry in #622
- Space out browser downloads so image-sequence exports are not dropped (#378) by @MarekSpodBiedry in #624
- ui: reject software rasterizers for GPU compositing and say so by @4papuce in #633
- MP4: read the start timecode from a Sony rtmd track when there is no tmcd by @maxm11 in #644
- perf(export): index the bin tree once in closure() (#536 follow-up) by @maxm11 in #646
- #456: Select All in the Project panel takes only the shown bin by @vangel76 in #652
- #412: select a single keyframe in Effect Controls by @vangel76 in #656
- #480: exports no longer stop for good when a clip's decoding uses rayon (rotated iPhone HEVC clips) by @MrCloudy2 in #662
- #461: interchange import links media through the streaming reader by @vangel76 in #664
- #333: Fade In and Fade Out presets add up on one clip by @vangel76 in #665
- #457: Settings > Appearance > UI Scale by @vangel76 in #672
- platform: look up kVTCompressionPropertyKey_ConstantBitRate at run time by @abdelkabirouadoukou in #673
- Pass Hard Limiter look-ahead into the DSP limiter by @vbasky in #674
- Apply Ultra Key Setting as a parameter preset by @vbasky in #675
- Add file.import replace mode for empty-project round-trips by @vbasky in #676
- Apply Transform shutter angle when the override is on by @vbasky in #679
- #239: Position keyframes get the value and velocity graphs by @vangel76 in #684
- Preserve individual linked-clip selections when deleting media by @vbasky in #685
- Keep Link Media actions accessible for large lists and long paths by @vbasky in #686
- fix(monitor): make Button Editor customize transport controls by @Ni-zav in #688
- feat(timeline): rename video and audio tracks from their headers by @Ni-zav in #689
- #680: Shift+Delete ripple deletes with the Timeline focused by @vangel76 in #690
- #279: WAV opens in place and reads only the samples asked for by @vangel76 in #691
- #659: macOS app may use the microphone for voice-over by @vangel76 in #692
- #67: media files share a bounded pool of open descriptors by @vangel76 in #693
- #614: Head, Head and Tail and Continuous video thumbnails in the Timeline by @vangel76 in #698
- timeline, text editing, program monitor: clicking empty space deselects by @ReReddo in #699
- #313: J/K/L shuttle the Source monitor both ways at up to 8x by @vangel76 in #701
- #411: importing a folder keeps its structure as bins by @vangel76 in #702
- timeline: lines between the tracks, a short playhead head by @ReReddo in #703
- fix(captions): reject overflowing TTML times and round extreme clocks safely by @Ni-zav in #705
- fix(captions): preserve literal angle brackets in EBU STL export by @Ni-zav in #706
- Captions: render the track font and add a font picker by @impostazioni in #708
- settings: the hex colour field takes typing by @ReReddo in #722
- Captions: delete caption tracks from the timeline and Delete Tracks dialog by @impostazioni in #723
- fix(tts-text): preserve amounts and numeric units in narration by @Ni-zav in #725
- fix(edl): retain named audio crossfades when importing EDL by @Ni-zav in #726
- #709: --gpu-rendering takes a space-separated value by @vangel76 in #730
- #714: an MP4 without an edit list starts at its first picture by @vangel76 in #732
- #721: 5.1 AAC imports decode in WAV/SMPTE channel order by @vangel76 in #733
- graphics: shape handles change the shape's Size, Shift keeps the ratio by @ReReddo in #737
- Fix silent WAV sample-rate substitution by @vbasky in #658
- fix(settings): mark inactive Timeline focus preference as unwired by @Ni-zav in #727
- #710: --version works after global options by @vangel76 in #735
- #591: named clips that cannot stand in for a selection say why by @vangel76 in #651
- #642: open Help/About links in the system browser on the desktop by @vangel76 in #657
- #653: a dragged trim edge stops at the end of the media by @vangel76 in #663
- #284: reset buttons keep keyframes; a reset button on every property by @vangel76 in #671
- effect controls: row lines, a draggable divider, scrolling anywhere, larger keyframes by @ReReddo in #681
- HW5: AV1 sequence headers compare by picture format, so SVT-AV1 files stay on hardware by @mutombopr in #738
- #712: keyboard Slide keeps linked picture and sound aligned at a neighbour limit by @vangel76 in #740
- #695: Timeline markers can be picked and cleared by @vangel76 in #741
- appearance: the Highlight Color drives the playhead, timecodes and focus by @ReReddo in #743
- #715: a Matroska remux that keeps its timestamps starts at its first picture by @vangel76 in #745
- #719: positive Roundness rounds the Lumetri vignette by @vangel76 in #747
- #456: a new bin asks for its name by @vangel76 in #749
- #620: Project Notes panel, saved in the project by @vangel76 in #750
- #456: a bin can be dragged into another bin and back out by @vangel76 in #751
- #227: Lumetri presets can be dragged onto a Timeline clip by @vangel76 in #753
- #483: media dropped past the last track goes on a new track by @vangel76 in #754
- #227: transitions travel with the clips they sit on when moved by @vangel76 in #755
- Project panel: double-click anywhere empty in Icon view opens Import by @JordyUSA in #636
- #374: trim preview keeps the waveform in place instead of squeezing it by @JordyUSA in #627
- Treat media extensions as case-insensitive on import by @vbasky in #677
- #342: ProRes 4444 and 4444 XQ export, with alpha by @vangel76 in #682
- #648, #668: select a gap in the Timeline and close it with Delete (Ripple Delete) by @ossini in #704
- i18n: add German (de) interface translation by @keller-lukas in #630
- feat: Add Russian (ru) localization by @ivandrozdov1505-coder in #610
- #374: a clip's fades follow its edges on a regular trim by @vangel76 in #756
- #228: Export Frame reports a frame still loading instead of saving it blank by @vangel76 in #757
- #266: quitting with unsaved changes asks to save first by @vangel76 in #758
- #284: panel menu Maximize Frame can be restored; an empty dock reopens panels by @vangel76 in #759
- GPU export: a frame planned as one CPU image skips the renderer pool (Auto was slower than Off) by @maccagnit in #760
- GPU export: a CLI built on its own exports on the CPU instead of failing by @maccagnit in #761
- #626: undecodable video shows the MEDIA UNREADABLE slate, not black by @vangel76 in #762
- #313: the Source monitor remembers its clips; Close and Close All by @vangel76 in #763
- program monitor: drag a rectangle's corners round with on-canvas corner handles by @ReReddo in #765
- #313: double-clicking a Timeline clip opens it in the Source monitor by @vangel76 in #767
- codecs: an open GOP's leading pictures decode from the GOP before, not as black frames by @alex-brazh in #772
- Media: Automatically refresh growing files works (and catches re-renders) by @KattKnight in #625
- HW6: AV1 export format, enabled where a hardware encoder registers one by @mutombopr in #739
- text: the CJK system-font search no longer keeps every probed font file in memory (#769) by @MarekSpodBiedry in #777
- Timeline: draw each audio track's own waveform, not track 1's (#770) by @MarekSpodBiedry in #778
- Linux: H.265 export through NVENC by @SilentYeti in #783
- #781: cargo xtask parity measures menu coverage by @vangel76 in #782
- #424: Render In to Out renders only the frames between In and Out by @vangel76 in #784
- #647: decode E-AC-3 (Dolby Digital Plus) audio by @vangel76 in #788
- #779: export JPEG, Targa and DPX image sequences by @vangel76 in #791
- #780: Optical Flow time interpolation synthesises motion-compensated frames by @vangel76 in #789
- Timeline: Option-drag copies clips instead of moving them by @impostazioni in #794
- #577: Effect Controls shows a selected transition's own timeline by @vangel76 in #795
- fix(menus): show configured label colors in Edit menu by @Ni-zav in #802
- fix(playback): keep audio during forward shuttle speeds (#771) by @Ni-zav in #803
- #498: French (fr) interface translation by @vangel76 in #804
- #800: MP2 audio in MP4 and MOV decodes instead of playing silent by @vangel76 in #808
- #805: Morph Cut morphs along optical flow instead of cross-dissolving by @vangel76 in #811
- #806: export OpenEXR image sequences by @vangel76 in #812
- Clear leftover item selection when making a new bin by @vbasky in #815
- monitors: the wheel zooms about the pointer, the middle button pans by @ReReddo in #824
- #813: masks round their corners (rounded rectangle masks) by @vangel76 in #818
- #821: import Targa and DPX stills and image sequences by @vangel76 in #826
- #814: AAC Audio export (audio-only .m4a, or ADTS .aac) by @vangel76 in #825
- Release prep: 0.6.0 and a Linux riscv64 release build by @echelon in #830
New Contributors
- @digitaldecaycreations-lgtm made their first contribution in #497
- @vbasky made their first contribution in #454
- @maxm11 made their first contribution in #557
- @LloydNicholson made their first contribution in #556
- @ossini made their first contribution in #472
- @ReReddo made their first contribution in #576
- @liangforstudy made their first contribution in #511
- @Guilhermeb-Ferrarezi made their first contribution in #518
- @maccagnit made their first contribution in #521
- @chuygarcia92 made their first contribution in #516
- @haranishi made their first contribution in #450
- @adurr21 made their first contribution in #555
- @MasakatsuFunaki made their first contribution in #486
- @dylanmtaylor made their first contribution in #501
- @sawizzle made their first contribution in #504
- @dmatviichuk made their first contribution in #407
- @SilentYeti made their first contribution in #549
- @hadmark made their first contribution in #550
- @luniiya made their first contribution in #505
- @gyroninja made their first contribution in #522
- @Hathor875 made their first contribution in #515
- @David-T-Campos made their first contribution in #434
- @mitchmckinstry made their first contribution in #517
- @jnohclee-rgb made their first contribution in #357
- @ahmedhosnypro made their first contribution in #254
- @mutombopr made their first contribution in #278
- @Ni-zav made their first contribution in #589
- @4papuce made their first contribution in #633
- @vangel76 made their first contribution in #652
- @abdelkabirouadoukou made their first contribution in #673
- @impostazioni made their first contribution in #708
- @keller-lukas made their first contribution in #630
- @ivandrozdov1505-coder made their first contribution in #610
- @alex-brazh made their first contribution in #772
- @KattKnight made their first contribution in #625
Full Changelog: v0.5.0...v0.6.0