[INFO] cloning repository https://github.com/lizhiyong2000/vcp-media-server
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lizhiyong2000/vcp-media-server" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flizhiyong2000%2Fvcp-media-server", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flizhiyong2000%2Fvcp-media-server'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 538aacdf76b562b4bb38962ed2df438484fa5fed
[INFO] checking lizhiyong2000/vcp-media-server against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flizhiyong2000%2Fvcp-media-server" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/lizhiyong2000/vcp-media-server
[INFO] finished tweaking git repo https://github.com/lizhiyong2000/vcp-media-server
[INFO] tweaked toml for git repo https://github.com/lizhiyong2000/vcp-media-server written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/lizhiyong2000/vcp-media-server on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/lizhiyong2000/vcp-media-server 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" "+a5689b034ad287112f709693384a37f1377eb9cc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6e2db9836d58a5e1912f073de74475b76bb710f4f1ddd34769efee1b52f1b3d8
[INFO] running `Command { std: "docker" "start" "6e2db9836d58a5e1912f073de74475b76bb710f4f1ddd34769efee1b52f1b3d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6e2db9836d58a5e1912f073de74475b76bb710f4f1ddd34769efee1b52f1b3d8", 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" "6e2db9836d58a5e1912f073de74475b76bb710f4f1ddd34769efee1b52f1b3d8" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6e2db9836d58a5e1912f073de74475b76bb710f4f1ddd34769efee1b52f1b3d8", 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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6e2db9836d58a5e1912f073de74475b76bb710f4f1ddd34769efee1b52f1b3d8" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking typenum v1.20.1
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]     Checking memchr v2.8.2
[INFO] [stderr]     Checking smallvec v1.15.2
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling zerocopy v0.8.52
[INFO] [stderr]     Checking log v0.4.33
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling cc v1.2.65
[INFO] [stderr]    Compiling memoffset v0.7.1
[INFO] [stderr]     Checking ipnet v2.12.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]     Checking futures-sink v0.3.32
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking litemap v0.8.2
[INFO] [stderr]     Checking writeable v0.6.3
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling num-conv v0.2.2
[INFO] [stderr]     Checking futures-task v0.3.32
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]    Compiling time-core v0.1.9
[INFO] [stderr]     Checking base64ct v1.8.3
[INFO] [stderr]    Compiling time-macros v0.2.31
[INFO] [stderr]     Checking pem-rfc7468 v0.7.0
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]     Checking num_threads v0.1.7
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]     Checking http v1.4.2
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking time v0.3.52
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking ff v0.13.1
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]     Checking rusticata-macros v4.1.0
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking group v0.13.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rustls v0.23.41
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]     Checking crc-catalog v2.5.0
[INFO] [stderr]     Checking opaque-debug v0.3.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling bindgen v0.72.1
[INFO] [stderr]     Checking crc v3.4.0
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling oid-registry v0.7.1
[INFO] [stderr]    Compiling rustc-hash v2.1.3
[INFO] [stderr]     Checking data-encoding v2.11.0
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling zeroize_derive v1.5.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]     Checking zeroize v1.9.0
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking block-padding v0.3.3
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking der v0.7.10
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]     Checking rustls-pki-types v1.15.0
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking crypto-bigint v0.5.5
[INFO] [stderr]    Compiling asn1-rs-impl v0.2.0
[INFO] [stderr]    Compiling asn1-rs-derive v0.5.1
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking spki v0.7.3
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking pkcs8 v0.10.2
[INFO] [stderr]     Checking sec1 v0.7.3
[INFO] [stderr]     Checking asn1-rs v0.6.2
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]     Checking rustls-webpki v0.103.13
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking elliptic-curve v0.13.8
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]     Checking ghash v0.5.1
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking webrtc-util v0.10.0
[INFO] [stderr]     Checking rfc6979 v0.4.0
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]     Checking aes-gcm v0.10.3
[INFO] [stderr]     Checking ecdsa v0.16.9
[INFO] [stderr]     Checking arc-swap v1.9.2
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking der-parser v9.0.0
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking primeorder v0.13.6
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling substring v1.4.5
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking hyper v1.10.1
[INFO] [stderr]     Checking x509-parser v0.16.0
[INFO] [stderr]     Checking yasna v0.5.2
[INFO] [stderr]     Checking waitgroup v0.1.2
[INFO] [stderr]     Checking pem v3.0.6
[INFO] [stderr]     Checking rtp v0.12.0
[INFO] [stderr]     Checking rtcp v0.12.0
[INFO] [stderr]     Checking stun v0.7.0
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking hashbrown v0.17.1
[INFO] [stderr]    Compiling anyhow v1.0.103
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking webrtc-srtp v0.14.0
[INFO] [stderr]     Checking webrtc-mdns v0.8.0
[INFO] [stderr]     Checking rcgen v0.13.2
[INFO] [stderr]     Checking turn v0.9.0
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]     Checking x25519-dalek v2.0.1
[INFO] [stderr]     Checking webrtc-sctp v0.11.0
[INFO] [stderr]     Checking p384 v0.13.1
[INFO] [stderr]     Checking p256 v0.13.2
[INFO] [stderr]     Checking serde_json v1.0.150
[INFO] [stderr]     Checking uuid v1.23.4
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking ccm v0.5.0
[INFO] [stderr]     Checking webpki-roots v1.0.8
[INFO] [stderr]     Checking cbc v0.1.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]     Checking ryu v1.0.23
[INFO] [stderr]    Compiling ffmpeg-next v8.1.0
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking hyper-rustls v0.27.9
[INFO] [stderr]     Checking tungstenite v0.24.0
[INFO] [stderr]     Checking webrtc-dtls v0.11.0
[INFO] [stderr]     Checking webrtc-ice v0.12.0
[INFO] [stderr]     Checking webrtc-data v0.10.0
[INFO] [stderr]     Checking sdp v0.7.0
[INFO] [stderr]     Checking tower-http v0.6.11
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking interceptor v0.13.0
[INFO] [stderr]     Checking webrtc-media v0.9.0
[INFO] [stderr]     Checking smol_str v0.2.2
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking ioctl-rs v0.1.6
[INFO] [stderr]     Checking serial-core v0.4.0
[INFO] [stderr]     Checking termios v0.2.2
[INFO] [stderr]     Checking symlink v0.1.0
[INFO] [stderr]     Checking predicates-core v1.0.10
[INFO] [stderr]     Checking serial-unix v0.4.0
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking tracing-appender v0.2.5
[INFO] [stderr]     Checking tokio-tungstenite v0.24.0
[INFO] [stderr]     Checking float-cmp v0.10.0
[INFO] [stderr]     Checking difflib v0.4.0
[INFO] [stderr]     Checking termtree v0.5.1
[INFO] [stderr]    Compiling assert_cmd v2.2.2
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking normalize-line-endings v0.3.0
[INFO] [stderr]     Checking predicates v3.1.4
[INFO] [stderr]     Checking predicates-tree v1.0.13
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr]     Checking nix v0.25.1
[INFO] [stderr]    Compiling ffmpeg-sys-next v8.1.0
[INFO] [stderr]     Checking serial v0.4.0
[INFO] [stderr]     Checking filedescriptor v0.8.3
[INFO] [stderr]     Checking bstr v1.12.3
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]     Checking shell-words v1.1.1
[INFO] [stderr]     Checking webrtc v0.12.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking portable-pty v0.8.1
[INFO] [stderr]     Checking vcp-media-server v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `is_video_keyframe`
[INFO] [stdout]  --> src/core/dispatch.rs:8:44
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::frame_ring::{is_playable_video, is_video_keyframe, SnapMode};
[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: `last_playable_idr_seq`
[INFO] [stdout]  --> src/core/live_play.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::dispatch::{last_playable_idr_seq, DispatchError, DispatchReader};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OnceLock`
[INFO] [stdout]  --> src/core/metrics.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::{Arc, OnceLock};
[INFO] [stdout]   |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `HTTP_FLV` should have an upper camel case name
[INFO] [stdout]   --> src/core/protocol.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     HTTP_FLV,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `HttpFlv`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `HTTP_API` should have an upper camel case name
[INFO] [stdout]   --> src/core/protocol.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     HTTP_API,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `HttpApi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `HTTP_FLV` should have an upper camel case name
[INFO] [stdout]    --> src/core/mod.rs:173:5
[INFO] [stdout]     |
[INFO] [stdout] 173 |     HTTP_FLV,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `HttpFlv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/server/hls/m3u8.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::time::{Duration, SystemTime, UNIX_EPOCH};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MILLISECOND_CLOCK_RATE` and `VIDEO_RTP_CLOCK_RATE`
[INFO] [stdout]  --> src/server/hls/timing.rs:6:42
[INFO] [stdout]   |
[INFO] [stdout] 6 |     media_timestamp_delta_ms_with_clock, MILLISECOND_CLOCK_RATE, VIDEO_RTP_CLOCK_RATE,
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bytes::Bytes`
[INFO] [stdout]  --> src/server/hls/ts_parser.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use bytes::Bytes;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `is_keyframe_annex_b`
[INFO] [stdout]   --> src/server/hls/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     is_keyframe_annex_b, prepend_annex_b_config_if_needed, CodecType, DispatchPolicy,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `annex_b_with_config`
[INFO] [stdout]   --> src/server/hls/mod.rs:26:29
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::server::webrtc::{annex_b_with_config, request_publisher_keyframe};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncReadExt`
[INFO] [stdout]  --> src/server/http_flv/puller.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio::io::AsyncReadExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/server/http_flv/puller.rs:8:35
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{debug, error, info, warn};
[INFO] [stdout]   |                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/server/http_flv/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufMut`, `BytesMut`, and `Bytes`
[INFO] [stdout]  --> src/server/http_flv/mod.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use bytes::{BufMut, Bytes, BytesMut};
[INFO] [stdout]   |             ^^^^^^  ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parking_lot::RwLock`
[INFO] [stdout]  --> src/server/http_flv/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use parking_lot::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, and `warn`
[INFO] [stdout]  --> src/server/http_flv/mod.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tracing::{debug, error, info, warn};
[INFO] [stdout]   |               ^^^^^  ^^^^^  ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufMut`
[INFO] [stdout]  --> src/server/rtmp/chunk.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use bytes::{Buf, BufMut, BytesMut};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `info`, `trace`, and `warn`
[INFO] [stdout]  --> src/server/rtmp/chunk.rs:5:29
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::{debug, error, info, trace, warn};
[INFO] [stdout]   |                             ^^^^  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bytes::BytesMut`
[INFO] [stdout]  --> src/server/rtmp/pusher.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use bytes::BytesMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/server/rtmp/pusher.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChunkAssembler`, `ChunkHeader`, and `RtmpMessage`
[INFO] [stdout]   --> src/server/rtmp/pusher.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::chunk::{self, ChunkAssembler, ChunkHeader, RtmpMessage};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RtmpUrl`
[INFO] [stdout]   --> src/server/rtmp/pusher.rs:14:37
[INFO] [stdout]    |
[INFO] [stdout] 14 | use super::puller::{parse_rtmp_url, RtmpUrl};
[INFO] [stdout]    |                                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bytes::Bytes`
[INFO] [stdout]  --> src/server/rtmp/session.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bytes::Bytes;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Level`
[INFO] [stdout]  --> src/server/rtmp/session.rs:5:28
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::{debug, info, Level};
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CodecType`, `StreamProtocol`, and `StreamSourceMode`
[INFO] [stdout]  --> src/server/rtmp/session.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::core::{CodecType, MediaFrame, StreamProtocol, StreamSourceMode};
[INFO] [stdout]   |                   ^^^^^^^^^              ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::server::webrtc::h264_util::is_keyframe_annex_b`
[INFO] [stdout]  --> src/server/rtmp/session.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::server::webrtc::h264_util::is_keyframe_annex_b;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/server/rtmp/mod.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bytes::BytesMut`
[INFO] [stdout]  --> src/server/rtsp/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use bytes::BytesMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/server/rtsp/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TcpStream`
[INFO] [stdout]  --> src/server/rtsp/mod.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio::net::{TcpListener, TcpStream};
[INFO] [stdout]   |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::Duration`
[INFO] [stdout]  --> src/server/rtsp/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MediaFrame`
[INFO] [stdout]   --> src/server/rtsp/mod.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::core::{CodecType, MediaFrame, StreamManager, StreamProtocol, StreamSourceMode, Track};
[INFO] [stdout]    |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, and `warn`
[INFO] [stdout]  --> src/server/rtsp/client_session.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{debug, error, info, warn};
[INFO] [stdout]   |               ^^^^^  ^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CodecType` and `MediaFrame`
[INFO] [stdout]   --> src/server/rtsp/client_session.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::core::{CodecType, MediaFrame, StreamManager, Track};
[INFO] [stdout]    |                   ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/server/rtsp/play_egress.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::net::TcpStream`
[INFO] [stdout]  --> src/server/rtsp/pusher.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::net::TcpStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MediaFrame`
[INFO] [stdout]   --> src/server/rtsp/pusher.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 |     CodecType, MediaFrame, MediaTransport, PusherId, StreamManager, StreamProtocol, StreamPusher,
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Receiver`, `Sender`, and `channel`
[INFO] [stdout]  --> src/server/rtsp/server_session.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio::sync::mpsc::{channel, Receiver, Sender};
[INFO] [stdout]   |                         ^^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RtspRequest`
[INFO] [stdout]   --> src/server/rtsp/server_session.rs:17:25
[INFO] [stdout]    |
[INFO] [stdout] 17 |     InterleavedChannel, RtspRequest, RtspResponse, RtspServer, RtspSessionState, TransportMode,
[INFO] [stdout]    |                         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::hevc_sprop_from_nals`
[INFO] [stdout]   --> src/server/rtsp/server_session.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::core::hevc_sprop_from_nals;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SocketReader` and `spawn_write_loop`
[INFO] [stdout]   --> src/server/rtsp/server_session.rs:25:39
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::server::socket_transport::{spawn_write_loop, ChannelSocketWriter, SocketReader};
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `channel`
[INFO] [stdout]  --> src/server/socket_transport.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tokio::sync::mpsc::{channel, Receiver, Sender};
[INFO] [stdout]   |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/server/socket_transport.rs:7:29
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tracing::{debug, error, info};
[INFO] [stdout]   |                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/server/transport/adapters.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/server/transport/adapters.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `StreamManager` and `TransportStatus`
[INFO] [stdout]  --> src/server/transport/adapters.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 |     MediaTransport, StreamManager, StreamProtocol, StreamPuller, TransportConfig, TransportStatus,
[INFO] [stdout]   |                     ^^^^^^^^^^^^^                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `webrtc::track::track_local::TrackLocalWriter`
[INFO] [stdout]  --> src/server/webrtc/outbound_h264.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use webrtc::track::track_local::TrackLocalWriter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `contains_idr_nalu`
[INFO] [stdout]   --> src/server/webrtc/player.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     contains_idr_nalu, contains_sps_or_pps_nalu, describe_annex_b, duration_from_rtp_timestamps,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `is_video_keyframe`
[INFO] [stdout]  --> src/core/dispatch.rs:8:44
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::frame_ring::{is_playable_video, is_video_keyframe, SnapMode};
[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: `last_playable_idr_seq`
[INFO] [stdout]  --> src/core/live_play.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::dispatch::{last_playable_idr_seq, DispatchError, DispatchReader};
[INFO] [stdout]   |                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OnceLock`
[INFO] [stdout]  --> src/core/metrics.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::{Arc, OnceLock};
[INFO] [stdout]   |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `HTTP_FLV` should have an upper camel case name
[INFO] [stdout]   --> src/core/protocol.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     HTTP_FLV,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `HttpFlv`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `HTTP_API` should have an upper camel case name
[INFO] [stdout]   --> src/core/protocol.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     HTTP_API,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `HttpApi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]    --> src/core/tester.rs:647:13
[INFO] [stdout]     |
[INFO] [stdout] 647 |         use std::sync::Arc;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `HTTP_FLV` should have an upper camel case name
[INFO] [stdout]    --> src/core/mod.rs:173:5
[INFO] [stdout]     |
[INFO] [stdout] 173 |     HTTP_FLV,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `HttpFlv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/server/hls/m3u8.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::time::{Duration, SystemTime, UNIX_EPOCH};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bytes::Bytes`
[INFO] [stdout]  --> src/server/hls/ts_parser.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use bytes::Bytes;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `is_keyframe_annex_b`
[INFO] [stdout]   --> src/server/hls/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     is_keyframe_annex_b, prepend_annex_b_config_if_needed, CodecType, DispatchPolicy,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `annex_b_with_config`
[INFO] [stdout]   --> src/server/hls/mod.rs:26:29
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::server::webrtc::{annex_b_with_config, request_publisher_keyframe};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncReadExt`
[INFO] [stdout]  --> src/server/http_flv/puller.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio::io::AsyncReadExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/server/http_flv/puller.rs:8:35
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{debug, error, info, warn};
[INFO] [stdout]   |                                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/server/http_flv/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufMut`, `BytesMut`, and `Bytes`
[INFO] [stdout]  --> src/server/http_flv/mod.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use bytes::{BufMut, Bytes, BytesMut};
[INFO] [stdout]   |             ^^^^^^  ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parking_lot::RwLock`
[INFO] [stdout]  --> src/server/http_flv/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use parking_lot::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, and `warn`
[INFO] [stdout]  --> src/server/http_flv/mod.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tracing::{debug, error, info, warn};
[INFO] [stdout]   |               ^^^^^  ^^^^^  ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufMut`
[INFO] [stdout]  --> src/server/rtmp/chunk.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use bytes::{Buf, BufMut, BytesMut};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `info`, `trace`, and `warn`
[INFO] [stdout]  --> src/server/rtmp/chunk.rs:5:29
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::{debug, error, info, trace, warn};
[INFO] [stdout]   |                             ^^^^  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bytes::BytesMut`
[INFO] [stdout]  --> src/server/rtmp/pusher.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use bytes::BytesMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/server/rtmp/pusher.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChunkAssembler`, `ChunkHeader`, and `RtmpMessage`
[INFO] [stdout]   --> src/server/rtmp/pusher.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::chunk::{self, ChunkAssembler, ChunkHeader, RtmpMessage};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RtmpUrl`
[INFO] [stdout]   --> src/server/rtmp/pusher.rs:14:37
[INFO] [stdout]    |
[INFO] [stdout] 14 | use super::puller::{parse_rtmp_url, RtmpUrl};
[INFO] [stdout]    |                                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bytes::Bytes`
[INFO] [stdout]  --> src/server/rtmp/session.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bytes::Bytes;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Level`
[INFO] [stdout]  --> src/server/rtmp/session.rs:5:28
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::{debug, info, Level};
[INFO] [stdout]   |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CodecType`, `StreamProtocol`, and `StreamSourceMode`
[INFO] [stdout]  --> src/server/rtmp/session.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::core::{CodecType, MediaFrame, StreamProtocol, StreamSourceMode};
[INFO] [stdout]   |                   ^^^^^^^^^              ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::server::webrtc::h264_util::is_keyframe_annex_b`
[INFO] [stdout]  --> src/server/rtmp/session.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::server::webrtc::h264_util::is_keyframe_annex_b;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/server/rtmp/mod.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bytes::BytesMut`
[INFO] [stdout]  --> src/server/rtsp/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use bytes::BytesMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/server/rtsp/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TcpStream`
[INFO] [stdout]  --> src/server/rtsp/mod.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio::net::{TcpListener, TcpStream};
[INFO] [stdout]   |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::Duration`
[INFO] [stdout]  --> src/server/rtsp/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MediaFrame`
[INFO] [stdout]   --> src/server/rtsp/mod.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::core::{CodecType, MediaFrame, StreamManager, StreamProtocol, StreamSourceMode, Track};
[INFO] [stdout]    |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, and `warn`
[INFO] [stdout]  --> src/server/rtsp/client_session.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{debug, error, info, warn};
[INFO] [stdout]   |               ^^^^^  ^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CodecType` and `MediaFrame`
[INFO] [stdout]   --> src/server/rtsp/client_session.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::core::{CodecType, MediaFrame, StreamManager, Track};
[INFO] [stdout]    |                   ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::net::TcpStream`
[INFO] [stdout]  --> src/server/rtsp/pusher.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::net::TcpStream;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MediaFrame`
[INFO] [stdout]   --> src/server/rtsp/pusher.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 |     CodecType, MediaFrame, MediaTransport, PusherId, StreamManager, StreamProtocol, StreamPusher,
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Receiver`, `Sender`, and `channel`
[INFO] [stdout]  --> src/server/rtsp/server_session.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio::sync::mpsc::{channel, Receiver, Sender};
[INFO] [stdout]   |                         ^^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RtspRequest`
[INFO] [stdout]   --> src/server/rtsp/server_session.rs:17:25
[INFO] [stdout]    |
[INFO] [stdout] 17 |     InterleavedChannel, RtspRequest, RtspResponse, RtspServer, RtspSessionState, TransportMode,
[INFO] [stdout]    |                         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::hevc_sprop_from_nals`
[INFO] [stdout]   --> src/server/rtsp/server_session.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::core::hevc_sprop_from_nals;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SocketReader` and `spawn_write_loop`
[INFO] [stdout]   --> src/server/rtsp/server_session.rs:25:39
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::server::socket_transport::{spawn_write_loop, ChannelSocketWriter, SocketReader};
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `channel`
[INFO] [stdout]  --> src/server/socket_transport.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tokio::sync::mpsc::{channel, Receiver, Sender};
[INFO] [stdout]   |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/server/socket_transport.rs:7:29
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tracing::{debug, error, info};
[INFO] [stdout]   |                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/server/transport/adapters.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/server/transport/adapters.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `StreamManager` and `TransportStatus`
[INFO] [stdout]  --> src/server/transport/adapters.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 |     MediaTransport, StreamManager, StreamProtocol, StreamPuller, TransportConfig, TransportStatus,
[INFO] [stdout]   |                     ^^^^^^^^^^^^^                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `webrtc::track::track_local::TrackLocalWriter`
[INFO] [stdout]  --> src/server/webrtc/outbound_h264.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use webrtc::track::track_local::TrackLocalWriter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `contains_idr_nalu`
[INFO] [stdout]   --> src/server/webrtc/player.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     contains_idr_nalu, contains_sps_or_pps_nalu, describe_annex_b, duration_from_rtp_timestamps,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/http_flv/puller.rs:517:9
[INFO] [stdout]     |
[INFO] [stdout] 517 |     let mut pps_sent = false;
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/http_flv/puller.rs:521:9
[INFO] [stdout]     |
[INFO] [stdout] 521 |     let mut prev_tag_size: u32 = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/http_flv/puller.rs:517:9
[INFO] [stdout]     |
[INFO] [stdout] 517 |     let mut pps_sent = false;
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/http_flv/puller.rs:521:9
[INFO] [stdout]     |
[INFO] [stdout] 521 |     let mut prev_tag_size: u32 = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/server/rtmp/pusher.rs:127:17
[INFO] [stdout]     |
[INFO] [stdout] 126 |                 Err(crate::core::dispatch::DispatchError::Closed) => break,
[INFO] [stdout]     |                 ------------------------------------------------- matches all the relevant values
[INFO] [stdout] 127 |                 Err(e) => {
[INFO] [stdout]     |                 ^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtmp/mod.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let mut reader = SocketReader::new(reader);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtmp/mod.rs:833:21
[INFO] [stdout]     |
[INFO] [stdout] 833 |                 let mut result_values = vec![
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/client_session.rs:446:17
[INFO] [stdout]     |
[INFO] [stdout] 446 |             let mut response_buffer = String::new();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/server/rtmp/pusher.rs:127:17
[INFO] [stdout]     |
[INFO] [stdout] 126 |                 Err(crate::core::dispatch::DispatchError::Closed) => break,
[INFO] [stdout]     |                 ------------------------------------------------- matches all the relevant values
[INFO] [stdout] 127 |                 Err(e) => {
[INFO] [stdout]     |                 ^^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/server/rtsp/puller.rs:441:9
[INFO] [stdout]     |
[INFO] [stdout] 438 | /         loop {
[INFO] [stdout] 439 | |             tokio::time::sleep(Duration::from_secs(30)).await;
[INFO] [stdout] 440 | |         }
[INFO] [stdout]     | |_________- any code following this expression is unreachable
[INFO] [stdout] 441 |           info!("[RTSP Puller] [Keepalive] Keepalive loop ended");
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `$crate::event` which comes from the expansion of the macro `info` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtmp/mod.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let mut reader = SocketReader::new(reader);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/server/socket_transport.rs:65:21
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 let mut final_result = result[..pos + delimiter.len()].to_vec();
[INFO] [stdout]    |                     ----^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtmp/mod.rs:833:21
[INFO] [stdout]     |
[INFO] [stdout] 833 |                 let mut result_values = vec![
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/client_session.rs:446:17
[INFO] [stdout]     |
[INFO] [stdout] 446 |             let mut response_buffer = String::new();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/server/rtsp/puller.rs:441:9
[INFO] [stdout]     |
[INFO] [stdout] 438 | /         loop {
[INFO] [stdout] 439 | |             tokio::time::sleep(Duration::from_secs(30)).await;
[INFO] [stdout] 440 | |         }
[INFO] [stdout]     | |_________- any code following this expression is unreachable
[INFO] [stdout] 441 |           info!("[RTSP Puller] [Keepalive] Keepalive loop ended");
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `$crate::event` which comes from the expansion of the macro `info` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/server/socket_transport.rs:65:21
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 let mut final_result = result[..pos + delimiter.len()].to_vec();
[INFO] [stdout]    |                     ----^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MediaTransport`
[INFO] [stdout]  --> src/server/transport/adapters.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     MediaTransport, StreamManager, StreamProtocol, StreamPuller, TransportConfig, TransportStatus,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MediaTransport`
[INFO] [stdout]  --> src/server/transport/adapters.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     MediaTransport, StreamManager, StreamProtocol, StreamPuller, TransportConfig, TransportStatus,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/metrics.rs:383:13
[INFO] [stdout]     |
[INFO] [stdout] 383 |             mut hls,
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/metrics.rs:383:13
[INFO] [stdout]     |
[INFO] [stdout] 383 |             mut hls,
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tracks`
[INFO] [stdout]   --> src/core/tester.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 |             let tracks = vec![
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tracks`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tracks`
[INFO] [stdout]    --> src/core/tester.rs:171:13
[INFO] [stdout]     |
[INFO] [stdout] 171 |         let tracks = vec![Track {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tracks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tracks`
[INFO] [stdout]   --> src/core/tester.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 |             let tracks = vec![
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tracks`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tracks`
[INFO] [stdout]    --> src/core/tester.rs:171:13
[INFO] [stdout]     |
[INFO] [stdout] 171 |         let tracks = vec![Track {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tracks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stream`
[INFO] [stdout]    --> src/core/tester.rs:217:13
[INFO] [stdout]     |
[INFO] [stdout] 217 |         let stream = manager.create_stream(
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tracks`
[INFO] [stdout]    --> src/core/tester.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let tracks = vec![Track {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tracks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tracks`
[INFO] [stdout]    --> src/core/tester.rs:255:13
[INFO] [stdout]     |
[INFO] [stdout] 255 |         let tracks = vec![Track {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tracks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tracks`
[INFO] [stdout]    --> src/core/tester.rs:279:13
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let tracks = vec![Track {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tracks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tracks`
[INFO] [stdout]    --> src/core/tester.rs:308:13
[INFO] [stdout]     |
[INFO] [stdout] 308 |         let tracks = vec![Track {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tracks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/core/tester.rs:404:13
[INFO] [stdout]     |
[INFO] [stdout] 404 |         let buf = vec![
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stream`
[INFO] [stdout]    --> src/core/tester.rs:718:13
[INFO] [stdout]     |
[INFO] [stdout] 718 |         let stream = manager.create_stream(
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tracks`
[INFO] [stdout]    --> src/core/tester.rs:736:13
[INFO] [stdout]     |
[INFO] [stdout] 736 |         let tracks = vec![Track {
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tracks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_segments`
[INFO] [stdout]    --> src/server/hls/m3u8.rs:199:41
[INFO] [stdout]     |
[INFO] [stdout] 199 |     pub fn slot_filename(sequence: u64, max_segments: usize) -> String {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_segments`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `playlist_body` is never read
[INFO] [stdout]    --> src/server/hls/puller.rs:314:9
[INFO] [stdout]     |
[INFO] [stdout] 314 |         playlist_body = body.clone();
[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: `max_segments`
[INFO] [stdout]    --> src/server/hls/m3u8.rs:199:41
[INFO] [stdout]     |
[INFO] [stdout] 199 |     pub fn slot_filename(sequence: u64, max_segments: usize) -> String {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_segments`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `playlist_body` is never read
[INFO] [stdout]    --> src/server/hls/puller.rs:314:9
[INFO] [stdout]     |
[INFO] [stdout] 314 |         playlist_body = body.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/server/http_flv/puller.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut best_bandwidth = u64::MAX;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `best_bandwidth`
[INFO] [stdout]   --> src/server/http_flv/puller.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut best_bandwidth = u64::MAX;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_bandwidth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_bandwidth` is assigned to, but never used
[INFO] [stdout]   --> src/server/http_flv/puller.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let mut current_bandwidth = 0u64;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_current_bandwidth` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_bandwidth` is never read
[INFO] [stdout]   --> src/server/http_flv/puller.rs:40:25
[INFO] [stdout]    |
[INFO] [stdout] 40 |                         current_bandwidth = bw_str.parse().unwrap_or(0);
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_audio`
[INFO] [stdout]    --> src/server/http_flv/puller.rs:310:9
[INFO] [stdout]     |
[INFO] [stdout] 310 |     let has_audio = es_map.contains_key(&all_audio_pid.unwrap_or(0xFFFF));
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_audio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pps_found` is assigned to, but never used
[INFO] [stdout]    --> src/server/http_flv/puller.rs:329:13
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let mut pps_found = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_pps_found` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pps_bytes`
[INFO] [stdout]    --> src/server/http_flv/puller.rs:377:25
[INFO] [stdout]     |
[INFO] [stdout] 377 |                     let pps_bytes = nal_unit[4..].to_vec();
[INFO] [stdout]     |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pps_bytes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pps_found` is never read
[INFO] [stdout]    --> src/server/http_flv/puller.rs:368:21
[INFO] [stdout]     |
[INFO] [stdout] 368 |                     pps_found = true;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 379 |                     pps_found = true;
[INFO] [stdout]     |                     ---------------- `pps_found` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pps_found` is never read
[INFO] [stdout]    --> src/server/http_flv/puller.rs:379:21
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     pps_found = true;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `sps_sent` is assigned to, but never used
[INFO] [stdout]    --> src/server/http_flv/puller.rs:516:9
[INFO] [stdout]     |
[INFO] [stdout] 516 |     let mut sps_sent = false;
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_sps_sent` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pps_sent`
[INFO] [stdout]    --> src/server/http_flv/puller.rs:517:9
[INFO] [stdout]     |
[INFO] [stdout] 517 |     let mut pps_sent = false;
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pps_sent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_tag_size`
[INFO] [stdout]    --> src/server/http_flv/puller.rs:521:9
[INFO] [stdout]     |
[INFO] [stdout] 521 |     let mut prev_tag_size: u32 = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_tag_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_tag_offset` is assigned to, but never used
[INFO] [stdout]    --> src/server/http_flv/puller.rs:522:9
[INFO] [stdout]     |
[INFO] [stdout] 522 |     let mut current_tag_offset = 0usize;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_current_tag_offset` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sps_sent` is never read
[INFO] [stdout]    --> src/server/http_flv/puller.rs:606:45
[INFO] [stdout]     |
[INFO] [stdout] 606 | ...                   sps_sent = true;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 661 | ...                       sps_sent = true;
[INFO] [stdout]     |                           --------------- `sps_sent` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sps_sent` is never read
[INFO] [stdout]    --> src/server/http_flv/puller.rs:661:49
[INFO] [stdout]     |
[INFO] [stdout] 661 | ...                   sps_sent = true;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_tag_offset` is never read
[INFO] [stdout]    --> src/server/http_flv/puller.rs:557:13
[INFO] [stdout]     |
[INFO] [stdout] 557 |             current_tag_offset = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_video`
[INFO] [stdout]    --> src/server/http_flv/mod.rs:150:43
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn generate_metadata_tag(stream_id: &str, has_video: bool, has_audio: bool) -> Vec<u8> {
[INFO] [stdout]     |                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_video`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_audio`
[INFO] [stdout]    --> src/server/http_flv/mod.rs:150:60
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn generate_metadata_tag(stream_id: &str, has_video: bool, has_audio: bool) -> Vec<u8> {
[INFO] [stdout]     |                                                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_audio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `server_stream_id` is never read
[INFO] [stdout]    --> src/server/rtmp/puller.rs:114:41
[INFO] [stdout]     |
[INFO] [stdout] 114 |           let mut server_stream_id: u32 = 1;
[INFO] [stdout]     |                                           ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 140 | /         server_stream_id = wait_for_create_stream(
[INFO] [stdout] 141 | |             &mut read_half,
[INFO] [stdout] 142 | |             &mut buf,
[INFO] [stdout] 143 | |             &mut chunk_states,
[INFO] [stdout] ...   |
[INFO] [stdout] 148 | |         .await? as u32;
[INFO] [stdout]     | |______________________- `server_stream_id` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `server_stream_id` is never read
[INFO] [stdout]    --> src/server/rtmp/pusher.rs:478:41
[INFO] [stdout]     |
[INFO] [stdout] 478 |         let mut server_stream_id: u32 = 1;
[INFO] [stdout]     |                                         ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 492 |         server_stream_id = wait_for_create_stream(&mut conn, tx_id).await? as u32;
[INFO] [stdout]     |         ------------------------------------------------------------------------- `server_stream_id` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_buf_len`
[INFO] [stdout]    --> src/server/rtmp/mod.rs:312:17
[INFO] [stdout]     |
[INFO] [stdout] 312 |             let initial_buf_len = buf.len();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_buf_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `offset` is never read
[INFO] [stdout]     --> src/server/rtmp/mod.rs:1522:21
[INFO] [stdout]      |
[INFO] [stdout] 1522 |                     offset = offset.saturating_add(1);
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `offset` is never read
[INFO] [stdout]     --> src/server/rtmp/mod.rs:1526:21
[INFO] [stdout]      |
[INFO] [stdout] 1526 |                     offset = offset.saturating_add(1);
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response_buffer`
[INFO] [stdout]    --> src/server/rtsp/client_session.rs:446:17
[INFO] [stdout]     |
[INFO] [stdout] 446 |             let mut response_buffer = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]    --> src/server/rtsp/client_session.rs:453:21
[INFO] [stdout]     |
[INFO] [stdout] 453 |                 let request = RtspRequest::new("GET_PARAMETER", &remote_url)
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/common.rs:844:17
[INFO] [stdout]     |
[INFO] [stdout] 844 |             let mut rtp = Self::build_rtp_packet(96, seq, timestamp, ssrc, false, sps);
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/common.rs:850:17
[INFO] [stdout]     |
[INFO] [stdout] 850 |             let mut rtp = Self::build_rtp_packet(96, seq + 1, timestamp, ssrc, false, pps);
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remote_url`
[INFO] [stdout]    --> src/server/rtsp/puller.rs:436:29
[INFO] [stdout]     |
[INFO] [stdout] 436 |     async fn send_keepalive(remote_url: String) {
[INFO] [stdout]     |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remote_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/server/rtsp/sdp_builder.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let mut session = SessionDescription {
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sps_cache`
[INFO] [stdout]    --> src/server/rtsp/server_session.rs:994:13
[INFO] [stdout]     |
[INFO] [stdout] 994 |         let sps_cache = Arc::clone(&self.sps_cache);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sps_cache`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pps_cache`
[INFO] [stdout]    --> src/server/rtsp/server_session.rs:995:13
[INFO] [stdout]     |
[INFO] [stdout] 995 |         let pps_cache = Arc::clone(&self.pps_cache);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pps_cache`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:489:13
[INFO] [stdout]     |
[INFO] [stdout] 489 |         let mut response = RtspResponse::new(200, "OK").header("CSeq", cseq).header(
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:497:13
[INFO] [stdout]     |
[INFO] [stdout] 497 |         let mut response = RtspResponse::new(200, "OK")
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:520:13
[INFO] [stdout]     |
[INFO] [stdout] 520 |         let mut response = RtspResponse::new(200, "OK")
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:542:13
[INFO] [stdout]     |
[INFO] [stdout] 542 |         let mut response = RtspResponse::new(200, "OK")
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:563:13
[INFO] [stdout]     |
[INFO] [stdout] 563 |         let mut response = RtspResponse::new(200, "OK").header("CSeq", cseq);
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:568:13
[INFO] [stdout]     |
[INFO] [stdout] 568 |         let mut response = RtspResponse::new(200, "OK").header("CSeq", cseq);
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:573:13
[INFO] [stdout]     |
[INFO] [stdout] 573 |         let mut response = RtspResponse::new(200, "OK").header("CSeq", cseq);
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:578:13
[INFO] [stdout]     |
[INFO] [stdout] 578 |         let mut response = RtspResponse::new(200, "OK")
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:585:13
[INFO] [stdout]     |
[INFO] [stdout] 585 |         let mut response = RtspResponse::new(status_code, reason).header("CSeq", cseq);
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/server/http_flv/puller.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut best_bandwidth = u64::MAX;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `best_bandwidth`
[INFO] [stdout]   --> src/server/http_flv/puller.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut best_bandwidth = u64::MAX;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best_bandwidth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_bandwidth` is assigned to, but never used
[INFO] [stdout]   --> src/server/http_flv/puller.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let mut current_bandwidth = 0u64;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_current_bandwidth` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_bandwidth` is never read
[INFO] [stdout]   --> src/server/http_flv/puller.rs:40:25
[INFO] [stdout]    |
[INFO] [stdout] 40 |                         current_bandwidth = bw_str.parse().unwrap_or(0);
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_audio`
[INFO] [stdout]    --> src/server/http_flv/puller.rs:310:9
[INFO] [stdout]     |
[INFO] [stdout] 310 |     let has_audio = es_map.contains_key(&all_audio_pid.unwrap_or(0xFFFF));
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_audio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pps_found` is assigned to, but never used
[INFO] [stdout]    --> src/server/http_flv/puller.rs:329:13
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let mut pps_found = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_pps_found` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pps_bytes`
[INFO] [stdout]    --> src/server/http_flv/puller.rs:377:25
[INFO] [stdout]     |
[INFO] [stdout] 377 |                     let pps_bytes = nal_unit[4..].to_vec();
[INFO] [stdout]     |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pps_bytes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pps_found` is never read
[INFO] [stdout]    --> src/server/http_flv/puller.rs:368:21
[INFO] [stdout]     |
[INFO] [stdout] 368 |                     pps_found = true;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 379 |                     pps_found = true;
[INFO] [stdout]     |                     ---------------- `pps_found` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `pps_found` is never read
[INFO] [stdout]    --> src/server/http_flv/puller.rs:379:21
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     pps_found = true;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `sps_sent` is assigned to, but never used
[INFO] [stdout]    --> src/server/http_flv/puller.rs:516:9
[INFO] [stdout]     |
[INFO] [stdout] 516 |     let mut sps_sent = false;
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_sps_sent` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pps_sent`
[INFO] [stdout]    --> src/server/http_flv/puller.rs:517:9
[INFO] [stdout]     |
[INFO] [stdout] 517 |     let mut pps_sent = false;
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pps_sent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_tag_size`
[INFO] [stdout]    --> src/server/http_flv/puller.rs:521:9
[INFO] [stdout]     |
[INFO] [stdout] 521 |     let mut prev_tag_size: u32 = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_tag_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_tag_offset` is assigned to, but never used
[INFO] [stdout]    --> src/server/http_flv/puller.rs:522:9
[INFO] [stdout]     |
[INFO] [stdout] 522 |     let mut current_tag_offset = 0usize;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_current_tag_offset` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sps_sent` is never read
[INFO] [stdout]    --> src/server/http_flv/puller.rs:606:45
[INFO] [stdout]     |
[INFO] [stdout] 606 | ...                   sps_sent = true;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 661 | ...                       sps_sent = true;
[INFO] [stdout]     |                           --------------- `sps_sent` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sps_sent` is never read
[INFO] [stdout]    --> src/server/http_flv/puller.rs:661:49
[INFO] [stdout]     |
[INFO] [stdout] 661 | ...                   sps_sent = true;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_tag_offset` is never read
[INFO] [stdout]    --> src/server/http_flv/puller.rs:557:13
[INFO] [stdout]     |
[INFO] [stdout] 557 |             current_tag_offset = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_video`
[INFO] [stdout]    --> src/server/http_flv/mod.rs:150:43
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn generate_metadata_tag(stream_id: &str, has_video: bool, has_audio: bool) -> Vec<u8> {
[INFO] [stdout]     |                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_video`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_audio`
[INFO] [stdout]    --> src/server/http_flv/mod.rs:150:60
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn generate_metadata_tag(stream_id: &str, has_video: bool, has_audio: bool) -> Vec<u8> {
[INFO] [stdout]     |                                                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_audio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `server_stream_id` is never read
[INFO] [stdout]    --> src/server/rtmp/puller.rs:114:41
[INFO] [stdout]     |
[INFO] [stdout] 114 |           let mut server_stream_id: u32 = 1;
[INFO] [stdout]     |                                           ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 140 | /         server_stream_id = wait_for_create_stream(
[INFO] [stdout] 141 | |             &mut read_half,
[INFO] [stdout] 142 | |             &mut buf,
[INFO] [stdout] 143 | |             &mut chunk_states,
[INFO] [stdout] ...   |
[INFO] [stdout] 148 | |         .await? as u32;
[INFO] [stdout]     | |______________________- `server_stream_id` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stream_manager` is never read
[INFO] [stdout]   --> src/process/transcode/mod.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct TranscodeManager {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 67 |     sessions: Arc<RwLock<HashMap<String, ActiveTranscodeSession>>>,
[INFO] [stdout] 68 |     stream_manager: Arc<StreamManager>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TranscodeManager` has a derived impl for the trait `Clone`, 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: methods `segment_wall_secs` and `output_dir` are never used
[INFO] [stdout]    --> src/server/hls/mod.rs:199:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl HlsSession {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 199 |     fn segment_wall_secs(&self) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 553 |     pub fn output_dir(&self) -> &Path {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `download_segment` is never used
[INFO] [stdout]    --> src/server/hls/puller.rs:811:10
[INFO] [stdout]     |
[INFO] [stdout] 811 | async fn download_segment(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_ts_segment_hls` is never used
[INFO] [stdout]     --> src/server/hls/puller.rs:1186:10
[INFO] [stdout]      |
[INFO] [stdout] 1186 | async fn process_ts_segment_hls(
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TS_PACKET_SIZE` is never used
[INFO] [stdout]     --> src/server/hls/puller.rs:1231:7
[INFO] [stdout]      |
[INFO] [stdout] 1231 | const TS_PACKET_SIZE: usize = 188;
[INFO] [stdout]      |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_h264_au_for_ts` is never used
[INFO] [stdout]    --> src/server/hls/ts_muxer.rs:277:4
[INFO] [stdout]     |
[INFO] [stdout] 277 | fn prepare_h264_au_for_ts(data: &[u8]) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `starts_with_aud` is never used
[INFO] [stdout]    --> src/server/hls/ts_muxer.rs:290:4
[INFO] [stdout]     |
[INFO] [stdout] 290 | fn starts_with_aud(data: &[u8]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_paused` is never used
[INFO] [stdout]   --> src/server/rtmp/pusher.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl RtmpPusher {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 75 |     fn is_paused(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `build_setup_udp_response` is never used
[INFO] [stdout]    --> src/server/rtsp/mod.rs:527:8
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl RtspServer {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 527 |     fn build_setup_udp_response(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stream_manager` is never read
[INFO] [stdout]   --> src/server/rtsp/client_session.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct RtspClientSession {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     stream_manager: Arc<StreamManager>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rtcp_socket` and `server_rtcp_addr` are never read
[INFO] [stdout]   --> src/server/rtsp/client_session.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct TrackUdpTransport {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] 29 |     rtp_socket: Arc<tokio::net::UdpSocket>,
[INFO] [stdout] 30 |     rtcp_socket: Arc<tokio::net::UdpSocket>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 31 |     server_rtp_addr: SocketAddr,
[INFO] [stdout] 32 |     server_rtcp_addr: SocketAddr,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `vps_cache` is never read
[INFO] [stdout]   --> src/server/rtsp/pusher.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct RtspPusher {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     vps_cache: Arc<parking_lot::RwLock<Option<Vec<u8>>>>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_paused` is never used
[INFO] [stdout]   --> src/server/rtsp/pusher.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl RtspPusher {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn is_paused(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sdp_generated` is never read
[INFO] [stdout]   --> src/server/rtsp/server_session.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct RtspServerSession {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 43 |     sdp_generated: Arc<parking_lot::RwLock<bool>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rtcp_socket` and `client_rtcp_addr` are never read
[INFO] [stdout]   --> src/server/rtsp/server_session.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct UdpTrackTransport {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] 48 |     rtp_socket: Arc<tokio::net::UdpSocket>,
[INFO] [stdout] 49 |     rtcp_socket: Arc<tokio::net::UdpSocket>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 50 |     client_rtp_addr: SocketAddr,
[INFO] [stdout] 51 |     client_rtcp_addr: SocketAddr,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UdpTrackTransport` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `send_rtp_over_udp_track`, `extract_h264_sps_pps_from_payload`, and `is_h264_keyframe` are never used
[INFO] [stdout]    --> src/server/rtsp/server_session.rs:256:14
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl RtspServerSession {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 256 |     async fn send_rtp_over_udp_track(&self, data: &[u8], track_id: u8) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn extract_h264_sps_pps_from_payload(payload: &[u8]) -> (Option<Vec<u8>>, Option<Vec<u8>>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 697 |     fn is_h264_keyframe(payload: &[u8]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_rtp_stale_in_gop` is never used
[INFO] [stdout]   --> src/server/webrtc/h264_util.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn is_rtp_stale_in_gop(curr: u64, prev: u64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `h264_payload_type_from_sdp` is never used
[INFO] [stdout]   --> src/server/webrtc/sdp_h264.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn h264_payload_type_from_sdp(sdp: &str) -> Option<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_video_media_description` is never used
[INFO] [stdout]   --> src/server/webrtc/sdp_h264.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn find_video_media_description(sdp: &SessionDescription) -> Option<&MediaDescription> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `h265_payload_type_from_sdp` is never used
[INFO] [stdout]   --> src/server/webrtc/sdp_h265.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn h265_payload_type_from_sdp(sdp: &str) -> Option<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_video_media_description` is never used
[INFO] [stdout]   --> src/server/webrtc/sdp_h265.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn find_video_media_description(sdp: &SessionDescription) -> Option<&MediaDescription> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Lagged` is never constructed
[INFO] [stdout]    --> src/server/webrtc/player.rs:785:5
[INFO] [stdout]     |
[INFO] [stdout] 783 | enum RecvCoalesced {
[INFO] [stdout]     |      ------------- variant in this enum
[INFO] [stdout] 784 |     Frame(MediaFrame, u64),
[INFO] [stdout] 785 |     Lagged(u64),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/server/rtmp/mod.rs:269:32
[INFO] [stdout]     |
[INFO] [stdout] 269 |                     return Err(e.into());
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 269 -                     return Err(e.into());
[INFO] [stdout] 269 +                     return Err(e);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 269 -                     return Err(e.into());
[INFO] [stdout] 269 +                     return Err(<anyhow::Error as Into<_>>::into(e));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `server_stream_id` is never read
[INFO] [stdout]    --> src/server/rtmp/pusher.rs:478:41
[INFO] [stdout]     |
[INFO] [stdout] 478 |         let mut server_stream_id: u32 = 1;
[INFO] [stdout]     |                                         ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 492 |         server_stream_id = wait_for_create_stream(&mut conn, tx_id).await? as u32;
[INFO] [stdout]     |         ------------------------------------------------------------------------- `server_stream_id` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server/rtmp/pusher.rs:189:25
[INFO] [stdout]     |
[INFO] [stdout] 189 | /                         Self::send_rtmp_message(
[INFO] [stdout] 190 | |                             &mut writer,
[INFO] [stdout] 191 | |                             0x08,
[INFO] [stdout] 192 | |                             msg_stream_id,
[INFO] [stdout] ...   |
[INFO] [stdout] 198 | |                         .await;
[INFO] [stdout]     | |______________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 189 |                         let _unused = Self::send_rtmp_message(
[INFO] [stdout]     |                         +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_buf_len`
[INFO] [stdout]    --> src/server/rtmp/mod.rs:312:17
[INFO] [stdout]     |
[INFO] [stdout] 312 |             let initial_buf_len = buf.len();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_buf_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `offset` is never read
[INFO] [stdout]     --> src/server/rtmp/mod.rs:1522:21
[INFO] [stdout]      |
[INFO] [stdout] 1522 |                     offset = offset.saturating_add(1);
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `offset` is never read
[INFO] [stdout]     --> src/server/rtmp/mod.rs:1526:21
[INFO] [stdout]      |
[INFO] [stdout] 1526 |                     offset = offset.saturating_add(1);
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response_buffer`
[INFO] [stdout]    --> src/server/rtsp/client_session.rs:446:17
[INFO] [stdout]     |
[INFO] [stdout] 446 |             let mut response_buffer = String::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]    --> src/server/rtsp/client_session.rs:453:21
[INFO] [stdout]     |
[INFO] [stdout] 453 |                 let request = RtspRequest::new("GET_PARAMETER", &remote_url)
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/common.rs:844:17
[INFO] [stdout]     |
[INFO] [stdout] 844 |             let mut rtp = Self::build_rtp_packet(96, seq, timestamp, ssrc, false, sps);
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/common.rs:850:17
[INFO] [stdout]     |
[INFO] [stdout] 850 |             let mut rtp = Self::build_rtp_packet(96, seq + 1, timestamp, ssrc, false, pps);
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remote_url`
[INFO] [stdout]    --> src/server/rtsp/puller.rs:436:29
[INFO] [stdout]     |
[INFO] [stdout] 436 |     async fn send_keepalive(remote_url: String) {
[INFO] [stdout]     |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remote_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/server/rtsp/sdp_builder.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let mut session = SessionDescription {
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `vcp-media-server` (lib) due to 1 previous error; 126 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `sps_cache`
[INFO] [stdout]    --> src/server/rtsp/server_session.rs:994:13
[INFO] [stdout]     |
[INFO] [stdout] 994 |         let sps_cache = Arc::clone(&self.sps_cache);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sps_cache`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pps_cache`
[INFO] [stdout]    --> src/server/rtsp/server_session.rs:995:13
[INFO] [stdout]     |
[INFO] [stdout] 995 |         let pps_cache = Arc::clone(&self.pps_cache);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pps_cache`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:489:13
[INFO] [stdout]     |
[INFO] [stdout] 489 |         let mut response = RtspResponse::new(200, "OK").header("CSeq", cseq).header(
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:497:13
[INFO] [stdout]     |
[INFO] [stdout] 497 |         let mut response = RtspResponse::new(200, "OK")
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:520:13
[INFO] [stdout]     |
[INFO] [stdout] 520 |         let mut response = RtspResponse::new(200, "OK")
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:542:13
[INFO] [stdout]     |
[INFO] [stdout] 542 |         let mut response = RtspResponse::new(200, "OK")
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:563:13
[INFO] [stdout]     |
[INFO] [stdout] 563 |         let mut response = RtspResponse::new(200, "OK").header("CSeq", cseq);
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:568:13
[INFO] [stdout]     |
[INFO] [stdout] 568 |         let mut response = RtspResponse::new(200, "OK").header("CSeq", cseq);
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:573:13
[INFO] [stdout]     |
[INFO] [stdout] 573 |         let mut response = RtspResponse::new(200, "OK").header("CSeq", cseq);
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:578:13
[INFO] [stdout]     |
[INFO] [stdout] 578 |         let mut response = RtspResponse::new(200, "OK")
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/rtsp/mod.rs:585:13
[INFO] [stdout]     |
[INFO] [stdout] 585 |         let mut response = RtspResponse::new(status_code, reason).header("CSeq", cseq);
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stream_manager` is never read
[INFO] [stdout]   --> src/process/transcode/mod.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct TranscodeManager {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 67 |     sessions: Arc<RwLock<HashMap<String, ActiveTranscodeSession>>>,
[INFO] [stdout] 68 |     stream_manager: Arc<StreamManager>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TranscodeManager` has a derived impl for the trait `Clone`, 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: methods `segment_wall_secs` and `output_dir` are never used
[INFO] [stdout]    --> src/server/hls/mod.rs:199:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl HlsSession {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 199 |     fn segment_wall_secs(&self) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 553 |     pub fn output_dir(&self) -> &Path {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `download_segment` is never used
[INFO] [stdout]    --> src/server/hls/puller.rs:811:10
[INFO] [stdout]     |
[INFO] [stdout] 811 | async fn download_segment(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_ts_segment_hls` is never used
[INFO] [stdout]     --> src/server/hls/puller.rs:1186:10
[INFO] [stdout]      |
[INFO] [stdout] 1186 | async fn process_ts_segment_hls(
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TS_PACKET_SIZE` is never used
[INFO] [stdout]     --> src/server/hls/puller.rs:1231:7
[INFO] [stdout]      |
[INFO] [stdout] 1231 | const TS_PACKET_SIZE: usize = 188;
[INFO] [stdout]      |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_h264_au_for_ts` is never used
[INFO] [stdout]    --> src/server/hls/ts_muxer.rs:277:4
[INFO] [stdout]     |
[INFO] [stdout] 277 | fn prepare_h264_au_for_ts(data: &[u8]) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `starts_with_aud` is never used
[INFO] [stdout]    --> src/server/hls/ts_muxer.rs:290:4
[INFO] [stdout]     |
[INFO] [stdout] 290 | fn starts_with_aud(data: &[u8]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_paused` is never used
[INFO] [stdout]   --> src/server/rtmp/pusher.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl RtmpPusher {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 75 |     fn is_paused(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `build_setup_udp_response` is never used
[INFO] [stdout]    --> src/server/rtsp/mod.rs:527:8
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl RtspServer {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 527 |     fn build_setup_udp_response(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stream_manager` is never read
[INFO] [stdout]   --> src/server/rtsp/client_session.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct RtspClientSession {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     stream_manager: Arc<StreamManager>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rtcp_socket` and `server_rtcp_addr` are never read
[INFO] [stdout]   --> src/server/rtsp/client_session.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct TrackUdpTransport {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] 29 |     rtp_socket: Arc<tokio::net::UdpSocket>,
[INFO] [stdout] 30 |     rtcp_socket: Arc<tokio::net::UdpSocket>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 31 |     server_rtp_addr: SocketAddr,
[INFO] [stdout] 32 |     server_rtcp_addr: SocketAddr,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `vps_cache` is never read
[INFO] [stdout]   --> src/server/rtsp/pusher.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct RtspPusher {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     vps_cache: Arc<parking_lot::RwLock<Option<Vec<u8>>>>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_paused` is never used
[INFO] [stdout]   --> src/server/rtsp/pusher.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl RtspPusher {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn is_paused(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sdp_generated` is never read
[INFO] [stdout]   --> src/server/rtsp/server_session.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct RtspServerSession {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 43 |     sdp_generated: Arc<parking_lot::RwLock<bool>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rtcp_socket` and `client_rtcp_addr` are never read
[INFO] [stdout]   --> src/server/rtsp/server_session.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct UdpTrackTransport {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] 48 |     rtp_socket: Arc<tokio::net::UdpSocket>,
[INFO] [stdout] 49 |     rtcp_socket: Arc<tokio::net::UdpSocket>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 50 |     client_rtp_addr: SocketAddr,
[INFO] [stdout] 51 |     client_rtcp_addr: SocketAddr,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UdpTrackTransport` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `send_rtp_over_udp_track`, `extract_h264_sps_pps_from_payload`, and `is_h264_keyframe` are never used
[INFO] [stdout]    --> src/server/rtsp/server_session.rs:256:14
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl RtspServerSession {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 256 |     async fn send_rtp_over_udp_track(&self, data: &[u8], track_id: u8) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn extract_h264_sps_pps_from_payload(payload: &[u8]) -> (Option<Vec<u8>>, Option<Vec<u8>>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 697 |     fn is_h264_keyframe(payload: &[u8]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_rtp_stale_in_gop` is never used
[INFO] [stdout]   --> src/server/webrtc/h264_util.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn is_rtp_stale_in_gop(curr: u64, prev: u64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `h264_payload_type_from_sdp` is never used
[INFO] [stdout]   --> src/server/webrtc/sdp_h264.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn h264_payload_type_from_sdp(sdp: &str) -> Option<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_video_media_description` is never used
[INFO] [stdout]   --> src/server/webrtc/sdp_h264.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn find_video_media_description(sdp: &SessionDescription) -> Option<&MediaDescription> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_video_media_description` is never used
[INFO] [stdout]   --> src/server/webrtc/sdp_h265.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn find_video_media_description(sdp: &SessionDescription) -> Option<&MediaDescription> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Lagged` is never constructed
[INFO] [stdout]    --> src/server/webrtc/player.rs:785:5
[INFO] [stdout]     |
[INFO] [stdout] 783 | enum RecvCoalesced {
[INFO] [stdout]     |      ------------- variant in this enum
[INFO] [stdout] 784 |     Frame(MediaFrame, u64),
[INFO] [stdout] 785 |     Lagged(u64),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `anyhow::Error`
[INFO] [stdout]    --> src/server/rtmp/mod.rs:269:32
[INFO] [stdout]     |
[INFO] [stdout] 269 |                     return Err(e.into());
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 269 -                     return Err(e.into());
[INFO] [stdout] 269 +                     return Err(e);
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 269 -                     return Err(e.into());
[INFO] [stdout] 269 +                     return Err(<anyhow::Error as Into<_>>::into(e));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server/rtmp/pusher.rs:189:25
[INFO] [stdout]     |
[INFO] [stdout] 189 | /                         Self::send_rtmp_message(
[INFO] [stdout] 190 | |                             &mut writer,
[INFO] [stdout] 191 | |                             0x08,
[INFO] [stdout] 192 | |                             msg_stream_id,
[INFO] [stdout] ...   |
[INFO] [stdout] 198 | |                         .await;
[INFO] [stdout]     | |______________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 189 |                         let _unused = Self::send_rtmp_message(
[INFO] [stdout]     |                         +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `vcp-media-server` (lib test) due to 1 previous error; 132 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "6e2db9836d58a5e1912f073de74475b76bb710f4f1ddd34769efee1b52f1b3d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6e2db9836d58a5e1912f073de74475b76bb710f4f1ddd34769efee1b52f1b3d8", kill_on_drop: false }`
[INFO] [stdout] 6e2db9836d58a5e1912f073de74475b76bb710f4f1ddd34769efee1b52f1b3d8
