github storytold/filmcraft v0.19.0
FilmCraft v0.19.0

2 hours ago

What's Changed

  • web: check MP4 sample extent before allocating its buffer by @dylanmtaylor in #4102
  • avi: hold child chunks to their container so lists cannot overlap by @dylanmtaylor in #4106
  • security(dnx): cap decoded frame memory and reject repeated scan line indices by @dylanmtaylor in #4101
  • security(apv): size the auxiliary alpha frame only after its tiles decode by @dylanmtaylor in #4109
  • web: load only a same-origin http(s) app in the WebCodecs read-error harness by @dylanmtaylor in #4103
  • captions: escape a TTML cue's unclosed '<' tail in one pass by @dylanmtaylor in #4105
  • interchange: AAF top-level composition carries the registered Usage_TopLevel (#3986) by @JonRC in #3987
  • Interchange export: saturate timecodes and PCM fields on hostile project values by @Lightningbulb2 in #4029
  • interchange: EDL clips named only by clip name are missing, not made offline (#3997) by @JonRC in #4000
  • interchange: EDL media relinked with Align Timecode lands on the file's own time (#3990) by @JonRC in #3996
  • interchange: an OTIO item at a sample rate no longer sets the sequence rate (#4111) by @JonRC in #4112
  • interchange: EDL and OMF export reports name the video tracks they leave out (#4132) by @JonRC in #4133
  • engine: AAF/OMF export takes bitDepth as "24" too, and refuses anything but 16 or 24 (#4019) by @JonRC in #4020
  • captions: TTML export writes the track language, import keeps it (#4025) by @JonRC in #4038
  • Reject '+'-signed audio channel numbers in EDL import by @Silvertree2010 in #3935
  • Only decode percent escapes made of hex digits in file URLs by @Silvertree2010 in #3936
  • Strip leading BOM in WebVTT parse even without a signature by @Silvertree2010 in #3961
  • Read TTS fractions with denominator 1 as "over one" by @Silvertree2010 in #3983
  • Fix per-character Stroke and Stroke 2 appearance controls by @wweimao in #3938
  • captions: SCC and MCC export name the characters they drop or replace (#4023) by @JonRC in #4036
  • i18n(ru): translate the 64 strings the missing-translations report listed (#1674) by @rahul05ranjan in #3960
  • i18n(zh-cn): translate the 41 strings the report listed as missing by @rahul05ranjan in #3964
  • codecs: an MP4 edit rounded to the movie timescale keeps the last frame by @Agapenordev in #3994
  • lumetri.presetThumbnails: write through the host and keep the grid to the presets by @Lightningbulb2 in #4030
  • Name Apple Intermediate Codec and show why a clip is unreadable (part of #3646) by @scks1 in #4010
  • cli: a missing project stops a save in place before it opens by @JonRC in #3946
  • Import by a relative path: '..' climbs out of the document folder, and media paths are resolved once (#3998, #4001) by @JonRC in #4004
  • essentialSound.set: ducking.against takes the type names setType takes by @JonRC in #4041
  • engine: the Metadata panel's Out Point is the last frame kept (#4114) by @JonRC in #4117
  • Image-sequence export reports the stills it wrote, not the path it was given by @JonRC in #4018
  • engine: timeline.move reads a time object and names an entry it cannot use (#4113) by @JonRC in #4116
  • #3948: Time interpolation applies when a clip's frame rate differs from the sequence's by @JonRC in #3949
  • #626: undecodable H.264 shows the unreadable slate at any slice QP, not black by @JonRC in #3959
  • media: say which colour values no tag gave (#4086) by @JonRC in #4089
  • fix(render): an opaque 8-bit still becomes the canvas, not a region over a zero-filled one by @JonRC in #4070
  • audio-dsp: the full-rate sync peak sets the polarity, not the coarse one (#4119) by @JonRC in #4120
  • gpu: export draws Push transitions on the GPU by @ivanao92 in #4122
  • fix(timeline): a marquee takes only the track rows its own pane shows (#2978) by @ivanao92 in #4118
  • fix(#3653): Timeline clicking it brings the Program monitor to the front of its group by @Kathir-D in #4012
  • fix(ui): Remove Attributes says that ticked attributes are removed (#3789) by @mpratsaki in #4003
  • fix(ui): shortcuts need exactly their modifiers by @texjer in #4016
  • gpu: the off-screen instance reads wgpu's flag variables (#4084) by @JonRC in #4087
  • fix(timeline): the Mix row's level sets the Mix fader (#3765) by @mpratsaki in #3954
  • macOS: keep AppKit's Touch Bar observers when AccessKit drops (no crash on quit) by @reedhewitt in #4002
  • dng: budget SubIFD references before reading and queueing them by @dylanmtaylor in #4108
  • security(edit): look up transcript track coverage by binary search by @dylanmtaylor in #4123
  • project: bound the speaker index a transcript word may carry by @dylanmtaylor in #4140
  • h264, hevc: refuse a decode call that starts an absurd number of pictures by @dylanmtaylor in #4231
  • codecs: bound AVI window copying, packet reads, H.264 head collection and decoded-packet caches by @dylanmtaylor in #4228
  • project: cut the speaker name copied into each derived transcript word by @dylanmtaylor in #4223
  • text: lay out overlapping runs, visual runs and wrapped lines without rescanning by @dylanmtaylor in #4221
  • codecs: cap the decoded samples a standalone file or Vorbis stream keeps in memory by @dylanmtaylor in #4203
  • engine: do not keep opened sources in relink search results by @dylanmtaylor in #4198
  • engine: merge imported presets through a name index by @dylanmtaylor in #4168
  • captions: cap the CEA-708 text an MCC import retains by @dylanmtaylor in #4121
  • h264: refuse slices that overlap macroblocks the picture already decoded by @dylanmtaylor in #4204
  • dng: reject zero or over-16-bit sample depths before unpacking by @dylanmtaylor in #4192
  • hevc: do not carry the previous segment's entry points into dependent slices by @dylanmtaylor in #4188
  • render: bound subclip recursion in the preview cost estimate by @dylanmtaylor in #4186
  • engine: leave unselected items' source graphics out of a selection export by @dylanmtaylor in #4183
  • captions: bound caption outline dilation work by @dylanmtaylor in #4110
  • mxf: resolve a source package's repeated track references once by @dylanmtaylor in #4212
  • security(mcp): bound queued parse-error replies so unread output stalls input by @dylanmtaylor in #4115
  • tts: look for a pause marker's closing bracket only a marker's length ahead by @dylanmtaylor in #4189
  • flac: consume encoder batches by offset instead of draining per frame by @dylanmtaylor in #4190
  • speech: validate the Whisper attention head count by @dylanmtaylor in #4195
  • engine: keep a shortcut preset named "active" from replacing the active set by @dylanmtaylor in #4201
  • media: bound still pixel count and YCbCr TIFF strips before allocating by @dylanmtaylor in #4214
  • edit: search transcript phrases in one pass by @dylanmtaylor in #4224
  • export: pick the cheaper resample axis order and refuse short sources in the 8-bit conversions by @dylanmtaylor in #4245
  • logging: escape control characters in a log message so it stays one record by @dylanmtaylor in #4255
  • render: cap Long Shadow and Glint lengths at the picture extent by @dylanmtaylor in #4200
  • media: validate offline slate audio before allocating silence by @dylanmtaylor in #4199
  • interchange: refuse repeated AAF storage ownership and bound weak paths, Bento names and FCP7 link lists by @dylanmtaylor in #4216
  • Pass the Linux signing key to the release workflow by @dylanmtaylor in #4303
  • ogg: stop reading when the packet list passes 256 MiB by @vangel76 in #4066
  • render: turn display-rotated video on the GPU (#3467) by @TuroYT in #3484
  • Preserve same-second autosave snapshots by @TheGalitube in #3844
  • About: credits tables fit without side-scrolling and their columns resize by @FredApps in #4234
  • docs: add a getting-started guide for fades and audio keyframes (#2973) by @Zaxaerith in #3090
  • Drag and drop folders in project media by @cobyfromhtc in #2632
  • Speed/Duration ▸ Maintain Audio Pitch time-stretches a clip's audio instead of resampling it by @txiki739 in #1684
  • Import Premiere .prfpset files and add Presets folder context menu by @justdxvid in #2719
  • #1221: H.264 High 10 and High 10 Intra export in the built-in encoder by @JordyUSA in #1580
  • feat(web): a host bridge for embedding pages, ?host=parent and data-host="page" (#3341) by @helenkwok in #3343
  • interchange: AAF/OMF audio tracks keep their names by @ondarrupeasu in #2845
  • Monitor: full-screen Program monitor cinema mode (#3652) by @lilgar77 in #3708
  • Timeline: a dragged transition snaps like a trimmed clip (#4328) by @ZIDAN44 in #4356
  • render, gpu: adjustment layers composited on the GPU by @EduardoAndradeMachado in #3032
  • Projects: Open Project asks to save unsaved changes first by @dotCooCoo in #1665
  • Copy the shared house rules into AGENTS.md by @FredApps in #4370
  • Effect Controls: Scale Width is greyed out while Uniform Scale is on (#4381) by @ZIDAN44 in #4407
  • filmcraft-web: window.filmcraft takes its request functions from craft-web-api by @helenkwok in #4420
  • #65: CommandSpec carries which target keys a command takes by name by @vangel76 in #1413
  • audio-dsp: narrow the public API to what other crates use by @vangel76 in #3147
  • audio-dsp: phaser, click remover and binauralizer recover from NaN and inf input by @vangel76 in #3149
  • h264: intra prediction from a u8 edge line with per-mode loops by @vangel76 in #3180
  • perf(h264): dequantise and place residual coefficients while decoding them by @vangel76 in #3184
  • ogg: CRC-32 slice-by-16, open() 3-5x faster (#4046) by @vangel76 in #4059
  • flac: per-order predictor kernels and merged partition sums, encoding ~1.6x faster, output byte-identical (#4044, #4045) by @vangel76 in #4062
  • mpa: faster synthesis filterbank, Layer I/II decode ~2.5x faster, output bit-identical (#4050) by @vangel76 in #4063
  • ogg: keep demuxing past many damaged pages, warn when recovery gives up (#4047) by @vangel76 in #4065
  • ogg: Opus timing no longer overflows on extreme granule positions by @vangel76 in #4067
  • ac3: read bits through the shared BitReader instead of one bit at a time by @vangel76 in #4068
  • captions: the export dialog lets you choose the caption track (#4060) by @vangel76 in #4220
  • Release: refresh contributor credits for each release (#4415) by @Luis-0508 in #4416
  • vp9: best-fit buffer pool, no clearing of recycled strip planes and mode info by @vangel76 in #3294
  • audio-dsp: crossfade convolution reverb impulse changes by @vangel76 in #3153
  • codecs: read 2 KiB instead of 16 KiB of each picture for AVC reordering at open by @vangel76 in #3283
  • perf(av1): loop restoration per stripe with row buffers and box sums by @vangel76 in #3116
  • perf(av1): full-pel copy path for motion compensation by @vangel76 in #3114
  • perf(av1): CDEF on padded rows per 64x64 filter block by @vangel76 in #3110
  • chore(av1): remove dead code, the unused bitstream dependency and hand-copied spec tables by @vangel76 in #3108
  • New Item and File > New make the item in the open bin by @vangel76 in #4307
  • audio-dsp: two channels per complex FFT in the STFT effects by @vangel76 in #3148
  • audio-dsp: every effect recovers from one NaN or inf input sample by @vangel76 in #3152
  • #1354: Backspace in Effect Controls removes the selected effect, not the clip by @vangel76 in #1400
  • Timeline: box selection and Select All include captions (#1912) by @vangel76 in #1962
  • Enable Feet + Frames (35mm / 16mm) and Frames display formats by @vangel76 in #3547
  • #1065: DNG raw settings, faster decode, opcode lists, lossy JPEG DNG by @vangel76 in #1077
  • Fix #4538: remove unused AV1 row-band setter by @FredApps in #4539
  • #977: MP3 export with a clean-room Layer III encoder by @vangel76 in #993
  • h264enc: honour threads: 1, reuse MbInfo buffers, add raw-YUV bench by @vangel76 in #3205
  • Lumetri: export a clip's grade as a .cube LUT by @vangel76 in #4309
  • Lumetri LUT export: export the clip the panel shows and name what the LUT leaves out by @vangel76 in #4541
  • Number fields: Up/Down step the value while typing in it by @vangel76 in #4306
  • perf(h264enc): diamond sub-pel refinement and ordered P partition search by @vangel76 in #3207
  • Updates: the updater reports installing, ready, installed and failed, and installs at exit by @dotCooCoo in #4537
  • Naming: rename 'Lumetri' UI terms to 'Color Grading' and 'Video Scopes' by @alzithetrivialmind in #1880
  • Updates: take craft-update from craft-libs main at 1b34eba41 by @dotCooCoo in #4565

New Contributors

Full Changelog: v0.17.0...v0.19.0

Don't miss a new filmcraft release

NewReleases is sending notifications on new releases.