chore: consolidate parallel-session WIP (HOLD — do not push)
Local snapshot of intermingled in-flight work, committed to unblock the encode
refactor (a clean ffmpeg_win.rs for the vbv-dedup follow-on). These hunks span
the same files and can't be cleanly split here; the commit bundles three
distinct workstreams that each belong in their own PR:
- logging rework (~43 files: level re-tiering, structured fields, `?e`,
hot-path flood latches)
- conflicting-host detection (detect.rs + detect/{linux,windows}.rs + wiring
in main.rs/mgmt.rs/Cargo.toml/docs/packaging)
- standby-sink DWM-stall attribution (windows/display_events.rs + capture/
vdisplay wiring)
NOT verified as a combination. NOT to be pushed until the refactor is done and
these are re-verified and reorganized into their proper per-workstream PRs.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -60,7 +60,7 @@ impl AudioPlayer {
|
||||
.spawn(move || {
|
||||
if let Err(e) = render_thread(pcm_rx, recycle_tx, stop_t, ready_tx, channels as u8)
|
||||
{
|
||||
tracing::warn!(error = format!("{e:#}"), "audio playback thread ended");
|
||||
tracing::warn!(error = %format!("{e:#}"), "audio playback thread ended");
|
||||
}
|
||||
})
|
||||
.context("spawn audio thread")?;
|
||||
@@ -232,7 +232,7 @@ impl MicStreamer {
|
||||
.name("punktfunk-mic".into())
|
||||
.spawn(move || {
|
||||
if let Err(e) = mic_thread(&connector, stop_t) {
|
||||
tracing::warn!(error = format!("{e:#}"), "mic uplink thread ended");
|
||||
tracing::warn!(error = %format!("{e:#}"), "mic uplink thread ended");
|
||||
}
|
||||
})
|
||||
.context("spawn mic thread")?;
|
||||
|
||||
@@ -1493,7 +1493,7 @@ impl Worker {
|
||||
Err(e) => {
|
||||
tracing::warn!(pad = slot.index, low, high, error = %e, "rumble: SDL set_rumble failed")
|
||||
}
|
||||
Ok(()) => tracing::debug!(pad = slot.index, low, high, "rumble: rendered"),
|
||||
Ok(()) => tracing::trace!(pad = slot.index, low, high, "rumble: rendered"),
|
||||
}
|
||||
slot.rumble.last = (low, high);
|
||||
slot.rumble.last_at = Some(Instant::now());
|
||||
|
||||
@@ -222,7 +222,7 @@ fn pump(
|
||||
preferred = punktfunk_core::quic::CODEC_PYROWAVE;
|
||||
} else {
|
||||
tracing::warn!(
|
||||
"PUNKTFUNK_PREFER_PYROWAVE=1 but the presenter device failed the pyrowave probe — keeping the normal codec preference"
|
||||
"PUNKTFUNK_PREFER_PYROWAVE=1 but the presenter device failed the pyrowave probe — keeping the normal codec preference"
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -791,7 +791,7 @@ fn spawn_audio(
|
||||
buf.extend_from_slice(&pcm[..n]);
|
||||
player.push(buf);
|
||||
}
|
||||
Err(e) => tracing::debug!(error = %e, "opus decode"),
|
||||
Err(e) => tracing::debug!(error = %e, "opus decode failed"),
|
||||
}
|
||||
}
|
||||
Err(PunktfunkError::NoFrame) => {}
|
||||
|
||||
@@ -510,7 +510,7 @@ impl Decoder {
|
||||
if choice == "vaapi" {
|
||||
return Err(e.context("PUNKTFUNK_DECODER=vaapi but VAAPI failed"));
|
||||
}
|
||||
tracing::info!(reason = %e, "VAAPI unavailable — software decode");
|
||||
tracing::warn!(error = %e, "VAAPI unavailable — falling back to software decode");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -695,8 +695,8 @@ impl Decoder {
|
||||
self.backend = Backend::Software(SoftwareDecoder::new(self.codec_id)?);
|
||||
self.vaapi_fails = 0;
|
||||
} else {
|
||||
tracing::warn!(error = %e,
|
||||
"{which} decode error — requesting keyframe, keeping hardware decode");
|
||||
tracing::debug!(backend = which, error = %e,
|
||||
"decode error — requesting keyframe, keeping hardware decode");
|
||||
}
|
||||
Ok(None)
|
||||
}
|
||||
@@ -1653,7 +1653,7 @@ unsafe extern "C" fn pick_vulkan(
|
||||
&mut fr,
|
||||
);
|
||||
if r < 0 || fr.is_null() {
|
||||
tracing::warn!("avcodec_get_hw_frames_parameters(VULKAN) failed ({r})");
|
||||
tracing::warn!(code = r, "avcodec_get_hw_frames_parameters(VULKAN) failed");
|
||||
return ffi::AVPixelFormat::AV_PIX_FMT_NONE;
|
||||
}
|
||||
let fc = (*fr).data as *mut ffi::AVHWFramesContext;
|
||||
@@ -1665,7 +1665,7 @@ unsafe extern "C" fn pick_vulkan(
|
||||
as _;
|
||||
let r = ffi::av_hwframe_ctx_init(fr);
|
||||
if r < 0 {
|
||||
tracing::warn!("av_hwframe_ctx_init(VULKAN) failed ({r})");
|
||||
tracing::warn!(code = r, "av_hwframe_ctx_init(VULKAN) failed");
|
||||
let mut fr = fr;
|
||||
ffi::av_buffer_unref(&mut fr);
|
||||
return ffi::AVPixelFormat::AV_PIX_FMT_NONE;
|
||||
|
||||
@@ -537,7 +537,8 @@ impl PyroWaveDecoder {
|
||||
let fence = device.create_fence(&vk::FenceCreateInfo::default(), None)?;
|
||||
|
||||
tracing::info!(
|
||||
mode = %format!("{width}x{height}"),
|
||||
width,
|
||||
height,
|
||||
"PyroWave decoder open on the presenter's device (compute iDWT, BT.709 limited)"
|
||||
);
|
||||
Ok(PyroWaveDecoder {
|
||||
@@ -602,8 +603,8 @@ impl PyroWaveDecoder {
|
||||
});
|
||||
self.next = 0;
|
||||
tracing::info!(
|
||||
from = %format!("{}x{}", self.width, self.height),
|
||||
to = %format!("{width}x{height}"),
|
||||
from = %format_args!("{}x{}", self.width, self.height),
|
||||
to = %format_args!("{width}x{height}"),
|
||||
"PyroWave decoder rebuilt for mid-stream resize"
|
||||
);
|
||||
self.width = width;
|
||||
|
||||
Reference in New Issue
Block a user