github storytold/filmcraft v0.13.0
FilmCraft v0.13.0

2 hours ago

What's Changed

  • i18n test: leave installed right-to-left faces out of the Japanese check by @FredApps in #2576
  • CI: run cargo xtask ci on pull requests and pushes to main by @FredApps in #2563
  • M8: Fujifilm F-Log, F-Log2 and F-Log2 C colour spaces (F-Gamut / F-Gamut C) by @melchiaaronzedek in #2819
  • Require session-token authentication for desktop control requests by @coderabbitai[bot] in #2764
  • Reject signed fields inside multi-field timecodes by @Silvertree2010 in #2636
  • Keep WebVTT cues whose identifier starts with NOTE by @Silvertree2010 in #2629
  • Escape tab/newline/CR in XML attribute values by @Silvertree2010 in #2586
  • Fix false overlaps for empty time ranges by @Lucenx9 in #2601
  • Reject signed fields in SCC timecode parser by @Silvertree2010 in #2630
  • #2679: effects.setParam refuses values outside the parameter's range by @Felix-Helleckes in #2709
  • Reject non-hex characters in colour hex parsing by @Silvertree2010 in #2600
  • fix: harden saves, CLI file I/O and AV1 tooling (SonarCloud security/reliability) by @dylanmtaylor in #2983
  • Regression tests for #130, #703, #1084 and #1309 by @skylartaylor in #2861
  • Scroll the timeline clip menu when it is taller than the screen (#2852) by @HEOJUNFO in #2862
  • security(interchange): bound imported track indices by @earlvanze in #2910
  • security(text): bound text and phonemizer work by @earlvanze in #2870
  • Raise a loaded project's next_id past the ids already in it by @marcoarnulfo in #2864
  • security(proxies): reserve outputs atomically by @earlvanze in #2922
  • security(hevc): validate slice payload before allocation by @earlvanze in #2939
  • security(codecs): avoid quadratic MPEG timestamp lookup by @earlvanze in #2883
  • security(platform): bound hybrid replay output by @earlvanze in #2938
  • security(isobmff): bound metadata expansion by @earlvanze in #2933
  • security(matroska): compose stripped private data once by @earlvanze in #2911
  • security(h264enc): cache second-pass plan sums by @earlvanze in #2906
  • security(bench): isolate temporary export outputs by @earlvanze in #2928
  • security(engine): bound graphic template thumbnails by @earlvanze in #2887
  • fix(control): bound synthetic pointer events by @earlvanze in #2868
  • security(tts): make malformed-token scanning linear by @earlvanze in #2871
  • security(ui): bound export folder elision work by @earlvanze in #2902
  • security(text): keep font scans within configured folders by @earlvanze in #2876
  • codecs: walk open-GOP leading pictures back in a loop, not by recursion by @mercuryVM in #2920
  • security(opus): validate direct multistream headers by @earlvanze in #2905
  • security(text): bound transformed glyph masks by @earlvanze in #2900
  • security(avi): bound OpenDML index work by @earlvanze in #2925
  • Project panel: a clip dropped on New Item makes a sequence from it by @marcoarnulfo in #2940
  • security(mxf): share resolved descriptor metadata by @earlvanze in #2949
  • security(render): bound expanded frame plans by @earlvanze in #2942
  • security(engine): confine stored media filesystem access by @earlvanze in #2869
  • ci(deps): bump Swatinem/rust-cache from 2.9.2 to 2.9.3 in the actions group by @dependabot[bot] in #2971
  • security(dnx): validate fields before frame allocation by @earlvanze in #2914
  • security(mpeg2v): index picture extensions linearly by @earlvanze in #2904
  • security(apv): validate tile payload before allocation by @earlvanze in #2916
  • security(project): validate graphic templates in linear time by @earlvanze in #2886
  • security(videotoolbox): bound reorder buffering by @earlvanze in #2908
  • fix(interchange): sanitize embedded-audio output folder names by @earlvanze in #2956
  • security(codecs): deduplicate hardware parameter-set checks by @earlvanze in #2890
  • security(av1): require unique complete tile coverage by @earlvanze in #2917
  • security(automation): isolate bridge screenshots by @earlvanze in #2919
  • security(export): confine metadata-derived names by @earlvanze in #2903
  • security(bitstream): cache RBSP stop-bit lookup by @earlvanze in #2880
  • fix(bitstream): reject invalid length-prefixed NAL widths by @earlvanze in #2953
  • security(vp8): bound frame allocation by @earlvanze in #2929
  • security(vp9): bound frame allocation by @earlvanze in #2930
  • security(prores): bound decoded plane storage by @earlvanze in #2931
  • security(exr): validate chunks before frame allocation by @earlvanze in #2913
  • Use chrono instead of hand-rolled UTC conversion by @dylanmtaylor in #2662
  • packaging: use [[ for bash conditional tests (SonarCloud S7688) by @dylanmtaylor in https://github.com//pull/3003
  • tools: quit the super-linear regex scans in the spec table extractors (SonarCloud S8786) by @dylanmtaylor in #3007
  • CI: xtask ci in the dev profile, one test binary per crate, nextest by @aiongg in #2860
  • fix(engine): resolve stored media paths with craft-docpath's resolve_absolute by @aiongg in #2609
  • Fonts: pin craft-fonts bfcbf71; CRAFT_FONTS_REQUIRED fails without CRAFT_FONTS_DIR by @aiongg in #2646
  • Packaging: pin the signing client and appimagetool, and check their hashes by @aiongg in #2610
  • CI: shared gate workflow; FreeBSD nightly and on release by @aiongg in #2937
  • release: the git-sources gate moves into craft-common-actions (storytold/craft-common-actions#78) by @dylanmtaylor in #3014
  • i18n: missing translations never fail; xtask ci prints the missing list by @aiongg in #3012
  • ci(sonar): stop cancelling main-branch runs so coverage is published by @dylanmtaylor in #3026
  • Build: use craft-media for bitstream, isobmff and matroska by @aiongg in #2435
  • fix(media): validate Radiance HDR data before frame allocation by @earlvanze in #2957
  • fix(captions): reject deeply nested TTML before parsing by @earlvanze in #2955
  • security(dng): bound tile decoding and IFD traversal by @earlvanze in #2952
  • security(ogg): bound recovery scanning by @earlvanze in #2950
  • security(mxf): bound recovery and PCM edit units by @earlvanze in #2948
  • security(omf): bound metadata expansion and traversal by @earlvanze in #2946
  • security(export): bound image overlay decoding by @earlvanze in #2944
  • security(render): bound burn-in text rasters by @earlvanze in #2943
  • security(captions): bound burn-in overlays by @earlvanze in #2941
  • security(mpeg2v): bound access-unit output by @earlvanze in #2935
  • security(aaf): bound materialized streams by @earlvanze in #2934
  • security(avi): bound framed audio scans by @earlvanze in #2932
  • security(remix): bound analysis resources by @earlvanze in #2926
  • security(tts): verify Kokoro checkpoint before parsing by @earlvanze in #2918
  • security(h264): bound hostile picture allocation by @earlvanze in #2915
  • security(render): bound embedded LUT resolution by @earlvanze in #2901
  • security(codecs): cap GOP cache frame retention by @earlvanze in #2899
  • security(mpegts): avoid repeated audio buffer drains by @earlvanze in #2898
  • security(captions): bound TTML speaker labels by @earlvanze in #2897
  • security(captions): bound TTML inline span output by @earlvanze in #2896
  • security(h264): enforce long-term DPB limits by @earlvanze in #2894
  • security(engine): validate imported sequence settings by @earlvanze in #2892
  • security(speech): bound diarization clustering work by @earlvanze in #2891
  • security(project): scan malformed caption markup once by @earlvanze in #2885
  • security(hevc): bound specification equation parsing by @earlvanze in #2884
  • security(format): preserve permissions on atomic replacement by @earlvanze in #2881
  • security(captions): bound malformed text processing by @earlvanze in #2879
  • security(frame): bound decimation sampling work by @earlvanze in #2878
  • fix(speech): contain and verify downloaded model artifacts by @earlvanze in #2867
  • fix(speech): bound Whisper model metadata allocations by @earlvanze in #2866
  • security(interchange): harden FCPXML cycle detection, XML DTD entities, and imported formats by @dylanmtaylor in #3079
  • security: harden developer tools, scripts, and testkit against hostile input by @dylanmtaylor in #3078
  • security(codecs): validate VP9 empty tiles and AV1 film grain scaling points by @dylanmtaylor in #3081
  • security(engine): require local trust for ingest destinations by @dylanmtaylor in #3083
  • security(audio): bound sequence sample rates and AAF/OMF export channel buffers by @dylanmtaylor in #3082
  • Import: numbered embedded-audio names keep the path's separators on Windows by @dotCooCoo in #2988
  • Don't treat pieces with different settings as through edits by @Silvertree2010 in #3072
  • Keep WebVTT cues whose identifier is STYLE or REGION by @Silvertree2010 in #3088
  • Export: say why H.265 and AV1 are unavailable without a hardware encoder by @admbe in #3062
  • Only materialise kept frames when filling an H.264 frame_num gap by @Silvertree2010 in #2995
  • fix(control): release idle connection slots after socket timeouts by @jahvari in #2989
  • HEVC: share gray picture backing across unavailable references by @jahvari in #2992
  • Recovery: retain candidates after a failed discard by @jahvari in #2993
  • ProRes: write final alpha singleton run codes by @skylartaylor in #2991
  • control: preserve MCP pointer input defaults (#2784) by @thecyberbutler in #3004
  • Audio meters drop to silence right after Stop by @texjer in #3011
  • Timeline: the Razor tool cuts captions by @texjer in #3039
  • Timeline: Option-drag duplicates captions by @texjer in #3040
  • Edit: Copy, Cut and Paste work on captions selected in the Timeline by @texjer in #3041
  • Text panel: the Captions list follows the playhead by @texjer in #3042
  • History: the panel menu deletes redoable actions and clears the history by @dotCooCoo in #3075
  • media: import animated WebP as a clip by @thiscallnet in #3038
  • Timeline: the work area bar, with Set Work Area Bar In and Out Point by @dotCooCoo in #3087
  • relink tests: no unused index_folder import on Windows by @echelon in #3113
  • Merge 6 open PRs (tested batch) by @aiongg in #3240
  • effect controls: drag a transition's cut to move it with the transition by @dotCooCoo in #3115
  • Timeline: a Rolling Edit drag stops at the roll's limits by @dotCooCoo in #3155
  • Timeline: Show Duplicate Frame Markers marks media frames used more than once by @dotCooCoo in #3212
  • Audio Track Mixer: Show/Hide Tracks and Meter Input(s) Only are commands with Premiere's keys by @dotCooCoo in #3227
  • Monitors: Transparency Grid shows the picture's transparent areas by @dotCooCoo in #3233
  • Timeline: a transition stays within its clips after a regular trim by @dotCooCoo in #3236
  • Follow-ups to #3240: alpha upload table, duplicate markers off the UI thread, cut drag over the clips by @aiongg in #3243

New Contributors

Full Changelog: v0.12.0...v0.13.0

Don't miss a new filmcraft release

NewReleases is sending notifications on new releases.