fix(client): unused 'decoder label under default features + box the PyroWave backend variant
ci / web (push) Successful in 56s
ci / docs-site (push) Successful in 1m7s
decky / build-publish (push) Successful in 17s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 9s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 8s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 8s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 8s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 8s
ci / bench (push) Successful in 6m20s
android / android (push) Successful in 14m39s
arch / build-publish (push) Successful in 12m29s
docker / deploy-docs (push) Successful in 22s
flatpak / build-publish (push) Successful in 6m17s
deb / build-publish (push) Successful in 11m58s
ci / rust (push) Successful in 18m3s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 14m21s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 13m58s
windows-msix / package (arm64, C:\Users\Public\ffmpeg-arm64, --no-default-features, aarch64-pc-windows-msvc, C:\t-a64) (push) Successful in 4m3s
windows-msix / package (x64, C:\Users\Public\ffmpeg, , x86_64-pc-windows-msvc, C:\t) (push) Successful in 3m54s
windows / build (aarch64-pc-windows-msvc) (push) Successful in 4m58s
apple / swift (push) Successful in 4m52s
apple / screenshots (push) Waiting to run
windows / build (x86_64-pc-windows-msvc) (push) Successful in 5m38s
ci / web (push) Successful in 56s
ci / docs-site (push) Successful in 1m7s
decky / build-publish (push) Successful in 17s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 9s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 8s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 8s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 8s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 8s
ci / bench (push) Successful in 6m20s
android / android (push) Successful in 14m39s
arch / build-publish (push) Successful in 12m29s
docker / deploy-docs (push) Successful in 22s
flatpak / build-publish (push) Successful in 6m17s
deb / build-publish (push) Successful in 11m58s
ci / rust (push) Successful in 18m3s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 14m21s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 13m58s
windows-msix / package (arm64, C:\Users\Public\ffmpeg-arm64, --no-default-features, aarch64-pc-windows-msvc, C:\t-a64) (push) Successful in 4m3s
windows-msix / package (x64, C:\Users\Public\ffmpeg, , x86_64-pc-windows-msvc, C:\t) (push) Successful in 3m54s
windows / build (aarch64-pc-windows-msvc) (push) Successful in 4m58s
apple / swift (push) Successful in 4m52s
apple / screenshots (push) Waiting to run
windows / build (x86_64-pc-windows-msvc) (push) Successful in 5m38s
ci.yml's -D warnings clippy (default features) flagged the labeled block whose only break lives behind the pyrowave cfg — restructured as cfg'd let-bindings, no label. Also boxed Backend::PyroWave (the decoder's pinned create-info hold + plane ring dwarfed the other variants — clippy::large_enum_variant under the feature). Both configs strict-clippy clean on .21; 26 tests green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -278,22 +278,23 @@ fn pump(
|
||||
welcome_codec = connector.codec,
|
||||
"negotiated video codec"
|
||||
);
|
||||
let built = 'decoder: {
|
||||
// A negotiated PyroWave session decodes on the presenter's device, no FFmpeg —
|
||||
// reachable only through the explicit preference above (resolve_codec never
|
||||
// auto-picks the bit), so failing loudly here is failing an opted-in experiment.
|
||||
#[cfg(all(target_os = "linux", feature = "pyrowave"))]
|
||||
if connector.codec == punktfunk_core::quic::CODEC_PYROWAVE {
|
||||
let built = if connector.codec == punktfunk_core::quic::CODEC_PYROWAVE {
|
||||
let mode = connector.mode();
|
||||
break 'decoder match params.vulkan.as_ref() {
|
||||
match params.vulkan.as_ref() {
|
||||
Some(vk) => Decoder::new_pyrowave(vk, mode.width, mode.height),
|
||||
None => Err(anyhow::anyhow!(
|
||||
"pyrowave session without a presenter device"
|
||||
)),
|
||||
};
|
||||
}
|
||||
} else {
|
||||
Decoder::new(codec_id, ¶ms.decoder, params.vulkan.as_ref())
|
||||
};
|
||||
#[cfg(not(all(target_os = "linux", feature = "pyrowave")))]
|
||||
let built = Decoder::new(codec_id, ¶ms.decoder, params.vulkan.as_ref());
|
||||
let mut decoder = match built {
|
||||
Ok(d) => d,
|
||||
Err(e) => {
|
||||
|
||||
@@ -323,8 +323,9 @@ enum Backend {
|
||||
D3d11va(crate::video_d3d11::D3d11vaDecoder),
|
||||
/// PyroWave (wired-LAN wavelet codec): pyrowave compute on the presenter's device,
|
||||
/// no FFmpeg involvement. No demotion rung — there is no other decoder for it.
|
||||
/// Boxed: the decoder (pinned create-info hold + plane ring) dwarfs the other variants.
|
||||
#[cfg(all(target_os = "linux", feature = "pyrowave"))]
|
||||
PyroWave(crate::video_pyrowave::PyroWaveDecoder),
|
||||
PyroWave(Box<crate::video_pyrowave::PyroWaveDecoder>),
|
||||
Software(SoftwareDecoder),
|
||||
}
|
||||
|
||||
@@ -573,9 +574,9 @@ impl Decoder {
|
||||
#[cfg(all(target_os = "linux", feature = "pyrowave"))]
|
||||
pub fn new_pyrowave(vk: &VulkanDecodeDevice, width: u32, height: u32) -> Result<Decoder> {
|
||||
Ok(Decoder {
|
||||
backend: Backend::PyroWave(crate::video_pyrowave::PyroWaveDecoder::new(
|
||||
backend: Backend::PyroWave(Box::new(crate::video_pyrowave::PyroWaveDecoder::new(
|
||||
vk, width, height,
|
||||
)?),
|
||||
)?)),
|
||||
codec_id: ffmpeg::codec::Id::HEVC,
|
||||
vaapi_fails: 0,
|
||||
want_keyframe: false,
|
||||
|
||||
Reference in New Issue
Block a user