Skip to content

chore: release v0.17.0 - #21

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
release-plz-2026-10-18T03-25-50Z
Open

github-actions[bot] wants to merge 1 commit into
mainfrom
release-plz-2026-10-18T03-25-50Z

Conversation

@github-actions

Copy link
Copy Markdown

🤖 New release

  • rusty_h264-accel: 0.16.0 -> 0.17.0 (✓ API compatible changes)
  • rusty_h264-common: 0.16.0 -> 0.17.0 (⚠ API breaking changes)
  • rusty_h264-encoder: 0.16.0 -> 0.17.0 (✓ API compatible changes)
  • rusty_h264-decoder: 0.16.0 -> 0.17.0 (⚠ API breaking changes)
  • rusty_h264: 0.16.0 -> 0.17.0 (✓ API compatible changes)

⚠ rusty_h264-common breaking changes

--- failure function_parameter_count_changed: pub fn parameter count changed ---

Description:
A publicly-visible function now takes a different number of parameters.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/function_parameter_count_changed.ron

Failed in:
  rusty_h264_common::deblock::pack_mb now takes 5 parameters instead of 4, in /tmp/.tmpI3E9Fd/rusty_h264/crates/rusty_h264-common/src/deblock.rs:1309
  rusty_h264_common::deblock::intra_mb_bs now takes 3 parameters instead of 2, in /tmp/.tmpI3E9Fd/rusty_h264/crates/rusty_h264-common/src/deblock.rs:864

--- failure function_requires_different_generic_type_params: function now requires a different number of generic type parameters ---

Description:
A function now requires a different number of generic type parameters than it used to. Uses of this function that supplied the previous number of generic types (e.g. via turbofish syntax) will be broken.
        ref: https://doc.rust-lang.org/reference/items/generics.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/function_requires_different_generic_type_params.ron

Failed in:
  function derive_mb_records (0 -> 1 generic types) in /tmp/.tmpI3E9Fd/rusty_h264/crates/rusty_h264-common/src/deblock.rs:1927

⚠ rusty_h264-decoder breaking changes

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.50.0/src/lints/enum_variant_added.ron

Failed in:
  variant DecodeError:Internal in /tmp/.tmpI3E9Fd/rusty_h264/crates/rusty_h264-decoder/src/lib.rs:418
Changelog

rusty_h264-accel

0.17.0 - 2026-10-18

Other

  • overflow-checks cost 22.5% of decode — moved to release-checked
  • audit pass 2 — 6% to 89% of in-scope gates, every unit >=85%
  • close H-03/04/05/07/13/14/15/16/31/39 + threat model
  • use-protection-please first pass — 41 gates x 8 units, depth=deep
  • an intra record is one boolean, and the filter stops touching a TLS
  • pack a uniform macroblock from one block, not sixteen
  • one motion test per macroblock edge when both sides are uniform

rusty_h264-common

0.17.0 - 2026-10-18

Other

  • bump rusty_alloc-api to =2.2.6 (#19)
  • bump rusty_alloc-api to =2.2.5 (#17)
  • 87% of every allocation was one Box::new that skipped its own pool
  • narrow the motion grids to (i16,i16) - 2.90 GB of pool clear removed
  • narrow the reference-index grids i32 -> i8 (-103 MB of memset)
  • overflow-checks cost 22.5% of decode — moved to release-checked
  • audit pass 2 — 6% to 89% of in-scope gates, every unit >=85%
  • close H-03/04/05/07/13/14/15/16/31/39 + threat model
  • use-protection-please first pass — 41 gates x 8 units, depth=deep
  • put the 8x8-transform flag in the intra table, so the filter stops asking
  • record one more refutation on the derivation's argument list
  • move the derivation's output pointer into a register argument
  • build the packed record where it lives (spills -72%)
  • add a spill column to the row-hook census, and record what it settled
  • outline the per-lane edge arms, now the minority case
  • the filter keeps boundary strengths at byte width
  • an intra record is one boolean, and the filter stops touching a TLS
  • coded flags a word at a time, and a provable kind row
  • pack a uniform macroblock from one block, not sixteen
  • one motion test per macroblock edge when both sides are uniform
  • take the uniformity answer from mb_kind instead of recomputing it
  • fold the paired motion tests, share the edge nnz mask, split the hot prefix
  • derive boundary strengths at u8, not i32 (-223 instrs on the decoder's derivation path)

rusty_h264-encoder

0.17.0 - 2026-10-18

Fixed

  • the profile census compiles again, and the decoder builds no_std (#20)

Other

  • narrow the motion grids to (i16,i16) - 2.90 GB of pool clear removed
  • four more, from the encoder and the PPS-gated grids
  • narrow the reference-index grids i32 -> i8 (-103 MB of memset)
  • overflow-checks cost 22.5% of decode — moved to release-checked
  • audit pass 2 — 6% to 89% of in-scope gates, every unit >=85%
  • close H-03/04/05/07/13/14/15/16/31/39 + threat model
  • use-protection-please first pass — 41 gates x 8 units, depth=deep

rusty_h264-decoder

0.17.0 - 2026-10-18

Fixed

  • the profile census compiles again, and the decoder builds no_std (#20)

Other

  • 87% of every allocation was one Box::new that skipped its own pool
  • the plane recycle pool was never fed - 4.34 GB of wasted zeroing
  • narrow the motion grids to (i16,i16) - 2.90 GB of pool clear removed
  • the List-1 grids are B-only, so stop clearing them without B (-36%)
  • four more, from the encoder and the PPS-gated grids
  • the mvd cache stores what the context can read, not what was parsed
  • second pass of the copy hunt — the census's own two blind spots
  • carry the POC lookup table, not its per-block expansion (-37 MB)
  • narrow the reference-index grids i32 -> i8 (-103 MB of memset)
  • overflow-checks cost 22.5% of decode — moved to release-checked
  • audit pass 2 — 6% to 89% of in-scope gates, every unit >=85%
  • close H-03/04/05/07/13/14/15/16/31/39 + threat model
  • use-protection-please first pass — 41 gates x 8 units, depth=deep
  • no production panic sites — 47 to 0 (H-18)
  • put the 8x8-transform flag in the intra table, so the filter stops asking
  • move the derivation's output pointer into a register argument
  • build the packed record where it lives (spills -72%)
  • mark single-partition B macroblocks uniform (mb_uniform now -86..-96%)
  • coded flags a word at a time, and a provable kind row
  • pack a uniform macroblock from one block, not sixteen
  • mark the B classes whose motion the decoder already knows is uniform
  • one motion test per macroblock edge when both sides are uniform
  • take the uniformity answer from mb_kind instead of recomputing it
  • derive boundary strengths at u8, not i32 (-223 instrs on the decoder's derivation path)

rusty_h264

0.17.0 - 2026-10-18

Other

  • overflow-checks cost 22.5% of decode — moved to release-checked
  • audit pass 2 — 6% to 89% of in-scope gates, every unit >=85%
  • close H-03/04/05/07/13/14/15/16/31/39 + threat model
  • use-protection-please first pass — 41 gates x 8 units, depth=deep


This PR was generated with release-plz.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants