Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rav1e for openSUSE:Factory checked 
in at 2025-08-17 14:49:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rav1e (Old)
 and      /work/SRC/openSUSE:Factory/.rav1e.new.1085 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rav1e"

Sun Aug 17 14:49:53 2025 rev:21 rq:1299905 version:0.8.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/rav1e/rav1e.changes      2025-06-10 
08:57:55.921172492 +0200
+++ /work/SRC/openSUSE:Factory/.rav1e.new.1085/rav1e.changes    2025-08-17 
14:50:03.927820875 +0200
@@ -1,0 +2,8 @@
+Fri Aug 15 10:18:33 UTC 2025 - Marcus Rueckert <mrueck...@suse.de>
+
+- Update to version 0.8.1:
+  - Fix bit overflows when writing headers b0bd2ad thanks to
+    @sdroege
+  - Update dependencies
+
+-------------------------------------------------------------------

Old:
----
  rav1e-0.8.0.obscpio

New:
----
  rav1e-0.8.1.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rav1e.spec ++++++
--- /var/tmp/diff_new_pack.ZI97wJ/_old  2025-08-17 14:50:05.139871123 +0200
+++ /var/tmp/diff_new_pack.ZI97wJ/_new  2025-08-17 14:50:05.139871123 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package rav1e
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2025 SUSE LLC and contributors
 # Copyright (c) 2020 Andreas Schneider <a...@cryptomilk.org>.
 #
 # All modifications and additions to the file contributed by third parties
@@ -20,7 +20,7 @@
 %define sover 0_8
 
 Name:           rav1e
-Version:        0.8.0
+Version:        0.8.1
 Release:        0
 Summary:        Fastest and safest AV1 encoder
 # rav1e is published under the terms of the BSD-2-Clause license,

++++++ _service ++++++
--- /var/tmp/diff_new_pack.ZI97wJ/_old  2025-08-17 14:50:05.187873112 +0200
+++ /var/tmp/diff_new_pack.ZI97wJ/_new  2025-08-17 14:50:05.191873278 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/xiph/rav1e.git</param>
     <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
     <param name="scm">git</param>
-    <param name="revision">v0.8.0</param>
+    <param name="revision">v0.8.1</param>
     <param name="match-tag">*</param>
     <param name="versionrewrite-pattern">v(.*)\+0</param>
     <param name="versionrewrite-replacement">\1</param>

++++++ rav1e-0.8.0.obscpio -> rav1e-0.8.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rav1e-0.8.0/Cargo.lock new/rav1e-0.8.1/Cargo.lock
--- old/rav1e-0.8.0/Cargo.lock  2025-05-23 19:33:41.000000000 +0200
+++ new/rav1e-0.8.1/Cargo.lock  2025-06-16 11:35:17.000000000 +0200
@@ -13,9 +13,9 @@
 
 [[package]]
 name = "adler2"
-version = "2.0.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
+checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
 
 [[package]]
 name = "aho-corasick"
@@ -37,20 +37,12 @@
 
 [[package]]
 name = "aligned-vec"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "aligned-vec"
 version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 checksum = "dc890384c8602f339876ded803c97ad529f3842aba97f6392b3dba0dd171769b"
 dependencies = [
  "equator",
+ "serde",
 ]
 
 [[package]]
@@ -61,9 +53,9 @@
 
 [[package]]
 name = "anstream"
-version = "0.6.18"
+version = "0.6.19"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b"
+checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -76,36 +68,36 @@
 
 [[package]]
 name = "anstyle"
