[INFO] cloning repository https://github.com/Egue/hjstream [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Egue/hjstream" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEgue%2Fhjstream", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEgue%2Fhjstream'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a4434ebd7441ef9c629204f5546ac44a3e77a56d [INFO] testing Egue/hjstream against 1.97.0-beta.6 for beta-1.98-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEgue%2Fhjstream" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-6-tc1/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/Egue/hjstream [INFO] finished tweaking git repo https://github.com/Egue/hjstream [INFO] tweaked toml for git repo https://github.com/Egue/hjstream written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Egue/hjstream on toolchain 1.97.0-beta.6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Egue/hjstream 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" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tokio-test v0.4.5 [INFO] [stderr] Downloaded prometheus v0.13.4 [INFO] [stderr] Downloaded mockito v1.7.1 [INFO] [stderr] Downloaded axum-macros v0.4.2 [INFO] [stderr] Downloaded protobuf v2.28.0 [INFO] [stderr] Downloaded zerocopy-derive v0.8.35 [INFO] [stderr] Downloaded zerocopy v0.8.35 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 20d2536ea7a68db23f0255072189ad55a9aeff18c018ba3d172300eaa25aa369 [INFO] running `Command { std: "docker" "start" "20d2536ea7a68db23f0255072189ad55a9aeff18c018ba3d172300eaa25aa369", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "20d2536ea7a68db23f0255072189ad55a9aeff18c018ba3d172300eaa25aa369", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "20d2536ea7a68db23f0255072189ad55a9aeff18c018ba3d172300eaa25aa369" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "20d2536ea7a68db23f0255072189ad55a9aeff18c018ba3d172300eaa25aa369", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "20d2536ea7a68db23f0255072189ad55a9aeff18c018ba3d172300eaa25aa369" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Compiling bytes v1.11.0 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling find-msvc-tools v0.1.8 [INFO] [stderr] Compiling futures-io v0.3.31 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling zerocopy v0.8.35 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling zmij v1.0.17 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Compiling cc v1.2.54 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling regex-syntax v0.8.8 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling ipnet v2.11.0 [INFO] [stderr] Compiling ryu v1.0.22 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling protobuf v2.28.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling data-encoding v2.10.0 [INFO] [stderr] Compiling deranged v0.5.5 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Compiling prometheus v0.13.4 [INFO] [stderr] Compiling iri-string v0.7.10 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling anyhow v1.0.100 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling time v0.3.46 [INFO] [stderr] Compiling inotify v0.9.6 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling filetime v0.2.27 [INFO] [stderr] Compiling mio v0.8.11 [INFO] [stderr] Compiling uuid v1.20.0 [INFO] [stderr] Compiling notify v6.1.1 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling axum-macros v0.4.2 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling tungstenite v0.24.0 [INFO] [stderr] Compiling tower-http v0.5.2 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling chrono v0.4.43 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling axum-core v0.4.5 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling tracing-appender v0.2.4 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tokio-tungstenite v0.24.0 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.19 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling axum v0.7.9 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling catv-transcoder-client v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `chrono::Utc` [INFO] [stdout] --> src/config/loader.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::Utc; [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: `debug` [INFO] [stdout] --> src/mux/mpegts_demuxer.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing::{debug, warn}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufMut`, `Buf`, and `BytesMut` [INFO] [stdout] --> src/mux/packet.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use bytes::{Buf, BufMut, BytesMut}; [INFO] [stdout] | ^^^ ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `srt-native` [INFO] [stdout] --> src/network/srt_receiver.rs:193:7 [INFO] [stdout] | [INFO] [stdout] 193 | #[cfg(feature = "srt-native")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `default`, `metrics`, and `prometheus` [INFO] [stdout] = help: consider adding `srt-native` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bytes::BytesMut` [INFO] [stdout] --> src/network/srt_receiver.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use bytes::BytesMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error` and `warn` [INFO] [stdout] --> src/network/srt_receiver.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use tracing::{info, warn, error, debug}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> src/network/udp_sender.rs:4:28 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing::{info, debug, error}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> src/network/multicast.rs:4:21 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing::{info, error}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error` and `warn` [INFO] [stdout] --> src/utils/ffmpeg.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | use tracing::{info, warn, error}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/utils/pid_manager.rs:2:21 [INFO] [stdout] | [INFO] [stdout] 2 | use tracing::{info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/api/websocket.rs:72:38 [INFO] [stdout] | [INFO] [stdout] 72 | Ok(Message::Ping(data)) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `offset` is never read [INFO] [stdout] --> src/mux/packet.rs:150:13 [INFO] [stdout] | [INFO] [stdout] 150 | offset += 6; [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: field `parameters` is never read [INFO] [stdout] --> src/api/websocket.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 127 | struct ClientCommand { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 130 | parameters: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ClientCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `client::ApiClient` [INFO] [stdout] --> src/api/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use client::ApiClient; [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: `handlers::*` [INFO] [stdout] --> src/api/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use handlers::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `websocket::WebSocketManager` [INFO] [stdout] --> src/api/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use websocket::WebSocketManager; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `video::VideoEncoder` [INFO] [stdout] --> src/codec/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use video::VideoEncoder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `audio::AudioEncoder` [INFO] [stdout] --> src/codec/mod.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use audio::AudioEncoder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `encoder::Encoder` [INFO] [stdout] --> src/codec/mod.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub use encoder::Encoder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `decoder::Decoder` [INFO] [stdout] --> src/codec/mod.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub use decoder::Decoder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Utc` [INFO] [stdout] --> src/config/loader.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::Utc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `manager::TranscoderManager` [INFO] [stdout] --> src/core/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use manager::TranscoderManager; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `channel::Channel` [INFO] [stdout] --> src/core/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use channel::Channel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `transcoder::Transcoder` [INFO] [stdout] --> src/core/mod.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use transcoder::Transcoder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `analyzer::StreamAnalyzer` [INFO] [stdout] --> src/core/mod.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub use analyzer::StreamAnalyzer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TranscodeStrategy` and `decide_strategy` [INFO] [stdout] --> src/core/mod.rs:14:20 [INFO] [stdout] | [INFO] [stdout] 14 | pub use strategy::{TranscodeStrategy, decide_strategy}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `channel::Channel` [INFO] [stdout] --> src/models/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use channel::Channel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error::TranscoderError` [INFO] [stdout] --> src/models/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use error::TranscoderError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ChannelStats` and `ChannelStatus` [INFO] [stdout] --> src/models/mod.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | pub use stats::{ChannelStats, ChannelStatus}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `health_checker::HealthChecker` [INFO] [stdout] --> src/monitor/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use health_checker::HealthChecker; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `metrics::MetricsCollector` [INFO] [stdout] --> src/monitor/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use metrics::MetricsCollector; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `stats_collector::StatsCollector` [INFO] [stdout] --> src/monitor/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use stats_collector::StatsCollector; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `alerting::AlertManager` [INFO] [stdout] --> src/monitor/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use alerting::AlertManager; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `debug` [INFO] [stdout] --> src/mux/mpegts_demuxer.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing::{debug, warn}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufMut`, `Buf`, and `BytesMut` [INFO] [stdout] --> src/mux/packet.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use bytes::{Buf, BufMut, BytesMut}; [INFO] [stdout] | ^^^ ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mpegts_demuxer::MpegTsDemuxer` [INFO] [stdout] --> src/mux/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use mpegts_demuxer::MpegTsDemuxer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mpegts_muxer::MpegTsMuxer` [INFO] [stdout] --> src/mux/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use mpegts_muxer::MpegTsMuxer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AdaptationField`, `TsHeader`, and `TsPacket` [INFO] [stdout] --> src/mux/mod.rs:11:18 [INFO] [stdout] | [INFO] [stdout] 11 | pub use packet::{TsPacket, TsHeader, AdaptationField}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pes::PesPacket` [INFO] [stdout] --> src/mux/mod.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use pes::PesPacket; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Pat`, `Pmt`, and `ProgramInfo` [INFO] [stdout] --> src/mux/mod.rs:13:15 [INFO] [stdout] | [INFO] [stdout] 13 | pub use psi::{Pat, Pmt, ProgramInfo}; [INFO] [stdout] | ^^^ ^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `srt-native` [INFO] [stdout] --> src/network/srt_receiver.rs:193:7 [INFO] [stdout] | [INFO] [stdout] 193 | #[cfg(feature = "srt-native")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `default`, `metrics`, and `prometheus` [INFO] [stdout] = help: consider adding `srt-native` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bytes::BytesMut` [INFO] [stdout] --> src/network/srt_receiver.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use bytes::BytesMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error` and `warn` [INFO] [stdout] --> src/network/srt_receiver.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use tracing::{info, warn, error, debug}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> src/network/udp_sender.rs:4:28 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing::{info, debug, error}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> src/network/multicast.rs:4:21 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing::{info, error}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `srt_receiver::SrtReceiver` [INFO] [stdout] --> src/network/mod.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use srt_receiver::SrtReceiver; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `udp_sender::UdpSender` [INFO] [stdout] --> src/network/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use udp_sender::UdpSender; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `multicast::MulticastSender` [INFO] [stdout] --> src/network/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use multicast::MulticastSender; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error` and `warn` [INFO] [stdout] --> src/utils/ffmpeg.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | use tracing::{info, warn, error}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/utils/pid_manager.rs:2:21 [INFO] [stdout] | [INFO] [stdout] 2 | use tracing::{info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `delete` and `extract::State` [INFO] [stdout] --> src/main.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | extract::State, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 180 | routing::{get, post, delete}, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/api/websocket.rs:72:38 [INFO] [stdout] | [INFO] [stdout] 72 | Ok(Message::Ping(data)) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `offset` is never read [INFO] [stdout] --> src/mux/packet.rs:150:13 [INFO] [stdout] | [INFO] [stdout] 150 | offset += 6; [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: methods `get_channel_config`, `send_channel_stats`, `send_bulk_stats`, `check_pending_commands`, and `acknowledge_command` are never used [INFO] [stdout] --> src/api/client.rs:119:18 [INFO] [stdout] | [INFO] [stdout] 17 | impl ApiClient { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 119 | pub async fn get_channel_config(&self, channel_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | pub async fn send_channel_stats(&self, stats: &ChannelStats) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub async fn send_bulk_stats(&self, stats: Vec) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub async fn check_pending_commands(&self, client_id: &str) -> Result, TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | pub async fn acknowledge_command(&self, command_id: &str, success: bool, message: Option) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BulkStatsRequest` is never constructed [INFO] [stdout] --> src/api/client.rs:296:8 [INFO] [stdout] | [INFO] [stdout] 296 | struct BulkStatsRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RemoteCommand` is never constructed [INFO] [stdout] --> src/api/client.rs:301:12 [INFO] [stdout] | [INFO] [stdout] 301 | pub struct RemoteCommand { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RemoteCommandType` is never used [INFO] [stdout] --> src/api/client.rs:311:10 [INFO] [stdout] | [INFO] [stdout] 311 | pub enum RemoteCommandType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CommandAcknowledgment` is never constructed [INFO] [stdout] --> src/api/client.rs:322:8 [INFO] [stdout] | [INFO] [stdout] 322 | struct CommandAcknowledgment { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_channel_stats` is never used [INFO] [stdout] --> src/api/handlers.rs:104:14 [INFO] [stdout] | [INFO] [stdout] 104 | pub async fn get_channel_stats( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateChannelRequest` is never constructed [INFO] [stdout] --> src/api/handlers.rs:124:12 [INFO] [stdout] | [INFO] [stdout] 124 | pub struct CreateChannelRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_channel` is never used [INFO] [stdout] --> src/api/handlers.rs:128:14 [INFO] [stdout] | [INFO] [stdout] 128 | pub async fn create_channel( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_channel` is never used [INFO] [stdout] --> src/api/handlers.rs:151:14 [INFO] [stdout] | [INFO] [stdout] 151 | pub async fn delete_channel( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_summary` is never used [INFO] [stdout] --> src/api/handlers.rs:185:14 [INFO] [stdout] | [INFO] [stdout] 185 | pub async fn get_summary( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateConfigRequest` is never constructed [INFO] [stdout] --> src/api/handlers.rs:263:12 [INFO] [stdout] | [INFO] [stdout] 263 | pub struct UpdateConfigRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_channel_config` is never used [INFO] [stdout] --> src/api/handlers.rs:267:14 [INFO] [stdout] | [INFO] [stdout] 267 | pub async fn update_channel_config( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_channels_health` is never used [INFO] [stdout] --> src/api/handlers.rs:287:14 [INFO] [stdout] | [INFO] [stdout] 287 | pub async fn check_channels_health( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `parameters` is never read [INFO] [stdout] --> src/api/websocket.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 127 | struct ClientCommand { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 130 | parameters: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ClientCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RegistrationService` is never constructed [INFO] [stdout] --> src/api/registration.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct RegistrationService { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `register_with_retry` are never used [INFO] [stdout] --> src/api/registration.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl RegistrationService { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 14 | pub fn new(api_client: ApiClient, client_config: ClientConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub async fn register_with_retry(&self) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HeartbeatService` is never constructed [INFO] [stdout] --> src/api/heartbeat.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct HeartbeatService { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `start` are never used [INFO] [stdout] --> src/api/heartbeat.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl HeartbeatService { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 14 | pub fn new(api_client: Arc, client_id: String, interval_seconds: u64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub async fn start(self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VideoEncoder` is never constructed [INFO] [stdout] --> src/codec/video.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct VideoEncoder { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `build_ffmpeg_args`, and `validate` are never used [INFO] [stdout] --> src/codec/video.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl VideoEncoder { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 46 | /// Crear un encoder de video personalizado [INFO] [stdout] 47 | pub fn new(codec: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn build_ffmpeg_args(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn validate(&self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AudioEncoder` is never constructed [INFO] [stdout] --> src/codec/audio.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct AudioEncoder { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `ac3_surround`, `eac3_surround`, `aac_stereo`, `build_ffmpeg_args`, and `validate` are never used [INFO] [stdout] --> src/codec/audio.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl AudioEncoder { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 30 | /// Crear un encoder de audio personalizado [INFO] [stdout] 31 | pub fn new(codec: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn ac3_surround() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn eac3_surround() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn aac_stereo() -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn build_ffmpeg_args(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn validate(&self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Encoder` is never constructed [INFO] [stdout] --> src/codec/encoder.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct Encoder { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EncoderMetadata` is never constructed [INFO] [stdout] --> src/codec/encoder.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct EncoderMetadata { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/codec/encoder.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 38 | impl Encoder { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 39 | /// Crear un encoder para CATV estándar [INFO] [stdout] 40 | pub fn catv_standard() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn catv_surround() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn stream_optimized() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn high_quality() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn build_ffmpeg_command(&self) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | pub fn validate(&self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn describe(&self) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StreamInfo` is never constructed [INFO] [stdout] --> src/codec/decoder.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct StreamInfo { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ContainerInfo` is never constructed [INFO] [stdout] --> src/codec/decoder.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct ContainerInfo { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Decoder` is never constructed [INFO] [stdout] --> src/codec/decoder.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Decoder { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `build_ffprobe_command`, `extract_video_info`, `extract_audio_info`, `extract_all_audio_streams`, and `extract_subtitle_info` are never used [INFO] [stdout] --> src/codec/decoder.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl Decoder { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 37 | /// Crear un decoder para una URL de entrada [INFO] [stdout] 38 | pub fn new(input_url: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn build_ffprobe_command(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn extract_video_info(container: &ContainerInfo) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn extract_audio_info(container: &ContainerInfo) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn extract_all_audio_streams(container: &ContainerInfo) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn extract_subtitle_info(container: &ContainerInfo) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `load_channel_config` and `delete_channel_config` are never used [INFO] [stdout] --> src/config/loader.rs:253:12 [INFO] [stdout] | [INFO] [stdout] 228 | impl ConfigLoader { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 253 | pub fn load_channel_config(&self, channel_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | pub fn delete_channel_config(&self, channel_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `remove_channel`, `reload_channel_config`, `channel_count`, and `has_channel` are never used [INFO] [stdout] --> src/core/manager.rs:56:18 [INFO] [stdout] | [INFO] [stdout] 16 | impl TranscoderManager { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | pub async fn remove_channel(&self, channel_id: &str) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub async fn reload_channel_config( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | pub async fn channel_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 173 | pub async fn has_channel(&self, channel_id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `update_config` and `get_config` are never used [INFO] [stdout] --> src/core/channel.rs:165:18 [INFO] [stdout] | [INFO] [stdout] 20 | impl Channel { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 165 | pub async fn update_config(&mut self, new_config: ChannelConfig) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | pub fn get_config(&self) -> &ChannelConfig { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `quick_check` is never used [INFO] [stdout] --> src/core/analyzer.rs:73:18 [INFO] [stdout] | [INFO] [stdout] 37 | impl StreamAnalyzer { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 73 | pub async fn quick_check(input_url: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StrategyReason` is never constructed [INFO] [stdout] --> src/core/strategy.rs:199:12 [INFO] [stdout] | [INFO] [stdout] 199 | pub struct StrategyReason { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decide_strategy_with_reasons` is never used [INFO] [stdout] --> src/core/strategy.rs:207:8 [INFO] [stdout] | [INFO] [stdout] 207 | pub fn decide_strategy_with_reasons( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VideoFrame` is never constructed [INFO] [stdout] --> src/core/pipeline.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct VideoFrame { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AudioFrame` is never constructed [INFO] [stdout] --> src/core/pipeline.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct AudioFrame { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PixelFormat` is never used [INFO] [stdout] --> src/core/pipeline.rs:25:10 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum PixelFormat { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ProcessingPipeline` is never constructed [INFO] [stdout] --> src/core/pipeline.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct ProcessingPipeline { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `process_video_frame`, and `process_audio_frame` are never used [INFO] [stdout] --> src/core/pipeline.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl ProcessingPipeline { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 40 | pub fn new(buffer_size: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub async fn process_video_frame(&self, frame: VideoFrame) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub async fn process_audio_frame(&self, frame: AudioFrame) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `VideoFilter` is never used [INFO] [stdout] --> src/core/pipeline.rs:62:11 [INFO] [stdout] | [INFO] [stdout] 62 | pub trait VideoFilter: Send + Sync { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DeinterlaceFilter` is never constructed [INFO] [stdout] --> src/core/pipeline.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 67 | pub struct DeinterlaceFilter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScaleFilter` is never constructed [INFO] [stdout] --> src/core/pipeline.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | pub struct ScaleFilter { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/core/pipeline.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 83 | impl ScaleFilter { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 84 | pub fn new(width: u32, height: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Channel` is never constructed [INFO] [stdout] --> src/models/channel.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Channel { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChannelConfigModel` is never constructed [INFO] [stdout] --> src/models/channel.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct ChannelConfigModel { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/models/channel.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl Channel { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 29 | pub fn new(id: String, name: String, client_id: String, config: ChannelConfigModel) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateChannelRequest` is never constructed [INFO] [stdout] --> src/models/channel.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct CreateChannelRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateChannelRequest` is never constructed [INFO] [stdout] --> src/models/channel.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | pub struct UpdateChannelRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChannelResponse` is never constructed [INFO] [stdout] --> src/models/channel.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct ChannelResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConfigSnapshot` is never constructed [INFO] [stdout] --> src/models/config.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct ConfigSnapshot { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChannelConfigSnapshot` is never constructed [INFO] [stdout] --> src/models/config.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct ChannelConfigSnapshot { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_channel`, and `calculate_hash` are never used [INFO] [stdout] --> src/models/config.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl ConfigSnapshot { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 22 | pub fn new(client_id: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn add_channel(&mut self, snapshot: ChannelConfigSnapshot) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn calculate_hash(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConfigValidator` is never constructed [INFO] [stdout] --> src/models/config.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct ConfigValidator; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `validate_channel_config` is never used [INFO] [stdout] --> src/models/config.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 53 | impl ConfigValidator { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 54 | /// Valida una configuración de canal [INFO] [stdout] 55 | pub fn validate_channel_config(config: &crate::config::loader::ChannelConfig) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/models/error.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum TranscoderError { [INFO] [stdout] | --------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 19 | ConfigError(String), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | ConfigLoadError(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | ConfigSaveError(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | InvalidConfig(String), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | ProcessDied(String), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | NetworkError(String), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | SrtError(String), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | UdpError(String), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | CodecError(String), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | MuxError(String), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | DemuxError(String), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | PipelineError(String), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | ApiError(String), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | AuthError(String), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | Timeout(String), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | ResourceUnavailable(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | HardwareError(String), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | HardwareAccelNotAvailable(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | Unknown(String), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TranscoderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_recoverable` and `severity` are never used [INFO] [stdout] --> src/models/error.rs:96:12 [INFO] [stdout] | [INFO] [stdout] 94 | impl TranscoderError { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] 95 | /// Verifica si el error es recuperable [INFO] [stdout] 96 | pub fn is_recoverable(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn severity(&self) -> ErrorSeverity { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ErrorSeverity` is never used [INFO] [stdout] --> src/models/error.rs:141:10 [INFO] [stdout] | [INFO] [stdout] 141 | pub enum ErrorSeverity { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_str` is never used [INFO] [stdout] --> src/models/error.rs:149:12 [INFO] [stdout] | [INFO] [stdout] 148 | impl ErrorSeverity { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 149 | pub fn as_str(&self) -> &str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> src/models/error.rs:160:10 [INFO] [stdout] | [INFO] [stdout] 160 | pub type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_active`, `is_error`, and `as_str` are never used [INFO] [stdout] --> src/models/stats.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 30 | impl ChannelStatus { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] 31 | pub fn is_active(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn is_error(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn as_str(&self) -> &str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `is_healthy`, and `summary` are never used [INFO] [stdout] --> src/models/stats.rs:96:12 [INFO] [stdout] | [INFO] [stdout] 95 | impl ChannelStats { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 96 | pub fn new(channel_id: String, mode: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn is_healthy(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn summary(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AggregatedStats` is never constructed [INFO] [stdout] --> src/models/stats.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 163 | pub struct AggregatedStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_channels` is never used [INFO] [stdout] --> src/models/stats.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 176 | impl AggregatedStats { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 177 | pub fn from_channels(stats: &[ChannelStats]) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StatsHistory` is never constructed [INFO] [stdout] --> src/models/stats.rs:214:12 [INFO] [stdout] | [INFO] [stdout] 214 | pub struct StatsHistory { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StatsEntry` is never constructed [INFO] [stdout] --> src/models/stats.rs:221:12 [INFO] [stdout] | [INFO] [stdout] 221 | pub struct StatsEntry { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_entry`, `average_fps`, `average_bitrate`, and `bitrate_variance` are never used [INFO] [stdout] --> src/models/stats.rs:230:12 [INFO] [stdout] | [INFO] [stdout] 229 | impl StatsHistory { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 230 | pub fn new(channel_id: String, max_entries: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 238 | pub fn add_entry(&mut self, stats: &ChannelStats) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | pub fn average_fps(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | pub fn average_bitrate(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | pub fn bitrate_variance(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `with_interval` and `with_auto_restart` are never used [INFO] [stdout] --> src/monitor/health_checker.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl HealthChecker { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn with_interval(mut self, interval: Duration) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn with_auto_restart(mut self, enabled: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SimpleHealthCheck` is never constructed [INFO] [stdout] --> src/monitor/health_checker.rs:176:12 [INFO] [stdout] | [INFO] [stdout] 176 | pub struct SimpleHealthCheck; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `check`, `check_memory`, and `check_disk_space` are never used [INFO] [stdout] --> src/monitor/health_checker.rs:180:18 [INFO] [stdout] | [INFO] [stdout] 178 | impl SimpleHealthCheck { [INFO] [stdout] | ---------------------- associated functions in this implementation [INFO] [stdout] 179 | /// Verificar salud básica del sistema [INFO] [stdout] 180 | pub async fn check() -> HealthCheckResult { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | fn check_memory() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | fn check_disk_space() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HealthCheckResult` is never constructed [INFO] [stdout] --> src/monitor/health_checker.rs:293:12 [INFO] [stdout] | [INFO] [stdout] 293 | pub struct HealthCheckResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ComponentHealth` is never constructed [INFO] [stdout] --> src/monitor/health_checker.rs:299:12 [INFO] [stdout] | [INFO] [stdout] 299 | pub struct ComponentHealth { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/monitor/metrics.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct MetricsCollector { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 19 | frames_processed: IntCounter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | frames_dropped: IntCounter, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 21 | restarts_total: IntCounter, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 22 | errors_total: IntCounter, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | active_channels: IntGauge, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 26 | current_fps: Gauge, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 27 | current_bitrate: Gauge, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | processing_duration: Histogram, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/monitor/metrics.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 34 | impl MetricsCollector { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn inc_frames_processed(&self, count: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn inc_frames_dropped(&self, count: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn inc_restarts(&self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn inc_errors(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn set_active_channels(&self, count: i64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | pub fn set_fps(&self, fps: f64) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn set_bitrate(&self, bitrate_kbps: f64) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn observe_processing_duration(&self, duration_seconds: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MetricsManager` is never constructed [INFO] [stdout] --> src/monitor/metrics.rs:197:12 [INFO] [stdout] | [INFO] [stdout] 197 | pub struct MetricsManager { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `update_from_stats`, and `gather` are never used [INFO] [stdout] --> src/monitor/metrics.rs:202:12 [INFO] [stdout] | [INFO] [stdout] 201 | impl MetricsManager { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 202 | pub fn new() -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | pub async fn update_from_stats(&self, stats: &crate::models::stats::ChannelStats) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 224 | pub async fn gather(&self) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StatsCollector` is never constructed [INFO] [stdout] --> src/monitor/stats_collector.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct StatsCollector { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `start`, `update_history`, `get_history`, `get_averages`, and `cleanup_old_history` are never used [INFO] [stdout] --> src/monitor/stats_collector.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl StatsCollector { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 20 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub async fn start(self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | async fn update_history(&self, stats: &HashMap) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub async fn get_history(&self, channel_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub async fn get_averages(&self, channel_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub async fn cleanup_old_history(&self, older_than_hours: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChannelAverages` is never constructed [INFO] [stdout] --> src/monitor/stats_collector.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | pub struct ChannelAverages { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StatsAggregator` is never constructed [INFO] [stdout] --> src/monitor/stats_collector.rs:120:12 [INFO] [stdout] | [INFO] [stdout] 120 | pub struct StatsAggregator; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `aggregate` is never used [INFO] [stdout] --> src/monitor/stats_collector.rs:124:12 [INFO] [stdout] | [INFO] [stdout] 122 | impl StatsAggregator { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 123 | /// Agregar estadísticas de múltiples canales [INFO] [stdout] 124 | pub fn aggregate(stats: &[ChannelStats]) -> AggregatedChannelStats { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AggregatedChannelStats` is never constructed [INFO] [stdout] --> src/monitor/stats_collector.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 163 | pub struct AggregatedChannelStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AlertManager` is never constructed [INFO] [stdout] --> src/monitor/alerting.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct AlertManager { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/monitor/alerting.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl AlertManager { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 16 | pub fn new(api_client: ApiClient) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn with_min_interval(mut self, seconds: i64) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub async fn send_alert(&self, alert: MonitoringAlert) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub async fn cleanup_old_alerts(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn alert_low_fps(channel_id: String, fps: f64) -> MonitoringAlert { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn alert_dropped_frames(channel_id: String, percentage: f64) -> MonitoringAlert { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn alert_bitrate_deviation( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MpegTsDemuxer` is never constructed [INFO] [stdout] --> src/mux/mpegts_demuxer.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct MpegTsDemuxer { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/mux/mpegts_demuxer.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl MpegTsDemuxer { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 14 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn process(&mut self, data: &[u8]) -> Result, String> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn extract_stream(&mut self, pid: u16) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn get_stream(&self, pid: u16) -> Option<&Vec> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn clear_stream(&mut self, pid: u16) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn packet_count(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn active_pids(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MpegTsMuxer` is never constructed [INFO] [stdout] --> src/mux/mpegts_muxer.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct MpegTsMuxer { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/mux/mpegts_muxer.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl MpegTsMuxer { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 17 | pub fn new(pmt_pid: u16, video_pid: u16, audio_pid: u16) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn generate_pat(&mut self) -> TsPacket { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn generate_pmt(&mut self) -> TsPacket { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn create_video_packet(&mut self, data: &[u8], pts: Option) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn create_audio_packet(&mut self, data: &[u8], pts: Option) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | fn create_pes_packets(&mut self, pid: u16, data: &[u8], stream_id: u8, pts: Option) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | fn create_pes_header(&self, stream_id: u8, data_len: usize, pts: Option) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | fn get_continuity_counter(&mut self, pid: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | fn get_pcr(&mut self) -> u64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn mux(&mut self, video_data: &[u8], audio_data: &[u8]) -> Vec { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TS_PACKET_SIZE` is never used [INFO] [stdout] --> src/mux/packet.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const TS_PACKET_SIZE: usize = 188; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SYNC_BYTE` is never used [INFO] [stdout] --> src/mux/packet.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | pub const SYNC_BYTE: u8 = 0x47; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TsPacket` is never constructed [INFO] [stdout] --> src/mux/packet.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct TsPacket { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TsHeader` is never constructed [INFO] [stdout] --> src/mux/packet.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct TsHeader { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AdaptationField` is never constructed [INFO] [stdout] --> src/mux/packet.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct AdaptationField { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `parse`, `parse_header`, `parse_adaptation_field`, `to_bytes`, and `is_valid` are never used [INFO] [stdout] --> src/mux/packet.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl TsPacket { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 47 | /// Crear un nuevo paquete TS [INFO] [stdout] 48 | pub fn new(pid: u16, payload: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn parse(data: &[u8]) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | fn parse_header(data: &[u8]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | fn parse_adaptation_field(data: &[u8]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | pub fn to_bytes(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 233 | pub fn is_valid(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `pat` and `pmt` are never used [INFO] [stdout] --> src/mux/packet.rs:240:12 [INFO] [stdout] | [INFO] [stdout] 238 | impl TsHeader { [INFO] [stdout] | ------------- associated functions in this implementation [INFO] [stdout] 239 | /// Crear header para PAT [INFO] [stdout] 240 | pub fn pat() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 254 | pub fn pmt(pmt_pid: u16) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PesPacket` is never constructed [INFO] [stdout] --> src/mux/pes.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct PesPacket { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `parse` and `parse_timestamp` are never used [INFO] [stdout] --> src/mux/pes.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl PesPacket { [INFO] [stdout] | -------------- associated functions in this implementation [INFO] [stdout] 12 | /// Parsear paquete PES [INFO] [stdout] 13 | pub fn parse(data: &[u8]) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | fn parse_timestamp(data: &[u8]) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Pat` is never constructed [INFO] [stdout] --> src/mux/psi.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Pat { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_bytes` is never used [INFO] [stdout] --> src/mux/psi.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Pat { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] 9 | pub fn to_bytes(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Pmt` is never constructed [INFO] [stdout] --> src/mux/psi.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 53 | pub struct Pmt { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_bytes` is never used [INFO] [stdout] --> src/mux/psi.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl Pmt { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] 60 | pub fn to_bytes(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ProgramInfo` is never constructed [INFO] [stdout] --> src/mux/psi.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 112 | pub struct ProgramInfo { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SrtReceiver` is never constructed [INFO] [stdout] --> src/network/srt_receiver.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SrtReceiver { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SrtMode` is never used [INFO] [stdout] --> src/network/srt_receiver.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | pub enum SrtMode { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/network/srt_receiver.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl SrtReceiver { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 26 | pub fn new(url: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn with_latency(mut self, latency_ms: u32) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn with_buffer_size(mut self, buffer_size: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub async fn connect(&mut self) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub async fn receive(&mut self) -> Result, TranscoderError> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub async fn receive_timeout(&mut self, timeout: std::time::Duration) -> Result, TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | pub async fn close(&mut self) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | async fn connect_listener(&mut self, addr: SocketAddr) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | async fn connect_caller(&mut self, addr: SocketAddr) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | async fn connect_rendezvous(&mut self, addr: SocketAddr) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | fn parse_srt_url(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | fn parse_srt_parameters(&self, params: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SrtReceiverBuilder` is never constructed [INFO] [stdout] --> src/network/srt_receiver.rs:234:12 [INFO] [stdout] | [INFO] [stdout] 234 | pub struct SrtReceiverBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `latency`, `buffer_size`, `max_bandwidth`, `passphrase`, and `build` are never used [INFO] [stdout] --> src/network/srt_receiver.rs:243:12 [INFO] [stdout] | [INFO] [stdout] 242 | impl SrtReceiverBuilder { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 243 | pub fn new(url: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | pub fn latency(mut self, latency_ms: u32) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 258 | pub fn buffer_size(mut self, buffer_size: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | pub fn max_bandwidth(mut self, mbps: u32) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn passphrase(mut self, passphrase: String) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub fn build(self) -> SrtReceiver { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UdpSender` is never constructed [INFO] [stdout] --> src/network/udp_sender.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct UdpSender { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/network/udp_sender.rs:19:18 [INFO] [stdout] | [INFO] [stdout] 17 | impl UdpSender { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 18 | /// Crear nuevo UdpSender [INFO] [stdout] 19 | pub async fn new(destination: SocketAddr) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub async fn from_url(url: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn with_local_interface(mut self, interface: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn set_ttl(&mut self, ttl: u32) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn enable_broadcast(&self) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub async fn send(&mut self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub async fn send_batch(&mut self, packets: Vec>) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn stats(&self) -> UdpStats { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn reset_stats(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UdpStats` is never constructed [INFO] [stdout] --> src/network/udp_sender.rs:129:12 [INFO] [stdout] | [INFO] [stdout] 129 | pub struct UdpStats { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `bitrate_kbps` is never used [INFO] [stdout] --> src/network/udp_sender.rs:137:12 [INFO] [stdout] | [INFO] [stdout] 136 | impl UdpStats { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 137 | pub fn bitrate_kbps(&self, duration_secs: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ParsedUdpUrl` is never constructed [INFO] [stdout] --> src/network/udp_sender.rs:150:8 [INFO] [stdout] | [INFO] [stdout] 150 | struct ParsedUdpUrl { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_udp_url` is never used [INFO] [stdout] --> src/network/udp_sender.rs:157:4 [INFO] [stdout] | [INFO] [stdout] 157 | fn parse_udp_url(url: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UdpSenderBuilder` is never constructed [INFO] [stdout] --> src/network/udp_sender.rs:198:12 [INFO] [stdout] | [INFO] [stdout] 198 | pub struct UdpSenderBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `local_interface`, `ttl`, `packet_size`, `broadcast`, and `build` are never used [INFO] [stdout] --> src/network/udp_sender.rs:207:12 [INFO] [stdout] | [INFO] [stdout] 206 | impl UdpSenderBuilder { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 207 | pub fn new(destination: SocketAddr) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | pub fn local_interface(mut self, interface: String) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn ttl(mut self, ttl: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn packet_size(mut self, size: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | pub fn broadcast(mut self, enabled: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | pub async fn build(self) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MulticastSender` is never constructed [INFO] [stdout] --> src/network/multicast.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct MulticastSender { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `send`, `set_ttl`, `set_multicast_loop`, and `packets_sent` are never used [INFO] [stdout] --> src/network/multicast.rs:17:18 [INFO] [stdout] | [INFO] [stdout] 15 | impl MulticastSender { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 16 | /// Crear nuevo MulticastSender [INFO] [stdout] 17 | pub async fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub async fn send(&mut self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn set_ttl(&mut self, ttl: u32) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn set_multicast_loop(&self, enabled: bool) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn packets_sent(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_multicast_address` is never used [INFO] [stdout] --> src/network/multicast.rs:106:4 [INFO] [stdout] | [INFO] [stdout] 106 | fn is_multicast_address(addr: &Ipv4Addr) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MulticastReceiver` is never constructed [INFO] [stdout] --> src/network/multicast.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 112 | pub struct MulticastReceiver { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `receive` are never used [INFO] [stdout] --> src/network/multicast.rs:119:18 [INFO] [stdout] | [INFO] [stdout] 118 | impl MulticastReceiver { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 119 | pub async fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | pub async fn receive(&self, buffer: &mut [u8]) -> Result<(usize, SocketAddr), TranscoderError> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_interface_ip` is never used [INFO] [stdout] --> src/network/multicast.rs:164:8 [INFO] [stdout] | [INFO] [stdout] 164 | pub fn get_interface_ip(interface_name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FfmpegHelper` is never constructed [INFO] [stdout] --> src/utils/ffmpeg.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct FfmpegHelper; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated functions are never used [INFO] [stdout] --> src/utils/ffmpeg.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl FfmpegHelper { [INFO] [stdout] | ----------------- associated functions in this implementation [INFO] [stdout] 10 | /// Verificar si FFmpeg está instalado [INFO] [stdout] 11 | pub fn is_installed() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn get_version() -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn has_codec(codec_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn has_encoder(encoder_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn list_hw_encoders() -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn best_h264_encoder() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn check_capabilities() -> FfmpegCapabilities { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub fn has_protocol(protocol: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | fn parse_version(output: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn validate_args(args: &[String]) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | pub fn execute(args: Vec) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FfmpegVersion` is never constructed [INFO] [stdout] --> src/utils/ffmpeg.rs:201:12 [INFO] [stdout] | [INFO] [stdout] 201 | pub struct FfmpegVersion { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_at_least` is never used [INFO] [stdout] --> src/utils/ffmpeg.rs:210:12 [INFO] [stdout] | [INFO] [stdout] 208 | impl FfmpegVersion { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 209 | /// Verificar si la versión es al menos la especificada [INFO] [stdout] 210 | pub fn is_at_least(&self, major: u32, minor: u32, patch: u32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FfmpegCapabilities` is never constructed [INFO] [stdout] --> src/utils/ffmpeg.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 232 | pub struct FfmpegCapabilities { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print_summary` is never used [INFO] [stdout] --> src/utils/ffmpeg.rs:246:12 [INFO] [stdout] | [INFO] [stdout] 245 | impl FfmpegCapabilities { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] 246 | pub fn print_summary(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PidManager` is never constructed [INFO] [stdout] --> src/utils/pid_manager.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct PidManager { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/utils/pid_manager.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 12 | impl PidManager { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 13 | /// PIDs reservados según el estándar MPEG-TS [INFO] [stdout] 14 | const PAT_PID: u16 = 0x0000; // Program Association Table [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 15 | const CAT_PID: u16 = 0x0001; // Conditional Access Table [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 16 | const TSDT_PID: u16 = 0x0002; // Transport Stream Description Table [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 17 | const NULL_PID: u16 = 0x1FFF; // Null packets [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 18 | [INFO] [stdout] 19 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn with_base_pids(pmt_pid: u16, video_pid: u16, audio_pid: u16) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn allocate(&mut self, stream_type: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn allocate_specific(&mut self, stream_type: &str, pid: u16) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn free(&mut self, stream_type: &str) -> Option { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn get_pid(&self, stream_type: &str) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn is_pid_reserved(&self, pid: u16) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn is_pid_allocated(&self, pid: u16) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn is_pid_used(&self, pid: u16) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn get_all_allocated(&self) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn validate_pids(&self, pmt: u16, video: u16, audio: u16) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | pub fn auto_assign() -> PidAssignment { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PidAssignment` is never constructed [INFO] [stdout] --> src/utils/pid_manager.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 163 | pub struct PidAssignment { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `catv_standard` and `validate` are never used [INFO] [stdout] --> src/utils/pid_manager.rs:174:12 [INFO] [stdout] | [INFO] [stdout] 172 | impl PidAssignment { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 173 | /// Crear asignación estándar para CATV [INFO] [stdout] 174 | pub fn catv_standard(service_id: u16) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | pub fn validate(&self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BitrateCalculator` is never constructed [INFO] [stdout] --> src/utils/bitrate_calc.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct BitrateCalculator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BitrateSample` is never constructed [INFO] [stdout] --> src/utils/bitrate_calc.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | struct BitrateSample { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/utils/bitrate_calc.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl BitrateCalculator { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 17 | /// Crear calculadora con ventana de tiempo específica [INFO] [stdout] 18 | pub fn new(window_duration: Duration) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn new_1sec() -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn new_5sec() -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn add_sample(&mut self, bytes: u64) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn calculate_bps(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn calculate_kbps(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn calculate_mbps(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn average_bps(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn stats(&self) -> BitrateStats { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | fn cleanup_old_samples(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | fn calculate_historical_bitrates(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BitrateStats` is never constructed [INFO] [stdout] --> src/utils/bitrate_calc.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 167 | pub struct BitrateStats { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `variance` and `is_cbr` are never used [INFO] [stdout] --> src/utils/bitrate_calc.rs:181:12 [INFO] [stdout] | [INFO] [stdout] 179 | impl BitrateStats { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] 180 | /// Calcular varianza del bitrate (para detectar CBR vs VBR) [INFO] [stdout] 181 | pub fn variance(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | pub fn is_cbr(&self, tolerance_percent: f64) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CatvBitrateHelper` is never constructed [INFO] [stdout] --> src/utils/bitrate_calc.rs:195:12 [INFO] [stdout] | [INFO] [stdout] 195 | pub struct CatvBitrateHelper; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `recommended_video_bitrate`, `total_channel_bitrate`, and `channels_per_transponder` are never used [INFO] [stdout] --> src/utils/bitrate_calc.rs:199:12 [INFO] [stdout] | [INFO] [stdout] 197 | impl CatvBitrateHelper { [INFO] [stdout] | ---------------------- associated functions in this implementation [INFO] [stdout] 198 | /// Calcular bitrate recomendado para resolución [INFO] [stdout] 199 | pub fn recommended_video_bitrate(width: u32, height: u32, fps: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 235 | pub fn total_channel_bitrate(video_kbps: u32, audio_kbps: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 242 | pub fn channels_per_transponder( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TimeHelper` is never constructed [INFO] [stdout] --> src/utils/time.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct TimeHelper; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `format_duration`, `mpegts_to_seconds`, `seconds_to_mpegts`, and `uptime_since` are never used [INFO] [stdout] --> src/utils/time.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl TimeHelper { [INFO] [stdout] | --------------- associated functions in this implementation [INFO] [stdout] 7 | /// Formatear duración en formato humano legible [INFO] [stdout] 8 | pub fn format_duration(seconds: u64) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn mpegts_to_seconds(pts: i64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn seconds_to_mpegts(seconds: f64) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn uptime_since(started_at: DateTime) -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HashHelper` is never constructed [INFO] [stdout] --> src/utils/hash.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct HashHelper; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `hash_string`, `hash_config`, and `configs_equal` are never used [INFO] [stdout] --> src/utils/hash.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl HashHelper { [INFO] [stdout] | --------------- associated functions in this implementation [INFO] [stdout] 8 | /// Calcular hash simple de un string [INFO] [stdout] 9 | pub fn hash_string(s: &str) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn hash_config(config: &T) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn configs_equal(a: &T, b: &T) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 41s [INFO] running `Command { std: "docker" "inspect" "20d2536ea7a68db23f0255072189ad55a9aeff18c018ba3d172300eaa25aa369", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "20d2536ea7a68db23f0255072189ad55a9aeff18c018ba3d172300eaa25aa369" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling colored v3.1.1 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Compiling tower-http v0.5.2 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling uuid v1.20.0 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling tempfile v3.24.0 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tokio-tungstenite v0.24.0 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling tokio-test v0.4.5 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.19 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling axum v0.7.9 [INFO] [stderr] Compiling mockito v1.7.1 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling catv-transcoder-client v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `chrono::Utc` [INFO] [stdout] --> src/config/loader.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::Utc; [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: `debug` [INFO] [stdout] --> src/mux/mpegts_demuxer.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing::{debug, warn}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufMut`, `Buf`, and `BytesMut` [INFO] [stdout] --> src/mux/packet.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use bytes::{Buf, BufMut, BytesMut}; [INFO] [stdout] | ^^^ ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `srt-native` [INFO] [stdout] --> src/network/srt_receiver.rs:193:7 [INFO] [stdout] | [INFO] [stdout] 193 | #[cfg(feature = "srt-native")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `default`, `metrics`, and `prometheus` [INFO] [stdout] = help: consider adding `srt-native` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bytes::BytesMut` [INFO] [stdout] --> src/network/srt_receiver.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use bytes::BytesMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error` and `warn` [INFO] [stdout] --> src/network/srt_receiver.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use tracing::{info, warn, error, debug}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> src/network/udp_sender.rs:4:28 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing::{info, debug, error}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> src/network/multicast.rs:4:21 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing::{info, error}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error` and `warn` [INFO] [stdout] --> src/utils/ffmpeg.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | use tracing::{info, warn, error}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/utils/pid_manager.rs:2:21 [INFO] [stdout] | [INFO] [stdout] 2 | use tracing::{info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Utc` [INFO] [stdout] --> src/config/loader.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::Utc; [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: `crate::config::loader::VideoConfig` [INFO] [stdout] --> src/core/strategy.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 283 | use crate::config::loader::VideoConfig; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `debug` [INFO] [stdout] --> src/mux/mpegts_demuxer.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing::{debug, warn}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufMut`, `Buf`, and `BytesMut` [INFO] [stdout] --> src/mux/packet.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use bytes::{Buf, BufMut, BytesMut}; [INFO] [stdout] | ^^^ ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `srt-native` [INFO] [stdout] --> src/network/srt_receiver.rs:193:7 [INFO] [stdout] | [INFO] [stdout] 193 | #[cfg(feature = "srt-native")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `default`, `metrics`, and `prometheus` [INFO] [stdout] = help: consider adding `srt-native` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bytes::BytesMut` [INFO] [stdout] --> src/network/srt_receiver.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use bytes::BytesMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error` and `warn` [INFO] [stdout] --> src/network/srt_receiver.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use tracing::{info, warn, error, debug}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> src/network/udp_sender.rs:4:28 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing::{info, debug, error}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> src/network/multicast.rs:4:21 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing::{info, error}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error` and `warn` [INFO] [stdout] --> src/utils/ffmpeg.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | use tracing::{info, warn, error}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/utils/pid_manager.rs:2:21 [INFO] [stdout] | [INFO] [stdout] 2 | use tracing::{info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/api/websocket.rs:72:38 [INFO] [stdout] | [INFO] [stdout] 72 | Ok(Message::Ping(data)) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/api/websocket.rs:72:38 [INFO] [stdout] | [INFO] [stdout] 72 | Ok(Message::Ping(data)) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `offset` is never read [INFO] [stdout] --> src/mux/packet.rs:150:13 [INFO] [stdout] | [INFO] [stdout] 150 | offset += 6; [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: field `parameters` is never read [INFO] [stdout] --> src/api/websocket.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 127 | struct ClientCommand { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 130 | parameters: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ClientCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `offset` is never read [INFO] [stdout] --> src/mux/packet.rs:150:13 [INFO] [stdout] | [INFO] [stdout] 150 | offset += 6; [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: `result` [INFO] [stdout] --> src/network/multicast.rs:219:13 [INFO] [stdout] | [INFO] [stdout] 219 | let result = MulticastSender::new(multicast_addr, interface).await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `parameters` is never read [INFO] [stdout] --> src/api/websocket.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 127 | struct ClientCommand { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 130 | parameters: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ClientCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `client::ApiClient` [INFO] [stdout] --> src/api/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use client::ApiClient; [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: `handlers::*` [INFO] [stdout] --> src/api/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use handlers::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `websocket::WebSocketManager` [INFO] [stdout] --> src/api/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use websocket::WebSocketManager; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `video::VideoEncoder` [INFO] [stdout] --> src/codec/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use video::VideoEncoder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `audio::AudioEncoder` [INFO] [stdout] --> src/codec/mod.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use audio::AudioEncoder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `encoder::Encoder` [INFO] [stdout] --> src/codec/mod.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub use encoder::Encoder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `decoder::Decoder` [INFO] [stdout] --> src/codec/mod.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub use decoder::Decoder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Utc` [INFO] [stdout] --> src/config/loader.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::Utc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::config::loader::VideoConfig` [INFO] [stdout] --> src/core/strategy.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 283 | use crate::config::loader::VideoConfig; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `manager::TranscoderManager` [INFO] [stdout] --> src/core/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use manager::TranscoderManager; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `channel::Channel` [INFO] [stdout] --> src/core/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use channel::Channel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `transcoder::Transcoder` [INFO] [stdout] --> src/core/mod.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use transcoder::Transcoder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `analyzer::StreamAnalyzer` [INFO] [stdout] --> src/core/mod.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub use analyzer::StreamAnalyzer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TranscodeStrategy` and `decide_strategy` [INFO] [stdout] --> src/core/mod.rs:14:20 [INFO] [stdout] | [INFO] [stdout] 14 | pub use strategy::{TranscodeStrategy, decide_strategy}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `channel::Channel` [INFO] [stdout] --> src/models/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use channel::Channel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error::TranscoderError` [INFO] [stdout] --> src/models/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use error::TranscoderError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ChannelStats` and `ChannelStatus` [INFO] [stdout] --> src/models/mod.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | pub use stats::{ChannelStats, ChannelStatus}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `health_checker::HealthChecker` [INFO] [stdout] --> src/monitor/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use health_checker::HealthChecker; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `metrics::MetricsCollector` [INFO] [stdout] --> src/monitor/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use metrics::MetricsCollector; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `stats_collector::StatsCollector` [INFO] [stdout] --> src/monitor/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use stats_collector::StatsCollector; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `alerting::AlertManager` [INFO] [stdout] --> src/monitor/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use alerting::AlertManager; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `debug` [INFO] [stdout] --> src/mux/mpegts_demuxer.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing::{debug, warn}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufMut`, `Buf`, and `BytesMut` [INFO] [stdout] --> src/mux/packet.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use bytes::{Buf, BufMut, BytesMut}; [INFO] [stdout] | ^^^ ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mpegts_demuxer::MpegTsDemuxer` [INFO] [stdout] --> src/mux/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use mpegts_demuxer::MpegTsDemuxer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mpegts_muxer::MpegTsMuxer` [INFO] [stdout] --> src/mux/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use mpegts_muxer::MpegTsMuxer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AdaptationField`, `TsHeader`, and `TsPacket` [INFO] [stdout] --> src/mux/mod.rs:11:18 [INFO] [stdout] | [INFO] [stdout] 11 | pub use packet::{TsPacket, TsHeader, AdaptationField}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pes::PesPacket` [INFO] [stdout] --> src/mux/mod.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use pes::PesPacket; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Pat`, `Pmt`, and `ProgramInfo` [INFO] [stdout] --> src/mux/mod.rs:13:15 [INFO] [stdout] | [INFO] [stdout] 13 | pub use psi::{Pat, Pmt, ProgramInfo}; [INFO] [stdout] | ^^^ ^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `srt-native` [INFO] [stdout] --> src/network/srt_receiver.rs:193:7 [INFO] [stdout] | [INFO] [stdout] 193 | #[cfg(feature = "srt-native")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `default`, `metrics`, and `prometheus` [INFO] [stdout] = help: consider adding `srt-native` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bytes::BytesMut` [INFO] [stdout] --> src/network/srt_receiver.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use bytes::BytesMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error` and `warn` [INFO] [stdout] --> src/network/srt_receiver.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use tracing::{info, warn, error, debug}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> src/network/udp_sender.rs:4:28 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing::{info, debug, error}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `error` [INFO] [stdout] --> src/network/multicast.rs:4:21 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing::{info, error}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `srt_receiver::SrtReceiver` [INFO] [stdout] --> src/network/mod.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use srt_receiver::SrtReceiver; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `udp_sender::UdpSender` [INFO] [stdout] --> src/network/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use udp_sender::UdpSender; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `multicast::MulticastSender` [INFO] [stdout] --> src/network/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use multicast::MulticastSender; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error` and `warn` [INFO] [stdout] --> src/utils/ffmpeg.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | use tracing::{info, warn, error}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/utils/pid_manager.rs:2:21 [INFO] [stdout] | [INFO] [stdout] 2 | use tracing::{info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `delete` and `extract::State` [INFO] [stdout] --> src/main.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | extract::State, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 180 | routing::{get, post, delete}, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/api/websocket.rs:72:38 [INFO] [stdout] | [INFO] [stdout] 72 | Ok(Message::Ping(data)) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `offset` is never read [INFO] [stdout] --> src/mux/packet.rs:150:13 [INFO] [stdout] | [INFO] [stdout] 150 | offset += 6; [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: `result` [INFO] [stdout] --> src/network/multicast.rs:219:13 [INFO] [stdout] | [INFO] [stdout] 219 | let result = MulticastSender::new(multicast_addr, interface).await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_channel_config`, `send_channel_stats`, `send_bulk_stats`, `check_pending_commands`, and `acknowledge_command` are never used [INFO] [stdout] --> src/api/client.rs:119:18 [INFO] [stdout] | [INFO] [stdout] 17 | impl ApiClient { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 119 | pub async fn get_channel_config(&self, channel_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | pub async fn send_channel_stats(&self, stats: &ChannelStats) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub async fn send_bulk_stats(&self, stats: Vec) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub async fn check_pending_commands(&self, client_id: &str) -> Result, TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | pub async fn acknowledge_command(&self, command_id: &str, success: bool, message: Option) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BulkStatsRequest` is never constructed [INFO] [stdout] --> src/api/client.rs:296:8 [INFO] [stdout] | [INFO] [stdout] 296 | struct BulkStatsRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RemoteCommand` is never constructed [INFO] [stdout] --> src/api/client.rs:301:12 [INFO] [stdout] | [INFO] [stdout] 301 | pub struct RemoteCommand { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RemoteCommandType` is never used [INFO] [stdout] --> src/api/client.rs:311:10 [INFO] [stdout] | [INFO] [stdout] 311 | pub enum RemoteCommandType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CommandAcknowledgment` is never constructed [INFO] [stdout] --> src/api/client.rs:322:8 [INFO] [stdout] | [INFO] [stdout] 322 | struct CommandAcknowledgment { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_channel_stats` is never used [INFO] [stdout] --> src/api/handlers.rs:104:14 [INFO] [stdout] | [INFO] [stdout] 104 | pub async fn get_channel_stats( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateChannelRequest` is never constructed [INFO] [stdout] --> src/api/handlers.rs:124:12 [INFO] [stdout] | [INFO] [stdout] 124 | pub struct CreateChannelRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_channel` is never used [INFO] [stdout] --> src/api/handlers.rs:128:14 [INFO] [stdout] | [INFO] [stdout] 128 | pub async fn create_channel( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_channel` is never used [INFO] [stdout] --> src/api/handlers.rs:151:14 [INFO] [stdout] | [INFO] [stdout] 151 | pub async fn delete_channel( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_summary` is never used [INFO] [stdout] --> src/api/handlers.rs:185:14 [INFO] [stdout] | [INFO] [stdout] 185 | pub async fn get_summary( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateConfigRequest` is never constructed [INFO] [stdout] --> src/api/handlers.rs:263:12 [INFO] [stdout] | [INFO] [stdout] 263 | pub struct UpdateConfigRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `update_channel_config` is never used [INFO] [stdout] --> src/api/handlers.rs:267:14 [INFO] [stdout] | [INFO] [stdout] 267 | pub async fn update_channel_config( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_channels_health` is never used [INFO] [stdout] --> src/api/handlers.rs:287:14 [INFO] [stdout] | [INFO] [stdout] 287 | pub async fn check_channels_health( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `parameters` is never read [INFO] [stdout] --> src/api/websocket.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 127 | struct ClientCommand { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 130 | parameters: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ClientCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RegistrationService` is never constructed [INFO] [stdout] --> src/api/registration.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct RegistrationService { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `register_with_retry` are never used [INFO] [stdout] --> src/api/registration.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl RegistrationService { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 14 | pub fn new(api_client: ApiClient, client_config: ClientConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub async fn register_with_retry(&self) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HeartbeatService` is never constructed [INFO] [stdout] --> src/api/heartbeat.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct HeartbeatService { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `start` are never used [INFO] [stdout] --> src/api/heartbeat.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl HeartbeatService { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 14 | pub fn new(api_client: Arc, client_id: String, interval_seconds: u64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub async fn start(self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/codec/video.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl VideoEncoder { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 46 | /// Crear un encoder de video personalizado [INFO] [stdout] 47 | pub fn new(codec: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/codec/audio.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl AudioEncoder { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 30 | /// Crear un encoder de audio personalizado [INFO] [stdout] 31 | pub fn new(codec: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `stream_optimized`, `high_quality`, and `describe` are never used [INFO] [stdout] --> src/codec/encoder.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 38 | impl Encoder { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn stream_optimized() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn high_quality() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn describe(&self) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `extract_all_audio_streams` and `extract_subtitle_info` are never used [INFO] [stdout] --> src/codec/decoder.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl Decoder { [INFO] [stdout] | ------------ associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn extract_all_audio_streams(container: &ContainerInfo) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn extract_subtitle_info(container: &ContainerInfo) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `load_channel_config` and `delete_channel_config` are never used [INFO] [stdout] --> src/config/loader.rs:253:12 [INFO] [stdout] | [INFO] [stdout] 228 | impl ConfigLoader { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 253 | pub fn load_channel_config(&self, channel_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | pub fn delete_channel_config(&self, channel_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `remove_channel`, `reload_channel_config`, and `has_channel` are never used [INFO] [stdout] --> src/core/manager.rs:56:18 [INFO] [stdout] | [INFO] [stdout] 16 | impl TranscoderManager { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | pub async fn remove_channel(&self, channel_id: &str) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub async fn reload_channel_config( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 173 | pub async fn has_channel(&self, channel_id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `update_config` and `get_config` are never used [INFO] [stdout] --> src/core/channel.rs:165:18 [INFO] [stdout] | [INFO] [stdout] 20 | impl Channel { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 165 | pub async fn update_config(&mut self, new_config: ChannelConfig) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | pub fn get_config(&self) -> &ChannelConfig { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `quick_check` is never used [INFO] [stdout] --> src/core/analyzer.rs:73:18 [INFO] [stdout] | [INFO] [stdout] 37 | impl StreamAnalyzer { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 73 | pub async fn quick_check(input_url: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StrategyReason` is never constructed [INFO] [stdout] --> src/core/strategy.rs:199:12 [INFO] [stdout] | [INFO] [stdout] 199 | pub struct StrategyReason { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decide_strategy_with_reasons` is never used [INFO] [stdout] --> src/core/strategy.rs:207:8 [INFO] [stdout] | [INFO] [stdout] 207 | pub fn decide_strategy_with_reasons( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VideoFrame` is never constructed [INFO] [stdout] --> src/core/pipeline.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct VideoFrame { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AudioFrame` is never constructed [INFO] [stdout] --> src/core/pipeline.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct AudioFrame { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PixelFormat` is never used [INFO] [stdout] --> src/core/pipeline.rs:25:10 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum PixelFormat { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ProcessingPipeline` is never constructed [INFO] [stdout] --> src/core/pipeline.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct ProcessingPipeline { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `process_video_frame`, and `process_audio_frame` are never used [INFO] [stdout] --> src/core/pipeline.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl ProcessingPipeline { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 40 | pub fn new(buffer_size: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub async fn process_video_frame(&self, frame: VideoFrame) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub async fn process_audio_frame(&self, frame: AudioFrame) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `VideoFilter` is never used [INFO] [stdout] --> src/core/pipeline.rs:62:11 [INFO] [stdout] | [INFO] [stdout] 62 | pub trait VideoFilter: Send + Sync { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DeinterlaceFilter` is never constructed [INFO] [stdout] --> src/core/pipeline.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 67 | pub struct DeinterlaceFilter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScaleFilter` is never constructed [INFO] [stdout] --> src/core/pipeline.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | pub struct ScaleFilter { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/core/pipeline.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 83 | impl ScaleFilter { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 84 | pub fn new(width: u32, height: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Channel` is never constructed [INFO] [stdout] --> src/models/channel.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Channel { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChannelConfigModel` is never constructed [INFO] [stdout] --> src/models/channel.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct ChannelConfigModel { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/models/channel.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl Channel { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 29 | pub fn new(id: String, name: String, client_id: String, config: ChannelConfigModel) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateChannelRequest` is never constructed [INFO] [stdout] --> src/models/channel.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct CreateChannelRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateChannelRequest` is never constructed [INFO] [stdout] --> src/models/channel.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | pub struct UpdateChannelRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChannelResponse` is never constructed [INFO] [stdout] --> src/models/channel.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct ChannelResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConfigValidator` is never constructed [INFO] [stdout] --> src/models/config.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct ConfigValidator; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `validate_channel_config` is never used [INFO] [stdout] --> src/models/config.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 53 | impl ConfigValidator { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 54 | /// Valida una configuración de canal [INFO] [stdout] 55 | pub fn validate_channel_config(config: &crate::config::loader::ChannelConfig) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/models/error.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum TranscoderError { [INFO] [stdout] | --------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 19 | ConfigError(String), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | ConfigLoadError(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | ConfigSaveError(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | ProcessDied(String), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | CodecError(String), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | MuxError(String), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | DemuxError(String), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | PipelineError(String), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | ApiError(String), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | AuthError(String), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | Timeout(String), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | ResourceUnavailable(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | HardwareError(String), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | HardwareAccelNotAvailable(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TranscoderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_str` is never used [INFO] [stdout] --> src/models/error.rs:149:12 [INFO] [stdout] | [INFO] [stdout] 148 | impl ErrorSeverity { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 149 | pub fn as_str(&self) -> &str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Result` is never used [INFO] [stdout] --> src/models/error.rs:160:10 [INFO] [stdout] | [INFO] [stdout] 160 | pub type Result = std::result::Result; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_str` is never used [INFO] [stdout] --> src/models/stats.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 30 | impl ChannelStatus { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn as_str(&self) -> &str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `summary` is never used [INFO] [stdout] --> src/models/stats.rs:148:12 [INFO] [stdout] | [INFO] [stdout] 95 | impl ChannelStats { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn summary(&self) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StatsHistory` is never constructed [INFO] [stdout] --> src/models/stats.rs:214:12 [INFO] [stdout] | [INFO] [stdout] 214 | pub struct StatsHistory { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StatsEntry` is never constructed [INFO] [stdout] --> src/models/stats.rs:221:12 [INFO] [stdout] | [INFO] [stdout] 221 | pub struct StatsEntry { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_entry`, `average_fps`, `average_bitrate`, and `bitrate_variance` are never used [INFO] [stdout] --> src/models/stats.rs:230:12 [INFO] [stdout] | [INFO] [stdout] 229 | impl StatsHistory { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 230 | pub fn new(channel_id: String, max_entries: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 238 | pub fn add_entry(&mut self, stats: &ChannelStats) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | pub fn average_fps(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | pub fn average_bitrate(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | pub fn bitrate_variance(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `with_interval` and `with_auto_restart` are never used [INFO] [stdout] --> src/monitor/health_checker.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl HealthChecker { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn with_interval(mut self, interval: Duration) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn with_auto_restart(mut self, enabled: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/monitor/metrics.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct MetricsCollector { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 19 | frames_processed: IntCounter, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | frames_dropped: IntCounter, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 21 | restarts_total: IntCounter, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 22 | errors_total: IntCounter, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | active_channels: IntGauge, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 26 | current_fps: Gauge, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 27 | current_bitrate: Gauge, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | processing_duration: Histogram, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/monitor/metrics.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 34 | impl MetricsCollector { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn inc_frames_processed(&self, count: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn inc_frames_dropped(&self, count: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn inc_restarts(&self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn inc_errors(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn set_active_channels(&self, count: i64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | pub fn set_fps(&self, fps: f64) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn set_bitrate(&self, bitrate_kbps: f64) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn observe_processing_duration(&self, duration_seconds: f64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MetricsManager` is never constructed [INFO] [stdout] --> src/monitor/metrics.rs:197:12 [INFO] [stdout] | [INFO] [stdout] 197 | pub struct MetricsManager { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `update_from_stats`, and `gather` are never used [INFO] [stdout] --> src/monitor/metrics.rs:202:12 [INFO] [stdout] | [INFO] [stdout] 201 | impl MetricsManager { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 202 | pub fn new() -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 215 | pub async fn update_from_stats(&self, stats: &crate::models::stats::ChannelStats) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 224 | pub async fn gather(&self) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StatsCollector` is never constructed [INFO] [stdout] --> src/monitor/stats_collector.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct StatsCollector { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `start`, `update_history`, `get_history`, `get_averages`, and `cleanup_old_history` are never used [INFO] [stdout] --> src/monitor/stats_collector.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl StatsCollector { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 20 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub async fn start(self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | async fn update_history(&self, stats: &HashMap) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub async fn get_history(&self, channel_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub async fn get_averages(&self, channel_id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub async fn cleanup_old_history(&self, older_than_hours: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChannelAverages` is never constructed [INFO] [stdout] --> src/monitor/stats_collector.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | pub struct ChannelAverages { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `cleanup_old_alerts`, `alert_dropped_frames`, and `alert_bitrate_deviation` are never used [INFO] [stdout] --> src/monitor/alerting.rs:63:18 [INFO] [stdout] | [INFO] [stdout] 15 | impl AlertManager { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 63 | pub async fn cleanup_old_alerts(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn alert_dropped_frames(channel_id: String, percentage: f64) -> MonitoringAlert { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn alert_bitrate_deviation( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `extract_stream`, `get_stream`, `clear_stream`, and `active_pids` are never used [INFO] [stdout] --> src/mux/mpegts_demuxer.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl MpegTsDemuxer { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn extract_stream(&mut self, pid: u16) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn get_stream(&self, pid: u16) -> Option<&Vec> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn clear_stream(&mut self, pid: u16) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn active_pids(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `pcr_pid` and `pcr_counter` are never read [INFO] [stdout] --> src/mux/mpegts_muxer.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct MpegTsMuxer { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 10 | pcr_pid: u16, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pcr_counter: u64, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/mux/mpegts_muxer.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl MpegTsMuxer { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 49 | pub fn generate_pmt(&mut self) -> TsPacket { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn create_video_packet(&mut self, data: &[u8], pts: Option) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn create_audio_packet(&mut self, data: &[u8], pts: Option) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | fn create_pes_packets(&mut self, pid: u16, data: &[u8], stream_id: u8, pts: Option) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | fn create_pes_header(&self, stream_id: u8, data_len: usize, pts: Option) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | fn get_pcr(&mut self) -> u64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn mux(&mut self, video_data: &[u8], audio_data: &[u8]) -> Vec { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `opcr_flag`, `splicing_point_flag`, `transport_private_data_flag`, `adaptation_field_extension_flag`, and `opcr` are never read [INFO] [stdout] --> src/mux/packet.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct AdaptationField { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 38 | pub opcr_flag: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 39 | pub splicing_point_flag: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 40 | pub transport_private_data_flag: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 41 | pub adaptation_field_extension_flag: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 42 | pub pcr: Option, // Program Clock Reference [INFO] [stdout] 43 | pub opcr: Option, // Original PCR [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AdaptationField` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_valid` is never used [INFO] [stdout] --> src/mux/packet.rs:233:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl TsPacket { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 233 | pub fn is_valid(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `pmt` is never used [INFO] [stdout] --> src/mux/packet.rs:254:12 [INFO] [stdout] | [INFO] [stdout] 238 | impl TsHeader { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 254 | pub fn pmt(pmt_pid: u16) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PesPacket` is never constructed [INFO] [stdout] --> src/mux/pes.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct PesPacket { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `parse` and `parse_timestamp` are never used [INFO] [stdout] --> src/mux/pes.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl PesPacket { [INFO] [stdout] | -------------- associated functions in this implementation [INFO] [stdout] 12 | /// Parsear paquete PES [INFO] [stdout] 13 | pub fn parse(data: &[u8]) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | fn parse_timestamp(data: &[u8]) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Pmt` is never constructed [INFO] [stdout] --> src/mux/psi.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 53 | pub struct Pmt { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_bytes` is never used [INFO] [stdout] --> src/mux/psi.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl Pmt { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] 60 | pub fn to_bytes(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ProgramInfo` is never constructed [INFO] [stdout] --> src/mux/psi.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 112 | pub struct ProgramInfo { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `mode` and `socket` are never read [INFO] [stdout] --> src/network/srt_receiver.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SrtReceiver { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 11 | url: String, [INFO] [stdout] 12 | mode: SrtMode, [INFO] [stdout] | ^^^^ [INFO] [stdout] 13 | socket: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/network/srt_receiver.rs:56:18 [INFO] [stdout] | [INFO] [stdout] 25 | impl SrtReceiver { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | pub async fn connect(&mut self) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub async fn receive(&mut self) -> Result, TranscoderError> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub async fn receive_timeout(&mut self, timeout: std::time::Duration) -> Result, TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | pub async fn close(&mut self) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | async fn connect_listener(&mut self, addr: SocketAddr) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | async fn connect_caller(&mut self, addr: SocketAddr) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | async fn connect_rendezvous(&mut self, addr: SocketAddr) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_bandwidth_mbps` and `passphrase` are never read [INFO] [stdout] --> src/network/srt_receiver.rs:238:5 [INFO] [stdout] | [INFO] [stdout] 234 | pub struct SrtReceiverBuilder { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 238 | max_bandwidth_mbps: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 239 | passphrase: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `max_bandwidth` and `passphrase` are never used [INFO] [stdout] --> src/network/srt_receiver.rs:263:12 [INFO] [stdout] | [INFO] [stdout] 242 | impl SrtReceiverBuilder { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 263 | pub fn max_bandwidth(mut self, mbps: u32) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn passphrase(mut self, passphrase: String) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `socket`, `local_interface`, `ttl`, `packet_size`, `packets_sent`, and `bytes_sent` are never read [INFO] [stdout] --> src/network/udp_sender.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct UdpSender { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 8 | socket: UdpSocket, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 9 | destination: SocketAddr, [INFO] [stdout] 10 | local_interface: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 11 | ttl: u32, [INFO] [stdout] | ^^^ [INFO] [stdout] 12 | packet_size: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 13 | packets_sent: u64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 14 | bytes_sent: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/network/udp_sender.rs:39:18 [INFO] [stdout] | [INFO] [stdout] 17 | impl UdpSender { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 39 | pub async fn from_url(url: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn with_local_interface(mut self, interface: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn set_ttl(&mut self, ttl: u32) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn enable_broadcast(&self) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub async fn send(&mut self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub async fn send_batch(&mut self, packets: Vec>) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn stats(&self) -> UdpStats { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn reset_stats(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UdpStats` is never constructed [INFO] [stdout] --> src/network/udp_sender.rs:129:12 [INFO] [stdout] | [INFO] [stdout] 129 | pub struct UdpStats { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `bitrate_kbps` is never used [INFO] [stdout] --> src/network/udp_sender.rs:137:12 [INFO] [stdout] | [INFO] [stdout] 136 | impl UdpStats { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 137 | pub fn bitrate_kbps(&self, duration_secs: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `local_interface` is never read [INFO] [stdout] --> src/network/udp_sender.rs:152:5 [INFO] [stdout] | [INFO] [stdout] 150 | struct ParsedUdpUrl { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 151 | destination: SocketAddr, [INFO] [stdout] 152 | local_interface: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UdpSenderBuilder` is never constructed [INFO] [stdout] --> src/network/udp_sender.rs:198:12 [INFO] [stdout] | [INFO] [stdout] 198 | pub struct UdpSenderBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `local_interface`, `ttl`, `packet_size`, `broadcast`, and `build` are never used [INFO] [stdout] --> src/network/udp_sender.rs:207:12 [INFO] [stdout] | [INFO] [stdout] 206 | impl UdpSenderBuilder { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 207 | pub fn new(destination: SocketAddr) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | pub fn local_interface(mut self, interface: String) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn ttl(mut self, ttl: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn packet_size(mut self, size: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | pub fn broadcast(mut self, enabled: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | pub async fn build(self) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ttl` and `packets_sent` are never read [INFO] [stdout] --> src/network/multicast.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct MulticastSender { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 11 | ttl: u32, [INFO] [stdout] | ^^^ [INFO] [stdout] 12 | packets_sent: u64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `send`, `set_ttl`, `set_multicast_loop`, and `packets_sent` are never used [INFO] [stdout] --> src/network/multicast.rs:63:18 [INFO] [stdout] | [INFO] [stdout] 15 | impl MulticastSender { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 63 | pub async fn send(&mut self, data: &[u8]) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn set_ttl(&mut self, ttl: u32) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn set_multicast_loop(&self, enabled: bool) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn packets_sent(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MulticastReceiver` is never constructed [INFO] [stdout] --> src/network/multicast.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 112 | pub struct MulticastReceiver { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `receive` are never used [INFO] [stdout] --> src/network/multicast.rs:119:18 [INFO] [stdout] | [INFO] [stdout] 118 | impl MulticastReceiver { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 119 | pub async fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | pub async fn receive(&self, buffer: &mut [u8]) -> Result<(usize, SocketAddr), TranscoderError> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_interface_ip` is never used [INFO] [stdout] --> src/network/multicast.rs:164:8 [INFO] [stdout] | [INFO] [stdout] 164 | pub fn get_interface_ip(interface_name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated functions are never used [INFO] [stdout] --> src/utils/ffmpeg.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl FfmpegHelper { [INFO] [stdout] | ----------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn get_version() -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn has_codec(codec_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn has_encoder(encoder_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn list_hw_encoders() -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn best_h264_encoder() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn check_capabilities() -> FfmpegCapabilities { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub fn has_protocol(protocol: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn validate_args(args: &[String]) -> Result<(), TranscoderError> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | pub fn execute(args: Vec) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FfmpegCapabilities` is never constructed [INFO] [stdout] --> src/utils/ffmpeg.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 232 | pub struct FfmpegCapabilities { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print_summary` is never used [INFO] [stdout] --> src/utils/ffmpeg.rs:246:12 [INFO] [stdout] | [INFO] [stdout] 245 | impl FfmpegCapabilities { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] 246 | pub fn print_summary(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `with_base_pids`, `free`, `get_pid`, `get_all_allocated`, and `auto_assign` are never used [INFO] [stdout] --> src/utils/pid_manager.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl PidManager { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn with_base_pids(pmt_pid: u16, video_pid: u16, audio_pid: u16) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn free(&mut self, stream_type: &str) -> Option { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn get_pid(&self, stream_type: &str) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn get_all_allocated(&self) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | pub fn auto_assign() -> PidAssignment { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/utils/bitrate_calc.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl BitrateCalculator { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn new_5sec() -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn calculate_kbps(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn calculate_mbps(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn average_bps(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn stats(&self) -> BitrateStats { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | fn calculate_historical_bitrates(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BitrateStats` is never constructed [INFO] [stdout] --> src/utils/bitrate_calc.rs:167:12 [INFO] [stdout] | [INFO] [stdout] 167 | pub struct BitrateStats { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `variance` and `is_cbr` are never used [INFO] [stdout] --> src/utils/bitrate_calc.rs:181:12 [INFO] [stdout] | [INFO] [stdout] 179 | impl BitrateStats { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] 180 | /// Calcular varianza del bitrate (para detectar CBR vs VBR) [INFO] [stdout] 181 | pub fn variance(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | pub fn is_cbr(&self, tolerance_percent: f64) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `channels_per_transponder` is never used [INFO] [stdout] --> src/utils/bitrate_calc.rs:242:12 [INFO] [stdout] | [INFO] [stdout] 197 | impl CatvBitrateHelper { [INFO] [stdout] | ---------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 242 | pub fn channels_per_transponder( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `uptime_since` is never used [INFO] [stdout] --> src/utils/time.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl TimeHelper { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn uptime_since(started_at: DateTime) -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `hash_config` and `configs_equal` are never used [INFO] [stdout] --> src/utils/hash.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl HashHelper { [INFO] [stdout] | --------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn hash_config(config: &T) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn configs_equal(a: &T, b: &T) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 49.55s [INFO] running `Command { std: "docker" "inspect" "20d2536ea7a68db23f0255072189ad55a9aeff18c018ba3d172300eaa25aa369", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "20d2536ea7a68db23f0255072189ad55a9aeff18c018ba3d172300eaa25aa369" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `chrono::Utc` [INFO] [stderr] --> src/config/loader.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use chrono::Utc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `debug` [INFO] [stderr] --> src/mux/mpegts_demuxer.rs:4:15 [INFO] [stderr] | [INFO] [stderr] 4 | use tracing::{debug, warn}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BufMut`, `Buf`, and `BytesMut` [INFO] [stderr] --> src/mux/packet.rs:1:13 [INFO] [stderr] | [INFO] [stderr] 1 | use bytes::{Buf, BufMut, BytesMut}; [INFO] [stderr] | ^^^ ^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition value: `srt-native` [INFO] [stderr] --> src/network/srt_receiver.rs:193:7 [INFO] [stderr] | [INFO] [stderr] 193 | #[cfg(feature = "srt-native")] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: expected values for `feature` are: `default`, `metrics`, and `prometheus` [INFO] [stderr] = help: consider adding `srt-native` as a feature in `Cargo.toml` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `bytes::BytesMut` [INFO] [stderr] --> src/network/srt_receiver.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use bytes::BytesMut; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `error` and `warn` [INFO] [stderr] --> src/network/srt_receiver.rs:5:21 [INFO] [stderr] | [INFO] [stderr] 5 | use tracing::{info, warn, error, debug}; [INFO] [stderr] | ^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `error` [INFO] [stderr] --> src/network/udp_sender.rs:4:28 [INFO] [stderr] | [INFO] [stderr] 4 | use tracing::{info, debug, error}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `error` [INFO] [stderr] --> src/network/multicast.rs:4:21 [INFO] [stderr] | [INFO] [stderr] 4 | use tracing::{info, error}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `error` and `warn` [INFO] [stderr] --> src/utils/ffmpeg.rs:3:21 [INFO] [stderr] | [INFO] [stderr] 3 | use tracing::{info, warn, error}; [INFO] [stderr] | ^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `warn` [INFO] [stderr] --> src/utils/pid_manager.rs:2:21 [INFO] [stderr] | [INFO] [stderr] 2 | use tracing::{info, warn}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/api/websocket.rs:72:38 [INFO] [stderr] | [INFO] [stderr] 72 | Ok(Message::Ping(data)) => { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `offset` is never read [INFO] [stderr] --> src/mux/packet.rs:150:13 [INFO] [stderr] | [INFO] [stderr] 150 | offset += 6; [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: field `parameters` is never read [INFO] [stderr] --> src/api/websocket.rs:130:5 [INFO] [stderr] | [INFO] [stderr] 127 | struct ClientCommand { [INFO] [stderr] | ------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 130 | parameters: Option, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ClientCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::config::loader::VideoConfig` [INFO] [stderr] --> src/core/strategy.rs:283:9 [INFO] [stderr] | [INFO] [stderr] 283 | use crate::config::loader::VideoConfig; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/network/multicast.rs:219:13 [INFO] [stderr] | [INFO] [stderr] 219 | let result = MulticastSender::new(multicast_addr, interface).await; [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stderr] [INFO] [stderr] warning: `catv-transcoder-client` (lib) generated 13 warnings (run `cargo fix --lib -p catv-transcoder-client` to apply 10 suggestions) [INFO] [stderr] warning: `catv-transcoder-client` (lib test) generated 15 warnings (13 duplicates) (run `cargo fix --lib -p catv-transcoder-client --tests` to apply 2 suggestions) [INFO] [stderr] warning: unused import: `client::ApiClient` [INFO] [stderr] --> src/api/mod.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | pub use client::ApiClient; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `handlers::*` [INFO] [stderr] --> src/api/mod.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | pub use handlers::*; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `websocket::WebSocketManager` [INFO] [stderr] --> src/api/mod.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | pub use websocket::WebSocketManager; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `video::VideoEncoder` [INFO] [stderr] --> src/codec/mod.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | pub use video::VideoEncoder; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `audio::AudioEncoder` [INFO] [stderr] --> src/codec/mod.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | pub use audio::AudioEncoder; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `encoder::Encoder` [INFO] [stderr] --> src/codec/mod.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | pub use encoder::Encoder; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `decoder::Decoder` [INFO] [stderr] --> src/codec/mod.rs:14:9 [INFO] [stderr] | [INFO] [stderr] 14 | pub use decoder::Decoder; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `chrono::Utc` [INFO] [stderr] --> src/config/loader.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use chrono::Utc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `manager::TranscoderManager` [INFO] [stderr] --> src/core/mod.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | pub use manager::TranscoderManager; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `channel::Channel` [INFO] [stderr] --> src/core/mod.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | pub use channel::Channel; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `transcoder::Transcoder` [INFO] [stderr] --> src/core/mod.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | pub use transcoder::Transcoder; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `analyzer::StreamAnalyzer` [INFO] [stderr] --> src/core/mod.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | pub use analyzer::StreamAnalyzer; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `TranscodeStrategy` and `decide_strategy` [INFO] [stderr] --> src/core/mod.rs:14:20 [INFO] [stderr] | [INFO] [stderr] 14 | pub use strategy::{TranscodeStrategy, decide_strategy}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `channel::Channel` [INFO] [stderr] --> src/models/mod.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | pub use channel::Channel; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `error::TranscoderError` [INFO] [stderr] --> src/models/mod.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | pub use error::TranscoderError; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ChannelStats` and `ChannelStatus` [INFO] [stderr] --> src/models/mod.rs:10:17 [INFO] [stderr] | [INFO] [stderr] 10 | pub use stats::{ChannelStats, ChannelStatus}; [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `health_checker::HealthChecker` [INFO] [stderr] --> src/monitor/mod.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | pub use health_checker::HealthChecker; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `metrics::MetricsCollector` [INFO] [stderr] --> src/monitor/mod.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | pub use metrics::MetricsCollector; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `stats_collector::StatsCollector` [INFO] [stderr] --> src/monitor/mod.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | pub use stats_collector::StatsCollector; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `alerting::AlertManager` [INFO] [stderr] --> src/monitor/mod.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | pub use alerting::AlertManager; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `mpegts_demuxer::MpegTsDemuxer` [INFO] [stderr] --> src/mux/mod.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | pub use mpegts_demuxer::MpegTsDemuxer; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `mpegts_muxer::MpegTsMuxer` [INFO] [stderr] --> src/mux/mod.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | pub use mpegts_muxer::MpegTsMuxer; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `AdaptationField`, `TsHeader`, and `TsPacket` [INFO] [stderr] --> src/mux/mod.rs:11:18 [INFO] [stderr] | [INFO] [stderr] 11 | pub use packet::{TsPacket, TsHeader, AdaptationField}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `pes::PesPacket` [INFO] [stderr] --> src/mux/mod.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | pub use pes::PesPacket; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Pat`, `Pmt`, and `ProgramInfo` [INFO] [stderr] --> src/mux/mod.rs:13:15 [INFO] [stderr] | [INFO] [stderr] 13 | pub use psi::{Pat, Pmt, ProgramInfo}; [INFO] [stderr] | ^^^ ^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `srt_receiver::SrtReceiver` [INFO] [stderr] --> src/network/mod.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | pub use srt_receiver::SrtReceiver; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `udp_sender::UdpSender` [INFO] [stderr] --> src/network/mod.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | pub use udp_sender::UdpSender; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `multicast::MulticastSender` [INFO] [stderr] --> src/network/mod.rs:9:9 [INFO] [stderr] | [INFO] [stderr] 9 | pub use multicast::MulticastSender; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `delete` and `extract::State` [INFO] [stderr] --> src/main.rs:179:9 [INFO] [stderr] | [INFO] [stderr] 179 | extract::State, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 180 | routing::{get, post, delete}, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `get_channel_config`, `send_channel_stats`, `send_bulk_stats`, `check_pending_commands`, and `acknowledge_command` are never used [INFO] [stderr] --> src/api/client.rs:119:18 [INFO] [stderr] | [INFO] [stderr] 17 | impl ApiClient { [INFO] [stderr] | -------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 119 | pub async fn get_channel_config(&self, channel_id: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 167 | pub async fn send_channel_stats(&self, stats: &ChannelStats) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 186 | pub async fn send_bulk_stats(&self, stats: Vec) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 211 | pub async fn check_pending_commands(&self, client_id: &str) -> Result, TranscoderError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 231 | pub async fn acknowledge_command(&self, command_id: &str, success: bool, message: Option) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: struct `BulkStatsRequest` is never constructed [INFO] [stderr] --> src/api/client.rs:296:8 [INFO] [stderr] | [INFO] [stderr] 296 | struct BulkStatsRequest { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `RemoteCommand` is never constructed [INFO] [stderr] --> src/api/client.rs:301:12 [INFO] [stderr] | [INFO] [stderr] 301 | pub struct RemoteCommand { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `RemoteCommandType` is never used [INFO] [stderr] --> src/api/client.rs:311:10 [INFO] [stderr] | [INFO] [stderr] 311 | pub enum RemoteCommandType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CommandAcknowledgment` is never constructed [INFO] [stderr] --> src/api/client.rs:322:8 [INFO] [stderr] | [INFO] [stderr] 322 | struct CommandAcknowledgment { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_channel_stats` is never used [INFO] [stderr] --> src/api/handlers.rs:104:14 [INFO] [stderr] | [INFO] [stderr] 104 | pub async fn get_channel_stats( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CreateChannelRequest` is never constructed [INFO] [stderr] --> src/api/handlers.rs:124:12 [INFO] [stderr] | [INFO] [stderr] 124 | pub struct CreateChannelRequest { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `create_channel` is never used [INFO] [stderr] --> src/api/handlers.rs:128:14 [INFO] [stderr] | [INFO] [stderr] 128 | pub async fn create_channel( [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `delete_channel` is never used [INFO] [stderr] --> src/api/handlers.rs:151:14 [INFO] [stderr] | [INFO] [stderr] 151 | pub async fn delete_channel( [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_summary` is never used [INFO] [stderr] --> src/api/handlers.rs:185:14 [INFO] [stderr] | [INFO] [stderr] 185 | pub async fn get_summary( [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `UpdateConfigRequest` is never constructed [INFO] [stderr] --> src/api/handlers.rs:263:12 [INFO] [stderr] | [INFO] [stderr] 263 | pub struct UpdateConfigRequest { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `update_channel_config` is never used [INFO] [stderr] --> src/api/handlers.rs:267:14 [INFO] [stderr] | [INFO] [stderr] 267 | pub async fn update_channel_config( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `check_channels_health` is never used [INFO] [stderr] --> src/api/handlers.rs:287:14 [INFO] [stderr] | [INFO] [stderr] 287 | pub async fn check_channels_health( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `parameters` is never read [INFO] [stderr] --> src/api/websocket.rs:130:5 [INFO] [stderr] | [INFO] [stderr] 127 | struct ClientCommand { [INFO] [stderr] | ------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 130 | parameters: Option, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ClientCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: struct `RegistrationService` is never constructed [INFO] [stderr] --> src/api/registration.rs:8:12 [INFO] [stderr] | [INFO] [stderr] 8 | pub struct RegistrationService { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `register_with_retry` are never used [INFO] [stderr] --> src/api/registration.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 13 | impl RegistrationService { [INFO] [stderr] | ------------------------ associated items in this implementation [INFO] [stderr] 14 | pub fn new(api_client: ApiClient, client_config: ClientConfig) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 22 | pub async fn register_with_retry(&self) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `HeartbeatService` is never constructed [INFO] [stderr] --> src/api/heartbeat.rs:7:12 [INFO] [stderr] | [INFO] [stderr] 7 | pub struct HeartbeatService { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `start` are never used [INFO] [stderr] --> src/api/heartbeat.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 13 | impl HeartbeatService { [INFO] [stderr] | --------------------- associated items in this implementation [INFO] [stderr] 14 | pub fn new(api_client: Arc, client_id: String, interval_seconds: u64) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 23 | pub async fn start(self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/codec/video.rs:47:12 [INFO] [stderr] | [INFO] [stderr] 45 | impl VideoEncoder { [INFO] [stderr] | ----------------- associated function in this implementation [INFO] [stderr] 46 | /// Crear un encoder de video personalizado [INFO] [stderr] 47 | pub fn new(codec: &str) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/codec/audio.rs:31:12 [INFO] [stderr] | [INFO] [stderr] 29 | impl AudioEncoder { [INFO] [stderr] | ----------------- associated function in this implementation [INFO] [stderr] 30 | /// Crear un encoder de audio personalizado [INFO] [stderr] 31 | pub fn new(codec: &str) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `stream_optimized`, `high_quality`, and `describe` are never used [INFO] [stderr] --> src/codec/encoder.rs:98:12 [INFO] [stderr] | [INFO] [stderr] 38 | impl Encoder { [INFO] [stderr] | ------------ associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 98 | pub fn stream_optimized() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 121 | pub fn high_quality() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 176 | pub fn describe(&self) -> String { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated functions `extract_all_audio_streams` and `extract_subtitle_info` are never used [INFO] [stderr] --> src/codec/decoder.rs:77:12 [INFO] [stderr] | [INFO] [stderr] 36 | impl Decoder { [INFO] [stderr] | ------------ associated functions in this implementation [INFO] [stderr] ... [INFO] [stderr] 77 | pub fn extract_all_audio_streams(container: &ContainerInfo) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 87 | pub fn extract_subtitle_info(container: &ContainerInfo) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `load_channel_config` and `delete_channel_config` are never used [INFO] [stderr] --> src/config/loader.rs:253:12 [INFO] [stderr] | [INFO] [stderr] 228 | impl ConfigLoader { [INFO] [stderr] | ----------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 253 | pub fn load_channel_config(&self, channel_id: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 322 | pub fn delete_channel_config(&self, channel_id: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `remove_channel`, `reload_channel_config`, and `has_channel` are never used [INFO] [stderr] --> src/core/manager.rs:56:18 [INFO] [stderr] | [INFO] [stderr] 16 | impl TranscoderManager { [INFO] [stderr] | ---------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 56 | pub async fn remove_channel(&self, channel_id: &str) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 150 | pub async fn reload_channel_config( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 173 | pub async fn has_channel(&self, channel_id: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `update_config` and `get_config` are never used [INFO] [stderr] --> src/core/channel.rs:165:18 [INFO] [stderr] | [INFO] [stderr] 20 | impl Channel { [INFO] [stderr] | ------------ methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 165 | pub async fn update_config(&mut self, new_config: ChannelConfig) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 180 | pub fn get_config(&self) -> &ChannelConfig { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `quick_check` is never used [INFO] [stderr] --> src/core/analyzer.rs:73:18 [INFO] [stderr] | [INFO] [stderr] 37 | impl StreamAnalyzer { [INFO] [stderr] | ------------------- associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 73 | pub async fn quick_check(input_url: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `StrategyReason` is never constructed [INFO] [stderr] --> src/core/strategy.rs:199:12 [INFO] [stderr] | [INFO] [stderr] 199 | pub struct StrategyReason { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `decide_strategy_with_reasons` is never used [INFO] [stderr] --> src/core/strategy.rs:207:8 [INFO] [stderr] | [INFO] [stderr] 207 | pub fn decide_strategy_with_reasons( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `VideoFrame` is never constructed [INFO] [stderr] --> src/core/pipeline.rs:6:12 [INFO] [stderr] | [INFO] [stderr] 6 | pub struct VideoFrame { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `AudioFrame` is never constructed [INFO] [stderr] --> src/core/pipeline.rs:15:12 [INFO] [stderr] | [INFO] [stderr] 15 | pub struct AudioFrame { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `PixelFormat` is never used [INFO] [stderr] --> src/core/pipeline.rs:25:10 [INFO] [stderr] | [INFO] [stderr] 25 | pub enum PixelFormat { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ProcessingPipeline` is never constructed [INFO] [stderr] --> src/core/pipeline.rs:34:12 [INFO] [stderr] | [INFO] [stderr] 34 | pub struct ProcessingPipeline { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `process_video_frame`, and `process_audio_frame` are never used [INFO] [stderr] --> src/core/pipeline.rs:40:12 [INFO] [stderr] | [INFO] [stderr] 39 | impl ProcessingPipeline { [INFO] [stderr] | ----------------------- associated items in this implementation [INFO] [stderr] 40 | pub fn new(buffer_size: usize) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 50 | pub async fn process_video_frame(&self, frame: VideoFrame) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 55 | pub async fn process_audio_frame(&self, frame: AudioFrame) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait `VideoFilter` is never used [INFO] [stderr] --> src/core/pipeline.rs:62:11 [INFO] [stderr] | [INFO] [stderr] 62 | pub trait VideoFilter: Send + Sync { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `DeinterlaceFilter` is never constructed [INFO] [stderr] --> src/core/pipeline.rs:67:12 [INFO] [stderr] | [INFO] [stderr] 67 | pub struct DeinterlaceFilter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ScaleFilter` is never constructed [INFO] [stderr] --> src/core/pipeline.rs:78:12 [INFO] [stderr] | [INFO] [stderr] 78 | pub struct ScaleFilter { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/core/pipeline.rs:84:12 [INFO] [stderr] | [INFO] [stderr] 83 | impl ScaleFilter { [INFO] [stderr] | ---------------- associated function in this implementation [INFO] [stderr] 84 | pub fn new(width: u32, height: u32) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Channel` is never constructed [INFO] [stderr] --> src/models/channel.rs:6:12 [INFO] [stderr] | [INFO] [stderr] 6 | pub struct Channel { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ChannelConfigModel` is never constructed [INFO] [stderr] --> src/models/channel.rs:19:12 [INFO] [stderr] | [INFO] [stderr] 19 | pub struct ChannelConfigModel { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/models/channel.rs:29:12 [INFO] [stderr] | [INFO] [stderr] 28 | impl Channel { [INFO] [stderr] | ------------ associated function in this implementation [INFO] [stderr] 29 | pub fn new(id: String, name: String, client_id: String, config: ChannelConfigModel) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CreateChannelRequest` is never constructed [INFO] [stderr] --> src/models/channel.rs:46:12 [INFO] [stderr] | [INFO] [stderr] 46 | pub struct CreateChannelRequest { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `UpdateChannelRequest` is never constructed [INFO] [stderr] --> src/models/channel.rs:54:12 [INFO] [stderr] | [INFO] [stderr] 54 | pub struct UpdateChannelRequest { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ChannelResponse` is never constructed [INFO] [stderr] --> src/models/channel.rs:63:12 [INFO] [stderr] | [INFO] [stderr] 63 | pub struct ChannelResponse { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ConfigValidator` is never constructed [INFO] [stderr] --> src/models/config.rs:51:12 [INFO] [stderr] | [INFO] [stderr] 51 | pub struct ConfigValidator; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `validate_channel_config` is never used [INFO] [stderr] --> src/models/config.rs:55:12 [INFO] [stderr] | [INFO] [stderr] 53 | impl ConfigValidator { [INFO] [stderr] | -------------------- associated function in this implementation [INFO] [stderr] 54 | /// Valida una configuración de canal [INFO] [stderr] 55 | pub fn validate_channel_config(config: &crate::config::loader::ChannelConfig) -> Result<(), String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple variants are never constructed [INFO] [stderr] --> src/models/error.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 5 | pub enum TranscoderError { [INFO] [stderr] | --------------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 19 | ConfigError(String), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 22 | ConfigLoadError(String), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 25 | ConfigSaveError(String), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 40 | ProcessDied(String), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 52 | CodecError(String), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 55 | MuxError(String), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 58 | DemuxError(String), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 61 | PipelineError(String), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 64 | ApiError(String), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 70 | AuthError(String), [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 73 | Timeout(String), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 76 | ResourceUnavailable(String), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 79 | HardwareError(String), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 82 | HardwareAccelNotAvailable(String), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `TranscoderError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `as_str` is never used [INFO] [stderr] --> src/models/error.rs:149:12 [INFO] [stderr] | [INFO] [stderr] 148 | impl ErrorSeverity { [INFO] [stderr] | ------------------ method in this implementation [INFO] [stderr] 149 | pub fn as_str(&self) -> &str { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `Result` is never used [INFO] [stderr] --> src/models/error.rs:160:10 [INFO] [stderr] | [INFO] [stderr] 160 | pub type Result = std::result::Result; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `as_str` is never used [INFO] [stderr] --> src/models/stats.rs:39:12 [INFO] [stderr] | [INFO] [stderr] 30 | impl ChannelStatus { [INFO] [stderr] | ------------------ method in this implementation [INFO] [stderr] ... [INFO] [stderr] 39 | pub fn as_str(&self) -> &str { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `summary` is never used [INFO] [stderr] --> src/models/stats.rs:148:12 [INFO] [stderr] | [INFO] [stderr] 95 | impl ChannelStats { [INFO] [stderr] | ----------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 148 | pub fn summary(&self) -> String { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `StatsHistory` is never constructed [INFO] [stderr] --> src/models/stats.rs:214:12 [INFO] [stderr] | [INFO] [stderr] 214 | pub struct StatsHistory { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `StatsEntry` is never constructed [INFO] [stderr] --> src/models/stats.rs:221:12 [INFO] [stderr] | [INFO] [stderr] 221 | pub struct StatsEntry { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `add_entry`, `average_fps`, `average_bitrate`, and `bitrate_variance` are never used [INFO] [stderr] --> src/models/stats.rs:230:12 [INFO] [stderr] | [INFO] [stderr] 229 | impl StatsHistory { [INFO] [stderr] | ----------------- associated items in this implementation [INFO] [stderr] 230 | pub fn new(channel_id: String, max_entries: usize) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 238 | pub fn add_entry(&mut self, stats: &ChannelStats) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 255 | pub fn average_fps(&self) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 263 | pub fn average_bitrate(&self) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 271 | pub fn bitrate_variance(&self) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `with_interval` and `with_auto_restart` are never used [INFO] [stderr] --> src/monitor/health_checker.rs:28:12 [INFO] [stderr] | [INFO] [stderr] 17 | impl HealthChecker { [INFO] [stderr] | ------------------ methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 28 | pub fn with_interval(mut self, interval: Duration) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 33 | pub fn with_auto_restart(mut self, enabled: bool) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple fields are never read [INFO] [stderr] --> src/monitor/metrics.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 15 | pub struct MetricsCollector { [INFO] [stderr] | ---------------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 19 | frames_processed: IntCounter, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] 20 | frames_dropped: IntCounter, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 21 | restarts_total: IntCounter, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 22 | errors_total: IntCounter, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 25 | active_channels: IntGauge, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 26 | current_fps: Gauge, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 27 | current_bitrate: Gauge, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 30 | processing_duration: Histogram, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/monitor/metrics.rs:98:12 [INFO] [stderr] | [INFO] [stderr] 34 | impl MetricsCollector { [INFO] [stderr] | --------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 98 | pub fn inc_frames_processed(&self, count: u64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 103 | pub fn inc_frames_dropped(&self, count: u64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 108 | pub fn inc_restarts(&self) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 113 | pub fn inc_errors(&self) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 118 | pub fn set_active_channels(&self, count: i64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 123 | pub fn set_fps(&self, fps: f64) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 128 | pub fn set_bitrate(&self, bitrate_kbps: f64) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 133 | pub fn observe_processing_duration(&self, duration_seconds: f64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `MetricsManager` is never constructed [INFO] [stderr] --> src/monitor/metrics.rs:197:12 [INFO] [stderr] | [INFO] [stderr] 197 | pub struct MetricsManager { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `update_from_stats`, and `gather` are never used [INFO] [stderr] --> src/monitor/metrics.rs:202:12 [INFO] [stderr] | [INFO] [stderr] 201 | impl MetricsManager { [INFO] [stderr] | ------------------- associated items in this implementation [INFO] [stderr] 202 | pub fn new() -> Result { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 215 | pub async fn update_from_stats(&self, stats: &crate::models::stats::ChannelStats) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 224 | pub async fn gather(&self) -> String { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `StatsCollector` is never constructed [INFO] [stderr] --> src/monitor/stats_collector.rs:11:12 [INFO] [stderr] | [INFO] [stderr] 11 | pub struct StatsCollector { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `start`, `update_history`, `get_history`, `get_averages`, and `cleanup_old_history` are never used [INFO] [stderr] --> src/monitor/stats_collector.rs:20:12 [INFO] [stderr] | [INFO] [stderr] 19 | impl StatsCollector { [INFO] [stderr] | ------------------- associated items in this implementation [INFO] [stderr] 20 | pub fn new( [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 35 | pub async fn start(self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 65 | async fn update_history(&self, stats: &HashMap) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 78 | pub async fn get_history(&self, channel_id: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 84 | pub async fn get_averages(&self, channel_id: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 99 | pub async fn cleanup_old_history(&self, older_than_hours: u64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ChannelAverages` is never constructed [INFO] [stderr] --> src/monitor/stats_collector.rs:113:12 [INFO] [stderr] | [INFO] [stderr] 113 | pub struct ChannelAverages { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `cleanup_old_alerts`, `alert_dropped_frames`, and `alert_bitrate_deviation` are never used [INFO] [stderr] --> src/monitor/alerting.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 15 | impl AlertManager { [INFO] [stderr] | ----------------- associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 63 | pub async fn cleanup_old_alerts(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 81 | pub fn alert_dropped_frames(channel_id: String, percentage: f64) -> MonitoringAlert { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 97 | pub fn alert_bitrate_deviation( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `extract_stream`, `get_stream`, `clear_stream`, and `active_pids` are never used [INFO] [stderr] --> src/mux/mpegts_demuxer.rs:72:12 [INFO] [stderr] | [INFO] [stderr] 13 | impl MpegTsDemuxer { [INFO] [stderr] | ------------------ methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 72 | pub fn extract_stream(&mut self, pid: u16) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 77 | pub fn get_stream(&self, pid: u16) -> Option<&Vec> { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 82 | pub fn clear_stream(&mut self, pid: u16) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 92 | pub fn active_pids(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `pcr_pid` and `pcr_counter` are never read [INFO] [stderr] --> src/mux/mpegts_muxer.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 6 | pub struct MpegTsMuxer { [INFO] [stderr] | ----------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 10 | pcr_pid: u16, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 13 | pcr_counter: u64, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/mux/mpegts_muxer.rs:49:12 [INFO] [stderr] | [INFO] [stderr] 16 | impl MpegTsMuxer { [INFO] [stderr] | ---------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 49 | pub fn generate_pmt(&mut self) -> TsPacket { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 78 | pub fn create_video_packet(&mut self, data: &[u8], pts: Option) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 83 | pub fn create_audio_packet(&mut self, data: &[u8], pts: Option) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 88 | fn create_pes_packets(&mut self, pid: u16, data: &[u8], stream_id: u8, pts: Option) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 154 | fn create_pes_header(&self, stream_id: u8, data_len: usize, pts: Option) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 200 | fn get_pcr(&mut self) -> u64 { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 207 | pub fn mux(&mut self, video_data: &[u8], audio_data: &[u8]) -> Vec { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `opcr_flag`, `splicing_point_flag`, `transport_private_data_flag`, `adaptation_field_extension_flag`, and `opcr` are never read [INFO] [stderr] --> src/mux/packet.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 32 | pub struct AdaptationField { [INFO] [stderr] | --------------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 38 | pub opcr_flag: bool, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 39 | pub splicing_point_flag: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 40 | pub transport_private_data_flag: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 41 | pub adaptation_field_extension_flag: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 42 | pub pcr: Option, // Program Clock Reference [INFO] [stderr] 43 | pub opcr: Option, // Original PCR [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `AdaptationField` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `is_valid` is never used [INFO] [stderr] --> src/mux/packet.rs:233:12 [INFO] [stderr] | [INFO] [stderr] 46 | impl TsPacket { [INFO] [stderr] | ------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 233 | pub fn is_valid(&self) -> bool { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `pmt` is never used [INFO] [stderr] --> src/mux/packet.rs:254:12 [INFO] [stderr] | [INFO] [stderr] 238 | impl TsHeader { [INFO] [stderr] | ------------- associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 254 | pub fn pmt(pmt_pid: u16) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `PesPacket` is never constructed [INFO] [stderr] --> src/mux/pes.rs:3:12 [INFO] [stderr] | [INFO] [stderr] 3 | pub struct PesPacket { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated functions `parse` and `parse_timestamp` are never used [INFO] [stderr] --> src/mux/pes.rs:13:12 [INFO] [stderr] | [INFO] [stderr] 11 | impl PesPacket { [INFO] [stderr] | -------------- associated functions in this implementation [INFO] [stderr] 12 | /// Parsear paquete PES [INFO] [stderr] 13 | pub fn parse(data: &[u8]) -> Result { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 57 | fn parse_timestamp(data: &[u8]) -> u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Pmt` is never constructed [INFO] [stderr] --> src/mux/psi.rs:53:12 [INFO] [stderr] | [INFO] [stderr] 53 | pub struct Pmt { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: method `to_bytes` is never used [INFO] [stderr] --> src/mux/psi.rs:60:12 [INFO] [stderr] | [INFO] [stderr] 59 | impl Pmt { [INFO] [stderr] | -------- method in this implementation [INFO] [stderr] 60 | pub fn to_bytes(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ProgramInfo` is never constructed [INFO] [stderr] --> src/mux/psi.rs:112:12 [INFO] [stderr] | [INFO] [stderr] 112 | pub struct ProgramInfo { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `mode` and `socket` are never read [INFO] [stderr] --> src/network/srt_receiver.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 10 | pub struct SrtReceiver { [INFO] [stderr] | ----------- fields in this struct [INFO] [stderr] 11 | url: String, [INFO] [stderr] 12 | mode: SrtMode, [INFO] [stderr] | ^^^^ [INFO] [stderr] 13 | socket: Option, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/network/srt_receiver.rs:56:18 [INFO] [stderr] | [INFO] [stderr] 25 | impl SrtReceiver { [INFO] [stderr] | ---------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 56 | pub async fn connect(&mut self) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 73 | pub async fn receive(&mut self) -> Result, TranscoderError> { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 89 | pub async fn receive_timeout(&mut self, timeout: std::time::Duration) -> Result, TranscoderError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 96 | pub async fn close(&mut self) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 107 | async fn connect_listener(&mut self, addr: SocketAddr) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 117 | async fn connect_caller(&mut self, addr: SocketAddr) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 132 | async fn connect_rendezvous(&mut self, addr: SocketAddr) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `max_bandwidth_mbps` and `passphrase` are never read [INFO] [stderr] --> src/network/srt_receiver.rs:238:5 [INFO] [stderr] | [INFO] [stderr] 234 | pub struct SrtReceiverBuilder { [INFO] [stderr] | ------------------ fields in this struct [INFO] [stderr] ... [INFO] [stderr] 238 | max_bandwidth_mbps: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 239 | passphrase: Option, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `max_bandwidth` and `passphrase` are never used [INFO] [stderr] --> src/network/srt_receiver.rs:263:12 [INFO] [stderr] | [INFO] [stderr] 242 | impl SrtReceiverBuilder { [INFO] [stderr] | ----------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 263 | pub fn max_bandwidth(mut self, mbps: u32) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 268 | pub fn passphrase(mut self, passphrase: String) -> Self { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `socket`, `local_interface`, `ttl`, `packet_size`, `packets_sent`, and `bytes_sent` are never read [INFO] [stderr] --> src/network/udp_sender.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 7 | pub struct UdpSender { [INFO] [stderr] | --------- fields in this struct [INFO] [stderr] 8 | socket: UdpSocket, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 9 | destination: SocketAddr, [INFO] [stderr] 10 | local_interface: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 11 | ttl: u32, [INFO] [stderr] | ^^^ [INFO] [stderr] 12 | packet_size: usize, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 13 | packets_sent: u64, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 14 | bytes_sent: u64, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/network/udp_sender.rs:39:18 [INFO] [stderr] | [INFO] [stderr] 17 | impl UdpSender { [INFO] [stderr] | -------------- associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 39 | pub async fn from_url(url: &str) -> Result { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 60 | pub fn with_local_interface(mut self, interface: String) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 69 | pub fn set_ttl(&mut self, ttl: u32) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 79 | pub fn enable_broadcast(&self) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 88 | pub async fn send(&mut self, data: &[u8]) -> Result { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 100 | pub async fn send_batch(&mut self, packets: Vec>) -> Result { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 111 | pub fn stats(&self) -> UdpStats { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 121 | pub fn reset_stats(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `UdpStats` is never constructed [INFO] [stderr] --> src/network/udp_sender.rs:129:12 [INFO] [stderr] | [INFO] [stderr] 129 | pub struct UdpStats { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `bitrate_kbps` is never used [INFO] [stderr] --> src/network/udp_sender.rs:137:12 [INFO] [stderr] | [INFO] [stderr] 136 | impl UdpStats { [INFO] [stderr] | ------------- method in this implementation [INFO] [stderr] 137 | pub fn bitrate_kbps(&self, duration_secs: f64) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `local_interface` is never read [INFO] [stderr] --> src/network/udp_sender.rs:152:5 [INFO] [stderr] | [INFO] [stderr] 150 | struct ParsedUdpUrl { [INFO] [stderr] | ------------ field in this struct [INFO] [stderr] 151 | destination: SocketAddr, [INFO] [stderr] 152 | local_interface: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `UdpSenderBuilder` is never constructed [INFO] [stderr] --> src/network/udp_sender.rs:198:12 [INFO] [stderr] | [INFO] [stderr] 198 | pub struct UdpSenderBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `local_interface`, `ttl`, `packet_size`, `broadcast`, and `build` are never used [INFO] [stderr] --> src/network/udp_sender.rs:207:12 [INFO] [stderr] | [INFO] [stderr] 206 | impl UdpSenderBuilder { [INFO] [stderr] | --------------------- associated items in this implementation [INFO] [stderr] 207 | pub fn new(destination: SocketAddr) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 217 | pub fn local_interface(mut self, interface: String) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 222 | pub fn ttl(mut self, ttl: u32) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 227 | pub fn packet_size(mut self, size: usize) -> Self { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 232 | pub fn broadcast(mut self, enabled: bool) -> Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 237 | pub async fn build(self) -> Result { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `ttl` and `packets_sent` are never read [INFO] [stderr] --> src/network/multicast.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 7 | pub struct MulticastSender { [INFO] [stderr] | --------------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 11 | ttl: u32, [INFO] [stderr] | ^^^ [INFO] [stderr] 12 | packets_sent: u64, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `send`, `set_ttl`, `set_multicast_loop`, and `packets_sent` are never used [INFO] [stderr] --> src/network/multicast.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 15 | impl MulticastSender { [INFO] [stderr] | -------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 63 | pub async fn send(&mut self, data: &[u8]) -> Result { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 72 | pub fn set_ttl(&mut self, ttl: u32) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 82 | pub fn set_multicast_loop(&self, enabled: bool) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | pub fn packets_sent(&self) -> u64 { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `MulticastReceiver` is never constructed [INFO] [stderr] --> src/network/multicast.rs:112:12 [INFO] [stderr] | [INFO] [stderr] 112 | pub struct MulticastReceiver { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `receive` are never used [INFO] [stderr] --> src/network/multicast.rs:119:18 [INFO] [stderr] | [INFO] [stderr] 118 | impl MulticastReceiver { [INFO] [stderr] | ---------------------- associated items in this implementation [INFO] [stderr] 119 | pub async fn new( [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 149 | pub async fn receive(&self, buffer: &mut [u8]) -> Result<(usize, SocketAddr), TranscoderError> { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_interface_ip` is never used [INFO] [stderr] --> src/network/multicast.rs:164:8 [INFO] [stderr] | [INFO] [stderr] 164 | pub fn get_interface_ip(interface_name: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated functions are never used [INFO] [stderr] --> src/utils/ffmpeg.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 9 | impl FfmpegHelper { [INFO] [stderr] | ----------------- associated functions in this implementation [INFO] [stderr] ... [INFO] [stderr] 22 | pub fn get_version() -> Result { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 37 | pub fn has_codec(codec_name: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 51 | pub fn has_encoder(encoder_name: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 65 | pub fn list_hw_encoders() -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 91 | pub fn best_h264_encoder() -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 115 | pub fn check_capabilities() -> FfmpegCapabilities { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 131 | pub fn has_protocol(protocol: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 176 | pub fn validate_args(args: &[String]) -> Result<(), TranscoderError> { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 189 | pub fn execute(args: Vec) -> Result { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `FfmpegCapabilities` is never constructed [INFO] [stderr] --> src/utils/ffmpeg.rs:232:12 [INFO] [stderr] | [INFO] [stderr] 232 | pub struct FfmpegCapabilities { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `print_summary` is never used [INFO] [stderr] --> src/utils/ffmpeg.rs:246:12 [INFO] [stderr] | [INFO] [stderr] 245 | impl FfmpegCapabilities { [INFO] [stderr] | ----------------------- method in this implementation [INFO] [stderr] 246 | pub fn print_summary(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `with_base_pids`, `free`, `get_pid`, `get_all_allocated`, and `auto_assign` are never used [INFO] [stderr] --> src/utils/pid_manager.rs:40:12 [INFO] [stderr] | [INFO] [stderr] 12 | impl PidManager { [INFO] [stderr] | --------------- associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 40 | pub fn with_base_pids(pmt_pid: u16, video_pid: u16, audio_pid: u16) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 85 | pub fn free(&mut self, stream_type: &str) -> Option { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 95 | pub fn get_pid(&self, stream_type: &str) -> Option { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 115 | pub fn get_all_allocated(&self) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 143 | pub fn auto_assign() -> PidAssignment { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/utils/bitrate_calc.rs:32:12 [INFO] [stderr] | [INFO] [stderr] 16 | impl BitrateCalculator { [INFO] [stderr] | ---------------------- associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 32 | pub fn new_5sec() -> Self { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 78 | pub fn calculate_kbps(&self) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 83 | pub fn calculate_mbps(&self) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 88 | pub fn average_bps(&self) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 106 | pub fn stats(&self) -> BitrateStats { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 130 | pub fn reset(&mut self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 143 | fn calculate_historical_bitrates(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `BitrateStats` is never constructed [INFO] [stderr] --> src/utils/bitrate_calc.rs:167:12 [INFO] [stderr] | [INFO] [stderr] 167 | pub struct BitrateStats { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `variance` and `is_cbr` are never used [INFO] [stderr] --> src/utils/bitrate_calc.rs:181:12 [INFO] [stderr] | [INFO] [stderr] 179 | impl BitrateStats { [INFO] [stderr] | ----------------- methods in this implementation [INFO] [stderr] 180 | /// Calcular varianza del bitrate (para detectar CBR vs VBR) [INFO] [stderr] 181 | pub fn variance(&self) -> f64 { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 189 | pub fn is_cbr(&self, tolerance_percent: f64) -> bool { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `channels_per_transponder` is never used [INFO] [stderr] --> src/utils/bitrate_calc.rs:242:12 [INFO] [stderr] | [INFO] [stderr] 197 | impl CatvBitrateHelper { [INFO] [stderr] | ---------------------- associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 242 | pub fn channels_per_transponder( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `uptime_since` is never used [INFO] [stderr] --> src/utils/time.rs:36:12 [INFO] [stderr] | [INFO] [stderr] 6 | impl TimeHelper { [INFO] [stderr] | --------------- associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 36 | pub fn uptime_since(started_at: DateTime) -> Duration { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated functions `hash_config` and `configs_equal` are never used [INFO] [stderr] --> src/utils/hash.rs:16:12 [INFO] [stderr] | [INFO] [stderr] 7 | impl HashHelper { [INFO] [stderr] | --------------- associated functions in this implementation [INFO] [stderr] ... [INFO] [stderr] 16 | pub fn hash_config(config: &T) -> Result { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 24 | pub fn configs_equal(a: &T, b: &T) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `catv-transcoder-client` (bin "catv-transcoder" test) generated 141 warnings (13 duplicates) (run `cargo fix --bin "catv-transcoder" -p catv-transcoder-client --tests` to apply 29 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.52s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/catv_transcoder_client-f8e04389a723654d) [INFO] [stdout] [INFO] [stdout] running 52 tests [INFO] [stdout] test codec::audio::tests::test_audio_encoder_presets ... ok [INFO] [stdout] test api::websocket::tests::test_stats_message_serialization ... ok [INFO] [stdout] test codec::audio::tests::test_default_audio_encoder ... ok [INFO] [stdout] test codec::decoder::tests::test_decoder_creation ... ok [INFO] [stdout] test codec::decoder::tests::test_stream_extraction ... ok [INFO] [stdout] test codec::encoder::tests::test_catv_presets ... ok [INFO] [stdout] test codec::encoder::tests::test_ffmpeg_command_building ... ok [INFO] [stdout] test codec::encoder::tests::test_default_encoder ... ok [INFO] [stdout] test codec::video::tests::test_ffmpeg_args_generation ... ok [INFO] [stdout] test codec::video::tests::test_default_video_encoder ... ok [INFO] [stdout] test codec::video::tests::test_video_encoder_validation ... ok [INFO] [stdout] test core::analyzer::tests::test_parse_fps ... ok [INFO] [stdout] test models::config::tests::test_config_snapshot ... ok [INFO] [stdout] test models::stats::tests::test_aggregated_stats ... ok [INFO] [stdout] test models::stats::tests::test_channel_stats_health ... ok [INFO] [stdout] test models::stats::tests::test_dropped_frames_percentage ... ok [INFO] [stdout] test codec::audio::tests::test_audio_validation ... ok [INFO] [stdout] test models::error::tests::test_error_recoverability ... ok [INFO] [stdout] test monitor::stats_collector::tests::test_stats_aggregation ... ok [INFO] [stdout] test mux::mpegts_demuxer::tests::test_demuxer ... ok [INFO] [stdout] test models::error::tests::test_error_severity ... ok [INFO] [stdout] test codec::decoder::tests::test_ffprobe_command_building ... ok [INFO] [stdout] test mux::mpegts_muxer::tests::test_muxer_creation ... ok [INFO] [stdout] test mux::packet::tests::test_packet_serialize ... ok [INFO] [stdout] test network::multicast::tests::test_is_multicast ... ok [INFO] [stdout] test network::srt_receiver::tests::test_srt_url_parsing ... ok [INFO] [stdout] test network::udp_sender::tests::test_parse_udp_url ... ok [INFO] [stdout] test network::multicast::tests::test_multicast_sender_creation ... ok [INFO] [stdout] test utils::bitrate_calc::tests::test_total_bitrate ... ok [INFO] [stdout] test network::udp_sender::tests::test_udp_sender_creation ... ok [INFO] [stdout] test mux::mpegts_muxer::tests::test_pat_generation ... ok [INFO] [stdout] test utils::hash::tests::test_hash_string ... ok [INFO] [stdout] test utils::pid_manager::tests::test_catv_standard_pids ... ok [INFO] [stdout] test utils::pid_manager::tests::test_pid_allocation ... ok [INFO] [stdout] test utils::pid_manager::tests::test_pid_validation ... ok [INFO] [stdout] test utils::pid_manager::tests::test_reserved_pids ... ok [INFO] [stdout] test mux::packet::tests::test_packet_parse ... ok [INFO] [stdout] test utils::ffmpeg::tests::test_version_comparison ... ok [INFO] [stdout] test utils::bitrate_calc::tests::test_recommended_bitrates ... ok [INFO] [stdout] test utils::time::tests::test_format_duration ... ok [INFO] [stdout] test utils::ffmpeg::tests::test_version_parsing ... ok [INFO] [stdout] test utils::pid_manager::tests::test_specific_pid_allocation ... ok [INFO] [stdout] test network::srt_receiver::tests::test_builder ... ok [INFO] [stdout] test utils::time::tests::test_mpegts_conversion ... ok [INFO] [stdout] test core::manager::tests::test_manager_creation ... ok [INFO] [stdout] test codec::audio::tests::test_ffmpeg_args_generation ... ok [INFO] [stdout] test utils::ffmpeg::tests::test_ffmpeg_installed ... ok [INFO] [stdout] test monitor::health_checker::tests::test_simple_health_check ... ok [INFO] [stdout] test utils::bitrate_calc::tests::test_bitrate_calculation ... ok [INFO] [stdout] test core::strategy::tests::test_video_compatibility ... FAILED [INFO] [stdout] test api::client::tests::test_api_client_creation ... ok [INFO] [stderr] error: test failed, to rerun pass `--lib` [INFO] [stdout] test monitor::alerting::tests::test_alert_deduplication ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- core::strategy::tests::test_video_compatibility stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'core::strategy::tests::test_video_compatibility' (2835) panicked at src/core/strategy.rs:325:9: [INFO] [stdout] not yet implemented [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x609831bdb918 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x609831bdb918 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x609831bdb918 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x609831bdb918 - <::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x609831bf355a - ::fmt [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x609831bf355a - core[8fb95b77d25ab6c8]::fmt::write [INFO] [stdout] 6: 0x609831be08e2 - std[10d71ac2c42b111e]::io::default_write_fmt::> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11 [INFO] [stdout] 7: 0x609831be08e2 - as std[10d71ac2c42b111e]::io::Write>::write_fmt [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13 [INFO] [stdout] 8: 0x609831bb93c6 - ::print [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x609831bb93c6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x609831bd3509 - std[10d71ac2c42b111e]::panicking::default_hook [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x6098317514ac - core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9 [INFO] [stdout] 12: 0x6098317514ac - test[213991da798b1c03]::test_main_inner::::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21 [INFO] [stdout] 13: 0x609831bd3782 - core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9 [INFO] [stdout] 14: 0x609831bd3782 - std[10d71ac2c42b111e]::panicking::panic_with_hook [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x609831bb94b4 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:691:13 [INFO] [stdout] 16: 0x609831bae459 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x609831bba35d - __rustc[3be9ba60078d4c86]::rust_begin_unwind [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x609831bf3d4c - core[8fb95b77d25ab6c8]::panicking::panic_fmt [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x609831bf3d12 - core[8fb95b77d25ab6c8]::panicking::panic [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:150:5 [INFO] [stdout] 20: 0x60983172f37a - catv_transcoder_client[7acaed13ca4f8391]::core::strategy::tests::create_test_config [INFO] [stdout] at /opt/rustwide/workdir/src/core/strategy.rs:325:9 [INFO] [stdout] 21: 0x60983172f391 - catv_transcoder_client[7acaed13ca4f8391]::core::strategy::tests::test_video_compatibility [INFO] [stdout] at /opt/rustwide/workdir/src/core/strategy.rs:288:22 [INFO] [stdout] 22: 0x60983172e087 - catv_transcoder_client[7acaed13ca4f8391]::core::strategy::tests::test_video_compatibility::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/core/strategy.rs:286:34 [INFO] [stdout] 23: 0x609831710f06 - >::call_once [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x60983174458b - core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x60983174458b - test[213991da798b1c03]::__rust_begin_short_backtrace::, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18 [INFO] [stdout] 26: 0x609831751e05 - test[213991da798b1c03]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74 [INFO] [stdout] 27: 0x609831751e05 - as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 28: 0x609831751e05 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40 [INFO] [stdout] 29: 0x609831751e05 - std[10d71ac2c42b111e]::panicking::catch_unwind::, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x609831751e05 - std[10d71ac2c42b111e]::panic::catch_unwind::, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x609831751e05 - test[213991da798b1c03]::run_test_in_process [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27 [INFO] [stdout] 32: 0x609831751e05 - test[213991da798b1c03]::run_test::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43 [INFO] [stdout] 33: 0x60983174b714 - test[213991da798b1c03]::run_test::{closure#1} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41 [INFO] [stdout] 34: 0x60983174b714 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x609831754e82 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13 [INFO] [stdout] 36: 0x609831754e82 - ::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 37: 0x609831754e82 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40 [INFO] [stdout] 38: 0x609831754e82 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x609831754e82 - std[10d71ac2c42b111e]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x609831754e82 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26 [INFO] [stdout] 41: 0x609831754e82 - ::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x609831bdad3f - + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9 [INFO] [stdout] 43: 0x609831bdad3f - ::new::thread_start [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 44: 0x722c2e42faa4 - [INFO] [stdout] 45: 0x722c2e4bca64 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- monitor::alerting::tests::test_alert_deduplication stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'monitor::alerting::tests::test_alert_deduplication' (2842) panicked at src/monitor/alerting.rs:140:9: [INFO] [stdout] assertion failed: recent.contains_key("ch1:LowFps") [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x609831bdb918 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x609831bdb918 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x609831bdb918 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x609831bdb918 - <::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x609831bf355a - ::fmt [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x609831bf355a - core[8fb95b77d25ab6c8]::fmt::write [INFO] [stdout] 6: 0x609831be08e2 - std[10d71ac2c42b111e]::io::default_write_fmt::> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11 [INFO] [stdout] 7: 0x609831be08e2 - as std[10d71ac2c42b111e]::io::Write>::write_fmt [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13 [INFO] [stdout] 8: 0x609831bb93c6 - ::print [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x609831bb93c6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x609831bd3509 - std[10d71ac2c42b111e]::panicking::default_hook [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x6098317514ac - core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9 [INFO] [stdout] 12: 0x6098317514ac - test[213991da798b1c03]::test_main_inner::::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21 [INFO] [stdout] 13: 0x609831bd3782 - core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9 [INFO] [stdout] 14: 0x609831bd3782 - std[10d71ac2c42b111e]::panicking::panic_with_hook [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x609831bb94b4 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:691:13 [INFO] [stdout] 16: 0x609831bae459 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x609831bba35d - __rustc[3be9ba60078d4c86]::rust_begin_unwind [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x609831bf3d4c - core[8fb95b77d25ab6c8]::panicking::panic_fmt [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x609831bf3d12 - core[8fb95b77d25ab6c8]::panicking::panic [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:150:5 [INFO] [stdout] 20: 0x60983170fe74 - catv_transcoder_client[7acaed13ca4f8391]::monitor::alerting::tests::test_alert_deduplication::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/monitor/alerting.rs:140:9 [INFO] [stdout] 21: 0x6098317036e2 - > as core[8fb95b77d25ab6c8]::future::future::Future>::poll [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/future/future.rs:133:9 [INFO] [stdout] 22: 0x60983170375d - >> as core[8fb95b77d25ab6c8]::future::future::Future>::poll [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/future/future.rs:133:9 [INFO] [stdout] 23: 0x6098316f9c4d - ::block_on::>>>::{closure#0}::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:753:70 [INFO] [stdout] 24: 0x6098316f9b4b - tokio[8719b323ca053615]::task::coop::with_budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/task/coop/mod.rs:167:5 [INFO] [stdout] 25: 0x6098316f9b4b - tokio[8719b323ca053615]::task::coop::budget::, ::block_on>>>::{closure#0}::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/task/coop/mod.rs:133:5 [INFO] [stdout] 26: 0x6098316f9b4b - ::block_on::>>>::{closure#0}::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:753:25 [INFO] [stdout] 27: 0x6098316efc40 - ::enter::, ::block_on>>>::{closure#0}::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:442:19 [INFO] [stdout] 28: 0x6098316f7cad - ::block_on::>>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:752:44 [INFO] [stdout] 29: 0x6098316f6fa4 - ::enter::<::block_on>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:840:68 [INFO] [stdout] 30: 0x6098316ef38b - >::set::<::enter<::block_on>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}, (alloc[a7ee25936407c584]::boxed::Box, core[8fb95b77d25ab6c8]::option::Option<()>)> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context/scoped.rs:40:9 [INFO] [stdout] 31: 0x609831731c69 - tokio[8719b323ca053615]::runtime::context::set_scheduler::<(alloc[a7ee25936407c584]::boxed::Box, core[8fb95b77d25ab6c8]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context.rs:176:38 [INFO] [stdout] 32: 0x6098316f0bc2 - >::try_with::, core[8fb95b77d25ab6c8]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[a7ee25936407c584]::boxed::Box, core[8fb95b77d25ab6c8]::option::Option<()>)> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/local.rs:462:12 [INFO] [stdout] 33: 0x6098316f074e - >::with::, core[8fb95b77d25ab6c8]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}>::{closure#0}, (alloc[a7ee25936407c584]::boxed::Box, core[8fb95b77d25ab6c8]::option::Option<()>)> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/local.rs:426:20 [INFO] [stdout] 34: 0x609831731a1d - tokio[8719b323ca053615]::runtime::context::set_scheduler::<(alloc[a7ee25936407c584]::boxed::Box, core[8fb95b77d25ab6c8]::option::Option<()>), ::enter<::block_on>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>>::{closure#0}> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context.rs:176:17 [INFO] [stdout] 35: 0x6098316f2fc0 - ::enter::<::block_on>>>::{closure#0}, core[8fb95b77d25ab6c8]::option::Option<()>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:840:27 [INFO] [stdout] 36: 0x6098316f32b6 - ::block_on::>>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:740:24 [INFO] [stdout] 37: 0x6098316f6ab0 - ::block_on::>>::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:200:33 [INFO] [stdout] 38: 0x6098316f3803 - tokio[8719b323ca053615]::runtime::context::runtime::enter_runtime::<::block_on>>::{closure#0}, ()> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context/runtime.rs:65:16 [INFO] [stdout] 39: 0x6098316ef771 - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:188:9 [INFO] [stdout] 40: 0x60983171c244 - ::block_on_inner::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/runtime.rs:368:52 [INFO] [stdout] 41: 0x60983171c40f - ::block_on::>> [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/runtime.rs:342:18 [INFO] [stdout] 42: 0x609831710450 - catv_transcoder_client[7acaed13ca4f8391]::monitor::alerting::tests::test_alert_deduplication [INFO] [stdout] at /opt/rustwide/workdir/src/monitor/alerting.rs:140:51 [INFO] [stdout] 43: 0x60983170f657 - catv_transcoder_client[7acaed13ca4f8391]::monitor::alerting::tests::test_alert_deduplication::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/monitor/alerting.rs:120:40 [INFO] [stdout] 44: 0x609831711806 - >::call_once [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 45: 0x60983174458b - core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 46: 0x60983174458b - test[213991da798b1c03]::__rust_begin_short_backtrace::, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18 [INFO] [stdout] 47: 0x609831751e05 - test[213991da798b1c03]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74 [INFO] [stdout] 48: 0x609831751e05 - as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 49: 0x609831751e05 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40 [INFO] [stdout] 50: 0x609831751e05 - std[10d71ac2c42b111e]::panicking::catch_unwind::, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19 [INFO] [stdout] 51: 0x609831751e05 - std[10d71ac2c42b111e]::panic::catch_unwind::, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14 [INFO] [stdout] 52: 0x609831751e05 - test[213991da798b1c03]::run_test_in_process [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27 [INFO] [stdout] 53: 0x609831751e05 - test[213991da798b1c03]::run_test::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43 [INFO] [stdout] 54: 0x60983174b714 - test[213991da798b1c03]::run_test::{closure#1} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41 [INFO] [stdout] 55: 0x60983174b714 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 56: 0x609831754e82 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13 [INFO] [stdout] 57: 0x609831754e82 - ::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 58: 0x609831754e82 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40 [INFO] [stdout] 59: 0x609831754e82 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19 [INFO] [stdout] 60: 0x609831754e82 - std[10d71ac2c42b111e]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14 [INFO] [stdout] 61: 0x609831754e82 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26 [INFO] [stdout] 62: 0x609831754e82 - ::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 63: 0x609831bdad3f - + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9 [INFO] [stdout] 64: 0x609831bdad3f - ::new::thread_start [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 65: 0x722c2e42faa4 - [INFO] [stdout] 66: 0x722c2e4bca64 - clone [INFO] [stdout] 67: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] core::strategy::tests::test_video_compatibility [INFO] [stdout] monitor::alerting::tests::test_alert_deduplication [INFO] [stdout] [INFO] [stdout] test result: FAILED. 50 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "20d2536ea7a68db23f0255072189ad55a9aeff18c018ba3d172300eaa25aa369", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "20d2536ea7a68db23f0255072189ad55a9aeff18c018ba3d172300eaa25aa369", kill_on_drop: false }` [INFO] [stdout] 20d2536ea7a68db23f0255072189ad55a9aeff18c018ba3d172300eaa25aa369