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