-version = "1.0.10"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9"
+checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.6"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9"
+checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c"
+checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9"
 dependencies = [
  "windows-sys",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "3.0.7"
+version = "3.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e"
+checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882"
 dependencies = [
  "anstyle",
- "once_cell",
+ "once_cell_polyfill",
  "windows-sys",
 ]
 
@@ -284,9 +276,9 @@
 
 [[package]]
 name = "bitstream-io"
-version = "4.1.0"
+version = "4.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "95a4952b106ee0920c957fc00cf32ddb1e885c5d8beee8f66ab973458129ff5b"
+checksum = "6afa0fc725d5ac9efc66f47b4c533ee850eb34aa6105681b5349c27157346ffa"
 dependencies = [
  "core2",
 ]
@@ -313,15 +305,15 @@
 
 [[package]]
 name = "bumpalo"
-version = "3.17.0"
+version = "3.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf"
+checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee"
 
 [[package]]
 name = "bytemuck"
-version = "1.23.0"
+version = "1.23.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c"
+checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422"
 
 [[package]]
 name = "byteorder"
@@ -343,9 +335,9 @@
 
 [[package]]
 name = "cc"
-version = "1.2.24"
+version = "1.2.26"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "16595d3be041c03b09d08d0858631facccee9221e579704070e6e9e4915d3bc7"
+checksum = "956a5e21988b87f372569b66183b78babf23ebc2e744b733e4350a752c4dafac"
 dependencies = [
  "jobserver",
  "libc",
@@ -373,9 +365,9 @@
 
 [[package]]
 name = "cfg-if"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268"
 
 [[package]]
 name = "ciborium"
@@ -417,9 +409,9 @@
 
 [[package]]
 name = "clap"
-version = "4.5.38"
+version = "4.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000"
+checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -427,9 +419,9 @@
 
 [[package]]
 name = "clap_builder"
-version = "4.5.38"
+version = "4.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120"
+checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e"
 dependencies = [
  "anstream",
  "anstyle",
@@ -439,18 +431,18 @@
 
 [[package]]
 name = "clap_complete"
-version = "4.5.50"
+version = "4.5.54"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c91d3baa3bcd889d60e6ef28874126a0b384fd225ab83aa6d8a801c519194ce1"
+checksum = "aad5b1b4de04fead402672b48897030eec1f3bfe1550776322f59f6d6e6a5677"
 dependencies = [
  "clap",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.5.32"
+version = "4.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7"
+checksum = "d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce"
 dependencies = [
  "heck",
  "proc-macro2",
@@ -460,15 +452,15 @@
 
 [[package]]
 name = "clap_lex"
-version = "0.7.4"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6"
+checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675"
 
 [[package]]
 name = "colorchoice"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
+checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
 
 [[package]]
 name = "console"
@@ -703,9 +695,9 @@
 
 [[package]]
 name = "flate2"
-version = "1.1.1"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece"
+checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -728,7 +720,7 @@
 dependencies = [
  "cfg-if",
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi 0.11.1+wasi-snapshot-preview1",
 ]
 
 [[package]]
@@ -780,9 +772,9 @@
 
 [[package]]
 name = "hashbrown"
-version = "0.15.3"
+version = "0.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3"
+checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5"
 
 [[package]]
 name = "heck"
@@ -1071,9 +1063,9 @@
 
 [[package]]
 name = "libloading"
-version = "0.8.7"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "6a793df0d7afeac54f95b471d3af7f0d4fb975699f972341a4b76988d49cdf0c"
+checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667"
 dependencies = [
  "cfg-if",
  "windows-targets 0.53.0",
@@ -1127,9 +1119,9 @@
 
 [[package]]
 name = "memchr"
-version = "2.7.4"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
+checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
 
 [[package]]
 name = "minimal-lexical"
@@ -1139,9 +1131,9 @@
 
 [[package]]
 name = "miniz_oxide"
-version = "0.8.8"
+version = "0.8.9"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a"
+checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
 dependencies = [
  "adler2",
  "simd-adler32",
@@ -1263,6 +1255,12 @@
 checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
 
 [[package]]
+name = "once_cell_polyfill"
+version = "1.70.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad"
+
+[[package]]
 name = "oorandom"
 version = "11.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index";
@@ -1402,9 +1400,9 @@
 
 [[package]]
 name = "prettyplease"
-version = "0.2.32"
+version = "0.2.33"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6"
+checksum = "9dee91521343f4c5c6a63edd65e54f31f5c92fe8978c40a4282f8372194c6a7d"
 dependencies = [
  "proc-macro2",
  "syn",
@@ -1514,9 +1512,9 @@
 
 [[package]]
 name = "rav1e"
-version = "0.8.0"
+version = "0.8.1"
 dependencies = [
- "aligned-vec 0.6.4",
+ "aligned-vec",
  "aom-sys",
  "arbitrary",
  "arg_enum_proc_macro",
@@ -1625,9 +1623,9 @@
 
 [[package]]
 name = "rustc-demangle"
-version = "0.1.24"
+version = "0.1.25"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
+checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f"
 
 [[package]]
 name = "rustc-hash"
@@ -1663,9 +1661,9 @@
 
 [[package]]
 name = "rustversion"
-version = "1.0.20"
+version = "1.0.21"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2"
+checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d"
 
 [[package]]
 name = "ryu"
@@ -1737,9 +1735,9 @@
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.8"
+version = "0.6.9"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1"
+checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3"
 dependencies = [
  "serde",
 ]
@@ -1795,9 +1793,9 @@
 
 [[package]]
 name = "smallvec"
-version = "1.15.0"
+version = "1.15.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9"
+checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
 
 [[package]]
 name = "stable_deref_trait"
@@ -1807,9 +1805,9 @@
 
 [[package]]
 name = "syn"
-version = "2.0.101"
+version = "2.0.102"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
+checksum = "f6397daf94fa90f058bd0fd88429dd9e5738999cca8d701813c80723add80462"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1934,9 +1932,9 @@
 
 [[package]]
 name = "toml"
-version = "0.8.22"
+version = "0.8.23"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae"
+checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362"
 dependencies = [
  "serde",
  "serde_spanned",
@@ -1946,18 +1944,18 @@
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.9"
+version = "0.6.11"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3"
+checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.22.26"
+version = "0.22.27"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e"
+checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
 dependencies = [
  "indexmap",
  "serde",
@@ -1969,9 +1967,9 @@
 
 [[package]]
 name = "toml_write"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076"
+checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801"
 
 [[package]]
 name = "tracing"
@@ -1986,9 +1984,9 @@
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.28"
+version = "0.1.29"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
+checksum = "1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2008,9 +2006,9 @@
 
 [[package]]
 name = "tracing-core"
-version = "0.1.33"
+version = "0.1.34"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c"
+checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678"
 dependencies = [
  "once_cell",
  "valuable",
@@ -2049,9 +2047,9 @@
 
 [[package]]
 name = "unicode-width"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd"
+checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c"
 
 [[package]]
 name = "url"
@@ -2078,11 +2076,11 @@
 
 [[package]]
 name = "v_frame"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "d6f32aaa24bacd11e488aa9ba66369c7cd514885742c9fe08cfe85884db3e92b"
+checksum = "666b7727c8875d6ab5db9533418d7c764233ac9c0cff1d469aec8fa127597be2"
 dependencies = [
- "aligned-vec 0.5.0",
+ "aligned-vec",
  "num-traits",
  "serde",
  "wasm-bindgen",
@@ -2127,9 +2125,9 @@
 
 [[package]]
 name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
+version = "0.11.1+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
 
 [[package]]
 name = "wasi"
@@ -2390,9 +2388,9 @@
 
 [[package]]
 name = "winnow"
-version = "0.7.10"
+version = "0.7.11"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec"
+checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd"
 dependencies = [
  "memchr",
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rav1e-0.8.0/Cargo.toml new/rav1e-0.8.1/Cargo.toml
--- old/rav1e-0.8.0/Cargo.toml  2025-05-23 19:33:41.000000000 +0200
+++ new/rav1e-0.8.1/Cargo.toml  2025-06-16 11:35:17.000000000 +0200
@@ -1,6 +1,6 @@
 [package]
 name = "rav1e"
-version = "0.8.0"
+version = "0.8.1"
 authors = ["Thomas Daede <tda...@xiph.org>"]
 edition = "2021"
 rust-version = "1.83.0"
@@ -202,7 +202,6 @@
 incremental = true
 lto = "thin"
 
-# windows-gnu should use it until rust-lang/rust#98302 is not fixed
 [profile.release-no-lto]
 inherits = "release"
 lto = "off"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rav1e-0.8.0/src/api/channel/data.rs 
new/rav1e-0.8.1/src/api/channel/data.rs
--- old/rav1e-0.8.0/src/api/channel/data.rs     2025-05-23 19:33:41.000000000 
+0200
+++ new/rav1e-0.8.1/src/api/channel/data.rs     2025-06-16 11:35:17.000000000 
+0200
@@ -15,7 +15,7 @@
 use crate::frame::*;
 use crate::util::Pixel;
 
-use bitstream_io::{BigEndian, BitWrite2, BitWriter};
+use bitstream_io::{BigEndian, BitWrite, BitWriter};
 use crossbeam::channel::{Receiver, Sender};
 use thiserror::Error;
 
@@ -353,20 +353,20 @@
       {
         let mut bw = BitWriter::endian(&mut buf, BigEndian);
         bw.write_bit(true)?; // marker
-        bw.write(7, 1)?; // version
-        bw.write(3, seq.profile)?;
-        bw.write(5, 31)?; // level
+        bw.write::<7, u8>(1)?; // version
+        bw.write::<3, u8>(seq.profile)?;
+        bw.write::<5, u8>(31)?; // level
         bw.write_bit(false)?; // tier
         bw.write_bit(seq.bit_depth > 8)?; // high_bitdepth
         bw.write_bit(seq.bit_depth == 12)?; // twelve_bit
         bw.write_bit(seq.chroma_sampling == ChromaSampling::Cs400)?; // 
monochrome
         bw.write_bit(seq.chroma_sampling != ChromaSampling::Cs444)?; // 
chroma_subsampling_x
         bw.write_bit(seq.chroma_sampling == ChromaSampling::Cs420)?; // 
chroma_subsampling_y
-        bw.write(2, 0)?; // chroma_sample_position
-        bw.write(3, 0)?; // reserved
+        bw.write::<2, u8>(0)?; // chroma_sample_position
+        bw.write::<3, u8>(0)?; // reserved
         bw.write_bit(false)?; // initial_presentation_delay_present
 
-        bw.write(4, 0)?; // reserved
+        bw.write::<4, u8>(0)?; // reserved
       }
 
       Ok(buf)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rav1e-0.8.0/src/api/context.rs 
new/rav1e-0.8.1/src/api/context.rs
--- old/rav1e-0.8.0/src/api/context.rs  2025-05-23 19:33:41.000000000 +0200
+++ new/rav1e-0.8.1/src/api/context.rs  2025-06-16 11:35:17.000000000 +0200
@@ -12,7 +12,7 @@
 use std::io;
 use std::sync::Arc;
 
-use bitstream_io::{BigEndian, BitWrite2, BitWriter};
+use bitstream_io::{BigEndian, BitWrite, BitWriter};
 
 use crate::api::color::*;
 use crate::api::config::*;
@@ -345,20 +345,20 @@
       {
         let mut bw = BitWriter::endian(&mut buf, BigEndian);
         bw.write_bit(true)?; // marker
-        bw.write(7, 1)?; // version
-        bw.write(3, seq.profile)?;
-        bw.write(5, 31)?; // level
+        bw.write::<7, u8>(1)?; // version
+        bw.write::<3, u8>(seq.profile)?;
+        bw.write::<5, u8>(31)?; // level
         bw.write_bit(false)?; // tier
         bw.write_bit(seq.bit_depth > 8)?; // high_bitdepth
         bw.write_bit(seq.bit_depth == 12)?; // twelve_bit
         bw.write_bit(seq.chroma_sampling == ChromaSampling::Cs400)?; // 
monochrome
         bw.write_bit(seq.chroma_sampling != ChromaSampling::Cs444)?; // 
chroma_subsampling_x
         bw.write_bit(seq.chroma_sampling == ChromaSampling::Cs420)?; // 
chroma_subsampling_y
-        bw.write(2, 0)?; // chroma_sample_position
-        bw.write(3, 0)?; // reserved
+        bw.write::<2, u8>(0)?; // chroma_sample_position
+        bw.write::<3, u8>(0)?; // reserved
         bw.write_bit(false)?; // initial_presentation_delay_present
 
-        bw.write(4, 0)?; // reserved
+        bw.write::<4, u8>(0)?; // reserved
       }
 
       Ok(buf)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rav1e-0.8.0/src/ec.rs new/rav1e-0.8.1/src/ec.rs
--- old/rav1e-0.8.0/src/ec.rs   2025-05-23 19:33:41.000000000 +0200
+++ new/rav1e-0.8.1/src/ec.rs   2025-06-16 11:35:17.000000000 +0200
@@ -19,7 +19,7 @@
 }
 
 use crate::context::{CDFContext, CDFContextLog, CDFOffset};
-use bitstream_io::{BigEndian, BitWrite2, BitWriter};
+use bitstream_io::{BigEndian, BitWrite, BitWriter};
 use std::io;
 
 pub const OD_BITRES: u8 = 3;
@@ -863,10 +863,10 @@
       let l = 16 - n.leading_zeros() as u8;
       let m = (1 << l) - n;
       if v < m {
-        self.write(l as u32 - 1, v)
+        self.write_var(l as u32 - 1, v)
       } else {
-        self.write(l as u32 - 1, m + ((v - m) >> 1))?;
-        self.write(1, (v - m) & 1)
+        self.write_var(l as u32 - 1, m + ((v - m) >> 1))?;
+        self.write::<1, u16>((v - m) & 1)
       }
     } else {
       Ok(())
@@ -890,7 +890,7 @@
           i += 1;
           mk += a;
         } else {
-          return self.write(b as u32, v - mk);
+          return self.write_var(b as u32, v - mk);
         }
       }
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rav1e-0.8.0/src/encoder.rs 
new/rav1e-0.8.1/src/encoder.rs
--- old/rav1e-0.8.0/src/encoder.rs      2025-05-23 19:33:41.000000000 +0200
+++ new/rav1e-0.8.1/src/encoder.rs      2025-06-16 11:35:17.000000000 +0200
@@ -15,7 +15,7 @@
 
 use arg_enum_proc_macro::ArgEnum;
 use arrayvec::*;
-use bitstream_io::{BigEndian, BitWrite2, BitWriter};
+use bitstream_io::{BigEndian, BitWrite, BitWriter};
 use rayon::iter::*;
 
 use crate::activity::*;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rav1e-0.8.0/src/header.rs 
new/rav1e-0.8.1/src/header.rs
--- old/rav1e-0.8.0/src/header.rs       2025-05-23 19:33:41.000000000 +0200
+++ new/rav1e-0.8.1/src/header.rs       2025-06-16 11:35:17.000000000 +0200
@@ -23,7 +23,7 @@
 use crate::Sequence;
 
 use arrayvec::ArrayVec;
-use bitstream_io::{BigEndian, BitWrite2, BitWriter, LittleEndian};
+use bitstream_io::{BigEndian, BitWrite, BitWriter, LittleEndian};
 
 use std::io;
 
@@ -116,9 +116,8 @@
       }
     }
 
-    for byte in coded_value {
-      self.write(8, byte)?;
-    }
+    self.write_bytes(&coded_value)?;
+
     Ok(())
   }
 }
@@ -132,7 +131,7 @@
   fn write_le(&mut self, bytes: u32, value: u64) -> io::Result<()> {
     let mut data = Vec::new();
     let mut bwle = BitWriter::endian(&mut data, LittleEndian);
-    bwle.write(bytes * 8, value)?;
+    bwle.write_var(bytes * 8, value)?;
     self.write_bytes(&data)
   }
 }
@@ -196,7 +195,7 @@
     &mut self, obu_type: ObuType, obu_extension: u32,
   ) -> io::Result<()> {
     self.write_bit(false)?; // forbidden bit.
-    self.write(4, obu_type as u32)?;
+    self.write::<4, u8>(obu_type as u8)?;
     self.write_bit(obu_extension != 0)?;
     self.write_bit(true)?; // obu_has_payload_length_field
     self.write_bit(false)?; // reserved
@@ -227,21 +226,21 @@
     match obu_meta_type {
       ObuMetaType::OBU_META_HDR_CLL => {
         let cll = seq.content_light.unwrap();
-        self.write(16, cll.max_content_light_level)?;
-        self.write(16, cll.max_frame_average_light_level)?;
+        self.write::<16, u16>(cll.max_content_light_level)?;
+        self.write::<16, u16>(cll.max_frame_average_light_level)?;
       }
       ObuMetaType::OBU_META_HDR_MDCV => {
         let mdcv = seq.mastering_display.unwrap();
         for i in 0..3 {
-          self.write(16, mdcv.primaries[i].x)?;
-          self.write(16, mdcv.primaries[i].y)?;
+          self.write::<16, u16>(mdcv.primaries[i].x)?;
+          self.write::<16, u16>(mdcv.primaries[i].y)?;
         }
 
-        self.write(16, mdcv.white_point.x)?;
-        self.write(16, mdcv.white_point.y)?;
+        self.write::<16, u16>(mdcv.white_point.x)?;
+        self.write::<16, u16>(mdcv.white_point.y)?;
 
-        self.write(32, mdcv.max_luminance)?;
-        self.write(32, mdcv.min_luminance)?;
+        self.write::<32, u32>(mdcv.max_luminance)?;
+        self.write::<32, u32>(mdcv.min_luminance)?;
       }
       _ => {}
     }
@@ -263,9 +262,9 @@
 
     self.write_uleb128(ObuMetaType::OBU_META_ITUT_T35 as u64)?;
 
-    self.write(8, t35.country_code)?;
+    self.write::<8, u8>(t35.country_code)?;
     if t35.country_code == 0xFF {
-      self.write(8, t35.country_code_extension_byte)?;
+      self.write::<8, u8>(t35.country_code_extension_byte)?;
     }
     self.write_bytes(&t35.data)?;
 
@@ -283,7 +282,7 @@
       !fi.sequence.reduced_still_picture_hdr || fi.sequence.still_picture
     );
 
-    self.write(3, fi.sequence.profile)?; // profile
+    self.write::<3, u8>(fi.sequence.profile)?; // profile
     self.write_bit(fi.sequence.still_picture)?; // still_picture
     self.write_bit(fi.sequence.reduced_still_picture_hdr)?; // 
reduced_still_picture_header
 
@@ -293,14 +292,14 @@
       assert!(!fi.sequence.decoder_model_info_present_flag);
       assert_eq!(fi.sequence.operating_points_cnt_minus_1, 0);
       assert_eq!(fi.sequence.operating_point_idc[0], 0);
-      self.write(5, fi.sequence.level_idx[0])?; // level
+      self.write::<5, u8>(fi.sequence.level_idx[0])?; // level
       assert_eq!(fi.sequence.tier[0], 0);
     } else {
       self.write_bit(fi.sequence.timing_info_present)?; // timing info present
 
       if fi.sequence.timing_info_present {
-        self.write(32, fi.sequence.time_base.num)?;
-        self.write(32, fi.sequence.time_base.den)?;
+        self.write::<32, u64>(fi.sequence.time_base.num)?;
+        self.write::<32, u64>(fi.sequence.time_base.den)?;
 
         self.write_bit(true)?; // equal picture interval
         self.write_bit(true)?; // zero interval
@@ -308,11 +307,11 @@
       }
 
       self.write_bit(false)?; // initial display delay present flag
-      self.write(5, 0)?; // one operating point
-      self.write(12, 0)?; // idc
-      self.write(5, fi.sequence.level_idx[0])?; // level
+      self.write::<5, u8>(0)?; // one operating point
+      self.write::<12, u16>(0)?; // idc
+      self.write::<5, u8>(fi.sequence.level_idx[0])?; // level
       if fi.sequence.level_idx[0] > 7 {
-        self.write(1, 0)?; // tier
+        self.write::<1, u8>(0)?; // tier
       }
     }
 
@@ -342,8 +341,10 @@
       // We must always have delta_frame_id_length < frame_id_length,
       // in order for a frame to be referenced with a unique delta.
       // Avoid wasting bits by using a coding that enforces this restriction.
-      self.write(4, seq.delta_frame_id_length - 2)?;
-      self.write(3, seq.frame_id_length - seq.delta_frame_id_length - 1)?;
+      self.write::<4, u32>(seq.delta_frame_id_length - 2)?;
+      self.write::<3, u32>(
+        seq.frame_id_length - seq.delta_frame_id_length - 1,
+      )?;
     }
 
     self.write_bit(seq.use_128x128_superblock)?;
@@ -389,7 +390,7 @@
         assert!(seq.force_integer_mv == 2);
       }
       if seq.enable_order_hint {
-        self.write(3, seq.order_hint_bits_minus_1)?;
+        self.write::<3, u32>(seq.order_hint_bits_minus_1)?;
       }
     }
 
@@ -419,9 +420,9 @@
     self.write_bit(seq.color_description.is_some())?;
     let mut srgb_triple = false;
     if let Some(color_description) = seq.color_description {
-      self.write(8, color_description.color_primaries as u8)?;
-      self.write(8, color_description.transfer_characteristics as u8)?;
-      self.write(8, color_description.matrix_coefficients as u8)?;
+      self.write::<8, _>(color_description.color_primaries as u8)?;
+      self.write::<8, _>(color_description.transfer_characteristics as u8)?;
+      self.write::<8, _>(color_description.matrix_coefficients as u8)?;
       srgb_triple = color_description.is_srgb_triple();
     }
 
@@ -449,7 +450,7 @@
         assert!(seq.chroma_sampling == ChromaSampling::Cs422);
       }
       if seq.chroma_sampling == ChromaSampling::Cs420 {
-        self.write(2, seq.chroma_sample_position as u32)?;
+        self.write::<2, u8>(seq.chroma_sample_position as u8)?;
       }
     }
     self.write_bit(true)?; // separate_uv_delta_q
