[INFO] cloning repository https://github.com/burhanahmeed/av1-compressor
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/burhanahmeed/av1-compressor" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fburhanahmeed%2Fav1-compressor", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fburhanahmeed%2Fav1-compressor'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 858c924b9cf135683e65f17993acd26874766c4f
[INFO] testing burhanahmeed/av1-compressor against master#0d162b25edd5bf0dba9a22e83b614f1113e90474 for pr-150681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fburhanahmeed%2Fav1-compressor" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/burhanahmeed/av1-compressor
[INFO] finished tweaking git repo https://github.com/burhanahmeed/av1-compressor
[INFO] tweaked toml for git repo https://github.com/burhanahmeed/av1-compressor written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/burhanahmeed/av1-compressor on toolchain 0d162b25edd5bf0dba9a22e83b614f1113e90474
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/burhanahmeed/av1-compressor already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded nasm-rs v0.2.5
[INFO] [stderr]   Downloaded lab v0.11.0
[INFO] [stderr]   Downloaded version-compare v0.2.1
[INFO] [stderr]   Downloaded terminal_size v0.4.3
[INFO] [stderr]   Downloaded scan_fmt v0.2.6
[INFO] [stderr]   Downloaded clap_complete v4.5.64
[INFO] [stderr]   Downloaded zmij v1.0.9
[INFO] [stderr]   Downloaded rusty-fork v0.3.1
[INFO] [stderr]   Downloaded av-metrics v0.9.1
[INFO] [stderr]   Downloaded ivf v0.1.4
[INFO] [stderr]   Downloaded proptest v1.9.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d9b4ff06132bdfcb3656bf4d64190bb1528696f88c9e1f38242682d55a20796e
[INFO] running `Command { std: "docker" "start" "-a" "d9b4ff06132bdfcb3656bf4d64190bb1528696f88c9e1f38242682d55a20796e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d9b4ff06132bdfcb3656bf4d64190bb1528696f88c9e1f38242682d55a20796e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d9b4ff06132bdfcb3656bf4d64190bb1528696f88c9e1f38242682d55a20796e", kill_on_drop: false }`
[INFO] [stdout] d9b4ff06132bdfcb3656bf4d64190bb1528696f88c9e1f38242682d55a20796e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 17cbe75dd427a3540dda7281de2d2c4d14454e7a332b03561c01087dfd8f2a97
[INFO] running `Command { std: "docker" "start" "-a" "17cbe75dd427a3540dda7281de2d2c4d14454e7a332b03561c01087dfd8f2a97", kill_on_drop: false }`
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling libc v0.2.179
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling syn v2.0.113
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling bytemuck v1.24.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling wide v0.7.33
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling av1-compressor v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `frame::Frame`
[INFO] [stdout]  --> src/encoder/state.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{frame::Frame, EncoderConfig};
[INFO] [stdout]   |             ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `frame::Diff`
[INFO] [stdout]  --> src/frame/superblock.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     frame::Diff,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block` and `Superblock`
[INFO] [stdout]  --> src/frame/mod.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use superblock::{Superblock, Block};
[INFO] [stdout]   |                      ^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PartitionType`
[INFO] [stdout]  --> src/partition/mod.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use patterns::{Partition, PartitionType};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PartitionDecision` and `decide_partition`
[INFO] [stdout]  --> src/partition/mod.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use decision::{decide_partition, PartitionDecision};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/prediction/intra.rs:250:31
[INFO] [stdout]     |
[INFO] [stdout] 250 |             prediction[idx] = ((128.0 * vertical_weight + 128.0 * horizontal_weight) as i16);
[INFO] [stdout]     |                               ^                                                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 250 -             prediction[idx] = ((128.0 * vertical_weight + 128.0 * horizontal_weight) as i16);
[INFO] [stdout] 250 +             prediction[idx] = (128.0 * vertical_weight + 128.0 * horizontal_weight) as i16;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `InterMode` and `predict_inter`
[INFO] [stdout]  --> src/prediction/mod.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use inter::{InterMode, predict_inter};
[INFO] [stdout]   |                 ^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MotionEstimation` and `ReferenceFrame`
[INFO] [stdout]  --> src/prediction/mod.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use motion::{MotionEstimation, MotionVector, ReferenceFrame};
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EncoderConfig`
[INFO] [stdout]   --> src/prediction/mod.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::{EncoderConfig, EncoderError, Frame};
[INFO] [stdout]    |             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EncoderError`
[INFO] [stdout]  --> src/transform/selector.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{EncoderConfig, EncoderError};
[INFO] [stdout]   |                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `select_transform`
[INFO] [stdout]   --> src/transform/mod.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use selector::{select_transform, TransformSize};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AdaptiveQuantization` and `calculate_adaptive_qp`
[INFO] [stdout]  --> src/quantization/mod.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use adaptive::{calculate_adaptive_qp, AdaptiveQuantization};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DeltaQParams` and `calculate_delta_q`
[INFO] [stdout]  --> src/quantization/mod.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use delta_q::{calculate_delta_q, DeltaQParams};
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Segment` and `SegmentationParams`
[INFO] [stdout]  --> src/quantization/mod.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use segmentation::{Segment, SegmentationParams};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DeblockParams`
[INFO] [stdout]  --> src/filter/mod.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use deblock::{apply_deblock, DeblockParams};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CdefParams`
[INFO] [stdout]  --> src/filter/mod.rs:8:28
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use cdef::{apply_cdef, CdefParams};
[INFO] [stdout]   |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RestorationParams`
[INFO] [stdout]  --> src/filter/mod.rs:9:42
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use restoration::{apply_restoration, RestorationParams};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `context::ContextModel`
[INFO] [stdout]  --> src/entropy/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use context::ContextModel;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SymbolFreq` and `Symbol`
[INFO] [stdout]  --> src/entropy/mod.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use symbol::{Symbol, SymbolFreq};
[INFO] [stdout]   |                  ^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TileJob` and `TileWorker`
[INFO] [stdout]  --> src/tile/mod.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use worker::{TileWorker, TileJob};
[INFO] [stdout]   |                  ^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GrainCharacteristics`
[INFO] [stdout]  --> src/filmgrain/mod.rs:6:35
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use analysis::{analyze_grain, GrainCharacteristics};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `synthesis::synthesize_grain`
[INFO] [stdout]  --> src/filmgrain/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use synthesis::synthesize_grain;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Mp4Box`
[INFO] [stdout]  --> src/mp4/boxes/avcc.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::Mp4Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `types`
[INFO] [stdout]  --> src/mp4/av1c.rs:7:37
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::boxes::{Mp4Box, BoxType, types};
[INFO] [stdout]   |                                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::H264Result`
[INFO] [stdout]  --> src/h264/nal.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::H264Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/h264/decoder.rs:485:34
[INFO] [stdout]     |
[INFO] [stdout] 485 |                     let offset = ((x as i32 - width as i32 / 2) + (y as i32 - height as i32 / 2));
[INFO] [stdout]     |                                  ^                                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 485 -                     let offset = ((x as i32 - width as i32 / 2) + (y as i32 - height as i32 / 2));
[INFO] [stdout] 485 +                     let offset = (x as i32 - width as i32 / 2) + (y as i32 - height as i32 / 2);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::H264Result`
[INFO] [stdout]  --> src/h264/motion.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::H264Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::H264Error`
[INFO] [stdout]  --> src/h264/cavlc.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::H264Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/h264/transform.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |         ((coeff * scale + q) >> (q_bits - 1))
[INFO] [stdout]    |         ^                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 49 -         ((coeff * scale + q) >> (q_bits - 1))
[INFO] [stdout] 49 +         (coeff * scale + q) >> (q_bits - 1)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/prediction/motion.rs:224:5
[INFO] [stdout]     |
[INFO] [stdout] 224 |     range: u8,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/prediction/mod.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 121 |     state: &crate::encoder::state::EncoderState,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `oo1`
[INFO] [stdout]    --> src/transform/dct.rs:263:9
[INFO] [stdout]     |
[INFO] [stdout] 263 |     let oo1 = o1 + o2;
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_oo1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `oo2`
[INFO] [stdout]    --> src/transform/dct.rs:264:9
[INFO] [stdout]     |
[INFO] [stdout] 264 |     let oo2 = o1 - o2;
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_oo2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:287:12
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn fdct_16(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 | fn idct_16(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:299:12
[INFO] [stdout]     |
[INFO] [stdout] 299 | fn fdct_32(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:305:12
[INFO] [stdout]     |
[INFO] [stdout] 305 | fn idct_32(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:311:12
[INFO] [stdout]     |
[INFO] [stdout] 311 | fn fdct_64(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:317:12
[INFO] [stdout]     |
[INFO] [stdout] 317 | fn idct_64(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/transform/adst.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn fadst_4(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/transform/adst.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn iadst_4(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/transform/adst.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn fadst_8(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/transform/adst.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn iadst_8(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]  --> src/transform/identity.rs:7:45
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn identity_transform(residual: &[i16], size: u32) -> Vec<i16> {
[INFO] [stdout]   |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]    --> src/transform/selector.rs:165:41
[INFO] [stdout]     |
[INFO] [stdout] 165 | fn calculate_variance(residual: &[i16], size: u32) -> f64 {
[INFO] [stdout]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_qp`
[INFO] [stdout]   --> src/quantization/delta_q.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     base_qp: u8,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_qp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rate`
[INFO] [stdout]    --> src/entropy/arithmetic.rs:173:17
[INFO] [stdout]     |
[INFO] [stdout] 173 |             let rate = 8; // Adaptation rate
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `coefficients`
[INFO] [stdout]   --> src/entropy/mod.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     coefficients: &[i32],
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_coefficients`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bitstream/writer.rs:61:32
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn write_ue(&mut self, mut value: u32) {
[INFO] [stdout]    |                                ----^^^^^
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_frames`
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:20:41
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(width: u32, height: u32, num_frames: u32, timescale: u32) -> Self {
[INFO] [stdout]    |                                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_frames`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:298:20
[INFO] [stdout]     |
[INFO] [stdout] 298 | fn av01_entry_size(width: u32, height: u32, av1c: &Av1CBox) -> u32 {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:298:32
[INFO] [stdout]     |
[INFO] [stdout] 298 | fn av01_entry_size(width: u32, height: u32, av1c: &Av1CBox) -> u32 {
[INFO] [stdout]     |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_data`
[INFO] [stdout]   --> src/mp4/muxer.rs:83:33
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub fn add_frame(&mut self, frame_data: &[u8], _pts: u64, _keyframe: bool) -> io::Result<()> {
[INFO] [stdout]    |                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/mp4/muxer.rs:94:21
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn finalize(mut self) -> io::Result<()> {
[INFO] [stdout]    |                     ----^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mdat_size`
[INFO] [stdout]    --> src/mp4/muxer.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let mdat_size = 8 + data_size;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mdat_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_delta`
[INFO] [stdout]    --> src/mp4/muxer.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |     let sample_delta = (config.timescale * config.fps_den) / config.fps_num;
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_delta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moov_size`
[INFO] [stdout]    --> src/mp4/muxer.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let moov_size = moov.box_size();
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_moov_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nal_ref_idc`
[INFO] [stdout]   --> src/h264/nal.rs:65:24
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn from_header(nal_ref_idc: u8, nal_unit_type: u8) -> Option<Self> {
[INFO] [stdout]    |                        ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nal_ref_idc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sps`
[INFO] [stdout]    --> src/h264/decoder.rs:331:5
[INFO] [stdout]     |
[INFO] [stdout] 331 |     sps: &sps::SeqParameterSet,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_sps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `qp`
[INFO] [stdout]    --> src/h264/decoder.rs:332:5
[INFO] [stdout]     |
[INFO] [stdout] 332 |     qp: u8,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_qp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pred_mode`
[INFO] [stdout]    --> src/h264/decoder.rs:341:26
[INFO] [stdout]     |
[INFO] [stdout] 341 |         MbType::I16x16 { pred_mode, .. } => {
[INFO] [stdout]     |                          ^^^^^^^^^ help: try ignoring the field: `pred_mode: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sps`
[INFO] [stdout]    --> src/h264/decoder.rs:378:5
[INFO] [stdout]     |
[INFO] [stdout] 378 |     sps: &sps::SeqParameterSet,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_sps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sps`
[INFO] [stdout]    --> src/h264/decoder.rs:569:9
[INFO] [stdout]     |
[INFO] [stdout] 569 |         sps: &sps::SeqParameterSet,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_sps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sps`
[INFO] [stdout]    --> src/h264/decoder.rs:618:9
[INFO] [stdout]     |
[INFO] [stdout] 618 |         sps: &sps::SeqParameterSet,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_sps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `bit` is never read
[INFO] [stdout]    --> src/h264/bitreader.rs:140:23
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let mut bit = false;
[INFO] [stdout]     |                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]    --> src/h264/intra.rs:276:15
[INFO] [stdout]     |
[INFO] [stdout] 276 |     fn calc_b(height: i32, v_grad: i32) -> i32 {
[INFO] [stdout]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/h264/intra.rs:281:15
[INFO] [stdout]     |
[INFO] [stdout] 281 |     fn calc_c(width: i32, h_grad: i32) -> i32 {
[INFO] [stdout]     |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sse` is never read
[INFO] [stdout]   --> src/encoder/mod.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct ModeDecision {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub sse: i64,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK_SIZE` is never used
[INFO] [stdout]   --> src/encoder/mod.rs:81:11
[INFO] [stdout]    |
[INFO] [stdout] 81 |     const BLOCK_SIZE: u32 = 64;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `state` is never read
[INFO] [stdout]    --> src/encoder/mod.rs:172:5
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub struct Encoder {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 171 |     config: EncoderConfig,
[INFO] [stdout] 172 |     state: EncoderState,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `reference_frames`, `cdf_tables`, and `last_qp` are never read
[INFO] [stdout]   --> src/encoder/state.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct EncoderState {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 10 |     /// Reference frames for inter prediction.
[INFO] [stdout] 11 |     reference_frames: VecDeque<ReferenceFrame>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     cdf_tables: CdfState,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     last_qp: Vec<u8>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `store_reference`, `get_reference`, `last_reference`, and `update_cdf` are never used
[INFO] [stdout]   --> src/encoder/state.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl EncoderState {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn store_reference(&mut self, frame: ReconstructedFrame, frame_type: crate::frame::FrameType) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn get_reference(&self, index: usize) -> Option<&ReferenceFrame> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn last_reference(&self) -> Option<&ReferenceFrame> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn update_cdf(&mut self, symbols: &[u32]) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `frame` and `frame_type` are never read
[INFO] [stdout]   --> src/encoder/state.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct ReferenceFrame {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 61 |     /// The reconstructed frame data.
[INFO] [stdout] 62 |     pub frame: ReconstructedFrame,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub frame_type: crate::frame::FrameType,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width`, `height`, `y_plane`, `u_plane`, and `v_plane` are never read
[INFO] [stdout]   --> src/encoder/state.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct ReconstructedFrame {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 71 |     /// Frame width.
[INFO] [stdout] 72 |     pub width: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub height: u32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub y_plane: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub u_plane: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub v_plane: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ReconstructedFrame` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `intra_mode_cdf`, `inter_mode_cdf`, `transform_cdf`, and `coef_cdf` are never read
[INFO] [stdout]    --> src/encoder/state.rs:91:5
[INFO] [stdout]     |
[INFO] [stdout]  89 | pub struct CdfState {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout]  90 |     /// Intra prediction mode CDFs.
[INFO] [stdout]  91 |     intra_mode_cdf: Vec<Vec<u16>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     inter_mode_cdf: Vec<Vec<u16>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     transform_cdf: Vec<Vec<u16>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     coef_cdf: Vec<Vec<u16>>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, `intra_mode_cdf`, and `transform_cdf` are never used
[INFO] [stdout]    --> src/encoder/state.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl CdfState {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 104 |     /// Create new CDF state with initial probabilities.
[INFO] [stdout] 105 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn update(&mut self, symbols: &[u32]) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn intra_mode_cdf(&self, block_size: u8) -> &[u16] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn transform_cdf(&self, tx_size: u8) -> &[u16] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Diff` is never used
[INFO] [stdout]   --> src/frame/mod.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub type Diff = i16;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Coef` is never used
[INFO] [stdout]   --> src/frame/mod.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub type Coef = i32;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Residual` is never constructed
[INFO] [stdout]    --> src/frame/types.rs:317:12
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub struct Residual {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `set` are never used
[INFO] [stdout]    --> src/frame/types.rs:330:12
[INFO] [stdout]     |
[INFO] [stdout] 328 | impl Residual {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 329 |     /// Create a new residual with the given dimensions.
[INFO] [stdout] 330 |     pub fn new(width: u32, height: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     pub fn get(&self, x: u32, y: u32) -> Diff {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn set(&mut self, x: u32, y: u32, value: Diff) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `partitions`, `delta_q`, and `restoration_level` are never read
[INFO] [stdout]   --> src/frame/superblock.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Superblock {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub partitions: Vec<PartitionNode>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub delta_q: i8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub restoration_level: u8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Superblock` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Leaf` and `Internal` are never constructed
[INFO] [stdout]   --> src/frame/superblock.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum PartitionNode {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 60 |     /// Leaf node - contains a block.
[INFO] [stdout] 61 |     Leaf(Block),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     Internal {
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PartitionNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `prediction`, `motion_vector`, `transform`, `coefficients`, `skip`, and `lossless` are never read
[INFO] [stdout]    --> src/frame/superblock.rs:86:9
[INFO] [stdout]     |
[INFO] [stdout]  75 | pub struct Block {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub prediction: PredictionMode,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub motion_vector: Option<MotionVector>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub transform: TransformType,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub coefficients: Vec<i32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub skip: bool,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub lossless: bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Block` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frame/superblock.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl Block {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn width(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn height(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn pixel_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn coefficient_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn is_intra(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn is_inter(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn has_coefficients(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BlockSize` is never used
[INFO] [stdout]    --> src/frame/superblock.rs:164:10
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub enum BlockSize {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frame/superblock.rs:185:12
[INFO] [stdout]     |
[INFO] [stdout] 183 | impl BlockSize {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 184 |     /// Get the width of this block size.
[INFO] [stdout] 185 |     pub fn width(self) -> u32 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn height(self) -> u32 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn is_square(self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn width_log2(self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn height_log2(self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn area(self) -> u32 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn fits_in_sb128(self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `splits` and `child_count` are never used
[INFO] [stdout]   --> src/partition/patterns.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Partition {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 20 |     /// Check if this partition splits the block.
[INFO] [stdout] 21 |     pub fn splits(self) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn child_count(self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PartitionContext` is never used
[INFO] [stdout]   --> src/partition/patterns.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum PartitionContext {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_size` and `valid_partitions` are never used
[INFO] [stdout]   --> src/partition/patterns.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl PartitionContext {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 49 |     /// Get the partition context for a given block size.
[INFO] [stdout] 50 |     pub fn from_size(width: u32, height: u32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn valid_partitions(self) -> &'static [Partition] {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/partition/patterns.rs:85:5
[INFO] [stdout]     |
[INFO] [stdout]  83 | pub enum PartitionType {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout]  84 |     /// PARTITION_NONE
[INFO] [stdout]  85 |     None,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     Horizontal,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     Vertical,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     Quad,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     HorzA,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     HorzB,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     VertA,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     VertB,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     Horz4,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     Vert4,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PartitionType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decide_partition` is never used
[INFO] [stdout]   --> src/partition/decision.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn decide_partition(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simple_partition` is never used
[INFO] [stdout]   --> src/partition/decision.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn simple_partition(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_complexity` is never used
[INFO] [stdout]   --> src/partition/decision.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn calculate_complexity(x: u32, y: u32, size: u32, frame: &Frame) -> f64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PartitionDecision` is never constructed
[INFO] [stdout]   --> src/partition/decision.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct PartitionDecision {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `is_better_than` are never used
[INFO] [stdout]    --> src/partition/decision.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl PartitionDecision {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 114 |     /// Create a new partition decision.
[INFO] [stdout] 115 |     pub fn new(partition: Partition, rate: f64, distortion: f64, lambda: f64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn is_better_than(&self, other: &Self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/prediction/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum PredictionMode {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     V,
[INFO] [stdout]    |     ^
[INFO] [stdout] 20 |     H,
[INFO] [stdout]    |     ^
[INFO] [stdout] 21 |     Smooth,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 22 |     SmoothV,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 23 |     SmoothH,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 24 |     Paeth,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 25 |     Directional(u8), // 0-63 = angular directions
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 26 |     ChromaFromLuma,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     NearestMv,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 30 |     NearMv,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 31 |     ZeroMv,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 32 |     NewMv,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 33 |     Compound,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 34 |     CompoundWarped,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PredictionMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_intra`, `is_inter`, and `as_intra` are never used
[INFO] [stdout]   --> src/prediction/mod.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl PredictionMode {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn is_intra(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn is_inter(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn as_intra(self) -> Option<IntraMode> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `predict_frame` is never used
[INFO] [stdout]   --> src/prediction/mod.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn predict_frame(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `predict_superblock` is never used
[INFO] [stdout]   --> src/prediction/mod.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn predict_superblock(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `predict_block` is never used
[INFO] [stdout]    --> src/prediction/mod.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn predict_block(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PredictedSuperblock` is never constructed
[INFO] [stdout]    --> src/prediction/mod.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub struct PredictedSuperblock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PredictedBlock` is never constructed
[INFO] [stdout]    --> src/prediction/mod.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub struct PredictedBlock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SmoothV`, `SmoothH`, `Paeth`, `Directional`, and `ChromaFromLuma` are never constructed
[INFO] [stdout]   --> src/prediction/intra.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum IntraMode {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     SmoothV,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     SmoothH,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     Paeth,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     Directional(u8),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     ChromaFromLuma,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IntraMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `count`, `is_directional`, `angle`, `from_raw`, and `to_raw` are never used
[INFO] [stdout]   --> src/prediction/intra.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl IntraMode {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 35 |     /// Get the total number of intra modes.
[INFO] [stdout] 36 |     pub fn count() -> u8 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn is_directional(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn angle(self) -> Option<u8> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn from_raw(raw: u8) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn to_raw(self) -> u8 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InterMode` is never used
[INFO] [stdout]  --> src/prediction/inter.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum InterMode {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_compound` is never used
[INFO] [stdout]   --> src/prediction/inter.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl InterMode {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 28 |     /// Check if this mode uses compound prediction.
[INFO] [stdout] 29 |     pub fn is_compound(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `predict_inter` is never used
[INFO] [stdout]   --> src/prediction/inter.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn predict_inter(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `predict_compound` is never used
[INFO] [stdout]    --> src/prediction/inter.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn predict_compound(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `zero`, `is_zero`, `magnitude`, and `scale` are never used
[INFO] [stdout]   --> src/prediction/motion.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl MotionVector {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 17 |     /// Create a new motion vector.
[INFO] [stdout] 18 |     pub fn new(x: i16, y: i16, ref_frame: ReferenceFrame) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn zero(ref_frame: ReferenceFrame) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn is_zero(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn magnitude(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn scale(&self, scale: f64) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/prediction/motion.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub enum ReferenceFrame {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 50 |     /// Intra frame (no reference).
[INFO] [stdout] 51 |     Intra,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     Last,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     Last2,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     Last3,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     Golden,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     AltRef,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     AltRef2,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ReferenceFrame` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `index`, `is_backward`, and `is_forward` are never used
[INFO] [stdout]   --> src/prediction/motion.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | impl ReferenceFrame {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] 73 |     /// Get the index of this reference frame.
[INFO] [stdout] 74 |     pub fn index(self) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn is_backward(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn is_forward(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MotionEstimationParams` is never constructed
[INFO] [stdout]    --> src/prediction/motion.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct MotionEstimationParams {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MotionEstimation` is never constructed
[INFO] [stdout]    --> src/prediction/motion.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub struct MotionEstimation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_motion` is never used
[INFO] [stdout]    --> src/prediction/motion.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub fn estimate_motion(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `full_search` is never used
[INFO] [stdout]    --> src/prediction/motion.rs:182:4
[INFO] [stdout]     |
[INFO] [stdout] 182 | fn full_search(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `diamond_search` is never used
[INFO] [stdout]    --> src/prediction/motion.rs:218:4
[INFO] [stdout]     |
[INFO] [stdout] 218 | fn diamond_search(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_sad` is never used
[INFO] [stdout]    --> src/prediction/motion.rs:282:4
[INFO] [stdout]     |
[INFO] [stdout] 282 | fn calculate_sad(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/transform/mod.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum TransformType {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 23 |     DctAdst,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     AdstDct,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     AdstAdst,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     Identity,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     DctIdentity,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     IdentityAdst,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     AdstIdentity,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     IdentityIdentity,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TransformType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `default`, `has_horizontal`, `has_vertical`, `horizontal_type`, and `vertical_type` are never used
[INFO] [stdout]   --> src/transform/mod.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl TransformType {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 48 |     /// Get the default transform type.
[INFO] [stdout] 49 |     pub fn default() -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn has_horizontal(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn has_vertical(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn horizontal_type(self) -> TxType {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn vertical_type(self) -> TxType {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TxType` is never used
[INFO] [stdout]   --> src/transform/mod.rs:98:10
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub enum TxType {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transform_frame` is never used
[INFO] [stdout]    --> src/transform/mod.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn transform_frame(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `forward_transform_block` is never used
[INFO] [stdout]    --> src/transform/mod.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn forward_transform_block(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inverse_transform_block` is never used
[INFO] [stdout]    --> src/transform/mod.rs:174:8
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub fn inverse_transform_block(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransformedSuperblock` is never constructed
[INFO] [stdout]    --> src/transform/mod.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub struct TransformedSuperblock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransformedBlock` is never constructed
[INFO] [stdout]    --> src/transform/mod.rs:202:12
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub struct TransformedBlock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inverse_dct` is never used
[INFO] [stdout]    --> src/transform/dct.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn inverse_dct(coefficients: &[i32], size: u32) -> Vec<i16> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_1d` is never used
[INFO] [stdout]    --> src/transform/dct.rs:166:15
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub(crate) fn idct_1d(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_4` is never used
[INFO] [stdout]    --> src/transform/dct.rs:218:4
[INFO] [stdout]     |
[INFO] [stdout] 218 | fn idct_4(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `C1` is never used
[INFO] [stdout]    --> src/transform/dct.rs:254:11
[INFO] [stdout]     |
[INFO] [stdout] 254 |     const C1: i32 = 16069;  // cos(pi/16)
[INFO] [stdout]     |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `C2` is never used
[INFO] [stdout]    --> src/transform/dct.rs:255:11
[INFO] [stdout]     |
[INFO] [stdout] 255 |     const C2: i32 = 15137;  // cos(3pi/16)
[INFO] [stdout]     |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `C3` is never used
[INFO] [stdout]    --> src/transform/dct.rs:256:11
[INFO] [stdout]     |
[INFO] [stdout] 256 |     const C3: i32 = 11585;  // cos(5pi/16) = sin(3pi/16)
[INFO] [stdout]     |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `C4` is never used
[INFO] [stdout]    --> src/transform/dct.rs:257:11
[INFO] [stdout]     |
[INFO] [stdout] 257 |     const C4: i32 = 6270;   // cos(7pi/16) = sin(pi/16)
[INFO] [stdout]     |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_8` is never used
[INFO] [stdout]    --> src/transform/dct.rs:281:4
[INFO] [stdout]     |
[INFO] [stdout] 281 | fn idct_8(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_16` is never used
[INFO] [stdout]    --> src/transform/dct.rs:293:4
[INFO] [stdout]     |
[INFO] [stdout] 293 | fn idct_16(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_32` is never used
[INFO] [stdout]    --> src/transform/dct.rs:305:4
[INFO] [stdout]     |
[INFO] [stdout] 305 | fn idct_32(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_64` is never used
[INFO] [stdout]    --> src/transform/dct.rs:317:4
[INFO] [stdout]     |
[INFO] [stdout] 317 | fn idct_64(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_generic` is never used
[INFO] [stdout]    --> src/transform/dct.rs:345:4
[INFO] [stdout]     |
[INFO] [stdout] 345 | fn idct_generic(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `forward_adst` is never used
[INFO] [stdout]  --> src/transform/adst.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn forward_adst(residual: &[i16], _size: u32) -> Vec<i32> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inverse_adst` is never used
[INFO] [stdout]   --> src/transform/adst.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn inverse_adst(coefficients: &[i32], _size: u32) -> Vec<i16> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fadst_1d` is never used
[INFO] [stdout]   --> src/transform/adst.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn fadst_1d(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iadst_1d` is never used
[INFO] [stdout]   --> src/transform/adst.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn iadst_1d(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fadst_4` is never used
[INFO] [stdout]   --> src/transform/adst.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn fadst_4(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iadst_4` is never used
[INFO] [stdout]   --> src/transform/adst.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn iadst_4(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fadst_8` is never used
[INFO] [stdout]   --> src/transform/adst.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn fadst_8(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iadst_8` is never used
[INFO] [stdout]   --> src/transform/adst.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn iadst_8(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `identity_transform` is never used
[INFO] [stdout]  --> src/transform/identity.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn identity_transform(residual: &[i16], size: u32) -> Vec<i16> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inverse_identity_transform` is never used
[INFO] [stdout]   --> src/transform/identity.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn inverse_identity_transform(coefficients: &[i32], size: u32) -> Vec<i16> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Tx4x4`, `Tx8x8`, `Tx16x16`, and `Tx32x32` are never constructed
[INFO] [stdout]   --> src/transform/selector.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum TransformSize {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout]  9 |     Tx4x4,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 10 |     Tx8x8,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 11 |     Tx16x16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 12 |     Tx32x32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TransformSize` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `size`, `size_log2`, `coefficient_count`, `from_block_size`, `fits_in_block`, and `all` are never used
[INFO] [stdout]   --> src/transform/selector.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl TransformSize {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 17 |     /// Get the width/height of this transform size (square).
[INFO] [stdout] 18 |     pub fn size(self) -> u32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn size_log2(self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn coefficient_count(self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn from_block_size(block_size: u32) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn fits_in_block(self, block_size: u32) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn all() -> &'static [TransformSize] {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_transform` is never used
[INFO] [stdout]   --> src/transform/selector.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn select_transform(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_transform_size` is never used
[INFO] [stdout]    --> src/transform/selector.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn select_transform_size(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_energy` is never used
[INFO] [stdout]    --> src/transform/selector.rs:160:4
[INFO] [stdout]     |
[INFO] [stdout] 160 | fn calculate_energy(residual: &[i16]) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_variance` is never used
[INFO] [stdout]    --> src/transform/selector.rs:165:4
[INFO] [stdout]     |
[INFO] [stdout] 165 | fn calculate_variance(residual: &[i16], size: u32) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_horizontal_gradient` is never used
[INFO] [stdout]    --> src/transform/selector.rs:177:4
[INFO] [stdout]     |
[INFO] [stdout] 177 | fn calculate_horizontal_gradient(residual: &[i16], _block_x: u32) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_vertical_gradient` is never used
[INFO] [stdout]    --> src/transform/selector.rs:204:4
[INFO] [stdout]     |
[INFO] [stdout] 204 | fn calculate_vertical_gradient(residual: &[i16], _block_y: u32) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dequantize` is never used
[INFO] [stdout]   --> src/quantization/mod.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn dequantize(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_dequant_scale` is never used
[INFO] [stdout]    --> src/quantization/mod.rs:100:4
[INFO] [stdout]     |
[INFO] [stdout] 100 | fn get_dequant_scale(q_index: u8, tx_size: TransformSize) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quantize_frame` is never used
[INFO] [stdout]    --> src/quantization/mod.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub fn quantize_frame(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QuantizedSuperblock` is never constructed
[INFO] [stdout]    --> src/quantization/mod.rs:151:12
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub struct QuantizedSuperblock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QuantizedBlock` is never constructed
[INFO] [stdout]    --> src/quantization/mod.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub struct QuantizedBlock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdaptiveQuantization` is never constructed
[INFO] [stdout]  --> src/quantization/adaptive.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct AdaptiveQuantization {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_adaptive_qp` is never used
[INFO] [stdout]   --> src/quantization/adaptive.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn calculate_adaptive_qp(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_importance` is never used
[INFO] [stdout]   --> src/quantization/adaptive.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn calculate_importance(sb_x: u32, sb_y: u32, frame: &Frame) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_edge_density` is never used
[INFO] [stdout]   --> src/quantization/adaptive.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn calculate_edge_density(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_texture_complexity` is never used
[INFO] [stdout]    --> src/quantization/adaptive.rs:134:4
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn calculate_texture_complexity(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeltaQParams` is never constructed
[INFO] [stdout]  --> src/quantization/delta_q.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct DeltaQParams {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_delta_q` is never used
[INFO] [stdout]   --> src/quantization/delta_q.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn calculate_delta_q(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_superblock_activity` is never used
[INFO] [stdout]   --> src/quantization/delta_q.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn calculate_superblock_activity(superblock: &Superblock) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_delta_q` is never used
[INFO] [stdout]   --> src/quantization/delta_q.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn apply_delta_q(base_qp: u8, delta_q: i8) -> u8 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SegmentationParams` is never constructed
[INFO] [stdout]  --> src/quantization/segmentation.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct SegmentationParams {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Segment` is never constructed
[INFO] [stdout]   --> src/quantization/segmentation.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Segment {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `q_index` are never used
[INFO] [stdout]   --> src/quantization/segmentation.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl Segment {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 45 |     /// Create a new segment.
[INFO] [stdout] 46 |     pub fn new(id: u8) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn q_index(&self, base_q: u8) -> u8 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SegmentMap` is never constructed
[INFO] [stdout]   --> src/quantization/segmentation.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct SegmentMap {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_segment`, and `set_segment` are never used
[INFO] [stdout]   --> src/quantization/segmentation.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl SegmentMap {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 72 |     /// Create a new segment map.
[INFO] [stdout] 73 |     pub fn new(num_segments: u8, num_superblocks: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn get_segment(&self, sb_idx: usize) -> Option<&Segment> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn set_segment(&mut self, sb_idx: usize, seg_id: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `segment_frame` is never used
[INFO] [stdout]   --> src/quantization/segmentation.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn segment_frame(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_superblock_luma` is never used
[INFO] [stdout]    --> src/quantization/segmentation.rs:157:4
[INFO] [stdout]     |
[INFO] [stdout] 157 | fn calculate_superblock_luma(sb_x: u32, sb_y: u32, frame: &Frame) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_all_filters` is never used
[INFO] [stdout]   --> src/filter/mod.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn apply_all_filters(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FilterParams` is never constructed
[INFO] [stdout]   --> src/filter/mod.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct FilterParams {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeblockParams` is never constructed
[INFO] [stdout]  --> src/filter/deblock.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct DeblockParams {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_deblock` is never used
[INFO] [stdout]   --> src/filter/deblock.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn apply_deblock(frame: &Frame, config: &EncoderConfig) -> Result<Frame, EncoderError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deblock_plane` is never used
[INFO] [stdout]   --> src/filter/deblock.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn deblock_plane(plane: &mut crate::frame::Plane, _level: u8, _width: u32, _height: u32) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CdefParams` is never constructed
[INFO] [stdout]  --> src/filter/cdef.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct CdefParams {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_cdef` is never used
[INFO] [stdout]   --> src/filter/cdef.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn apply_cdef(frame: &Frame, config: &EncoderConfig) -> Result<Frame, EncoderError> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cdef_plane` is never used
[INFO] [stdout]   --> src/filter/cdef.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn cdef_plane(plane: &mut crate::frame::Plane, strength: u8, width: u32, height: u32) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_direction` is never used
[INFO] [stdout]   --> src/filter/cdef.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn find_direction(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_directional_filter` is never used
[INFO] [stdout]   --> src/filter/cdef.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn apply_directional_filter(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]    --> src/filter/cdef.rs:100:10
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub enum Direction {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `degrees` is never used
[INFO] [stdout]    --> src/filter/cdef.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl Direction {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 112 |     /// Get angle in degrees.
[INFO] [stdout] 113 |     pub fn degrees(self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RestorationType` is never used
[INFO] [stdout]  --> src/filter/restoration.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum RestorationType {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RestorationParams` is never constructed
[INFO] [stdout]   --> src/filter/restoration.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct RestorationParams {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_restoration` is never used
[INFO] [stdout]   --> src/filter/restoration.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn apply_restoration(frame: &Frame, config: &EncoderConfig) -> Result<Frame, EncoderError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wiener_filter` is never used
[INFO] [stdout]   --> src/filter/restoration.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn wiener_filter(
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_wiener_tile` is never used
[INFO] [stdout]   --> src/filter/restoration.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn apply_wiener_tile(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `self_guided_filter` is never used
[INFO] [stdout]    --> src/filter/restoration.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn self_guided_filter(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_sgr_block` is never used
[INFO] [stdout]    --> src/filter/restoration.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn apply_sgr_block(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WienerCoeffs` is never constructed
[INFO] [stdout]    --> src/filter/restoration.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub struct WienerCoeffs {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SgrParams` is never constructed
[INFO] [stdout]    --> src/filter/restoration.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct SgrParams {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_frame_entropy` is never used
[INFO] [stdout]   --> src/entropy/mod.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn encode_frame_entropy(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_superblock` is never used
[INFO] [stdout]   --> src/entropy/mod.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn encode_superblock(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_block` is never used
[INFO] [stdout]   --> src/entropy/mod.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn encode_block(
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `encode_bit` is never used
[INFO] [stdout]   --> src/entropy/arithmetic.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl ArithmeticEncoder {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn encode_bit(&mut self, bit: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `bit_zero`, `bit_one`, `run_length`, `coef_level`, and `update` are never used
[INFO] [stdout]    --> src/entropy/arithmetic.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl CdfTable {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn bit_zero() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn bit_one() -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn run_length() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn coef_level() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn update(&mut self, symbol: u32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ContextModel` is never constructed
[INFO] [stdout]  --> src/entropy/context.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ContextModel {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `probability`, `cdf`, `update`, and `rescale` are never used
[INFO] [stdout]   --> src/entropy/context.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ContextModel {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 14 |     /// Create a new context model with n symbols.
[INFO] [stdout] 15 |     pub fn new(num_symbols: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn probability(&self, symbol: usize) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn cdf(&self) -> Vec<u16> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn update(&mut self, symbol: usize) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     fn rescale(&mut self) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Symbol` is never used
[INFO] [stdout]  --> src/entropy/symbol.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum Symbol {
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SymbolFreq` is never constructed
[INFO] [stdout]   --> src/entropy/symbol.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct SymbolFreq {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `frequency`, `update`, `probability`, and `rescale` are never used
[INFO] [stdout]   --> src/entropy/symbol.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl SymbolFreq {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 33 |     /// Create a new frequency table for n symbols.
[INFO] [stdout] 34 |     pub fn new(num_symbols: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn frequency(&self, symbol: u32) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn update(&mut self, symbol: u32) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn probability(&self, symbol: u32) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn rescale(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write_ue`, `write_se`, `write_bytes`, `bit_length`, `byte_length`, and `byte_align` are never used
[INFO] [stdout]    --> src/bitstream/writer.rs:61:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl BitWriter {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn write_ue(&mut self, mut value: u32) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn write_se(&mut self, value: i32) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn write_bytes(&mut self, bytes: &[u8]) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn bit_length(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn byte_length(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn byte_align(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/bitstream/obu.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum OBUType {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout]  8 |     /// Sequence header OBU.
[INFO] [stdout]  9 |     SequenceHeader,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TemporalDelimiter,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     FrameHeader,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     TileGroup,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     Metadata,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     Padding,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     Reserved(u8),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OBUType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_byte` is never used
[INFO] [stdout]   --> src/bitstream/obu.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl OBUType {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn from_byte(value: u8) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `size` are never used
[INFO] [stdout]    --> src/bitstream/obu.rs:81:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl OBUHeader {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  80 |     /// Create a new OBU header.
[INFO] [stdout]  81 |     pub fn new(obu_type: OBUType) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TileEncoder` is never constructed
[INFO] [stdout]   --> src/tile/mod.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct TileEncoder {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `encode_frame_parallel`, `create_tiles`, `encode_tile`, and `tile_count` are never used
[INFO] [stdout]    --> src/tile/mod.rs:29:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TileEncoder {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  28 |     /// Create a new tile encoder.
[INFO] [stdout]  29 |     pub fn new(config: EncoderConfig) -> Result<Self, EncoderError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub fn encode_frame_parallel(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     fn create_tiles(&self, frame: &Frame) -> Result<Vec<Tile>, EncoderError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     fn encode_tile(&self, tile: Tile, _frame: &Frame) -> Result<EncodedTile, EncoderError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn tile_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tile` is never constructed
[INFO] [stdout]    --> src/tile/mod.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct Tile {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EncodedTile` is never constructed
[INFO] [stdout]    --> src/tile/mod.rs:132:12
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub struct EncodedTile {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TileJob` is never constructed
[INFO] [stdout]  --> src/tile/worker.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct TileJob {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `process` are never used
[INFO] [stdout]   --> src/tile/worker.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl TileJob {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 16 |     /// Create a new tile job.
[INFO] [stdout] 17 |     pub fn new(tile: super::Tile, frame: Frame) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn process(self) -> Result<super::EncodedTile, EncoderError> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TileWorker` is never constructed
[INFO] [stdout]   --> src/tile/worker.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct TileWorker {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_job`, `process_jobs`, `take_results`, `pending_count`, and `index` are never used
[INFO] [stdout]   --> src/tile/worker.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl TileWorker {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 45 |     /// Create a new tile worker.
[INFO] [stdout] 46 |     pub fn new(index: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn add_job(&mut self, job: TileJob) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn process_jobs(&mut self) -> Result<(), EncoderError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn take_results(&mut self) -> Vec<super::EncodedTile> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn pending_count(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn index(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_film_grain` is never used
[INFO] [stdout]   --> src/filmgrain/mod.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn apply_film_grain(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GrainParams` is never constructed
[INFO] [stdout]   --> src/filmgrain/mod.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct GrainParams {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GrainCharacteristics` is never constructed
[INFO] [stdout]  --> src/filmgrain/analysis.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct GrainCharacteristics {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_grain` is never used
[INFO] [stdout]   --> src/filmgrain/analysis.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn analyze_grain(frame: &Frame) -> Result<super::GrainParams, EncoderError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `measure_grain_characteristics` is never used
[INFO] [stdout]   --> src/filmgrain/analysis.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn measure_grain_characteristics(frame: &Frame) -> GrainCharacteristics {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample_flat_regions` is never used
[INFO] [stdout]   --> src/filmgrain/analysis.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn sample_flat_regions(frame: &Frame) -> Vec<u8> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_variance` is never used
[INFO] [stdout]    --> src/filmgrain/analysis.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn calculate_variance(samples: &[u8]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_grain_size` is never used
[INFO] [stdout]    --> src/filmgrain/analysis.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn estimate_grain_size(_samples: &[u8]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `synthesize_grain` is never used
[INFO] [stdout]  --> src/filmgrain/synthesis.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn synthesize_grain(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_noise` is never used
[INFO] [stdout]   --> src/filmgrain/synthesis.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn generate_noise(width: u32, height: u32, params: &GrainParams) -> Vec<i16> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_noise` is never used
[INFO] [stdout]   --> src/filmgrain/synthesis.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn apply_noise(frame: &mut crate::Frame, noise: &[i16], params: &GrainParams) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_noise_to_sample` is never used
[INFO] [stdout]   --> src/filmgrain/synthesis.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn apply_noise_to_sample(sample: i16, noise: i16, strength: u8) -> i16 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `seeded_rng` is never used
[INFO] [stdout]   --> src/filmgrain/synthesis.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn seeded_rng(seed: u64) -> SimpleRng {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimpleRng` is never constructed
[INFO] [stdout]   --> src/filmgrain/synthesis.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct SimpleRng {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `next` are never used
[INFO] [stdout]   --> src/filmgrain/synthesis.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl SimpleRng {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 91 |     fn new(seed: u64) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     fn next(&mut self) -> u64 {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gaussian_noise` is never used
[INFO] [stdout]    --> src/filmgrain/synthesis.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn gaussian_noise(rng: &mut SimpleRng) -> i16 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config` and `mdat_start` are never read
[INFO] [stdout]   --> src/mp4/muxer.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct Mp4Muxer<W: Write> {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 50 |     writer: W,
[INFO] [stdout] 51 |     config: Mp4Config,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 52 |     frame_count: u32,
[INFO] [stdout] 53 |     mdat_start: u64,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_slice_data_start` is never used
[INFO] [stdout]    --> src/h264/decoder.rs:317:8
[INFO] [stdout]     |
[INFO] [stdout]  47 | impl H264Decoder {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 317 |     fn get_slice_data_start(&self, _data: &[u8], _sps: &sps::SeqParameterSet, _pps: &pps::PicParameterSet) -> H264Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/h264/decoder.rs:563:8
[INFO] [stdout]     |
[INFO] [stdout] 561 | impl H264Decoder {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 562 |     /// Decode I-frame macroblock.
[INFO] [stdout] 563 |     fn decode_i_macroblock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 612 |     fn decode_p_macroblock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 647 |     fn apply_intra_16x16_prediction(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 696 |     fn apply_intra_4x4_prediction(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 755 |     fn decode_residual_16x16(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 769 |     fn decode_residual_4x4_blocks(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 782 |     fn apply_skip_prediction(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 812 |     fn apply_motion_compensation(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 828 |     fn apply_motion_compensation_with_ref(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 858 |     fn decode_p_frame(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 915 |     fn decode_macroblocks_simple(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `n_c` is never read
[INFO] [stdout]   --> src/h264/cavlc.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct CavlcDecoder {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 21 |     /// Number of coefficient tokens decoded
[INFO] [stdout] 22 |     n_c: u8,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/encoder/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         expected: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/encoder/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         expected_h: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/encoder/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         actual: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/encoder/mod.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         actual_h: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/encoder/builder.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 |         if self.base_qindex > 255 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/mp4/boxes/dinf.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub mod dref {
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub stsd: StsdBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub stts: SttsBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub stsc: StscBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub stsz: StszBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub stco: StcoBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(width: u32, height: u32, num_frames: u32, timescale: u32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn with_frame_sizes(mut self, frame_sizes: &[u32], data_offset: u64) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub av1c: Av1CBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn new_av1(width: u32, height: u32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub sample_count: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub sample_delta: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 108 |     pub fn new_constant(timescale: u32) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 115 |     pub fn with_fps(mut self, fps_num: u32, fps_den: u32, timescale: u32) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub fn with_frame_count(mut self, count: u32) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     pub fn new_single_chunk() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:199:5
[INFO] [stdout]     |
[INFO] [stdout] 199 |     pub sizes: Vec<u32>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:200:5
[INFO] [stdout]     |
[INFO] [stdout] 200 |     pub sample_size: u32,  // 0 = variable sizes
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:204:5
[INFO] [stdout]     |
[INFO] [stdout] 204 |     pub fn new() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:211:5
[INFO] [stdout]     |
[INFO] [stdout] 211 |     pub fn with_sizes(frame_sizes: &[u32]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:252:5
[INFO] [stdout]     |
[INFO] [stdout] 252 |     pub offsets: Vec<u32>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:256:5
[INFO] [stdout]     |
[INFO] [stdout] 256 |     pub fn new() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 262 |     pub fn with_offset(offset: u64) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub tkhd: TkhdBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub mdia: MdiaBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new_video(track_id: u32, width: u32, height: u32, duration: u64, timescale: u32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub mdhd: super::MdhdBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub hdlr: super::HdlrBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub minf: MinfBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn new_video(width: u32, height: u32, duration: u64, timescale: u32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn with_stbl(mut self, stbl: super::StblBox) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub vmhd: super::VmhdBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub dinf: super::DinfBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub stbl: super::StblBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn new_video(width: u32, height: u32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/containers.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub mvhd: super::MvhdBox,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/containers.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub trak: TrakBox,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/containers.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn new_video(width: u32, height: u32, duration: u64, timescale: u32) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/mp4/boxes/containers.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 129 |     pub fn with_stbl(mut self, stbl: super::StblBox) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub const FTYP: BoxType = BoxType::new(b'f', b't', b'y', b'p');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub const MOOV: BoxType = BoxType::new(b'm', b'o', b'o', b'v');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub const MDAT: BoxType = BoxType::new(b'm', b'd', b'a', b't');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub const FREE: BoxType = BoxType::new(b'f', b'r', b'e', b'e');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub const SKIP: BoxType = BoxType::new(b's', b'k', b'i', b'p');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub const MVHD: BoxType = BoxType::new(b'm', b'v', b'h', b'd');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub const TRAK: BoxType = BoxType::new(b't', b'r', b'a', b'k');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub const MDIA: BoxType = BoxType::new(b'm', b'd', b'i', b'a');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub const MINF: BoxType = BoxType::new(b'm', b'i', b'n', b'f');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub const STBL: BoxType = BoxType::new(b's', b't', b'b', b'l');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub const STSD: BoxType = BoxType::new(b's', b't', b's', b'd');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub const AV01: BoxType = BoxType::new(b'a', b'v', b'0', b'1');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub const AVC1: BoxType = BoxType::new(b'a', b'v', b'c', b'1');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub const TKHD: BoxType = BoxType::new(b't', b'k', b'h', b'd');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub const MDHD: BoxType = BoxType::new(b'm', b'd', b'h', b'd');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub const HDLR: BoxType = BoxType::new(b'h', b'd', b'l', b'r');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub const VMHD: BoxType = BoxType::new(b'v', b'm', b'h', b'd');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub const DINF: BoxType = BoxType::new(b'd', b'i', b'n', b'f');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub const DREF: BoxType = BoxType::new(b'd', b'r', b'e', b'f');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub const URL:  BoxType = BoxType::new(b'u', b'r', b'l', b' ');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub const STTS: BoxType = BoxType::new(b's', b't', b't', b's');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub const STSC: BoxType = BoxType::new(b's', b't', b's', b'c');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub const STSZ: BoxType = BoxType::new(b's', b't', b's', b'z');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub const STCO: BoxType = BoxType::new(b's', b't', b'c', b'o');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub const MVEX: BoxType = BoxType::new(b'm', b'v', b'e', b'x');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub const TREX: BoxType = BoxType::new(b't', b'r', b'e', b'x');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/muxer.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fps_den: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/parser.rs:89:22
[INFO] [stdout]    |
[INFO] [stdout] 89 |     InvalidBoxSize { size: u64, box_type: String },
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/parser.rs:89:33
[INFO] [stdout]    |
[INFO] [stdout] 89 |     InvalidBoxSize { size: u64, box_type: String },
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/parser.rs:92:21
[INFO] [stdout]    |
[INFO] [stdout] 92 |     UnexpectedBox { expected: String, found: String },
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/parser.rs:92:39
[INFO] [stdout]    |
[INFO] [stdout] 92 |     UnexpectedBox { expected: String, found: String },
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/av1c.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub initial_presentation_delay: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/h264/nal.rs:310:22
[INFO] [stdout]     |
[INFO] [stdout] 310 |     pub fn bitreader(&self) -> BitReader {
[INFO] [stdout]     |                      ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 310 |     pub fn bitreader(&self) -> BitReader<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/h264/pps.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub transform_8x8_mode_flag: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/h264/motion.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(x: i32, y: i32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/h264/motion.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(max_ref_frames: usize) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     Vertical = 0,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     Horizontal = 1,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     Dc = 2,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     DiagonalDownLeft = 3,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     DiagonalDownRight = 4,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     VerticalRight = 5,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 93 |     HorizontalDown = 6,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     VerticalLeft = 7,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     HorizontalUp = 8,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/h264/macroblock.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     Dc = 0,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/h264/macroblock.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     Horizontal = 1,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/h264/macroblock.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     Vertical = 2,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/h264/macroblock.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     Plane = 3,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.47s
[INFO] running `Command { std: "docker" "inspect" "17cbe75dd427a3540dda7281de2d2c4d14454e7a332b03561c01087dfd8f2a97", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "17cbe75dd427a3540dda7281de2d2c4d14454e7a332b03561c01087dfd8f2a97", kill_on_drop: false }`
[INFO] [stdout] 17cbe75dd427a3540dda7281de2d2c4d14454e7a332b03561c01087dfd8f2a97
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d145182601b5d5218bd2aef535d974cdc752bbc2a8c270b53d1e5c6d5aa1bd93
[INFO] running `Command { std: "docker" "start" "-a" "d145182601b5d5218bd2aef535d974cdc752bbc2a8c270b53d1e5c6d5aa1bd93", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.179
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling zerocopy-derive v0.8.31
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling zmij v1.0.9
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling clap_lex v0.7.6
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling clap_builder v4.5.54
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling serde_json v1.0.148
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling clap v4.5.54
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling av1-compressor v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stdout] warning: unused import: `frame::Frame`
[INFO] [stdout]  --> src/encoder/state.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{frame::Frame, EncoderConfig};
[INFO] [stdout]   |             ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `frame::Diff`
[INFO] [stdout]  --> src/frame/superblock.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     frame::Diff,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block` and `Superblock`
[INFO] [stdout]  --> src/frame/mod.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use superblock::{Superblock, Block};
[INFO] [stdout]   |                      ^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PartitionType`
[INFO] [stdout]  --> src/partition/mod.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use patterns::{Partition, PartitionType};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PartitionDecision` and `decide_partition`
[INFO] [stdout]  --> src/partition/mod.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use decision::{decide_partition, PartitionDecision};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/prediction/intra.rs:250:31
[INFO] [stdout]     |
[INFO] [stdout] 250 |             prediction[idx] = ((128.0 * vertical_weight + 128.0 * horizontal_weight) as i16);
[INFO] [stdout]     |                               ^                                                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 250 -             prediction[idx] = ((128.0 * vertical_weight + 128.0 * horizontal_weight) as i16);
[INFO] [stdout] 250 +             prediction[idx] = (128.0 * vertical_weight + 128.0 * horizontal_weight) as i16;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `InterMode` and `predict_inter`
[INFO] [stdout]  --> src/prediction/mod.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use inter::{InterMode, predict_inter};
[INFO] [stdout]   |                 ^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MotionEstimation` and `ReferenceFrame`
[INFO] [stdout]  --> src/prediction/mod.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use motion::{MotionEstimation, MotionVector, ReferenceFrame};
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EncoderConfig`
[INFO] [stdout]   --> src/prediction/mod.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::{EncoderConfig, EncoderError, Frame};
[INFO] [stdout]    |             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EncoderError`
[INFO] [stdout]  --> src/transform/selector.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{EncoderConfig, EncoderError};
[INFO] [stdout]   |                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `select_transform`
[INFO] [stdout]   --> src/transform/mod.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use selector::{select_transform, TransformSize};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AdaptiveQuantization` and `calculate_adaptive_qp`
[INFO] [stdout]  --> src/quantization/mod.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use adaptive::{calculate_adaptive_qp, AdaptiveQuantization};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DeltaQParams` and `calculate_delta_q`
[INFO] [stdout]  --> src/quantization/mod.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use delta_q::{calculate_delta_q, DeltaQParams};
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Segment` and `SegmentationParams`
[INFO] [stdout]  --> src/quantization/mod.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use segmentation::{Segment, SegmentationParams};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DeblockParams`
[INFO] [stdout]  --> src/filter/mod.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use deblock::{apply_deblock, DeblockParams};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CdefParams`
[INFO] [stdout]  --> src/filter/mod.rs:8:28
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use cdef::{apply_cdef, CdefParams};
[INFO] [stdout]   |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RestorationParams`
[INFO] [stdout]  --> src/filter/mod.rs:9:42
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use restoration::{apply_restoration, RestorationParams};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `context::ContextModel`
[INFO] [stdout]  --> src/entropy/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use context::ContextModel;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SymbolFreq` and `Symbol`
[INFO] [stdout]  --> src/entropy/mod.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use symbol::{Symbol, SymbolFreq};
[INFO] [stdout]   |                  ^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TileJob` and `TileWorker`
[INFO] [stdout]  --> src/tile/mod.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use worker::{TileWorker, TileJob};
[INFO] [stdout]   |                  ^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GrainCharacteristics`
[INFO] [stdout]  --> src/filmgrain/mod.rs:6:35
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use analysis::{analyze_grain, GrainCharacteristics};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `synthesis::synthesize_grain`
[INFO] [stdout]  --> src/filmgrain/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use synthesis::synthesize_grain;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Mp4Box`
[INFO] [stdout]  --> src/mp4/boxes/avcc.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::Mp4Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `types`
[INFO] [stdout]  --> src/mp4/av1c.rs:7:37
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::boxes::{Mp4Box, BoxType, types};
[INFO] [stdout]   |                                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::H264Result`
[INFO] [stdout]  --> src/h264/nal.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::H264Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/h264/decoder.rs:485:34
[INFO] [stdout]     |
[INFO] [stdout] 485 |                     let offset = ((x as i32 - width as i32 / 2) + (y as i32 - height as i32 / 2));
[INFO] [stdout]     |                                  ^                                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 485 -                     let offset = ((x as i32 - width as i32 / 2) + (y as i32 - height as i32 / 2));
[INFO] [stdout] 485 +                     let offset = (x as i32 - width as i32 / 2) + (y as i32 - height as i32 / 2);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::H264Result`
[INFO] [stdout]  --> src/h264/motion.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::H264Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::H264Error`
[INFO] [stdout]  --> src/h264/cavlc.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::H264Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/h264/transform.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |         ((coeff * scale + q) >> (q_bits - 1))
[INFO] [stdout]    |         ^                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 49 -         ((coeff * scale + q) >> (q_bits - 1))
[INFO] [stdout] 49 +         (coeff * scale + q) >> (q_bits - 1)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling proptest v1.9.0
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/prediction/motion.rs:224:5
[INFO] [stdout]     |
[INFO] [stdout] 224 |     range: u8,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/prediction/mod.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 121 |     state: &crate::encoder::state::EncoderState,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `oo1`
[INFO] [stdout]    --> src/transform/dct.rs:263:9
[INFO] [stdout]     |
[INFO] [stdout] 263 |     let oo1 = o1 + o2;
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_oo1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `oo2`
[INFO] [stdout]    --> src/transform/dct.rs:264:9
[INFO] [stdout]     |
[INFO] [stdout] 264 |     let oo2 = o1 - o2;
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_oo2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:287:12
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn fdct_16(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 | fn idct_16(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:299:12
[INFO] [stdout]     |
[INFO] [stdout] 299 | fn fdct_32(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:305:12
[INFO] [stdout]     |
[INFO] [stdout] 305 | fn idct_32(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:311:12
[INFO] [stdout]     |
[INFO] [stdout] 311 | fn fdct_64(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:317:12
[INFO] [stdout]     |
[INFO] [stdout] 317 | fn idct_64(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/transform/adst.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn fadst_4(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/transform/adst.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn iadst_4(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/transform/adst.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn fadst_8(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/transform/adst.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn iadst_8(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]  --> src/transform/identity.rs:7:45
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn identity_transform(residual: &[i16], size: u32) -> Vec<i16> {
[INFO] [stdout]   |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]    --> src/transform/selector.rs:165:41
[INFO] [stdout]     |
[INFO] [stdout] 165 | fn calculate_variance(residual: &[i16], size: u32) -> f64 {
[INFO] [stdout]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_qp`
[INFO] [stdout]   --> src/quantization/delta_q.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     base_qp: u8,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_qp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rate`
[INFO] [stdout]    --> src/entropy/arithmetic.rs:173:17
[INFO] [stdout]     |
[INFO] [stdout] 173 |             let rate = 8; // Adaptation rate
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `coefficients`
[INFO] [stdout]   --> src/entropy/mod.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     coefficients: &[i32],
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_coefficients`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bitstream/writer.rs:61:32
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn write_ue(&mut self, mut value: u32) {
[INFO] [stdout]    |                                ----^^^^^
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_frames`
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:20:41
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(width: u32, height: u32, num_frames: u32, timescale: u32) -> Self {
[INFO] [stdout]    |                                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_frames`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:298:20
[INFO] [stdout]     |
[INFO] [stdout] 298 | fn av01_entry_size(width: u32, height: u32, av1c: &Av1CBox) -> u32 {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:298:32
[INFO] [stdout]     |
[INFO] [stdout] 298 | fn av01_entry_size(width: u32, height: u32, av1c: &Av1CBox) -> u32 {
[INFO] [stdout]     |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_data`
[INFO] [stdout]   --> src/mp4/muxer.rs:83:33
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub fn add_frame(&mut self, frame_data: &[u8], _pts: u64, _keyframe: bool) -> io::Result<()> {
[INFO] [stdout]    |                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/mp4/muxer.rs:94:21
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn finalize(mut self) -> io::Result<()> {
[INFO] [stdout]    |                     ----^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mdat_size`
[INFO] [stdout]    --> src/mp4/muxer.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let mdat_size = 8 + data_size;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mdat_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_delta`
[INFO] [stdout]    --> src/mp4/muxer.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |     let sample_delta = (config.timescale * config.fps_den) / config.fps_num;
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_delta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moov_size`
[INFO] [stdout]    --> src/mp4/muxer.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let moov_size = moov.box_size();
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_moov_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nal_ref_idc`
[INFO] [stdout]   --> src/h264/nal.rs:65:24
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn from_header(nal_ref_idc: u8, nal_unit_type: u8) -> Option<Self> {
[INFO] [stdout]    |                        ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nal_ref_idc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sps`
[INFO] [stdout]    --> src/h264/decoder.rs:331:5
[INFO] [stdout]     |
[INFO] [stdout] 331 |     sps: &sps::SeqParameterSet,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_sps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `qp`
[INFO] [stdout]    --> src/h264/decoder.rs:332:5
[INFO] [stdout]     |
[INFO] [stdout] 332 |     qp: u8,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_qp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pred_mode`
[INFO] [stdout]    --> src/h264/decoder.rs:341:26
[INFO] [stdout]     |
[INFO] [stdout] 341 |         MbType::I16x16 { pred_mode, .. } => {
[INFO] [stdout]     |                          ^^^^^^^^^ help: try ignoring the field: `pred_mode: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sps`
[INFO] [stdout]    --> src/h264/decoder.rs:378:5
[INFO] [stdout]     |
[INFO] [stdout] 378 |     sps: &sps::SeqParameterSet,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_sps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stdout] warning: unused variable: `sps`
[INFO] [stdout]    --> src/h264/decoder.rs:569:9
[INFO] [stdout]     |
[INFO] [stdout] 569 |         sps: &sps::SeqParameterSet,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_sps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sps`
[INFO] [stdout]    --> src/h264/decoder.rs:618:9
[INFO] [stdout]     |
[INFO] [stdout] 618 |         sps: &sps::SeqParameterSet,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_sps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `bit` is never read
[INFO] [stdout]    --> src/h264/bitreader.rs:140:23
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let mut bit = false;
[INFO] [stdout]     |                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]    --> src/h264/intra.rs:276:15
[INFO] [stdout]     |
[INFO] [stdout] 276 |     fn calc_b(height: i32, v_grad: i32) -> i32 {
[INFO] [stdout]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/h264/intra.rs:281:15
[INFO] [stdout]     |
[INFO] [stdout] 281 |     fn calc_c(width: i32, h_grad: i32) -> i32 {
[INFO] [stdout]     |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sse` is never read
[INFO] [stdout]   --> src/encoder/mod.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct ModeDecision {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub sse: i64,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK_SIZE` is never used
[INFO] [stdout]   --> src/encoder/mod.rs:81:11
[INFO] [stdout]    |
[INFO] [stdout] 81 |     const BLOCK_SIZE: u32 = 64;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `state` is never read
[INFO] [stdout]    --> src/encoder/mod.rs:172:5
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub struct Encoder {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 171 |     config: EncoderConfig,
[INFO] [stdout] 172 |     state: EncoderState,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `reference_frames`, `cdf_tables`, and `last_qp` are never read
[INFO] [stdout]   --> src/encoder/state.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct EncoderState {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 10 |     /// Reference frames for inter prediction.
[INFO] [stdout] 11 |     reference_frames: VecDeque<ReferenceFrame>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     cdf_tables: CdfState,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     last_qp: Vec<u8>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `store_reference`, `get_reference`, `last_reference`, and `update_cdf` are never used
[INFO] [stdout]   --> src/encoder/state.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl EncoderState {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn store_reference(&mut self, frame: ReconstructedFrame, frame_type: crate::frame::FrameType) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn get_reference(&self, index: usize) -> Option<&ReferenceFrame> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn last_reference(&self) -> Option<&ReferenceFrame> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn update_cdf(&mut self, symbols: &[u32]) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `frame` and `frame_type` are never read
[INFO] [stdout]   --> src/encoder/state.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct ReferenceFrame {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 61 |     /// The reconstructed frame data.
[INFO] [stdout] 62 |     pub frame: ReconstructedFrame,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub frame_type: crate::frame::FrameType,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width`, `height`, `y_plane`, `u_plane`, and `v_plane` are never read
[INFO] [stdout]   --> src/encoder/state.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct ReconstructedFrame {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 71 |     /// Frame width.
[INFO] [stdout] 72 |     pub width: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub height: u32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub y_plane: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub u_plane: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub v_plane: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ReconstructedFrame` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `intra_mode_cdf`, `inter_mode_cdf`, `transform_cdf`, and `coef_cdf` are never read
[INFO] [stdout]    --> src/encoder/state.rs:91:5
[INFO] [stdout]     |
[INFO] [stdout]  89 | pub struct CdfState {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout]  90 |     /// Intra prediction mode CDFs.
[INFO] [stdout]  91 |     intra_mode_cdf: Vec<Vec<u16>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     inter_mode_cdf: Vec<Vec<u16>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     transform_cdf: Vec<Vec<u16>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     coef_cdf: Vec<Vec<u16>>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, `intra_mode_cdf`, and `transform_cdf` are never used
[INFO] [stdout]    --> src/encoder/state.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl CdfState {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 104 |     /// Create new CDF state with initial probabilities.
[INFO] [stdout] 105 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn update(&mut self, symbols: &[u32]) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn intra_mode_cdf(&self, block_size: u8) -> &[u16] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn transform_cdf(&self, tx_size: u8) -> &[u16] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Diff` is never used
[INFO] [stdout]   --> src/frame/mod.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub type Diff = i16;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Coef` is never used
[INFO] [stdout]   --> src/frame/mod.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub type Coef = i32;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Residual` is never constructed
[INFO] [stdout]    --> src/frame/types.rs:317:12
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub struct Residual {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `set` are never used
[INFO] [stdout]    --> src/frame/types.rs:330:12
[INFO] [stdout]     |
[INFO] [stdout] 328 | impl Residual {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 329 |     /// Create a new residual with the given dimensions.
[INFO] [stdout] 330 |     pub fn new(width: u32, height: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     pub fn get(&self, x: u32, y: u32) -> Diff {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn set(&mut self, x: u32, y: u32, value: Diff) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `partitions`, `delta_q`, and `restoration_level` are never read
[INFO] [stdout]   --> src/frame/superblock.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Superblock {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub partitions: Vec<PartitionNode>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub delta_q: i8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub restoration_level: u8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Superblock` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Leaf` and `Internal` are never constructed
[INFO] [stdout]   --> src/frame/superblock.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum PartitionNode {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 60 |     /// Leaf node - contains a block.
[INFO] [stdout] 61 |     Leaf(Block),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     Internal {
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PartitionNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `prediction`, `motion_vector`, `transform`, `coefficients`, `skip`, and `lossless` are never read
[INFO] [stdout]    --> src/frame/superblock.rs:86:9
[INFO] [stdout]     |
[INFO] [stdout]  75 | pub struct Block {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub prediction: PredictionMode,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub motion_vector: Option<MotionVector>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub transform: TransformType,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub coefficients: Vec<i32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub skip: bool,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub lossless: bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Block` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frame/superblock.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl Block {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn width(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn height(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn pixel_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn coefficient_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn is_intra(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn is_inter(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn has_coefficients(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BlockSize` is never used
[INFO] [stdout]    --> src/frame/superblock.rs:164:10
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub enum BlockSize {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frame/superblock.rs:185:12
[INFO] [stdout]     |
[INFO] [stdout] 183 | impl BlockSize {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 184 |     /// Get the width of this block size.
[INFO] [stdout] 185 |     pub fn width(self) -> u32 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn height(self) -> u32 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn is_square(self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn width_log2(self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn height_log2(self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn area(self) -> u32 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn fits_in_sb128(self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `splits` and `child_count` are never used
[INFO] [stdout]   --> src/partition/patterns.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Partition {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 20 |     /// Check if this partition splits the block.
[INFO] [stdout] 21 |     pub fn splits(self) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn child_count(self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PartitionContext` is never used
[INFO] [stdout]   --> src/partition/patterns.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum PartitionContext {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_size` and `valid_partitions` are never used
[INFO] [stdout]   --> src/partition/patterns.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl PartitionContext {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 49 |     /// Get the partition context for a given block size.
[INFO] [stdout] 50 |     pub fn from_size(width: u32, height: u32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn valid_partitions(self) -> &'static [Partition] {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/partition/patterns.rs:85:5
[INFO] [stdout]     |
[INFO] [stdout]  83 | pub enum PartitionType {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout]  84 |     /// PARTITION_NONE
[INFO] [stdout]  85 |     None,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     Horizontal,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     Vertical,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     Quad,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     HorzA,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     HorzB,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     VertA,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     VertB,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     Horz4,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     Vert4,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PartitionType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decide_partition` is never used
[INFO] [stdout]   --> src/partition/decision.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn decide_partition(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simple_partition` is never used
[INFO] [stdout]   --> src/partition/decision.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn simple_partition(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_complexity` is never used
[INFO] [stdout]   --> src/partition/decision.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn calculate_complexity(x: u32, y: u32, size: u32, frame: &Frame) -> f64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PartitionDecision` is never constructed
[INFO] [stdout]   --> src/partition/decision.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct PartitionDecision {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `is_better_than` are never used
[INFO] [stdout]    --> src/partition/decision.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl PartitionDecision {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 114 |     /// Create a new partition decision.
[INFO] [stdout] 115 |     pub fn new(partition: Partition, rate: f64, distortion: f64, lambda: f64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn is_better_than(&self, other: &Self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/prediction/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum PredictionMode {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     V,
[INFO] [stdout]    |     ^
[INFO] [stdout] 20 |     H,
[INFO] [stdout]    |     ^
[INFO] [stdout] 21 |     Smooth,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 22 |     SmoothV,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 23 |     SmoothH,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 24 |     Paeth,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 25 |     Directional(u8), // 0-63 = angular directions
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 26 |     ChromaFromLuma,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     NearestMv,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 30 |     NearMv,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 31 |     ZeroMv,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 32 |     NewMv,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 33 |     Compound,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 34 |     CompoundWarped,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PredictionMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_intra`, `is_inter`, and `as_intra` are never used
[INFO] [stdout]   --> src/prediction/mod.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl PredictionMode {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn is_intra(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn is_inter(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn as_intra(self) -> Option<IntraMode> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `predict_frame` is never used
[INFO] [stdout]   --> src/prediction/mod.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn predict_frame(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `predict_superblock` is never used
[INFO] [stdout]   --> src/prediction/mod.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn predict_superblock(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `predict_block` is never used
[INFO] [stdout]    --> src/prediction/mod.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn predict_block(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PredictedSuperblock` is never constructed
[INFO] [stdout]    --> src/prediction/mod.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub struct PredictedSuperblock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PredictedBlock` is never constructed
[INFO] [stdout]    --> src/prediction/mod.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub struct PredictedBlock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SmoothV`, `SmoothH`, `Paeth`, `Directional`, and `ChromaFromLuma` are never constructed
[INFO] [stdout]   --> src/prediction/intra.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum IntraMode {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     SmoothV,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     SmoothH,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     Paeth,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     Directional(u8),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     ChromaFromLuma,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IntraMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `count`, `is_directional`, `angle`, `from_raw`, and `to_raw` are never used
[INFO] [stdout]   --> src/prediction/intra.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl IntraMode {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 35 |     /// Get the total number of intra modes.
[INFO] [stdout] 36 |     pub fn count() -> u8 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn is_directional(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn angle(self) -> Option<u8> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn from_raw(raw: u8) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn to_raw(self) -> u8 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InterMode` is never used
[INFO] [stdout]  --> src/prediction/inter.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum InterMode {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_compound` is never used
[INFO] [stdout]   --> src/prediction/inter.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl InterMode {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 28 |     /// Check if this mode uses compound prediction.
[INFO] [stdout] 29 |     pub fn is_compound(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `predict_inter` is never used
[INFO] [stdout]   --> src/prediction/inter.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn predict_inter(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `predict_compound` is never used
[INFO] [stdout]    --> src/prediction/inter.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn predict_compound(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `zero`, `is_zero`, `magnitude`, and `scale` are never used
[INFO] [stdout]   --> src/prediction/motion.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl MotionVector {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 17 |     /// Create a new motion vector.
[INFO] [stdout] 18 |     pub fn new(x: i16, y: i16, ref_frame: ReferenceFrame) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn zero(ref_frame: ReferenceFrame) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn is_zero(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn magnitude(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn scale(&self, scale: f64) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/prediction/motion.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub enum ReferenceFrame {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 50 |     /// Intra frame (no reference).
[INFO] [stdout] 51 |     Intra,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     Last,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     Last2,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     Last3,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     Golden,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     AltRef,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     AltRef2,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ReferenceFrame` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `index`, `is_backward`, and `is_forward` are never used
[INFO] [stdout]   --> src/prediction/motion.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | impl ReferenceFrame {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] 73 |     /// Get the index of this reference frame.
[INFO] [stdout] 74 |     pub fn index(self) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn is_backward(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn is_forward(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MotionEstimationParams` is never constructed
[INFO] [stdout]    --> src/prediction/motion.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct MotionEstimationParams {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MotionEstimation` is never constructed
[INFO] [stdout]    --> src/prediction/motion.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub struct MotionEstimation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_motion` is never used
[INFO] [stdout]    --> src/prediction/motion.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub fn estimate_motion(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `full_search` is never used
[INFO] [stdout]    --> src/prediction/motion.rs:182:4
[INFO] [stdout]     |
[INFO] [stdout] 182 | fn full_search(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `diamond_search` is never used
[INFO] [stdout]    --> src/prediction/motion.rs:218:4
[INFO] [stdout]     |
[INFO] [stdout] 218 | fn diamond_search(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_sad` is never used
[INFO] [stdout]    --> src/prediction/motion.rs:282:4
[INFO] [stdout]     |
[INFO] [stdout] 282 | fn calculate_sad(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/transform/mod.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum TransformType {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 23 |     DctAdst,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     AdstDct,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     AdstAdst,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     Identity,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     DctIdentity,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     IdentityAdst,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     AdstIdentity,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     IdentityIdentity,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TransformType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `default`, `has_horizontal`, `has_vertical`, `horizontal_type`, and `vertical_type` are never used
[INFO] [stdout]   --> src/transform/mod.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl TransformType {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 48 |     /// Get the default transform type.
[INFO] [stdout] 49 |     pub fn default() -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn has_horizontal(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn has_vertical(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn horizontal_type(self) -> TxType {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn vertical_type(self) -> TxType {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TxType` is never used
[INFO] [stdout]   --> src/transform/mod.rs:98:10
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub enum TxType {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transform_frame` is never used
[INFO] [stdout]    --> src/transform/mod.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn transform_frame(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `forward_transform_block` is never used
[INFO] [stdout]    --> src/transform/mod.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn forward_transform_block(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inverse_transform_block` is never used
[INFO] [stdout]    --> src/transform/mod.rs:174:8
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub fn inverse_transform_block(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransformedSuperblock` is never constructed
[INFO] [stdout]    --> src/transform/mod.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub struct TransformedSuperblock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransformedBlock` is never constructed
[INFO] [stdout]    --> src/transform/mod.rs:202:12
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub struct TransformedBlock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inverse_dct` is never used
[INFO] [stdout]    --> src/transform/dct.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn inverse_dct(coefficients: &[i32], size: u32) -> Vec<i16> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_1d` is never used
[INFO] [stdout]    --> src/transform/dct.rs:166:15
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub(crate) fn idct_1d(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_4` is never used
[INFO] [stdout]    --> src/transform/dct.rs:218:4
[INFO] [stdout]     |
[INFO] [stdout] 218 | fn idct_4(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `C1` is never used
[INFO] [stdout]    --> src/transform/dct.rs:254:11
[INFO] [stdout]     |
[INFO] [stdout] 254 |     const C1: i32 = 16069;  // cos(pi/16)
[INFO] [stdout]     |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `C2` is never used
[INFO] [stdout]    --> src/transform/dct.rs:255:11
[INFO] [stdout]     |
[INFO] [stdout] 255 |     const C2: i32 = 15137;  // cos(3pi/16)
[INFO] [stdout]     |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `C3` is never used
[INFO] [stdout]    --> src/transform/dct.rs:256:11
[INFO] [stdout]     |
[INFO] [stdout] 256 |     const C3: i32 = 11585;  // cos(5pi/16) = sin(3pi/16)
[INFO] [stdout]     |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `C4` is never used
[INFO] [stdout]    --> src/transform/dct.rs:257:11
[INFO] [stdout]     |
[INFO] [stdout] 257 |     const C4: i32 = 6270;   // cos(7pi/16) = sin(pi/16)
[INFO] [stdout]     |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_8` is never used
[INFO] [stdout]    --> src/transform/dct.rs:281:4
[INFO] [stdout]     |
[INFO] [stdout] 281 | fn idct_8(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_16` is never used
[INFO] [stdout]    --> src/transform/dct.rs:293:4
[INFO] [stdout]     |
[INFO] [stdout] 293 | fn idct_16(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_32` is never used
[INFO] [stdout]    --> src/transform/dct.rs:305:4
[INFO] [stdout]     |
[INFO] [stdout] 305 | fn idct_32(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_64` is never used
[INFO] [stdout]    --> src/transform/dct.rs:317:4
[INFO] [stdout]     |
[INFO] [stdout] 317 | fn idct_64(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_generic` is never used
[INFO] [stdout]    --> src/transform/dct.rs:345:4
[INFO] [stdout]     |
[INFO] [stdout] 345 | fn idct_generic(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `forward_adst` is never used
[INFO] [stdout]  --> src/transform/adst.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn forward_adst(residual: &[i16], _size: u32) -> Vec<i32> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inverse_adst` is never used
[INFO] [stdout]   --> src/transform/adst.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn inverse_adst(coefficients: &[i32], _size: u32) -> Vec<i16> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fadst_1d` is never used
[INFO] [stdout]   --> src/transform/adst.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn fadst_1d(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iadst_1d` is never used
[INFO] [stdout]   --> src/transform/adst.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn iadst_1d(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fadst_4` is never used
[INFO] [stdout]   --> src/transform/adst.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn fadst_4(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iadst_4` is never used
[INFO] [stdout]   --> src/transform/adst.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn iadst_4(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fadst_8` is never used
[INFO] [stdout]   --> src/transform/adst.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn fadst_8(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iadst_8` is never used
[INFO] [stdout]   --> src/transform/adst.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn iadst_8(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `identity_transform` is never used
[INFO] [stdout]  --> src/transform/identity.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn identity_transform(residual: &[i16], size: u32) -> Vec<i16> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inverse_identity_transform` is never used
[INFO] [stdout]   --> src/transform/identity.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn inverse_identity_transform(coefficients: &[i32], size: u32) -> Vec<i16> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Tx4x4`, `Tx8x8`, `Tx16x16`, and `Tx32x32` are never constructed
[INFO] [stdout]   --> src/transform/selector.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum TransformSize {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout]  9 |     Tx4x4,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 10 |     Tx8x8,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 11 |     Tx16x16,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 12 |     Tx32x32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TransformSize` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `size`, `size_log2`, `coefficient_count`, `from_block_size`, `fits_in_block`, and `all` are never used
[INFO] [stdout]   --> src/transform/selector.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl TransformSize {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 17 |     /// Get the width/height of this transform size (square).
[INFO] [stdout] 18 |     pub fn size(self) -> u32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn size_log2(self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn coefficient_count(self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn from_block_size(block_size: u32) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn fits_in_block(self, block_size: u32) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn all() -> &'static [TransformSize] {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_transform` is never used
[INFO] [stdout]   --> src/transform/selector.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn select_transform(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_transform_size` is never used
[INFO] [stdout]    --> src/transform/selector.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn select_transform_size(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_energy` is never used
[INFO] [stdout]    --> src/transform/selector.rs:160:4
[INFO] [stdout]     |
[INFO] [stdout] 160 | fn calculate_energy(residual: &[i16]) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_variance` is never used
[INFO] [stdout]    --> src/transform/selector.rs:165:4
[INFO] [stdout]     |
[INFO] [stdout] 165 | fn calculate_variance(residual: &[i16], size: u32) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_horizontal_gradient` is never used
[INFO] [stdout]    --> src/transform/selector.rs:177:4
[INFO] [stdout]     |
[INFO] [stdout] 177 | fn calculate_horizontal_gradient(residual: &[i16], _block_x: u32) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_vertical_gradient` is never used
[INFO] [stdout]    --> src/transform/selector.rs:204:4
[INFO] [stdout]     |
[INFO] [stdout] 204 | fn calculate_vertical_gradient(residual: &[i16], _block_y: u32) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dequantize` is never used
[INFO] [stdout]   --> src/quantization/mod.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn dequantize(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_dequant_scale` is never used
[INFO] [stdout]    --> src/quantization/mod.rs:100:4
[INFO] [stdout]     |
[INFO] [stdout] 100 | fn get_dequant_scale(q_index: u8, tx_size: TransformSize) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quantize_frame` is never used
[INFO] [stdout]    --> src/quantization/mod.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub fn quantize_frame(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QuantizedSuperblock` is never constructed
[INFO] [stdout]    --> src/quantization/mod.rs:151:12
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub struct QuantizedSuperblock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QuantizedBlock` is never constructed
[INFO] [stdout]    --> src/quantization/mod.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub struct QuantizedBlock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdaptiveQuantization` is never constructed
[INFO] [stdout]  --> src/quantization/adaptive.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct AdaptiveQuantization {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_adaptive_qp` is never used
[INFO] [stdout]   --> src/quantization/adaptive.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn calculate_adaptive_qp(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_importance` is never used
[INFO] [stdout]   --> src/quantization/adaptive.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn calculate_importance(sb_x: u32, sb_y: u32, frame: &Frame) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_edge_density` is never used
[INFO] [stdout]   --> src/quantization/adaptive.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn calculate_edge_density(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_texture_complexity` is never used
[INFO] [stdout]    --> src/quantization/adaptive.rs:134:4
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn calculate_texture_complexity(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeltaQParams` is never constructed
[INFO] [stdout]  --> src/quantization/delta_q.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct DeltaQParams {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_delta_q` is never used
[INFO] [stdout]   --> src/quantization/delta_q.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn calculate_delta_q(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_superblock_activity` is never used
[INFO] [stdout]   --> src/quantization/delta_q.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn calculate_superblock_activity(superblock: &Superblock) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_delta_q` is never used
[INFO] [stdout]   --> src/quantization/delta_q.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn apply_delta_q(base_qp: u8, delta_q: i8) -> u8 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SegmentationParams` is never constructed
[INFO] [stdout]  --> src/quantization/segmentation.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct SegmentationParams {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Segment` is never constructed
[INFO] [stdout]   --> src/quantization/segmentation.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Segment {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `q_index` are never used
[INFO] [stdout]   --> src/quantization/segmentation.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl Segment {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 45 |     /// Create a new segment.
[INFO] [stdout] 46 |     pub fn new(id: u8) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn q_index(&self, base_q: u8) -> u8 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SegmentMap` is never constructed
[INFO] [stdout]   --> src/quantization/segmentation.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct SegmentMap {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_segment`, and `set_segment` are never used
[INFO] [stdout]   --> src/quantization/segmentation.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl SegmentMap {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 72 |     /// Create a new segment map.
[INFO] [stdout] 73 |     pub fn new(num_segments: u8, num_superblocks: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn get_segment(&self, sb_idx: usize) -> Option<&Segment> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn set_segment(&mut self, sb_idx: usize, seg_id: u8) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `segment_frame` is never used
[INFO] [stdout]   --> src/quantization/segmentation.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn segment_frame(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_superblock_luma` is never used
[INFO] [stdout]    --> src/quantization/segmentation.rs:157:4
[INFO] [stdout]     |
[INFO] [stdout] 157 | fn calculate_superblock_luma(sb_x: u32, sb_y: u32, frame: &Frame) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_all_filters` is never used
[INFO] [stdout]   --> src/filter/mod.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn apply_all_filters(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FilterParams` is never constructed
[INFO] [stdout]   --> src/filter/mod.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct FilterParams {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeblockParams` is never constructed
[INFO] [stdout]  --> src/filter/deblock.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct DeblockParams {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_deblock` is never used
[INFO] [stdout]   --> src/filter/deblock.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn apply_deblock(frame: &Frame, config: &EncoderConfig) -> Result<Frame, EncoderError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deblock_plane` is never used
[INFO] [stdout]   --> src/filter/deblock.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn deblock_plane(plane: &mut crate::frame::Plane, _level: u8, _width: u32, _height: u32) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CdefParams` is never constructed
[INFO] [stdout]  --> src/filter/cdef.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct CdefParams {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_cdef` is never used
[INFO] [stdout]   --> src/filter/cdef.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn apply_cdef(frame: &Frame, config: &EncoderConfig) -> Result<Frame, EncoderError> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cdef_plane` is never used
[INFO] [stdout]   --> src/filter/cdef.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn cdef_plane(plane: &mut crate::frame::Plane, strength: u8, width: u32, height: u32) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_direction` is never used
[INFO] [stdout]   --> src/filter/cdef.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn find_direction(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_directional_filter` is never used
[INFO] [stdout]   --> src/filter/cdef.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn apply_directional_filter(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]    --> src/filter/cdef.rs:100:10
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub enum Direction {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `degrees` is never used
[INFO] [stdout]    --> src/filter/cdef.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl Direction {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 112 |     /// Get angle in degrees.
[INFO] [stdout] 113 |     pub fn degrees(self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RestorationType` is never used
[INFO] [stdout]  --> src/filter/restoration.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum RestorationType {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RestorationParams` is never constructed
[INFO] [stdout]   --> src/filter/restoration.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct RestorationParams {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_restoration` is never used
[INFO] [stdout]   --> src/filter/restoration.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn apply_restoration(frame: &Frame, config: &EncoderConfig) -> Result<Frame, EncoderError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wiener_filter` is never used
[INFO] [stdout]   --> src/filter/restoration.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn wiener_filter(
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_wiener_tile` is never used
[INFO] [stdout]   --> src/filter/restoration.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn apply_wiener_tile(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `self_guided_filter` is never used
[INFO] [stdout]    --> src/filter/restoration.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn self_guided_filter(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_sgr_block` is never used
[INFO] [stdout]    --> src/filter/restoration.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn apply_sgr_block(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WienerCoeffs` is never constructed
[INFO] [stdout]    --> src/filter/restoration.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub struct WienerCoeffs {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SgrParams` is never constructed
[INFO] [stdout]    --> src/filter/restoration.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct SgrParams {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_frame_entropy` is never used
[INFO] [stdout]   --> src/entropy/mod.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn encode_frame_entropy(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_superblock` is never used
[INFO] [stdout]   --> src/entropy/mod.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn encode_superblock(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_block` is never used
[INFO] [stdout]   --> src/entropy/mod.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn encode_block(
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `encode_bit` is never used
[INFO] [stdout]   --> src/entropy/arithmetic.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl ArithmeticEncoder {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn encode_bit(&mut self, bit: bool) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `bit_zero`, `bit_one`, `run_length`, `coef_level`, and `update` are never used
[INFO] [stdout]    --> src/entropy/arithmetic.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl CdfTable {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn bit_zero() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn bit_one() -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn run_length() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn coef_level() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn update(&mut self, symbol: u32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ContextModel` is never constructed
[INFO] [stdout]  --> src/entropy/context.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ContextModel {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `probability`, `cdf`, `update`, and `rescale` are never used
[INFO] [stdout]   --> src/entropy/context.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ContextModel {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 14 |     /// Create a new context model with n symbols.
[INFO] [stdout] 15 |     pub fn new(num_symbols: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn probability(&self, symbol: usize) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn cdf(&self) -> Vec<u16> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn update(&mut self, symbol: usize) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     fn rescale(&mut self) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Symbol` is never used
[INFO] [stdout]  --> src/entropy/symbol.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum Symbol {
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SymbolFreq` is never constructed
[INFO] [stdout]   --> src/entropy/symbol.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct SymbolFreq {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `frequency`, `update`, `probability`, and `rescale` are never used
[INFO] [stdout]   --> src/entropy/symbol.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl SymbolFreq {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 33 |     /// Create a new frequency table for n symbols.
[INFO] [stdout] 34 |     pub fn new(num_symbols: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn frequency(&self, symbol: u32) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn update(&mut self, symbol: u32) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn probability(&self, symbol: u32) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn rescale(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write_ue`, `write_se`, `write_bytes`, `bit_length`, `byte_length`, and `byte_align` are never used
[INFO] [stdout]    --> src/bitstream/writer.rs:61:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl BitWriter {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn write_ue(&mut self, mut value: u32) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn write_se(&mut self, value: i32) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn write_bytes(&mut self, bytes: &[u8]) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn bit_length(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn byte_length(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn byte_align(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/bitstream/obu.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum OBUType {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout]  8 |     /// Sequence header OBU.
[INFO] [stdout]  9 |     SequenceHeader,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TemporalDelimiter,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     FrameHeader,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     TileGroup,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     Metadata,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     Padding,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     Reserved(u8),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OBUType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_byte` is never used
[INFO] [stdout]   --> src/bitstream/obu.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl OBUType {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn from_byte(value: u8) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `size` are never used
[INFO] [stdout]    --> src/bitstream/obu.rs:81:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl OBUHeader {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  80 |     /// Create a new OBU header.
[INFO] [stdout]  81 |     pub fn new(obu_type: OBUType) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TileEncoder` is never constructed
[INFO] [stdout]   --> src/tile/mod.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct TileEncoder {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `encode_frame_parallel`, `create_tiles`, `encode_tile`, and `tile_count` are never used
[INFO] [stdout]    --> src/tile/mod.rs:29:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl TileEncoder {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  28 |     /// Create a new tile encoder.
[INFO] [stdout]  29 |     pub fn new(config: EncoderConfig) -> Result<Self, EncoderError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub fn encode_frame_parallel(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     fn create_tiles(&self, frame: &Frame) -> Result<Vec<Tile>, EncoderError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     fn encode_tile(&self, tile: Tile, _frame: &Frame) -> Result<EncodedTile, EncoderError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn tile_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tile` is never constructed
[INFO] [stdout]    --> src/tile/mod.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct Tile {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EncodedTile` is never constructed
[INFO] [stdout]    --> src/tile/mod.rs:132:12
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub struct EncodedTile {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TileJob` is never constructed
[INFO] [stdout]  --> src/tile/worker.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct TileJob {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `process` are never used
[INFO] [stdout]   --> src/tile/worker.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl TileJob {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 16 |     /// Create a new tile job.
[INFO] [stdout] 17 |     pub fn new(tile: super::Tile, frame: Frame) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn process(self) -> Result<super::EncodedTile, EncoderError> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TileWorker` is never constructed
[INFO] [stdout]   --> src/tile/worker.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct TileWorker {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_job`, `process_jobs`, `take_results`, `pending_count`, and `index` are never used
[INFO] [stdout]   --> src/tile/worker.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl TileWorker {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 45 |     /// Create a new tile worker.
[INFO] [stdout] 46 |     pub fn new(index: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn add_job(&mut self, job: TileJob) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn process_jobs(&mut self) -> Result<(), EncoderError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn take_results(&mut self) -> Vec<super::EncodedTile> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn pending_count(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn index(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_film_grain` is never used
[INFO] [stdout]   --> src/filmgrain/mod.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn apply_film_grain(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GrainParams` is never constructed
[INFO] [stdout]   --> src/filmgrain/mod.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct GrainParams {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GrainCharacteristics` is never constructed
[INFO] [stdout]  --> src/filmgrain/analysis.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct GrainCharacteristics {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_grain` is never used
[INFO] [stdout]   --> src/filmgrain/analysis.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn analyze_grain(frame: &Frame) -> Result<super::GrainParams, EncoderError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `measure_grain_characteristics` is never used
[INFO] [stdout]   --> src/filmgrain/analysis.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn measure_grain_characteristics(frame: &Frame) -> GrainCharacteristics {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample_flat_regions` is never used
[INFO] [stdout]   --> src/filmgrain/analysis.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn sample_flat_regions(frame: &Frame) -> Vec<u8> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_variance` is never used
[INFO] [stdout]    --> src/filmgrain/analysis.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn calculate_variance(samples: &[u8]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_grain_size` is never used
[INFO] [stdout]    --> src/filmgrain/analysis.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn estimate_grain_size(_samples: &[u8]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `synthesize_grain` is never used
[INFO] [stdout]  --> src/filmgrain/synthesis.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn synthesize_grain(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_noise` is never used
[INFO] [stdout]   --> src/filmgrain/synthesis.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn generate_noise(width: u32, height: u32, params: &GrainParams) -> Vec<i16> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_noise` is never used
[INFO] [stdout]   --> src/filmgrain/synthesis.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn apply_noise(frame: &mut crate::Frame, noise: &[i16], params: &GrainParams) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_noise_to_sample` is never used
[INFO] [stdout]   --> src/filmgrain/synthesis.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn apply_noise_to_sample(sample: i16, noise: i16, strength: u8) -> i16 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `seeded_rng` is never used
[INFO] [stdout]   --> src/filmgrain/synthesis.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn seeded_rng(seed: u64) -> SimpleRng {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimpleRng` is never constructed
[INFO] [stdout]   --> src/filmgrain/synthesis.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct SimpleRng {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `next` are never used
[INFO] [stdout]   --> src/filmgrain/synthesis.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl SimpleRng {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 91 |     fn new(seed: u64) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     fn next(&mut self) -> u64 {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gaussian_noise` is never used
[INFO] [stdout]    --> src/filmgrain/synthesis.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn gaussian_noise(rng: &mut SimpleRng) -> i16 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config` and `mdat_start` are never read
[INFO] [stdout]   --> src/mp4/muxer.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct Mp4Muxer<W: Write> {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 50 |     writer: W,
[INFO] [stdout] 51 |     config: Mp4Config,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 52 |     frame_count: u32,
[INFO] [stdout] 53 |     mdat_start: u64,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_slice_data_start` is never used
[INFO] [stdout]    --> src/h264/decoder.rs:317:8
[INFO] [stdout]     |
[INFO] [stdout]  47 | impl H264Decoder {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 317 |     fn get_slice_data_start(&self, _data: &[u8], _sps: &sps::SeqParameterSet, _pps: &pps::PicParameterSet) -> H264Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/h264/decoder.rs:563:8
[INFO] [stdout]     |
[INFO] [stdout] 561 | impl H264Decoder {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 562 |     /// Decode I-frame macroblock.
[INFO] [stdout] 563 |     fn decode_i_macroblock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 612 |     fn decode_p_macroblock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 647 |     fn apply_intra_16x16_prediction(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 696 |     fn apply_intra_4x4_prediction(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 755 |     fn decode_residual_16x16(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 769 |     fn decode_residual_4x4_blocks(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 782 |     fn apply_skip_prediction(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 812 |     fn apply_motion_compensation(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 828 |     fn apply_motion_compensation_with_ref(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 858 |     fn decode_p_frame(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 915 |     fn decode_macroblocks_simple(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `n_c` is never read
[INFO] [stdout]   --> src/h264/cavlc.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct CavlcDecoder {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 21 |     /// Number of coefficient tokens decoded
[INFO] [stdout] 22 |     n_c: u8,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/encoder/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         expected: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/encoder/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         expected_h: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/encoder/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         actual: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/encoder/mod.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         actual_h: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/encoder/builder.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 |         if self.base_qindex > 255 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/mp4/boxes/dinf.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub mod dref {
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub stsd: StsdBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub stts: SttsBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub stsc: StscBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub stsz: StszBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub stco: StcoBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(width: u32, height: u32, num_frames: u32, timescale: u32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn with_frame_sizes(mut self, frame_sizes: &[u32], data_offset: u64) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub av1c: Av1CBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn new_av1(width: u32, height: u32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub sample_count: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub sample_delta: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 108 |     pub fn new_constant(timescale: u32) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 115 |     pub fn with_fps(mut self, fps_num: u32, fps_den: u32, timescale: u32) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub fn with_frame_count(mut self, count: u32) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     pub fn new_single_chunk() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:199:5
[INFO] [stdout]     |
[INFO] [stdout] 199 |     pub sizes: Vec<u32>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:200:5
[INFO] [stdout]     |
[INFO] [stdout] 200 |     pub sample_size: u32,  // 0 = variable sizes
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:204:5
[INFO] [stdout]     |
[INFO] [stdout] 204 |     pub fn new() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:211:5
[INFO] [stdout]     |
[INFO] [stdout] 211 |     pub fn with_sizes(frame_sizes: &[u32]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:252:5
[INFO] [stdout]     |
[INFO] [stdout] 252 |     pub offsets: Vec<u32>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:256:5
[INFO] [stdout]     |
[INFO] [stdout] 256 |     pub fn new() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 262 |     pub fn with_offset(offset: u64) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub tkhd: TkhdBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub mdia: MdiaBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new_video(track_id: u32, width: u32, height: u32, duration: u64, timescale: u32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub mdhd: super::MdhdBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub hdlr: super::HdlrBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub minf: MinfBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn new_video(width: u32, height: u32, duration: u64, timescale: u32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn with_stbl(mut self, stbl: super::StblBox) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub vmhd: super::VmhdBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub dinf: super::DinfBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub stbl: super::StblBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn new_video(width: u32, height: u32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/containers.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub mvhd: super::MvhdBox,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/containers.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub trak: TrakBox,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/containers.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn new_video(width: u32, height: u32, duration: u64, timescale: u32) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/mp4/boxes/containers.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 129 |     pub fn with_stbl(mut self, stbl: super::StblBox) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub const FTYP: BoxType = BoxType::new(b'f', b't', b'y', b'p');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub const MOOV: BoxType = BoxType::new(b'm', b'o', b'o', b'v');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub const MDAT: BoxType = BoxType::new(b'm', b'd', b'a', b't');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub const FREE: BoxType = BoxType::new(b'f', b'r', b'e', b'e');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub const SKIP: BoxType = BoxType::new(b's', b'k', b'i', b'p');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub const MVHD: BoxType = BoxType::new(b'm', b'v', b'h', b'd');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub const TRAK: BoxType = BoxType::new(b't', b'r', b'a', b'k');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub const MDIA: BoxType = BoxType::new(b'm', b'd', b'i', b'a');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub const MINF: BoxType = BoxType::new(b'm', b'i', b'n', b'f');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub const STBL: BoxType = BoxType::new(b's', b't', b'b', b'l');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub const STSD: BoxType = BoxType::new(b's', b't', b's', b'd');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub const AV01: BoxType = BoxType::new(b'a', b'v', b'0', b'1');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub const AVC1: BoxType = BoxType::new(b'a', b'v', b'c', b'1');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub const TKHD: BoxType = BoxType::new(b't', b'k', b'h', b'd');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub const MDHD: BoxType = BoxType::new(b'm', b'd', b'h', b'd');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub const HDLR: BoxType = BoxType::new(b'h', b'd', b'l', b'r');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub const VMHD: BoxType = BoxType::new(b'v', b'm', b'h', b'd');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub const DINF: BoxType = BoxType::new(b'd', b'i', b'n', b'f');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub const DREF: BoxType = BoxType::new(b'd', b'r', b'e', b'f');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub const URL:  BoxType = BoxType::new(b'u', b'r', b'l', b' ');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub const STTS: BoxType = BoxType::new(b's', b't', b't', b's');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub const STSC: BoxType = BoxType::new(b's', b't', b's', b'c');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub const STSZ: BoxType = BoxType::new(b's', b't', b's', b'z');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub const STCO: BoxType = BoxType::new(b's', b't', b'c', b'o');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub const MVEX: BoxType = BoxType::new(b'm', b'v', b'e', b'x');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub const TREX: BoxType = BoxType::new(b't', b'r', b'e', b'x');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/muxer.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fps_den: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/parser.rs:89:22
[INFO] [stdout]    |
[INFO] [stdout] 89 |     InvalidBoxSize { size: u64, box_type: String },
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/parser.rs:89:33
[INFO] [stdout]    |
[INFO] [stdout] 89 |     InvalidBoxSize { size: u64, box_type: String },
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/parser.rs:92:21
[INFO] [stdout]    |
[INFO] [stdout] 92 |     UnexpectedBox { expected: String, found: String },
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/parser.rs:92:39
[INFO] [stdout]    |
[INFO] [stdout] 92 |     UnexpectedBox { expected: String, found: String },
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/av1c.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub initial_presentation_delay: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/h264/nal.rs:310:22
[INFO] [stdout]     |
[INFO] [stdout] 310 |     pub fn bitreader(&self) -> BitReader {
[INFO] [stdout]     |                      ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 310 |     pub fn bitreader(&self) -> BitReader<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/h264/pps.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub transform_8x8_mode_flag: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/h264/motion.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(x: i32, y: i32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/h264/motion.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(max_ref_frames: usize) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     Vertical = 0,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     Horizontal = 1,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     Dc = 2,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     DiagonalDownLeft = 3,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     DiagonalDownRight = 4,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     VerticalRight = 5,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 93 |     HorizontalDown = 6,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     VerticalLeft = 7,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     HorizontalUp = 8,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/h264/macroblock.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     Dc = 0,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/h264/macroblock.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     Horizontal = 1,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/h264/macroblock.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     Vertical = 2,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/h264/macroblock.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     Plane = 3,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mp4Muxer`
[INFO] [stdout]   --> examples/encode_to_mp4.rs:11:27
[INFO] [stdout]    |
[INFO] [stdout] 11 | use av1_compressor::mp4::{Mp4Muxer, Mp4Config};
[INFO] [stdout]    |                           ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Frame`
[INFO] [stdout]   --> examples/compress_pure.rs:14:46
[INFO] [stdout]    |
[INFO] [stdout] 14 | use av1_compressor::{Encoder, EncoderConfig, Frame};
[INFO] [stdout]    |                                              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Frame`
[INFO] [stdout]   --> examples/transcode_mp4.rs:12:46
[INFO] [stdout]    |
[INFO] [stdout] 12 | use av1_compressor::{Encoder, EncoderConfig, Frame};
[INFO] [stdout]    |                                              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `frame::Frame`
[INFO] [stdout]  --> src/encoder/state.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{frame::Frame, EncoderConfig};
[INFO] [stdout]   |             ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `frame::Diff`
[INFO] [stdout]  --> src/frame/superblock.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     frame::Diff,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block` and `Superblock`
[INFO] [stdout]  --> src/frame/mod.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use superblock::{Superblock, Block};
[INFO] [stdout]   |                      ^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PartitionType`
[INFO] [stdout]  --> src/partition/mod.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use patterns::{Partition, PartitionType};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PartitionDecision` and `decide_partition`
[INFO] [stdout]  --> src/partition/mod.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use decision::{decide_partition, PartitionDecision};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/partition/mod.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/prediction/intra.rs:250:31
[INFO] [stdout]     |
[INFO] [stdout] 250 |             prediction[idx] = ((128.0 * vertical_weight + 128.0 * horizontal_weight) as i16);
[INFO] [stdout]     |                               ^                                                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 250 -             prediction[idx] = ((128.0 * vertical_weight + 128.0 * horizontal_weight) as i16);
[INFO] [stdout] 250 +             prediction[idx] = (128.0 * vertical_weight + 128.0 * horizontal_weight) as i16;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `InterMode` and `predict_inter`
[INFO] [stdout]  --> src/prediction/mod.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use inter::{InterMode, predict_inter};
[INFO] [stdout]   |                 ^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MotionEstimation` and `ReferenceFrame`
[INFO] [stdout]  --> src/prediction/mod.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use motion::{MotionEstimation, MotionVector, ReferenceFrame};
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EncoderConfig`
[INFO] [stdout]   --> src/prediction/mod.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::{EncoderConfig, EncoderError, Frame};
[INFO] [stdout]    |             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EncoderError`
[INFO] [stdout]  --> src/transform/selector.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{EncoderConfig, EncoderError};
[INFO] [stdout]   |                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `select_transform`
[INFO] [stdout]   --> src/transform/mod.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use selector::{select_transform, TransformSize};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AdaptiveQuantization` and `calculate_adaptive_qp`
[INFO] [stdout]  --> src/quantization/mod.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use adaptive::{calculate_adaptive_qp, AdaptiveQuantization};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DeltaQParams` and `calculate_delta_q`
[INFO] [stdout]  --> src/quantization/mod.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use delta_q::{calculate_delta_q, DeltaQParams};
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Segment` and `SegmentationParams`
[INFO] [stdout]  --> src/quantization/mod.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use segmentation::{Segment, SegmentationParams};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DeblockParams`
[INFO] [stdout]  --> src/filter/mod.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use deblock::{apply_deblock, DeblockParams};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CdefParams`
[INFO] [stdout]  --> src/filter/mod.rs:8:28
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use cdef::{apply_cdef, CdefParams};
[INFO] [stdout]   |                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RestorationParams`
[INFO] [stdout]  --> src/filter/mod.rs:9:42
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use restoration::{apply_restoration, RestorationParams};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `context::ContextModel`
[INFO] [stdout]  --> src/entropy/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use context::ContextModel;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SymbolFreq` and `Symbol`
[INFO] [stdout]  --> src/entropy/mod.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use symbol::{Symbol, SymbolFreq};
[INFO] [stdout]   |                  ^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TileJob` and `TileWorker`
[INFO] [stdout]  --> src/tile/mod.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use worker::{TileWorker, TileJob};
[INFO] [stdout]   |                  ^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GrainCharacteristics`
[INFO] [stdout]  --> src/filmgrain/mod.rs:6:35
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use analysis::{analyze_grain, GrainCharacteristics};
[INFO] [stdout]   |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `synthesis::synthesize_grain`
[INFO] [stdout]  --> src/filmgrain/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use synthesis::synthesize_grain;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::Mp4Box`
[INFO] [stdout]  --> src/mp4/boxes/avcc.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::Mp4Box;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `types`
[INFO] [stdout]  --> src/mp4/av1c.rs:7:37
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::boxes::{Mp4Box, BoxType, types};
[INFO] [stdout]   |                                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::H264Result`
[INFO] [stdout]  --> src/h264/nal.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::H264Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/h264/decoder.rs:485:34
[INFO] [stdout]     |
[INFO] [stdout] 485 |                     let offset = ((x as i32 - width as i32 / 2) + (y as i32 - height as i32 / 2));
[INFO] [stdout]     |                                  ^                                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 485 -                     let offset = ((x as i32 - width as i32 / 2) + (y as i32 - height as i32 / 2));
[INFO] [stdout] 485 +                     let offset = (x as i32 - width as i32 / 2) + (y as i32 - height as i32 / 2);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::H264Result`
[INFO] [stdout]  --> src/h264/motion.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::H264Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::H264Error`
[INFO] [stdout]  --> src/h264/cavlc.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::H264Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]   --> src/h264/transform.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |         ((coeff * scale + q) >> (q_bits - 1))
[INFO] [stdout]    |         ^                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 49 -         ((coeff * scale + q) >> (q_bits - 1))
[INFO] [stdout] 49 +         (coeff * scale + q) >> (q_bits - 1)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/prediction/motion.rs:224:5
[INFO] [stdout]     |
[INFO] [stdout] 224 |     range: u8,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/prediction/mod.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 121 |     state: &crate::encoder::state::EncoderState,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `oo1`
[INFO] [stdout]    --> src/transform/dct.rs:263:9
[INFO] [stdout]     |
[INFO] [stdout] 263 |     let oo1 = o1 + o2;
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_oo1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `oo2`
[INFO] [stdout]    --> src/transform/dct.rs:264:9
[INFO] [stdout]     |
[INFO] [stdout] 264 |     let oo2 = o1 - o2;
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_oo2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:287:12
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn fdct_16(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 | fn idct_16(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:299:12
[INFO] [stdout]     |
[INFO] [stdout] 299 | fn fdct_32(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:305:12
[INFO] [stdout]     |
[INFO] [stdout] 305 | fn idct_32(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:311:12
[INFO] [stdout]     |
[INFO] [stdout] 311 | fn fdct_64(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/transform/dct.rs:317:12
[INFO] [stdout]     |
[INFO] [stdout] 317 | fn idct_64(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/transform/adst.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn fadst_4(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/transform/adst.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn iadst_4(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/transform/adst.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn fadst_8(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/transform/adst.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn iadst_8(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]  --> src/transform/identity.rs:7:45
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn identity_transform(residual: &[i16], size: u32) -> Vec<i16> {
[INFO] [stdout]   |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]    --> src/transform/selector.rs:165:41
[INFO] [stdout]     |
[INFO] [stdout] 165 | fn calculate_variance(residual: &[i16], size: u32) -> f64 {
[INFO] [stdout]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_qp`
[INFO] [stdout]   --> src/quantization/delta_q.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     base_qp: u8,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_qp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rate`
[INFO] [stdout]    --> src/entropy/arithmetic.rs:173:17
[INFO] [stdout]     |
[INFO] [stdout] 173 |             let rate = 8; // Adaptation rate
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `coefficients`
[INFO] [stdout]   --> src/entropy/mod.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     coefficients: &[i32],
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_coefficients`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bitstream/writer.rs:61:32
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn write_ue(&mut self, mut value: u32) {
[INFO] [stdout]    |                                ----^^^^^
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/tile/worker.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let config = crate::EncoderConfig::default();
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_frames`
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:20:41
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(width: u32, height: u32, num_frames: u32, timescale: u32) -> Self {
[INFO] [stdout]    |                                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_frames`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:298:20
[INFO] [stdout]     |
[INFO] [stdout] 298 | fn av01_entry_size(width: u32, height: u32, av1c: &Av1CBox) -> u32 {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:298:32
[INFO] [stdout]     |
[INFO] [stdout] 298 | fn av01_entry_size(width: u32, height: u32, av1c: &Av1CBox) -> u32 {
[INFO] [stdout]     |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_data`
[INFO] [stdout]   --> src/mp4/muxer.rs:83:33
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub fn add_frame(&mut self, frame_data: &[u8], _pts: u64, _keyframe: bool) -> io::Result<()> {
[INFO] [stdout]    |                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/mp4/muxer.rs:94:21
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn finalize(mut self) -> io::Result<()> {
[INFO] [stdout]    |                     ----^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mdat_size`
[INFO] [stdout]    --> src/mp4/muxer.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let mdat_size = 8 + data_size;
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mdat_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample_delta`
[INFO] [stdout]    --> src/mp4/muxer.rs:140:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |     let sample_delta = (config.timescale * config.fps_den) / config.fps_num;
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_delta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moov_size`
[INFO] [stdout]    --> src/mp4/muxer.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let moov_size = moov.box_size();
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_moov_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nal_ref_idc`
[INFO] [stdout]   --> src/h264/nal.rs:65:24
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn from_header(nal_ref_idc: u8, nal_unit_type: u8) -> Option<Self> {
[INFO] [stdout]    |                        ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nal_ref_idc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sps`
[INFO] [stdout]    --> src/h264/decoder.rs:331:5
[INFO] [stdout]     |
[INFO] [stdout] 331 |     sps: &sps::SeqParameterSet,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_sps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `qp`
[INFO] [stdout]    --> src/h264/decoder.rs:332:5
[INFO] [stdout]     |
[INFO] [stdout] 332 |     qp: u8,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_qp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pred_mode`
[INFO] [stdout]    --> src/h264/decoder.rs:341:26
[INFO] [stdout]     |
[INFO] [stdout] 341 |         MbType::I16x16 { pred_mode, .. } => {
[INFO] [stdout]     |                          ^^^^^^^^^ help: try ignoring the field: `pred_mode: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sps`
[INFO] [stdout]    --> src/h264/decoder.rs:378:5
[INFO] [stdout]     |
[INFO] [stdout] 378 |     sps: &sps::SeqParameterSet,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_sps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sps`
[INFO] [stdout]    --> src/h264/decoder.rs:569:9
[INFO] [stdout]     |
[INFO] [stdout] 569 |         sps: &sps::SeqParameterSet,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_sps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sps`
[INFO] [stdout]    --> src/h264/decoder.rs:618:9
[INFO] [stdout]     |
[INFO] [stdout] 618 |         sps: &sps::SeqParameterSet,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_sps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `bit` is never read
[INFO] [stdout]    --> src/h264/bitreader.rs:140:23
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let mut bit = false;
[INFO] [stdout]     |                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/h264/cavlc.rs:208:13
[INFO] [stdout]     |
[INFO] [stdout] 208 |         let mut reader = BitReader::new(&data);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reader`
[INFO] [stdout]    --> src/h264/cavlc.rs:208:13
[INFO] [stdout]     |
[INFO] [stdout] 208 |         let mut reader = BitReader::new(&data);
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]    --> src/h264/intra.rs:276:15
[INFO] [stdout]     |
[INFO] [stdout] 276 |     fn calc_b(height: i32, v_grad: i32) -> i32 {
[INFO] [stdout]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/h264/intra.rs:281:15
[INFO] [stdout]     |
[INFO] [stdout] 281 |     fn calc_c(width: i32, h_grad: i32) -> i32 {
[INFO] [stdout]     |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sse` is never read
[INFO] [stdout]   --> src/encoder/mod.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct ModeDecision {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub sse: i64,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK_SIZE` is never used
[INFO] [stdout]   --> src/encoder/mod.rs:81:11
[INFO] [stdout]    |
[INFO] [stdout] 81 |     const BLOCK_SIZE: u32 = 64;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `state` is never read
[INFO] [stdout]    --> src/encoder/mod.rs:172:5
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub struct Encoder {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 171 |     config: EncoderConfig,
[INFO] [stdout] 172 |     state: EncoderState,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `reference_frames`, `cdf_tables`, and `last_qp` are never read
[INFO] [stdout]   --> src/encoder/state.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct EncoderState {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 10 |     /// Reference frames for inter prediction.
[INFO] [stdout] 11 |     reference_frames: VecDeque<ReferenceFrame>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     cdf_tables: CdfState,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     last_qp: Vec<u8>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `store_reference`, `get_reference`, `last_reference`, and `update_cdf` are never used
[INFO] [stdout]   --> src/encoder/state.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl EncoderState {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn store_reference(&mut self, frame: ReconstructedFrame, frame_type: crate::frame::FrameType) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn get_reference(&self, index: usize) -> Option<&ReferenceFrame> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn last_reference(&self) -> Option<&ReferenceFrame> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn update_cdf(&mut self, symbols: &[u32]) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `frame` and `frame_type` are never read
[INFO] [stdout]   --> src/encoder/state.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct ReferenceFrame {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 61 |     /// The reconstructed frame data.
[INFO] [stdout] 62 |     pub frame: ReconstructedFrame,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub frame_type: crate::frame::FrameType,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `width`, `height`, `y_plane`, `u_plane`, and `v_plane` are never read
[INFO] [stdout]   --> src/encoder/state.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct ReconstructedFrame {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 71 |     /// Frame width.
[INFO] [stdout] 72 |     pub width: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub height: u32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub y_plane: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub u_plane: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub v_plane: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ReconstructedFrame` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `intra_mode_cdf`, `inter_mode_cdf`, `transform_cdf`, and `coef_cdf` are never read
[INFO] [stdout]    --> src/encoder/state.rs:91:5
[INFO] [stdout]     |
[INFO] [stdout]  89 | pub struct CdfState {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout]  90 |     /// Intra prediction mode CDFs.
[INFO] [stdout]  91 |     intra_mode_cdf: Vec<Vec<u16>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     inter_mode_cdf: Vec<Vec<u16>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     transform_cdf: Vec<Vec<u16>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     coef_cdf: Vec<Vec<u16>>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, `intra_mode_cdf`, and `transform_cdf` are never used
[INFO] [stdout]    --> src/encoder/state.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl CdfState {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 104 |     /// Create new CDF state with initial probabilities.
[INFO] [stdout] 105 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn update(&mut self, symbols: &[u32]) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn intra_mode_cdf(&self, block_size: u8) -> &[u16] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn transform_cdf(&self, tx_size: u8) -> &[u16] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Diff` is never used
[INFO] [stdout]   --> src/frame/mod.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub type Diff = i16;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Coef` is never used
[INFO] [stdout]   --> src/frame/mod.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub type Coef = i32;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Residual` is never constructed
[INFO] [stdout]    --> src/frame/types.rs:317:12
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub struct Residual {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `set` are never used
[INFO] [stdout]    --> src/frame/types.rs:330:12
[INFO] [stdout]     |
[INFO] [stdout] 328 | impl Residual {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 329 |     /// Create a new residual with the given dimensions.
[INFO] [stdout] 330 |     pub fn new(width: u32, height: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     pub fn get(&self, x: u32, y: u32) -> Diff {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn set(&mut self, x: u32, y: u32, value: Diff) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `partitions`, `delta_q`, and `restoration_level` are never read
[INFO] [stdout]   --> src/frame/superblock.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Superblock {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub partitions: Vec<PartitionNode>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub delta_q: i8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub restoration_level: u8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Superblock` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Leaf` and `Internal` are never constructed
[INFO] [stdout]   --> src/frame/superblock.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum PartitionNode {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 60 |     /// Leaf node - contains a block.
[INFO] [stdout] 61 |     Leaf(Block),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     Internal {
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PartitionNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `prediction`, `motion_vector`, `transform`, `coefficients`, `skip`, and `lossless` are never read
[INFO] [stdout]    --> src/frame/superblock.rs:86:9
[INFO] [stdout]     |
[INFO] [stdout]  75 | pub struct Block {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub prediction: PredictionMode,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub motion_vector: Option<MotionVector>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub transform: TransformType,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub coefficients: Vec<i32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub skip: bool,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub lossless: bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Block` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frame/superblock.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl Block {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn width(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn height(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn pixel_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn coefficient_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn is_intra(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn is_inter(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn has_coefficients(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BlockSize` is never used
[INFO] [stdout]    --> src/frame/superblock.rs:164:10
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub enum BlockSize {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/frame/superblock.rs:185:12
[INFO] [stdout]     |
[INFO] [stdout] 183 | impl BlockSize {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 184 |     /// Get the width of this block size.
[INFO] [stdout] 185 |     pub fn width(self) -> u32 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn height(self) -> u32 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn is_square(self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn width_log2(self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn height_log2(self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn area(self) -> u32 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn fits_in_sb128(self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `splits` is never used
[INFO] [stdout]   --> src/partition/patterns.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Partition {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 20 |     /// Check if this partition splits the block.
[INFO] [stdout] 21 |     pub fn splits(self) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PartitionContext` is never used
[INFO] [stdout]   --> src/partition/patterns.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum PartitionContext {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_size` and `valid_partitions` are never used
[INFO] [stdout]   --> src/partition/patterns.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl PartitionContext {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 49 |     /// Get the partition context for a given block size.
[INFO] [stdout] 50 |     pub fn from_size(width: u32, height: u32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn valid_partitions(self) -> &'static [Partition] {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/partition/patterns.rs:85:5
[INFO] [stdout]     |
[INFO] [stdout]  83 | pub enum PartitionType {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout]  84 |     /// PARTITION_NONE
[INFO] [stdout]  85 |     None,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     Horizontal,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     Vertical,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     Quad,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     HorzA,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     HorzB,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     VertA,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     VertB,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     Horz4,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     Vert4,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PartitionType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decide_partition` is never used
[INFO] [stdout]   --> src/partition/decision.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn decide_partition(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simple_partition` is never used
[INFO] [stdout]   --> src/partition/decision.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn simple_partition(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_complexity` is never used
[INFO] [stdout]   --> src/partition/decision.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn calculate_complexity(x: u32, y: u32, size: u32, frame: &Frame) -> f64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `partition`, `rate`, and `distortion` are never read
[INFO] [stdout]    --> src/partition/decision.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout]  99 | pub struct PartitionDecision {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 100 |     /// The chosen partition.
[INFO] [stdout] 101 |     pub partition: Partition,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub rate: f64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub distortion: f64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PartitionDecision` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/prediction/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum PredictionMode {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 20 |     H,
[INFO] [stdout]    |     ^
[INFO] [stdout] 21 |     Smooth,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 22 |     SmoothV,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 23 |     SmoothH,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 24 |     Paeth,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 25 |     Directional(u8), // 0-63 = angular directions
[INFO] [stdout] 26 |     ChromaFromLuma,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     NearestMv,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 30 |     NearMv,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 31 |     ZeroMv,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 32 |     NewMv,
[INFO] [stdout] 33 |     Compound,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 34 |     CompoundWarped,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PredictionMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `predict_frame` is never used
[INFO] [stdout]   --> src/prediction/mod.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn predict_frame(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `predict_superblock` is never used
[INFO] [stdout]   --> src/prediction/mod.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn predict_superblock(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `predict_block` is never used
[INFO] [stdout]    --> src/prediction/mod.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn predict_block(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PredictedSuperblock` is never constructed
[INFO] [stdout]    --> src/prediction/mod.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub struct PredictedSuperblock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PredictedBlock` is never constructed
[INFO] [stdout]    --> src/prediction/mod.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub struct PredictedBlock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `count`, `is_directional`, and `angle` are never used
[INFO] [stdout]   --> src/prediction/intra.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl IntraMode {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 35 |     /// Get the total number of intra modes.
[INFO] [stdout] 36 |     pub fn count() -> u8 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn is_directional(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn angle(self) -> Option<u8> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NearestMv` and `NearMv` are never constructed
[INFO] [stdout]   --> src/prediction/inter.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum InterMode {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout]  8 |     /// Use nearest motion vector.
[INFO] [stdout]  9 |     NearestMv,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     NearMv,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InterMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `predict_inter` is never used
[INFO] [stdout]   --> src/prediction/inter.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn predict_inter(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `predict_compound` is never used
[INFO] [stdout]    --> src/prediction/inter.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn predict_compound(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scale` is never used
[INFO] [stdout]   --> src/prediction/motion.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl MotionVector {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn scale(&self, scale: f64) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Last2`, `Last3`, and `AltRef2` are never constructed
[INFO] [stdout]   --> src/prediction/motion.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub enum ReferenceFrame {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 57 |     Last2,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     Last3,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     AltRef2,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ReferenceFrame` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MotionEstimationParams` is never constructed
[INFO] [stdout]    --> src/prediction/motion.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct MotionEstimationParams {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MotionEstimation` is never constructed
[INFO] [stdout]    --> src/prediction/motion.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub struct MotionEstimation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `estimate_motion` is never used
[INFO] [stdout]    --> src/prediction/motion.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub fn estimate_motion(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `full_search` is never used
[INFO] [stdout]    --> src/prediction/motion.rs:182:4
[INFO] [stdout]     |
[INFO] [stdout] 182 | fn full_search(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `diamond_search` is never used
[INFO] [stdout]    --> src/prediction/motion.rs:218:4
[INFO] [stdout]     |
[INFO] [stdout] 218 | fn diamond_search(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_sad` is never used
[INFO] [stdout]    --> src/prediction/motion.rs:282:4
[INFO] [stdout]     |
[INFO] [stdout] 282 | fn calculate_sad(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `AdstAdst`, `Identity`, `DctIdentity`, `IdentityAdst`, and `AdstIdentity` are never constructed
[INFO] [stdout]   --> src/transform/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum TransformType {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     AdstAdst,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     Identity,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     DctIdentity,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     IdentityAdst,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     AdstIdentity,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TransformType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transform_frame` is never used
[INFO] [stdout]    --> src/transform/mod.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn transform_frame(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `forward_transform_block` is never used
[INFO] [stdout]    --> src/transform/mod.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn forward_transform_block(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inverse_transform_block` is never used
[INFO] [stdout]    --> src/transform/mod.rs:174:8
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub fn inverse_transform_block(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransformedSuperblock` is never constructed
[INFO] [stdout]    --> src/transform/mod.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub struct TransformedSuperblock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransformedBlock` is never constructed
[INFO] [stdout]    --> src/transform/mod.rs:202:12
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub struct TransformedBlock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_1d` is never used
[INFO] [stdout]    --> src/transform/dct.rs:166:15
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub(crate) fn idct_1d(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_4` is never used
[INFO] [stdout]    --> src/transform/dct.rs:218:4
[INFO] [stdout]     |
[INFO] [stdout] 218 | fn idct_4(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `C1` is never used
[INFO] [stdout]    --> src/transform/dct.rs:254:11
[INFO] [stdout]     |
[INFO] [stdout] 254 |     const C1: i32 = 16069;  // cos(pi/16)
[INFO] [stdout]     |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `C2` is never used
[INFO] [stdout]    --> src/transform/dct.rs:255:11
[INFO] [stdout]     |
[INFO] [stdout] 255 |     const C2: i32 = 15137;  // cos(3pi/16)
[INFO] [stdout]     |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `C3` is never used
[INFO] [stdout]    --> src/transform/dct.rs:256:11
[INFO] [stdout]     |
[INFO] [stdout] 256 |     const C3: i32 = 11585;  // cos(5pi/16) = sin(3pi/16)
[INFO] [stdout]     |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `C4` is never used
[INFO] [stdout]    --> src/transform/dct.rs:257:11
[INFO] [stdout]     |
[INFO] [stdout] 257 |     const C4: i32 = 6270;   // cos(7pi/16) = sin(pi/16)
[INFO] [stdout]     |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_8` is never used
[INFO] [stdout]    --> src/transform/dct.rs:281:4
[INFO] [stdout]     |
[INFO] [stdout] 281 | fn idct_8(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_16` is never used
[INFO] [stdout]    --> src/transform/dct.rs:293:4
[INFO] [stdout]     |
[INFO] [stdout] 293 | fn idct_16(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_32` is never used
[INFO] [stdout]    --> src/transform/dct.rs:305:4
[INFO] [stdout]     |
[INFO] [stdout] 305 | fn idct_32(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_64` is never used
[INFO] [stdout]    --> src/transform/dct.rs:317:4
[INFO] [stdout]     |
[INFO] [stdout] 317 | fn idct_64(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idct_generic` is never used
[INFO] [stdout]    --> src/transform/dct.rs:345:4
[INFO] [stdout]     |
[INFO] [stdout] 345 | fn idct_generic(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `forward_adst` is never used
[INFO] [stdout]  --> src/transform/adst.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn forward_adst(residual: &[i16], _size: u32) -> Vec<i32> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inverse_adst` is never used
[INFO] [stdout]   --> src/transform/adst.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn inverse_adst(coefficients: &[i32], _size: u32) -> Vec<i16> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iadst_1d` is never used
[INFO] [stdout]   --> src/transform/adst.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn iadst_1d(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iadst_4` is never used
[INFO] [stdout]   --> src/transform/adst.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn iadst_4(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iadst_8` is never used
[INFO] [stdout]   --> src/transform/adst.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn iadst_8(input: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `all` is never used
[INFO] [stdout]   --> src/transform/selector.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl TransformSize {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn all() -> &'static [TransformSize] {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_transform` is never used
[INFO] [stdout]   --> src/transform/selector.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn select_transform(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_transform_size` is never used
[INFO] [stdout]    --> src/transform/selector.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn select_transform_size(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_variance` is never used
[INFO] [stdout]    --> src/transform/selector.rs:165:4
[INFO] [stdout]     |
[INFO] [stdout] 165 | fn calculate_variance(residual: &[i16], size: u32) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_horizontal_gradient` is never used
[INFO] [stdout]    --> src/transform/selector.rs:177:4
[INFO] [stdout]     |
[INFO] [stdout] 177 | fn calculate_horizontal_gradient(residual: &[i16], _block_x: u32) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_vertical_gradient` is never used
[INFO] [stdout]    --> src/transform/selector.rs:204:4
[INFO] [stdout]     |
[INFO] [stdout] 204 | fn calculate_vertical_gradient(residual: &[i16], _block_y: u32) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quantize_frame` is never used
[INFO] [stdout]    --> src/quantization/mod.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub fn quantize_frame(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QuantizedSuperblock` is never constructed
[INFO] [stdout]    --> src/quantization/mod.rs:151:12
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub struct QuantizedSuperblock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QuantizedBlock` is never constructed
[INFO] [stdout]    --> src/quantization/mod.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub struct QuantizedBlock {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `min_qindex` and `max_qindex` are never read
[INFO] [stdout]   --> src/quantization/adaptive.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct AdaptiveQuantization {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub min_qindex: u8,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub max_qindex: u8,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AdaptiveQuantization` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_adaptive_qp` is never used
[INFO] [stdout]   --> src/quantization/adaptive.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn calculate_adaptive_qp(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_importance` is never used
[INFO] [stdout]   --> src/quantization/adaptive.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn calculate_importance(sb_x: u32, sb_y: u32, frame: &Frame) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_edge_density` is never used
[INFO] [stdout]   --> src/quantization/adaptive.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn calculate_edge_density(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_texture_complexity` is never used
[INFO] [stdout]    --> src/quantization/adaptive.rs:134:4
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn calculate_texture_complexity(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_delta_q` is never used
[INFO] [stdout]   --> src/quantization/delta_q.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn calculate_delta_q(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_superblock_activity` is never used
[INFO] [stdout]   --> src/quantization/delta_q.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn calculate_superblock_activity(superblock: &Superblock) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `spatial_prediction` is never read
[INFO] [stdout]   --> src/quantization/segmentation.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct SegmentationParams {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub spatial_prediction: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SegmentationParams` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `lf_delta` and `reference_frame` are never read
[INFO] [stdout]   --> src/quantization/segmentation.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Segment {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub lf_delta: i8,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub reference_frame: Option<u8>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Segment` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `segment_frame` is never used
[INFO] [stdout]   --> src/quantization/segmentation.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn segment_frame(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_superblock_luma` is never used
[INFO] [stdout]    --> src/quantization/segmentation.rs:157:4
[INFO] [stdout]     |
[INFO] [stdout] 157 | fn calculate_superblock_luma(sb_x: u32, sb_y: u32, frame: &Frame) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_all_filters` is never used
[INFO] [stdout]   --> src/filter/mod.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn apply_all_filters(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ref_deltas` and `mode_deltas` are never read
[INFO] [stdout]   --> src/filter/mod.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct FilterParams {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub ref_deltas: [i8; 4],
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub mode_deltas: [i8; 2],
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FilterParams` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `level_u`, `level_v`, `sharpness`, and `edge_threshold` are never read
[INFO] [stdout]   --> src/filter/deblock.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct DeblockParams {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub level_u: u8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub level_v: u8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub sharpness: u8,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub edge_threshold: u8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeblockParams` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_deblock` is never used
[INFO] [stdout]   --> src/filter/deblock.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn apply_deblock(frame: &Frame, config: &EncoderConfig) -> Result<Frame, EncoderError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deblock_plane` is never used
[INFO] [stdout]   --> src/filter/deblock.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn deblock_plane(plane: &mut crate::frame::Plane, _level: u8, _width: u32, _height: u32) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CdefParams` is never constructed
[INFO] [stdout]  --> src/filter/cdef.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct CdefParams {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_cdef` is never used
[INFO] [stdout]   --> src/filter/cdef.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn apply_cdef(frame: &Frame, config: &EncoderConfig) -> Result<Frame, EncoderError> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cdef_plane` is never used
[INFO] [stdout]   --> src/filter/cdef.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn cdef_plane(plane: &mut crate::frame::Plane, strength: u8, width: u32, height: u32) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_direction` is never used
[INFO] [stdout]   --> src/filter/cdef.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn find_direction(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_directional_filter` is never used
[INFO] [stdout]   --> src/filter/cdef.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn apply_directional_filter(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `D3`, `D4`, `D5`, `D6`, and `D7` are never constructed
[INFO] [stdout]    --> src/filter/cdef.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub enum Direction {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 104 |     D3 = 3,  // 135 degrees
[INFO] [stdout]     |     ^^
[INFO] [stdout] 105 |     D4 = 4,  // 111.25 degrees
[INFO] [stdout]     |     ^^
[INFO] [stdout] 106 |     D5 = 5,  // 156.25 degrees
[INFO] [stdout]     |     ^^
[INFO] [stdout] 107 |     D6 = 6,  // 33.75 degrees
[INFO] [stdout]     |     ^^
[INFO] [stdout] 108 |     D7 = 7,  // 78.75 degrees
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Direction` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SgrProj` is never constructed
[INFO] [stdout]   --> src/filter/restoration.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum RestorationType {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 15 |     SgrProj,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RestorationType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `uv_type` and `level` are never read
[INFO] [stdout]   --> src/filter/restoration.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct RestorationParams {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub uv_type: RestorationType,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub level: u8,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RestorationParams` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_restoration` is never used
[INFO] [stdout]   --> src/filter/restoration.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn apply_restoration(frame: &Frame, config: &EncoderConfig) -> Result<Frame, EncoderError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wiener_filter` is never used
[INFO] [stdout]   --> src/filter/restoration.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn wiener_filter(
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_wiener_tile` is never used
[INFO] [stdout]   --> src/filter/restoration.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn apply_wiener_tile(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `self_guided_filter` is never used
[INFO] [stdout]    --> src/filter/restoration.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn self_guided_filter(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_sgr_block` is never used
[INFO] [stdout]    --> src/filter/restoration.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn apply_sgr_block(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `v` is never read
[INFO] [stdout]    --> src/filter/restoration.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub struct WienerCoeffs {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub v: [i8; 3],
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WienerCoeffs` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SgrParams` is never constructed
[INFO] [stdout]    --> src/filter/restoration.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct SgrParams {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_frame_entropy` is never used
[INFO] [stdout]   --> src/entropy/mod.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn encode_frame_entropy(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_superblock` is never used
[INFO] [stdout]   --> src/entropy/mod.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn encode_superblock(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_block` is never used
[INFO] [stdout]   --> src/entropy/mod.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn encode_block(
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `run_length`, `coef_level`, and `update` are never used
[INFO] [stdout]    --> src/entropy/arithmetic.rs:151:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl CdfTable {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn run_length() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn coef_level() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn update(&mut self, symbol: u32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cdf` is never used
[INFO] [stdout]   --> src/entropy/context.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ContextModel {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn cdf(&self) -> Vec<u16> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Symbol` is never used
[INFO] [stdout]  --> src/entropy/symbol.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum Symbol {
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `rescale` is never used
[INFO] [stdout]   --> src/entropy/symbol.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl SymbolFreq {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn rescale(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write_bytes`, `bit_length`, and `byte_length` are never used
[INFO] [stdout]    --> src/bitstream/writer.rs:88:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl BitWriter {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn write_bytes(&mut self, bytes: &[u8]) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn bit_length(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn byte_length(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config` and `workers` are never read
[INFO] [stdout]   --> src/tile/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct TileEncoder {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 14 |     /// Encoder configuration.
[INFO] [stdout] 15 |     config: EncoderConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     workers: rayon::ThreadPool,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `encode_frame_parallel`, `create_tiles`, and `encode_tile` are never used
[INFO] [stdout]   --> src/tile/mod.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl TileEncoder {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn encode_frame_parallel(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     fn create_tiles(&self, frame: &Frame) -> Result<Vec<Tile>, EncoderError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     fn encode_tile(&self, tile: Tile, _frame: &Frame) -> Result<EncodedTile, EncoderError> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x`, `y`, `width`, `height`, `col`, and `row` are never read
[INFO] [stdout]    --> src/tile/mod.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct Tile {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] 111 |     /// X offset in pixels.
[INFO] [stdout] 112 |     pub x: u32,
[INFO] [stdout]     |         ^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub y: u32,
[INFO] [stdout]     |         ^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub width: u32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub height: u32,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub col: u8,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub row: u8,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Tile` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tile_col`, `tile_row`, and `data` are never read
[INFO] [stdout]    --> src/tile/mod.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub struct EncodedTile {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 133 |     /// Tile column index.
[INFO] [stdout] 134 |     pub tile_col: u8,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub tile_row: u8,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub data: Vec<u8>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EncodedTile` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tile` and `frame` are never read
[INFO] [stdout]   --> src/tile/worker.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct TileJob {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout]  8 |     /// Tile to encode.
[INFO] [stdout]  9 |     pub tile: super::Tile,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub frame: Frame,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TileJob` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/tile/worker.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl TileJob {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn process(self) -> Result<super::EncodedTile, EncoderError> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `results` is never read
[INFO] [stdout]   --> src/tile/worker.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct TileWorker {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     results: Vec<super::EncodedTile>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `process_jobs` and `take_results` are never used
[INFO] [stdout]   --> src/tile/worker.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl TileWorker {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn process_jobs(&mut self) -> Result<(), EncoderError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn take_results(&mut self) -> Vec<super::EncodedTile> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_film_grain` is never used
[INFO] [stdout]   --> src/filmgrain/mod.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn apply_film_grain(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `temporal` is never read
[INFO] [stdout]   --> src/filmgrain/mod.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct GrainParams {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub temporal: u8,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GrainParams` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `variance` are never read
[INFO] [stdout]   --> src/filmgrain/analysis.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct GrainCharacteristics {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub size: f32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub variance: f32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GrainCharacteristics` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config` and `mdat_start` are never read
[INFO] [stdout]   --> src/mp4/muxer.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct Mp4Muxer<W: Write> {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 50 |     writer: W,
[INFO] [stdout] 51 |     config: Mp4Config,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 52 |     frame_count: u32,
[INFO] [stdout] 53 |     mdat_start: u64,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_slice_data_start` is never used
[INFO] [stdout]    --> src/h264/decoder.rs:317:8
[INFO] [stdout]     |
[INFO] [stdout]  47 | impl H264Decoder {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 317 |     fn get_slice_data_start(&self, _data: &[u8], _sps: &sps::SeqParameterSet, _pps: &pps::PicParameterSet) -> H264Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/h264/decoder.rs:563:8
[INFO] [stdout]     |
[INFO] [stdout] 561 | impl H264Decoder {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 562 |     /// Decode I-frame macroblock.
[INFO] [stdout] 563 |     fn decode_i_macroblock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 612 |     fn decode_p_macroblock(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 647 |     fn apply_intra_16x16_prediction(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 696 |     fn apply_intra_4x4_prediction(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 755 |     fn decode_residual_16x16(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 769 |     fn decode_residual_4x4_blocks(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 782 |     fn apply_skip_prediction(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 812 |     fn apply_motion_compensation(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 828 |     fn apply_motion_compensation_with_ref(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 858 |     fn decode_p_frame(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 915 |     fn decode_macroblocks_simple(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/encoder/mod.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         expected: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/encoder/mod.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         expected_h: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/encoder/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         actual: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/encoder/mod.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         actual_h: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/encoder/builder.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 |         if self.base_qindex > 255 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/mp4/boxes/dinf.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub mod dref {
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub stsd: StsdBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub stts: SttsBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub stsc: StscBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub stsz: StszBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub stco: StcoBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(width: u32, height: u32, num_frames: u32, timescale: u32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn with_frame_sizes(mut self, frame_sizes: &[u32], data_offset: u64) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub width: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub height: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub av1c: Av1CBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/mp4/boxes/stbl.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn new_av1(width: u32, height: u32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub sample_count: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub sample_delta: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 108 |     pub fn new_constant(timescale: u32) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 115 |     pub fn with_fps(mut self, fps_num: u32, fps_den: u32, timescale: u32) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub fn with_frame_count(mut self, count: u32) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     pub fn new_single_chunk() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:199:5
[INFO] [stdout]     |
[INFO] [stdout] 199 |     pub sizes: Vec<u32>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:200:5
[INFO] [stdout]     |
[INFO] [stdout] 200 |     pub sample_size: u32,  // 0 = variable sizes
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:204:5
[INFO] [stdout]     |
[INFO] [stdout] 204 |     pub fn new() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:211:5
[INFO] [stdout]     |
[INFO] [stdout] 211 |     pub fn with_sizes(frame_sizes: &[u32]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:252:5
[INFO] [stdout]     |
[INFO] [stdout] 252 |     pub offsets: Vec<u32>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:256:5
[INFO] [stdout]     |
[INFO] [stdout] 256 |     pub fn new() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/stbl.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 262 |     pub fn with_offset(offset: u64) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub tkhd: TkhdBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub mdia: MdiaBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new_video(track_id: u32, width: u32, height: u32, duration: u64, timescale: u32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub mdhd: super::MdhdBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub hdlr: super::HdlrBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub minf: MinfBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub fn new_video(width: u32, height: u32, duration: u64, timescale: u32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn with_stbl(mut self, stbl: super::StblBox) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub vmhd: super::VmhdBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub dinf: super::DinfBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub stbl: super::StblBox,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/mp4/boxes/containers.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn new_video(width: u32, height: u32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/containers.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub mvhd: super::MvhdBox,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/mp4/boxes/containers.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub trak: TrakBox,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/mp4/boxes/containers.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn new_video(width: u32, height: u32, duration: u64, timescale: u32) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/mp4/boxes/containers.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 129 |     pub fn with_stbl(mut self, stbl: super::StblBox) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub const FTYP: BoxType = BoxType::new(b'f', b't', b'y', b'p');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub const MOOV: BoxType = BoxType::new(b'm', b'o', b'o', b'v');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub const MDAT: BoxType = BoxType::new(b'm', b'd', b'a', b't');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub const FREE: BoxType = BoxType::new(b'f', b'r', b'e', b'e');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub const SKIP: BoxType = BoxType::new(b's', b'k', b'i', b'p');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub const MVHD: BoxType = BoxType::new(b'm', b'v', b'h', b'd');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub const TRAK: BoxType = BoxType::new(b't', b'r', b'a', b'k');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub const MDIA: BoxType = BoxType::new(b'm', b'd', b'i', b'a');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub const MINF: BoxType = BoxType::new(b'm', b'i', b'n', b'f');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub const STBL: BoxType = BoxType::new(b's', b't', b'b', b'l');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub const STSD: BoxType = BoxType::new(b's', b't', b's', b'd');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub const AV01: BoxType = BoxType::new(b'a', b'v', b'0', b'1');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub const AVC1: BoxType = BoxType::new(b'a', b'v', b'c', b'1');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub const TKHD: BoxType = BoxType::new(b't', b'k', b'h', b'd');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub const MDHD: BoxType = BoxType::new(b'm', b'd', b'h', b'd');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub const HDLR: BoxType = BoxType::new(b'h', b'd', b'l', b'r');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub const VMHD: BoxType = BoxType::new(b'v', b'm', b'h', b'd');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub const DINF: BoxType = BoxType::new(b'd', b'i', b'n', b'f');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub const DREF: BoxType = BoxType::new(b'd', b'r', b'e', b'f');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub const URL:  BoxType = BoxType::new(b'u', b'r', b'l', b' ');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub const STTS: BoxType = BoxType::new(b's', b't', b't', b's');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub const STSC: BoxType = BoxType::new(b's', b't', b's', b'c');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub const STSZ: BoxType = BoxType::new(b's', b't', b's', b'z');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub const STCO: BoxType = BoxType::new(b's', b't', b'c', b'o');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub const MVEX: BoxType = BoxType::new(b'm', b'v', b'e', b'x');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/mp4/boxes/mod.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub const TREX: BoxType = BoxType::new(b't', b'r', b'e', b'x');
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/muxer.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fps_den: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/parser.rs:89:22
[INFO] [stdout]    |
[INFO] [stdout] 89 |     InvalidBoxSize { size: u64, box_type: String },
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/parser.rs:89:33
[INFO] [stdout]    |
[INFO] [stdout] 89 |     InvalidBoxSize { size: u64, box_type: String },
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/parser.rs:92:21
[INFO] [stdout]    |
[INFO] [stdout] 92 |     UnexpectedBox { expected: String, found: String },
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/parser.rs:92:39
[INFO] [stdout]    |
[INFO] [stdout] 92 |     UnexpectedBox { expected: String, found: String },
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/mp4/av1c.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub initial_presentation_delay: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/h264/nal.rs:310:22
[INFO] [stdout]     |
[INFO] [stdout] 310 |     pub fn bitreader(&self) -> BitReader {
[INFO] [stdout]     |                      ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 310 |     pub fn bitreader(&self) -> BitReader<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/h264/pps.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub transform_8x8_mode_flag: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/h264/motion.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(x: i32, y: i32) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/h264/motion.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(max_ref_frames: usize) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     Vertical = 0,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     Horizontal = 1,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     Dc = 2,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     DiagonalDownLeft = 3,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     DiagonalDownRight = 4,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     VerticalRight = 5,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 93 |     HorizontalDown = 6,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     VerticalLeft = 7,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/h264/macroblock.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     HorizontalUp = 8,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/h264/macroblock.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     Dc = 0,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/h264/macroblock.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     Horizontal = 1,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/h264/macroblock.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     Vertical = 2,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/h264/macroblock.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     Plane = 3,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 04s
[INFO] running `Command { std: "docker" "inspect" "d145182601b5d5218bd2aef535d974cdc752bbc2a8c270b53d1e5c6d5aa1bd93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d145182601b5d5218bd2aef535d974cdc752bbc2a8c270b53d1e5c6d5aa1bd93", kill_on_drop: false }`
[INFO] [stdout] d145182601b5d5218bd2aef535d974cdc752bbc2a8c270b53d1e5c6d5aa1bd93
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0d162b25edd5bf0dba9a22e83b614f1113e90474" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 58ae7b603c12e1c5697d793228b7213fe4f7730f2915b4e4132824f12b648b01
[INFO] running `Command { std: "docker" "start" "-a" "58ae7b603c12e1c5697d793228b7213fe4f7730f2915b4e4132824f12b648b01", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `frame::Frame`
[INFO] [stderr]  --> src/encoder/state.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::{frame::Frame, EncoderConfig};
[INFO] [stderr]   |             ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `frame::Diff`
[INFO] [stderr]  --> src/frame/superblock.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 |     frame::Diff,
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Block` and `Superblock`
[INFO] [stderr]  --> src/frame/mod.rs:7:22
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub use superblock::{Superblock, Block};
[INFO] [stderr]   |                      ^^^^^^^^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `PartitionType`
[INFO] [stderr]  --> src/partition/mod.rs:6:31
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub use patterns::{Partition, PartitionType};
[INFO] [stderr]   |                               ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `PartitionDecision` and `decide_partition`
[INFO] [stderr]  --> src/partition/mod.rs:7:20
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub use decision::{decide_partition, PartitionDecision};
[INFO] [stderr]   |                    ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/prediction/intra.rs:250:31
[INFO] [stderr]     |
[INFO] [stderr] 250 |             prediction[idx] = ((128.0 * vertical_weight + 128.0 * horizontal_weight) as i16);
[INFO] [stderr]     |                               ^                                                            ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 250 -             prediction[idx] = ((128.0 * vertical_weight + 128.0 * horizontal_weight) as i16);
[INFO] [stderr] 250 +             prediction[idx] = (128.0 * vertical_weight + 128.0 * horizontal_weight) as i16;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `InterMode` and `predict_inter`
[INFO] [stderr]  --> src/prediction/mod.rs:8:17
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub use inter::{InterMode, predict_inter};
[INFO] [stderr]   |                 ^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `MotionEstimation` and `ReferenceFrame`
[INFO] [stderr]  --> src/prediction/mod.rs:9:18
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub use motion::{MotionEstimation, MotionVector, ReferenceFrame};
[INFO] [stderr]   |                  ^^^^^^^^^^^^^^^^                ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EncoderConfig`
[INFO] [stderr]   --> src/prediction/mod.rs:11:13
[INFO] [stderr]    |
[INFO] [stderr] 11 | use crate::{EncoderConfig, EncoderError, Frame};
[INFO] [stderr]    |             ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EncoderError`
[INFO] [stderr]  --> src/transform/selector.rs:4:28
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::{EncoderConfig, EncoderError};
[INFO] [stderr]   |                            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `select_transform`
[INFO] [stderr]   --> src/transform/mod.rs:11:20
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use selector::{select_transform, TransformSize};
[INFO] [stderr]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AdaptiveQuantization` and `calculate_adaptive_qp`
[INFO] [stderr]  --> src/quantization/mod.rs:7:20
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub use adaptive::{calculate_adaptive_qp, AdaptiveQuantization};
[INFO] [stderr]   |                    ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DeltaQParams` and `calculate_delta_q`
[INFO] [stderr]  --> src/quantization/mod.rs:8:19
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub use delta_q::{calculate_delta_q, DeltaQParams};
[INFO] [stderr]   |                   ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Segment` and `SegmentationParams`
[INFO] [stderr]  --> src/quantization/mod.rs:9:24
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub use segmentation::{Segment, SegmentationParams};
[INFO] [stderr]   |                        ^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DeblockParams`
[INFO] [stderr]  --> src/filter/mod.rs:7:34
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub use deblock::{apply_deblock, DeblockParams};
[INFO] [stderr]   |                                  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `CdefParams`
[INFO] [stderr]  --> src/filter/mod.rs:8:28
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub use cdef::{apply_cdef, CdefParams};
[INFO] [stderr]   |                            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `RestorationParams`
[INFO] [stderr]  --> src/filter/mod.rs:9:42
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub use restoration::{apply_restoration, RestorationParams};
[INFO] [stderr]   |                                          ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `context::ContextModel`
[INFO] [stderr]  --> src/entropy/mod.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub use context::ContextModel;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `SymbolFreq` and `Symbol`
[INFO] [stderr]  --> src/entropy/mod.rs:9:18
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub use symbol::{Symbol, SymbolFreq};
[INFO] [stderr]   |                  ^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `TileJob` and `TileWorker`
[INFO] [stderr]  --> src/tile/mod.rs:5:18
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub use worker::{TileWorker, TileJob};
[INFO] [stderr]   |                  ^^^^^^^^^^  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `GrainCharacteristics`
[INFO] [stderr]  --> src/filmgrain/mod.rs:6:35
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub use analysis::{analyze_grain, GrainCharacteristics};
[INFO] [stderr]   |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `synthesis::synthesize_grain`
[INFO] [stderr]  --> src/filmgrain/mod.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub use synthesis::synthesize_grain;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::Mp4Box`
[INFO] [stderr]  --> src/mp4/boxes/avcc.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use super::Mp4Box;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `types`
[INFO] [stderr]  --> src/mp4/av1c.rs:7:37
[INFO] [stderr]   |
[INFO] [stderr] 7 | use super::boxes::{Mp4Box, BoxType, types};
[INFO] [stderr]   |                                     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::H264Result`
[INFO] [stderr]  --> src/h264/nal.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use super::H264Result;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/h264/decoder.rs:485:34
[INFO] [stderr]     |
[INFO] [stderr] 485 |                     let offset = ((x as i32 - width as i32 / 2) + (y as i32 - height as i32 / 2));
[INFO] [stderr]     |                                  ^                                                              ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 485 -                     let offset = ((x as i32 - width as i32 / 2) + (y as i32 - height as i32 / 2));
[INFO] [stderr] 485 +                     let offset = (x as i32 - width as i32 / 2) + (y as i32 - height as i32 / 2);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::H264Result`
[INFO] [stderr]  --> src/h264/motion.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use super::H264Result;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::H264Error`
[INFO] [stderr]  --> src/h264/cavlc.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use super::H264Error;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]   --> src/h264/transform.rs:49:9
[INFO] [stderr]    |
[INFO] [stderr] 49 |         ((coeff * scale + q) >> (q_bits - 1))
[INFO] [stderr]    |         ^                                   ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 49 -         ((coeff * scale + q) >> (q_bits - 1))
[INFO] [stderr] 49 +         (coeff * scale + q) >> (q_bits - 1)
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `range`
[INFO] [stderr]    --> src/prediction/motion.rs:224:5
[INFO] [stderr]     |
[INFO] [stderr] 224 |     range: u8,
[INFO] [stderr]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]    --> src/prediction/mod.rs:121:5
[INFO] [stderr]     |
[INFO] [stderr] 121 |     state: &crate::encoder::state::EncoderState,
[INFO] [stderr]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `oo1`
[INFO] [stderr]    --> src/transform/dct.rs:263:9
[INFO] [stderr]     |
[INFO] [stderr] 263 |     let oo1 = o1 + o2;
[INFO] [stderr]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_oo1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `oo2`
[INFO] [stderr]    --> src/transform/dct.rs:264:9
[INFO] [stderr]     |
[INFO] [stderr] 264 |     let oo2 = o1 - o2;
[INFO] [stderr]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_oo2`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `input`
[INFO] [stderr]    --> src/transform/dct.rs:287:12
[INFO] [stderr]     |
[INFO] [stderr] 287 | fn fdct_16(input: &[i32]) -> Vec<i32> {
[INFO] [stderr]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `input`
[INFO] [stderr]    --> src/transform/dct.rs:293:12
[INFO] [stderr]     |
[INFO] [stderr] 293 | fn idct_16(input: &[i32]) -> Vec<i32> {
[INFO] [stderr]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `input`
[INFO] [stderr]    --> src/transform/dct.rs:299:12
[INFO] [stderr]     |
[INFO] [stderr] 299 | fn fdct_32(input: &[i32]) -> Vec<i32> {
[INFO] [stderr]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `input`
[INFO] [stderr]    --> src/transform/dct.rs:305:12
[INFO] [stderr]     |
[INFO] [stderr] 305 | fn idct_32(input: &[i32]) -> Vec<i32> {
[INFO] [stderr]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `input`
[INFO] [stderr]    --> src/transform/dct.rs:311:12
[INFO] [stderr]     |
[INFO] [stderr] 311 | fn fdct_64(input: &[i32]) -> Vec<i32> {
[INFO] [stderr]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `input`
[INFO] [stderr]    --> src/transform/dct.rs:317:12
[INFO] [stderr]     |
[INFO] [stderr] 317 | fn idct_64(input: &[i32]) -> Vec<i32> {
[INFO] [stderr]     |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `input`
[INFO] [stderr]   --> src/transform/adst.rs:50:12
[INFO] [stderr]    |
[INFO] [stderr] 50 | fn fadst_4(input: &[i32]) -> Vec<i32> {
[INFO] [stderr]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `input`
[INFO] [stderr]   --> src/transform/adst.rs:57:12
[INFO] [stderr]    |
[INFO] [stderr] 57 | fn iadst_4(input: &[i32]) -> Vec<i32> {
[INFO] [stderr]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `input`
[INFO] [stderr]   --> src/transform/adst.rs:63:12
[INFO] [stderr]    |
[INFO] [stderr] 63 | fn fadst_8(input: &[i32]) -> Vec<i32> {
[INFO] [stderr]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `input`
[INFO] [stderr]   --> src/transform/adst.rs:69:12
[INFO] [stderr]    |
[INFO] [stderr] 69 | fn iadst_8(input: &[i32]) -> Vec<i32> {
[INFO] [stderr]    |            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `size`
[INFO] [stderr]  --> src/transform/identity.rs:7:45
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn identity_transform(residual: &[i16], size: u32) -> Vec<i16> {
[INFO] [stderr]   |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `size`
[INFO] [stderr]    --> src/transform/selector.rs:165:41
[INFO] [stderr]     |
[INFO] [stderr] 165 | fn calculate_variance(residual: &[i16], size: u32) -> f64 {
[INFO] [stderr]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `base_qp`
[INFO] [stderr]   --> src/quantization/delta_q.rs:38:5
[INFO] [stderr]    |
[INFO] [stderr] 38 |     base_qp: u8,
[INFO] [stderr]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_qp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rate`
[INFO] [stderr]    --> src/entropy/arithmetic.rs:173:17
[INFO] [stderr]     |
[INFO] [stderr] 173 |             let rate = 8; // Adaptation rate
[INFO] [stderr]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_rate`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `coefficients`
[INFO] [stderr]   --> src/entropy/mod.rs:75:5
[INFO] [stderr]    |
[INFO] [stderr] 75 |     coefficients: &[i32],
[INFO] [stderr]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_coefficients`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/bitstream/writer.rs:61:32
[INFO] [stderr]    |
[INFO] [stderr] 61 |     pub fn write_ue(&mut self, mut value: u32) {
[INFO] [stderr]    |                                ----^^^^^
[INFO] [stderr]    |                                |
[INFO] [stderr]    |                                help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `num_frames`
[INFO] [stderr]   --> src/mp4/boxes/stbl.rs:20:41
[INFO] [stderr]    |
[INFO] [stderr] 20 |     pub fn new(width: u32, height: u32, num_frames: u32, timescale: u32) -> Self {
[INFO] [stderr]    |                                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_frames`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `width`
[INFO] [stderr]    --> src/mp4/boxes/stbl.rs:298:20
[INFO] [stderr]     |
[INFO] [stderr] 298 | fn av01_entry_size(width: u32, height: u32, av1c: &Av1CBox) -> u32 {
[INFO] [stderr]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `height`
[INFO] [stderr]    --> src/mp4/boxes/stbl.rs:298:32
[INFO] [stderr]     |
[INFO] [stderr] 298 | fn av01_entry_size(width: u32, height: u32, av1c: &Av1CBox) -> u32 {
[INFO] [stderr]     |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `frame_data`
[INFO] [stderr]   --> src/mp4/muxer.rs:83:33
[INFO] [stderr]    |
[INFO] [stderr] 83 |     pub fn add_frame(&mut self, frame_data: &[u8], _pts: u64, _keyframe: bool) -> io::Result<()> {
[INFO] [stderr]    |                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_data`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/mp4/muxer.rs:94:21
[INFO] [stderr]    |
[INFO] [stderr] 94 |     pub fn finalize(mut self) -> io::Result<()> {
[INFO] [stderr]    |                     ----^^^^
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `mdat_size`
[INFO] [stderr]    --> src/mp4/muxer.rs:122:9
[INFO] [stderr]     |
[INFO] [stderr] 122 |     let mdat_size = 8 + data_size;
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mdat_size`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sample_delta`
[INFO] [stderr]    --> src/mp4/muxer.rs:140:9
[INFO] [stderr]     |
[INFO] [stderr] 140 |     let sample_delta = (config.timescale * config.fps_den) / config.fps_num;
[INFO] [stderr]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample_delta`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `moov_size`
[INFO] [stderr]    --> src/mp4/muxer.rs:153:9
[INFO] [stderr]     |
[INFO] [stderr] 153 |     let moov_size = moov.box_size();
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_moov_size`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `nal_ref_idc`
[INFO] [stderr]   --> src/h264/nal.rs:65:24
[INFO] [stderr]    |
[INFO] [stderr] 65 |     pub fn from_header(nal_ref_idc: u8, nal_unit_type: u8) -> Option<Self> {
[INFO] [stderr]    |                        ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nal_ref_idc`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sps`
[INFO] [stderr]    --> src/h264/decoder.rs:331:5
[INFO] [stderr]     |
[INFO] [stderr] 331 |     sps: &sps::SeqParameterSet,
[INFO] [stderr]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_sps`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `qp`
[INFO] [stderr]    --> src/h264/decoder.rs:332:5
[INFO] [stderr]     |
[INFO] [stderr] 332 |     qp: u8,
[INFO] [stderr]     |     ^^ help: if this is intentional, prefix it with an underscore: `_qp`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pred_mode`
[INFO] [stderr]    --> src/h264/decoder.rs:341:26
[INFO] [stderr]     |
[INFO] [stderr] 341 |         MbType::I16x16 { pred_mode, .. } => {
[INFO] [stderr]     |                          ^^^^^^^^^ help: try ignoring the field: `pred_mode: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sps`
[INFO] [stderr]    --> src/h264/decoder.rs:378:5
[INFO] [stderr]     |
[INFO] [stderr] 378 |     sps: &sps::SeqParameterSet,
[INFO] [stderr]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_sps`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sps`
[INFO] [stderr]    --> src/h264/decoder.rs:569:9
[INFO] [stderr]     |
[INFO] [stderr] 569 |         sps: &sps::SeqParameterSet,
[INFO] [stderr]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_sps`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sps`
[INFO] [stderr]    --> src/h264/decoder.rs:618:9
[INFO] [stderr]     |
[INFO] [stderr] 618 |         sps: &sps::SeqParameterSet,
[INFO] [stderr]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_sps`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `bit` is never read
[INFO] [stderr]    --> src/h264/bitreader.rs:140:23
[INFO] [stderr]     |
[INFO] [stderr] 140 |         let mut bit = false;
[INFO] [stderr]     |                       ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `height`
[INFO] [stderr]    --> src/h264/intra.rs:276:15
[INFO] [stderr]     |
[INFO] [stderr] 276 |     fn calc_b(height: i32, v_grad: i32) -> i32 {
[INFO] [stderr]     |               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `width`
[INFO] [stderr]    --> src/h264/intra.rs:281:15
[INFO] [stderr]     |
[INFO] [stderr] 281 |     fn calc_c(width: i32, h_grad: i32) -> i32 {
[INFO] [stderr]     |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stderr] 
[INFO] [stderr] warning: field `sse` is never read
[INFO] [stderr]   --> src/encoder/mod.rs:56:9
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub struct ModeDecision {
[INFO] [stderr]    |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 56 |     pub sse: i64,
[INFO] [stderr]    |         ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BLOCK_SIZE` is never used
[INFO] [stderr]   --> src/encoder/mod.rs:81:11
[INFO] [stderr]    |
[INFO] [stderr] 81 |     const BLOCK_SIZE: u32 = 64;
[INFO] [stderr]    |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `state` is never read
[INFO] [stderr]    --> src/encoder/mod.rs:172:5
[INFO] [stderr]     |
[INFO] [stderr] 170 | pub struct Encoder {
[INFO] [stderr]     |            ------- field in this struct
[INFO] [stderr] 171 |     config: EncoderConfig,
[INFO] [stderr] 172 |     state: EncoderState,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `reference_frames`, `cdf_tables`, and `last_qp` are never read
[INFO] [stderr]   --> src/encoder/state.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr]  9 | pub struct EncoderState {
[INFO] [stderr]    |            ------------ fields in this struct
[INFO] [stderr] 10 |     /// Reference frames for inter prediction.
[INFO] [stderr] 11 |     reference_frames: VecDeque<ReferenceFrame>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 14 |     cdf_tables: CdfState,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 17 |     last_qp: Vec<u8>,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `store_reference`, `get_reference`, `last_reference`, and `update_cdf` are never used
[INFO] [stderr]   --> src/encoder/state.rs:32:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl EncoderState {
[INFO] [stderr]    | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 32 |     pub fn store_reference(&mut self, frame: ReconstructedFrame, frame_type: crate::frame::FrameType) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub fn get_reference(&self, index: usize) -> Option<&ReferenceFrame> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub fn last_reference(&self) -> Option<&ReferenceFrame> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn update_cdf(&mut self, symbols: &[u32]) {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `frame` and `frame_type` are never read
[INFO] [stderr]   --> src/encoder/state.rs:62:9
[INFO] [stderr]    |
[INFO] [stderr] 60 | pub struct ReferenceFrame {
[INFO] [stderr]    |            -------------- fields in this struct
[INFO] [stderr] 61 |     /// The reconstructed frame data.
[INFO] [stderr] 62 |     pub frame: ReconstructedFrame,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 65 |     pub frame_type: crate::frame::FrameType,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `width`, `height`, `y_plane`, `u_plane`, and `v_plane` are never read
[INFO] [stderr]   --> src/encoder/state.rs:72:9
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub struct ReconstructedFrame {
[INFO] [stderr]    |            ------------------ fields in this struct
[INFO] [stderr] 71 |     /// Frame width.
[INFO] [stderr] 72 |     pub width: u32,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 75 |     pub height: u32,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 78 |     pub y_plane: Vec<u8>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 81 |     pub u_plane: Vec<u8>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 84 |     pub v_plane: Vec<u8>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ReconstructedFrame` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `intra_mode_cdf`, `inter_mode_cdf`, `transform_cdf`, and `coef_cdf` are never read
[INFO] [stderr]    --> src/encoder/state.rs:91:5
[INFO] [stderr]     |
[INFO] [stderr]  89 | pub struct CdfState {
[INFO] [stderr]     |            -------- fields in this struct
[INFO] [stderr]  90 |     /// Intra prediction mode CDFs.
[INFO] [stderr]  91 |     intra_mode_cdf: Vec<Vec<u16>>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  94 |     inter_mode_cdf: Vec<Vec<u16>>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  97 |     transform_cdf: Vec<Vec<u16>>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 |     coef_cdf: Vec<Vec<u16>>,
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `update`, `intra_mode_cdf`, and `transform_cdf` are never used
[INFO] [stderr]    --> src/encoder/state.rs:105:12
[INFO] [stderr]     |
[INFO] [stderr] 103 | impl CdfState {
[INFO] [stderr]     | ------------- associated items in this implementation
[INFO] [stderr] 104 |     /// Create new CDF state with initial probabilities.
[INFO] [stderr] 105 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 111 |     pub fn update(&mut self, symbols: &[u32]) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 117 |     pub fn intra_mode_cdf(&self, block_size: u8) -> &[u16] {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 124 |     pub fn transform_cdf(&self, tx_size: u8) -> &[u16] {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Diff` is never used
[INFO] [stderr]   --> src/frame/mod.rs:13:10
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub type Diff = i16;
[INFO] [stderr]    |          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Coef` is never used
[INFO] [stderr]   --> src/frame/mod.rs:16:10
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub type Coef = i32;
[INFO] [stderr]    |          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Residual` is never constructed
[INFO] [stderr]    --> src/frame/types.rs:317:12
[INFO] [stderr]     |
[INFO] [stderr] 317 | pub struct Residual {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `get`, and `set` are never used
[INFO] [stderr]    --> src/frame/types.rs:330:12
[INFO] [stderr]     |
[INFO] [stderr] 328 | impl Residual {
[INFO] [stderr]     | ------------- associated items in this implementation
[INFO] [stderr] 329 |     /// Create a new residual with the given dimensions.
[INFO] [stderr] 330 |     pub fn new(width: u32, height: u32) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 339 |     pub fn get(&self, x: u32, y: u32) -> Diff {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 344 |     pub fn set(&mut self, x: u32, y: u32, value: Diff) {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `partitions`, `delta_q`, and `restoration_level` are never read
[INFO] [stderr]   --> src/frame/superblock.rs:20:9
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct Superblock {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 20 |     pub partitions: Vec<PartitionNode>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub delta_q: i8,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 29 |     pub restoration_level: u8,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Superblock` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Leaf` and `Internal` are never constructed
[INFO] [stderr]   --> src/frame/superblock.rs:61:5
[INFO] [stderr]    |
[INFO] [stderr] 59 | pub enum PartitionNode {
[INFO] [stderr]    |          ------------- variants in this enum
[INFO] [stderr] 60 |     /// Leaf node - contains a block.
[INFO] [stderr] 61 |     Leaf(Block),
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 64 |     Internal {
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PartitionNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `prediction`, `motion_vector`, `transform`, `coefficients`, `skip`, and `lossless` are never read
[INFO] [stderr]    --> src/frame/superblock.rs:86:9
[INFO] [stderr]     |
[INFO] [stderr]  75 | pub struct Block {
[INFO] [stderr]     |            ----- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr]  86 |     pub prediction: PredictionMode,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  89 |     pub motion_vector: Option<MotionVector>,
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  92 |     pub transform: TransformType,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  95 |     pub coefficients: Vec<i32>,
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  98 |     pub skip: bool,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 101 |     pub lossless: bool,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Block` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/frame/superblock.rs:126:12
[INFO] [stderr]     |
[INFO] [stderr] 104 | impl Block {
[INFO] [stderr]     | ---------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 126 |     pub fn width(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 131 |     pub fn height(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 136 |     pub fn pixel_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 142 |     pub fn coefficient_count(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 147 |     pub fn is_intra(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 152 |     pub fn is_inter(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 157 |     pub fn has_coefficients(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `BlockSize` is never used
[INFO] [stderr]    --> src/frame/superblock.rs:164:10
[INFO] [stderr]     |
[INFO] [stderr] 164 | pub enum BlockSize {
[INFO] [stderr]     |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/frame/superblock.rs:185:12
[INFO] [stderr]     |
[INFO] [stderr] 183 | impl BlockSize {
[INFO] [stderr]     | -------------- methods in this implementation
[INFO] [stderr] 184 |     /// Get the width of this block size.
[INFO] [stderr] 185 |     pub fn width(self) -> u32 {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 197 |     pub fn height(self) -> u32 {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 209 |     pub fn is_square(self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 214 |     pub fn width_log2(self) -> u8 {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 219 |     pub fn height_log2(self) -> u8 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 224 |     pub fn area(self) -> u32 {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 229 |     pub fn fits_in_sb128(self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `splits` and `child_count` are never used
[INFO] [stderr]   --> src/partition/patterns.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | impl Partition {
[INFO] [stderr]    | -------------- methods in this implementation
[INFO] [stderr] 20 |     /// Check if this partition splits the block.
[INFO] [stderr] 21 |     pub fn splits(self) -> bool {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub fn child_count(self) -> usize {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `PartitionContext` is never used
[INFO] [stderr]   --> src/partition/patterns.rs:37:10
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub enum PartitionContext {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from_size` and `valid_partitions` are never used
[INFO] [stderr]   --> src/partition/patterns.rs:50:12
[INFO] [stderr]    |
[INFO] [stderr] 48 | impl PartitionContext {
[INFO] [stderr]    | --------------------- associated items in this implementation
[INFO] [stderr] 49 |     /// Get the partition context for a given block size.
[INFO] [stderr] 50 |     pub fn from_size(width: u32, height: u32) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 61 |     pub fn valid_partitions(self) -> &'static [Partition] {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]    --> src/partition/patterns.rs:85:5
[INFO] [stderr]     |
[INFO] [stderr]  83 | pub enum PartitionType {
[INFO] [stderr]     |          ------------- variants in this enum
[INFO] [stderr]  84 |     /// PARTITION_NONE
[INFO] [stderr]  85 |     None,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] ...
[INFO] [stderr]  88 |     Horizontal,
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  91 |     Vertical,
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  94 |     Quad,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] ...
[INFO] [stderr]  97 |     HorzA,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 |     HorzB,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 103 |     VertA,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 106 |     VertB,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 109 |     Horz4,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 112 |     Vert4,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `PartitionType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `decide_partition` is never used
[INFO] [stderr]   --> src/partition/decision.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub fn decide_partition(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `simple_partition` is never used
[INFO] [stderr]   --> src/partition/decision.rs:49:4
[INFO] [stderr]    |
[INFO] [stderr] 49 | fn simple_partition(
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculate_complexity` is never used
[INFO] [stderr]   --> src/partition/decision.rs:67:4
[INFO] [stderr]    |
[INFO] [stderr] 67 | fn calculate_complexity(x: u32, y: u32, size: u32, frame: &Frame) -> f64 {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PartitionDecision` is never constructed
[INFO] [stderr]   --> src/partition/decision.rs:99:12
[INFO] [stderr]    |
[INFO] [stderr] 99 | pub struct PartitionDecision {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `is_better_than` are never used
[INFO] [stderr]    --> src/partition/decision.rs:115:12
[INFO] [stderr]     |
[INFO] [stderr] 113 | impl PartitionDecision {
[INFO] [stderr]     | ---------------------- associated items in this implementation
[INFO] [stderr] 114 |     /// Create a new partition decision.
[INFO] [stderr] 115 |     pub fn new(partition: Partition, rate: f64, distortion: f64, lambda: f64) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 126 |     pub fn is_better_than(&self, other: &Self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]   --> src/prediction/mod.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub enum PredictionMode {
[INFO] [stderr]    |          -------------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 19 |     V,
[INFO] [stderr]    |     ^
[INFO] [stderr] 20 |     H,
[INFO] [stderr]    |     ^
[INFO] [stderr] 21 |     Smooth,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 22 |     SmoothV,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 23 |     SmoothH,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 24 |     Paeth,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 25 |     Directional(u8), // 0-63 = angular directions
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 26 |     ChromaFromLuma,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 29 |     NearestMv,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 30 |     NearMv,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 31 |     ZeroMv,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 32 |     NewMv,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 33 |     Compound,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 34 |     CompoundWarped,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PredictionMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_intra`, `is_inter`, and `as_intra` are never used
[INFO] [stderr]   --> src/prediction/mod.rs:44:12
[INFO] [stderr]    |
[INFO] [stderr] 37 | impl PredictionMode {
[INFO] [stderr]    | ------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub fn is_intra(self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 60 |     pub fn is_inter(self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 65 |     pub fn as_intra(self) -> Option<IntraMode> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `predict_frame` is never used
[INFO] [stderr]   --> src/prediction/mod.rs:82:8
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub fn predict_frame(
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `predict_superblock` is never used
[INFO] [stderr]   --> src/prediction/mod.rs:98:4
[INFO] [stderr]    |
[INFO] [stderr] 98 | fn predict_superblock(
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `predict_block` is never used
[INFO] [stderr]    --> src/prediction/mod.rs:117:4
[INFO] [stderr]     |
[INFO] [stderr] 117 | fn predict_block(
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PredictedSuperblock` is never constructed
[INFO] [stderr]    --> src/prediction/mod.rs:147:12
[INFO] [stderr]     |
[INFO] [stderr] 147 | pub struct PredictedSuperblock {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PredictedBlock` is never constructed
[INFO] [stderr]    --> src/prediction/mod.rs:156:12
[INFO] [stderr]     |
[INFO] [stderr] 156 | pub struct PredictedBlock {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `SmoothV`, `SmoothH`, `Paeth`, `Directional`, and `ChromaFromLuma` are never constructed
[INFO] [stderr]   --> src/prediction/intra.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr]  5 | pub enum IntraMode {
[INFO] [stderr]    |          --------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 19 |     SmoothV,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 |     SmoothH,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 25 |     Paeth,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 28 |     Directional(u8),
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 31 |     ChromaFromLuma,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `IntraMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `count`, `is_directional`, `angle`, `from_raw`, and `to_raw` are never used
[INFO] [stderr]   --> src/prediction/intra.rs:36:12
[INFO] [stderr]    |
[INFO] [stderr] 34 | impl IntraMode {
[INFO] [stderr]    | -------------- associated items in this implementation
[INFO] [stderr] 35 |     /// Get the total number of intra modes.
[INFO] [stderr] 36 |     pub fn count() -> u8 {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub fn is_directional(self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 46 |     pub fn angle(self) -> Option<u8> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn from_raw(raw: u8) -> Self {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 69 |     pub fn to_raw(self) -> u8 {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `InterMode` is never used
[INFO] [stderr]  --> src/prediction/inter.rs:7:10
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub enum InterMode {
[INFO] [stderr]   |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_compound` is never used
[INFO] [stderr]   --> src/prediction/inter.rs:29:12
[INFO] [stderr]    |
[INFO] [stderr] 27 | impl InterMode {
[INFO] [stderr]    | -------------- method in this implementation
[INFO] [stderr] 28 |     /// Check if this mode uses compound prediction.
[INFO] [stderr] 29 |     pub fn is_compound(self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `predict_inter` is never used
[INFO] [stderr]   --> src/prediction/inter.rs:46:8
[INFO] [stderr]    |
[INFO] [stderr] 46 | pub fn predict_inter(
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `predict_compound` is never used
[INFO] [stderr]    --> src/prediction/inter.rs:112:8
[INFO] [stderr]     |
[INFO] [stderr] 112 | pub fn predict_compound(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `zero`, `is_zero`, `magnitude`, and `scale` are never used
[INFO] [stderr]   --> src/prediction/motion.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl MotionVector {
[INFO] [stderr]    | ----------------- associated items in this implementation
[INFO] [stderr] 17 |     /// Create a new motion vector.
[INFO] [stderr] 18 |     pub fn new(x: i16, y: i16, ref_frame: ReferenceFrame) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 23 |     pub fn zero(ref_frame: ReferenceFrame) -> Self {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub fn is_zero(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn magnitude(&self) -> f64 {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 38 |     pub fn scale(&self, scale: f64) -> Self {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]   --> src/prediction/motion.rs:51:5
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub enum ReferenceFrame {
[INFO] [stderr]    |          -------------- variants in this enum
[INFO] [stderr] 50 |     /// Intra frame (no reference).
[INFO] [stderr] 51 |     Intra,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     Last,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 57 |     Last2,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 60 |     Last3,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 63 |     Golden,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 66 |     AltRef,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 69 |     AltRef2,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ReferenceFrame` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `index`, `is_backward`, and `is_forward` are never used
[INFO] [stderr]   --> src/prediction/motion.rs:74:12
[INFO] [stderr]    |
[INFO] [stderr] 72 | impl ReferenceFrame {
[INFO] [stderr]    | ------------------- methods in this implementation
[INFO] [stderr] 73 |     /// Get the index of this reference frame.
[INFO] [stderr] 74 |     pub fn index(self) -> Option<usize> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 87 |     pub fn is_backward(self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 95 |     pub fn is_forward(self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MotionEstimationParams` is never constructed
[INFO] [stderr]    --> src/prediction/motion.rs:102:12
[INFO] [stderr]     |
[INFO] [stderr] 102 | pub struct MotionEstimationParams {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MotionEstimation` is never constructed
[INFO] [stderr]    --> src/prediction/motion.rs:129:12
[INFO] [stderr]     |
[INFO] [stderr] 129 | pub struct MotionEstimation {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `estimate_motion` is never used
[INFO] [stderr]    --> src/prediction/motion.rs:150:8
[INFO] [stderr]     |
[INFO] [stderr] 150 | pub fn estimate_motion(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `full_search` is never used
[INFO] [stderr]    --> src/prediction/motion.rs:182:4
[INFO] [stderr]     |
[INFO] [stderr] 182 | fn full_search(
[INFO] [stderr]     |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `diamond_search` is never used
[INFO] [stderr]    --> src/prediction/motion.rs:218:4
[INFO] [stderr]     |
[INFO] [stderr] 218 | fn diamond_search(
[INFO] [stderr]     |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calculate_sad` is never used
[INFO] [stderr]    --> src/prediction/motion.rs:282:4
[INFO] [stderr]     |
[INFO] [stderr] 282 | fn calculate_sad(
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]   --> src/transform/mod.rs:23:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub enum TransformType {
[INFO] [stderr]    |          ------------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 23 |     DctAdst,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |     AdstDct,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 29 |     AdstAdst,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 32 |     Identity,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 |     DctIdentity,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 38 |     IdentityAdst,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 41 |     AdstIdentity,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     IdentityIdentity,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TransformType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `default`, `has_horizontal`, `has_vertical`, `horizontal_type`, and `vertical_type` are never used
[INFO] [stderr]   --> src/transform/mod.rs:49:12
[INFO] [stderr]    |
[INFO] [stderr] 47 | impl TransformType {
[INFO] [stderr]    | ------------------ associated items in this implementation
[INFO] [stderr] 48 |     /// Get the default transform type.
[INFO] [stderr] 49 |     pub fn default() -> Self {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn has_horizontal(self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 62 |     pub fn has_vertical(self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 70 |     pub fn horizontal_type(self) -> TxType {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 83 |     pub fn vertical_type(self) -> TxType {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `TxType` is never used
[INFO] [stderr]   --> src/transform/mod.rs:98:10
[INFO] [stderr]    |
[INFO] [stderr] 98 | pub enum TxType {
[INFO] [stderr]    |          ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `transform_frame` is never used
[INFO] [stderr]    --> src/transform/mod.rs:105:8
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub fn transform_frame(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `forward_transform_block` is never used
[INFO] [stderr]    --> src/transform/mod.rs:142:8
[INFO] [stderr]     |
[INFO] [stderr] 142 | pub fn forward_transform_block(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `inverse_transform_block` is never used
[INFO] [stderr]    --> src/transform/mod.rs:174:8
[INFO] [stderr]     |
[INFO] [stderr] 174 | pub fn inverse_transform_block(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TransformedSuperblock` is never constructed
[INFO] [stderr]    --> src/transform/mod.rs:193:12
[INFO] [stderr]     |
[INFO] [stderr] 193 | pub struct TransformedSuperblock {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TransformedBlock` is never constructed
[INFO] [stderr]    --> src/transform/mod.rs:202:12
[INFO] [stderr]     |
[INFO] [stderr] 202 | pub struct TransformedBlock {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `inverse_dct` is never used
[INFO] [stderr]    --> src/transform/dct.rs:137:8
[INFO] [stderr]     |
[INFO] [stderr] 137 | pub fn inverse_dct(coefficients: &[i32], size: u32) -> Vec<i16> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `idct_1d` is never used
[INFO] [stderr]    --> src/transform/dct.rs:166:15
[INFO] [stderr]     |
[INFO] [stderr] 166 | pub(crate) fn idct_1d(input: &[i32]) -> Vec<i32> {
[INFO] [stderr]     |               ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `idct_4` is never used
[INFO] [stderr]    --> src/transform/dct.rs:218:4
[INFO] [stderr]     |
[INFO] [stderr] 218 | fn idct_4(input: &[i32]) -> Vec<i32> {
[INFO] [stderr]     |    ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `C1` is never used
[INFO] [stderr]    --> src/transform/dct.rs:254:11
[INFO] [stderr]     |
[INFO] [stderr] 254 |     const C1: i32 = 16069;  // cos(pi/16)
[INFO] [stderr]     |           ^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `C2` is never used
[INFO] [stderr]    --> src/transform/dct.rs:255:11
[INFO] [stderr]     |
[INFO] [stderr] 255 |     const C2: i32 = 15137;  // cos(3pi/16)
[INFO] [stderr]     |           ^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `C3` is never used
[INFO] [stderr]    --> src/transform/dct.rs:256:11
[INFO] [stderr]     |
[INFO] [stderr] 256 |     const C3: i32 = 11585;  // cos(5pi/16) = sin(3pi/16)
[INFO] [stderr]     |           ^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `C4` is never used
[INFO] [stderr]    --> src/transform/dct.rs:257:11
[INFO] [stderr]     |
[INFO] [stderr] 257 |     const C4: i32 = 6270;   // cos(7pi/16) = sin(pi/16)
[INFO] [stderr]     |           ^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `idct_8` is never used
[INFO] [stderr]    --> src/transform/dct.rs:281:4
[INFO] [stderr]     |
[INFO] [stderr] 281 | fn idct_8(input: &[i32]) -> Vec<i32> {
[INFO] [stderr]     |    ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `idct_16` is never used
[INFO] [stderr]    --> src/transform/dct.rs:293:4
[INFO] [stderr]     |
[WARN] too many lines in the log, truncating it