@@ -471,7 +472,7 @@
       self.write_bit(fi.is_show_existing_frame())?;
 
       if fi.is_show_existing_frame() {
-        self.write(3, fi.frame_to_show_map_idx)?;
+        self.write::<3, u32>(fi.frame_to_show_map_idx)?;
 
         //TODO:
         /* temporal_point_info();
@@ -488,7 +489,7 @@
         return Ok(());
       }
 
-      self.write(2, fi.frame_type as u32)?;
+      self.write::<2, u8>(fi.frame_type as u8)?;
       self.write_bit(fi.show_frame)?; // show frame
 
       if fi.show_frame {
@@ -553,11 +554,11 @@
     if fi.sequence.enable_order_hint {
       let n = fi.sequence.order_hint_bits_minus_1 + 1;
       let mask = (1 << n) - 1;
-      self.write(n, fi.order_hint & mask)?;
+      self.write_var(n, fi.order_hint & mask)?;
     }
 
     if !fi.error_resilient && !fi.intra_only {
-      self.write(PRIMARY_REF_BITS, fi.primary_ref_frame)?;
+      self.write::<PRIMARY_REF_BITS, u32>(fi.primary_ref_frame)?;
     }
 
     if fi.sequence.decoder_model_info_present_flag {
@@ -568,7 +569,7 @@
       if !fi.show_frame {
         // unshown keyframe (forward keyframe)
         unimplemented!();
-        self.write(REF_FRAMES as u32, fi.refresh_frame_flags)?;
+        self.write_var(REF_FRAMES as u32, fi.refresh_frame_flags)?;
       } else {
         assert!(fi.refresh_frame_flags == ALL_REF_FRAMES_MASK);
       }
@@ -581,7 +582,7 @@
       } else {
         // TODO: This should be set once inter mode is used
       }
-      self.write(REF_FRAMES as u32, fi.refresh_frame_flags)?;
+      self.write_var(REF_FRAMES as u32, fi.refresh_frame_flags)?;
     };
 
     if (!fi.intra_only || fi.refresh_frame_flags != ALL_REF_FRAMES_MASK) {
@@ -592,9 +593,9 @@
           let mask = (1 << n) - 1;
           if let Some(ref rec) = fi.rec_buffer.frames[i] {
             let ref_hint = rec.order_hint;
-            self.write(n, ref_hint & mask)?;
+            self.write_var(n, ref_hint & mask)?;
           } else {
-            self.write(n, 0)?;
+            self.write_var(n, 0)?;
           }
         }
       }
@@ -623,7 +624,7 @@
 
       for i in 0..INTER_REFS_PER_FRAME {
         if !frame_refs_short_signaling {
-          self.write(REF_FRAMES_LOG2 as u32, fi.ref_frames[i])?;
+          self.write_var(REF_FRAMES_LOG2 as u32, fi.ref_frames[i])?;
         }
         if fi.sequence.frame_id_numbers_present_flag {
           unimplemented!();
@@ -643,7 +644,7 @@
 
       self.write_bit(fi.is_filter_switchable)?;
       if !fi.is_filter_switchable {
-        self.write(2, fi.default_filter as u8)?;
+        self.write::<2, u8>(fi.default_filter as u8)?;
       }
       self.write_bit(fi.is_motion_mode_switchable)?;
 
@@ -728,15 +729,15 @@
     if tiles_log2 > 0 {
       // context_update_tile_id
       // for now, always use the first tile CDF
-      self.write(tiles_log2 as u32, fs.context_update_tile_id as u32)?;
+      self.write_var(tiles_log2 as u32, fs.context_update_tile_id as u32)?;
 
       // tile_size_bytes_minus_1
-      self.write(2, fs.max_tile_size_bytes - 1);
+      self.write::<2, u32>(fs.max_tile_size_bytes - 1)?;
     }
 
     // quantization
     assert!(fi.base_q_idx > 0);
-    self.write(8, fi.base_q_idx)?; // base_q_idx
+    self.write::<8, u8>(fi.base_q_idx)?; // base_q_idx
     self.write_delta_q(fi.dc_delta_q[0])?;
     if fi.sequence.chroma_sampling != ChromaSampling::Cs400 {
       assert!(fi.ac_delta_q[0] == 0);
@@ -839,7 +840,7 @@
       if let Some(grain_params) = fi.film_grain_params() {
         // Apply grain
         self.write_bit(true)?;
-        self.write(16, grain_params.random_seed)?;
+        self.write::<16, u16>(grain_params.random_seed)?;
         if fi.frame_type == FrameType::INTER {
           // For the purposes of photon noise,
           // it's simpler to always update the params,
@@ -847,10 +848,10 @@
           self.write_bit(true)?;
         }
 
-        self.write(4, grain_params.scaling_points_y.len() as u8)?;
+        self.write::<4, u8>(grain_params.scaling_points_y.len() as u8)?;
         for point in &grain_params.scaling_points_y {
-          self.write(8, point[0])?;
-          self.write(8, point[1])?;
+          self.write::<8, u8>(point[0])?;
+          self.write::<8, u8>(point[1])?;
         }
 
         let chroma_scaling_from_luma =
@@ -865,20 +866,20 @@
           || (fi.sequence.chroma_sampling == ChromaSampling::Cs420
             && grain_params.scaling_points_y.is_empty()))
         {
-          self.write(4, grain_params.scaling_points_cb.len() as u8)?;
+          self.write::<4, u8>(grain_params.scaling_points_cb.len() as u8)?;
           for point in &grain_params.scaling_points_cb {
-            self.write(8, point[0])?;
-            self.write(8, point[1])?;
+            self.write::<8, u8>(point[0])?;
+            self.write::<8, u8>(point[1])?;
           }
-          self.write(4, grain_params.scaling_points_cr.len() as u8)?;
+          self.write::<4, u8>(grain_params.scaling_points_cr.len() as u8)?;
           for point in &grain_params.scaling_points_cr {
-            self.write(8, point[0])?;
-            self.write(8, point[1])?;
+            self.write::<8, u8>(point[0])?;
+            self.write::<8, u8>(point[1])?;
           }
         }
 
-        self.write(2, grain_params.scaling_shift - 8)?;
-        self.write(2, grain_params.ar_coeff_lag)?;
+        self.write::<2, u8>(grain_params.scaling_shift - 8)?;
+        self.write::<2, u8>(grain_params.ar_coeff_lag)?;
 
         let mut num_pos_luma =
           (2 * grain_params.ar_coeff_lag * (grain_params.ar_coeff_lag + 1))
@@ -887,7 +888,9 @@
         if !grain_params.scaling_points_y.is_empty() {
           num_pos_chroma = num_pos_luma + 1;
           for i in 0..num_pos_luma {
-            self.write(8, (grain_params.ar_coeffs_y[i] as i16 + 128) as u8)?;
+            self.write::<8, u8>(
+              (grain_params.ar_coeffs_y[i] as i16 + 128) as u8,
+            )?;
           }
         } else {
           num_pos_chroma = num_pos_luma;
@@ -897,30 +900,32 @@
           || !grain_params.scaling_points_cb.is_empty()
         {
           for i in 0..num_pos_chroma {
-            self
-              .write(8, (grain_params.ar_coeffs_cb[i] as i16 + 128) as u8)?;
+            self.write::<8, u8>(
+              (grain_params.ar_coeffs_cb[i] as i16 + 128) as u8,
+            )?;
           }
         }
         if chroma_scaling_from_luma
           || !grain_params.scaling_points_cr.is_empty()
         {
           for i in 0..num_pos_chroma {
-            self
-              .write(8, (grain_params.ar_coeffs_cr[i] as i16 + 128) as u8)?;
+            self.write::<8, u8>(
+              (grain_params.ar_coeffs_cr[i] as i16 + 128) as u8,
+            )?;
           }
         }
 
-        self.write(2, grain_params.ar_coeff_shift - 6)?;
-        self.write(2, grain_params.grain_scale_shift)?;
+        self.write::<2, u8>(grain_params.ar_coeff_shift - 6)?;
+        self.write::<2, u8>(grain_params.grain_scale_shift)?;
         if !grain_params.scaling_points_cb.is_empty() {
-          self.write(8, grain_params.cb_mult)?;
-          self.write(8, grain_params.cb_luma_mult)?;
-          self.write(9, grain_params.cb_offset)?;
+          self.write::<8, u8>(grain_params.cb_mult)?;
+          self.write::<8, u8>(grain_params.cb_luma_mult)?;
+          self.write::<9, u16>(grain_params.cb_offset)?;
         }
         if !grain_params.scaling_points_cr.is_empty() {
-          self.write(8, grain_params.cr_mult)?;
-          self.write(8, grain_params.cr_luma_mult)?;
-          self.write(9, grain_params.cr_offset)?;
+          self.write::<8, u8>(grain_params.cr_mult)?;
+          self.write::<8, u8>(grain_params.cr_luma_mult)?;
+          self.write::<9, u16>(grain_params.cr_offset)?;
         }
         self.write_bit(grain_params.overlap_flag)?;
         self.write_bit(fi.sequence.pixel_range == PixelRange::Limited)?;
@@ -950,10 +955,10 @@
     let height_bits = log_in_base_2(height as u32) as u32 + 1;
     assert!(width_bits <= 16);
     assert!(height_bits <= 16);
-    self.write(4, width_bits - 1)?;
-    self.write(4, height_bits - 1)?;
-    self.write(width_bits, width as u16)?;
-    self.write(height_bits, height as u16)?;
+    self.write::<4, u32>(width_bits - 1)?;
+    self.write::<4, u32>(height_bits - 1)?;
+    self.write_var(width_bits, width as u16)?;
+    self.write_var(height_bits, height as u16)?;
     Ok(())
   }
 
@@ -969,8 +974,8 @@
       let height_bits = log_in_base_2(height as u32) as u32 + 1;
       assert!(width_bits <= 16);
       assert!(height_bits <= 16);
-      self.write(width_bits, width as u16)?;
-      self.write(height_bits, height as u16)?;
+      self.write_var(width_bits, width as u16)?;
+      self.write_var(height_bits, height as u16)?;
     }
     if fi.sequence.enable_superres {
       unimplemented!();
@@ -983,8 +988,8 @@
   ) -> io::Result<()> {
     self.write_bit(fi.render_and_frame_size_different)?;
     if fi.render_and_frame_size_different {
-      self.write(16, fi.render_width - 1)?;
-      self.write(16, fi.render_height - 1)?;
+      self.write::<16, u32>(fi.render_width - 1)?;
+      self.write::<16, u32>(fi.render_height - 1)?;
     }
     Ok(())
   }
@@ -1027,7 +1032,7 @@
         self.write_bit(deblock.block_deltas_enabled)?;
       }
       if deblock.block_deltas_enabled {
-        self.write(2, deblock.block_delta_shift)?;
+        self.write::<2, u8>(deblock.block_delta_shift)?;
         self.write_bit(deblock.block_delta_multi)?;
       }
     }
@@ -1043,16 +1048,16 @@
       MAX_PLANES
     };
     assert!(deblock.levels[0] < 64);
-    self.write(6, deblock.levels[0])?; // loop deblocking filter level 0
+    self.write::<6, u8>(deblock.levels[0])?; // loop deblocking filter level 0
     assert!(deblock.levels[1] < 64);
-    self.write(6, deblock.levels[1])?; // loop deblocking filter level 1
+    self.write::<6, u8>(deblock.levels[1])?; // loop deblocking filter level 1
     if planes > 1 && (deblock.levels[0] > 0 || deblock.levels[1] > 0) {
       assert!(deblock.levels[2] < 64);
-      self.write(6, deblock.levels[2])?; // loop deblocking filter level 2
+      self.write::<6, u8>(deblock.levels[2])?; // loop deblocking filter level 
2
       assert!(deblock.levels[3] < 64);
-      self.write(6, deblock.levels[3])?; // loop deblocking filter level 3
+      self.write::<6, u8>(deblock.levels[3])?; // loop deblocking filter level 
3
     }
-    self.write(3, deblock.sharpness)?; // deblocking filter sharpness
+    self.write::<3, u8>(deblock.sharpness)?; // deblocking filter sharpness
     self.write_bit(deblock.deltas_enabled)?; // loop deblocking filter deltas 
enabled
     if deblock.deltas_enabled {
       self.write_bit(deblock.delta_updates_enabled)?; // deltas updates enabled
@@ -1069,7 +1074,7 @@
           let update = deblock.ref_deltas[i] != prev_ref_deltas[i];
           self.write_bit(update)?;
           if update {
-            self.write_signed(7, deblock.ref_deltas[i])?;
+            self.write_signed::<7, i8>(deblock.ref_deltas[i])?;
           }
         }
         // conditionally write mode delta updates
@@ -1084,7 +1089,7 @@
           let update = deblock.mode_deltas[i] != prev_mode_deltas[i];
           self.write_bit(update)?;
           if update {
-            self.write_signed(7, deblock.mode_deltas[i])?;
+            self.write_signed::<7, i8>(deblock.mode_deltas[i])?;
           }
         }
       }
@@ -1098,15 +1103,15 @@
     if fi.sequence.enable_cdef && !fi.allow_intrabc {
       assert!(fi.cdef_damping >= 3);
       assert!(fi.cdef_damping <= 6);
-      self.write(2, fi.cdef_damping - 3)?;
+      self.write::<2, u8>(fi.cdef_damping - 3)?;
       assert!(fi.cdef_bits < 4);
-      self.write(2, fi.cdef_bits)?; // cdef bits
+      self.write::<2, u8>(fi.cdef_bits)?; // cdef bits
       for i in 0..(1 << fi.cdef_bits) {
         assert!(fi.cdef_y_strengths[i] < 64);
         assert!(fi.cdef_uv_strengths[i] < 64);
-        self.write(6, fi.cdef_y_strengths[i])?; // cdef y strength
+        self.write::<6, u8>(fi.cdef_y_strengths[i])?; // cdef y strength
         if fi.sequence.chroma_sampling != ChromaSampling::Cs400 {
-          self.write(6, fi.cdef_uv_strengths[i])?; // cdef uv strength
+          self.write::<6, u8>(fi.cdef_uv_strengths[i])?; // cdef uv strength
         }
       }
     }
@@ -1126,7 +1131,7 @@
       let mut use_lrf = false;
       let mut use_chroma_lrf = false;
       for i in 0..planes {
-        self.write(2, rs.planes[i].cfg.lrf_type)?; // filter type by plane
+        self.write::<2, u8>(rs.planes[i].cfg.lrf_type)?; // filter type by 
plane
         if rs.planes[i].cfg.lrf_type != RESTORE_NONE {
           use_lrf = true;
           if i > 0 {
@@ -1137,20 +1142,19 @@
       if use_lrf {
         // The Y shift value written here indicates shift up from superblock 
size
         if !fi.sequence.use_128x128_superblock {
-          self.write(1, u8::from(rs.planes[0].cfg.unit_size > 64))?;
+          self.write::<1, u8>(u8::from(rs.planes[0].cfg.unit_size > 64))?;
         }
 
         if rs.planes[0].cfg.unit_size > 64 {
-          self.write(1, u8::from(rs.planes[0].cfg.unit_size > 128))?;
+          self.write::<1, u8>(u8::from(rs.planes[0].cfg.unit_size > 128))?;
         }
 
         if use_chroma_lrf
           && fi.sequence.chroma_sampling == ChromaSampling::Cs420
         {
-          self.write(
-            1,
-            u8::from(rs.planes[0].cfg.unit_size > rs.planes[1].cfg.unit_size),
-          )?;
+          self.write::<1, u8>(u8::from(
+            rs.planes[0].cfg.unit_size > rs.planes[1].cfg.unit_size,
+          ))?;
         }
       }
     }
@@ -1182,9 +1186,9 @@
               let bits = seg_feature_bits[j];
               let data = segmentation.data[i][j];
               if seg_feature_is_signed[j] {
-                self.write_signed(bits + 1, data)?;
+                self.write_signed_var(bits + 1, data)?;
               } else {
-                self.write(bits, data)?;
+                self.write_var(bits, data)?;
               }
             }
           }
@@ -1198,7 +1202,7 @@
     self.write_bit(delta_q != 0)?;
     if delta_q != 0 {
       assert!((-63..=63).contains(&delta_q));
-      self.write_signed(6 + 1, delta_q)?;
+      self.write_signed::<7, i8>(delta_q)?;
     }
     Ok(())
   }

++++++ rav1e.obsinfo ++++++
--- /var/tmp/diff_new_pack.ZI97wJ/_old  2025-08-17 14:50:05.863901139 +0200
+++ /var/tmp/diff_new_pack.ZI97wJ/_new  2025-08-17 14:50:05.867901304 +0200
@@ -1,5 +1,5 @@
 name: rav1e
-version: 0.8.0
-mtime: 1748021621
-commit: 1fd67cd1b4a39f69303f28ed27c5d2d3833110c4
+version: 0.8.1
+mtime: 1750066517
+commit: 1fe82de02510767539e89b2ee6fa846920ae2686
 

++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/rav1e/vendor.tar.zst 
/work/SRC/openSUSE:Factory/.rav1e.new.1085/vendor.tar.zst differ: char 7, line 1

Reply via email to