diff --git a/dist/roverd b/dist/roverd index d2c875c2..5ad1ca6b 100755 Binary files a/dist/roverd and b/dist/roverd differ diff --git a/dist/servoverifier b/dist/servoverifier index 9e48d212..b9855e89 100755 Binary files a/dist/servoverifier and b/dist/servoverifier differ diff --git a/pi/asound.conf b/pi/asound.conf index 5017ecb9..364ffa94 100644 --- a/pi/asound.conf +++ b/pi/asound.conf @@ -1,25 +1,26 @@ # Use the Google Voice HAT soundcard as the primary device by name (card id is "sndrpigooglevoi") options snd_rpi_googlevoicehat_soundcard index=0 -# Simple defaults: direct playback/capture on the voice HAT +# Software playback volume (adjust with: amixer -c0 sset 'SoftMaster' 70%) +pcm.softvol { + type softvol + slave.pcm "hw:0,0" + control { + name "SoftMaster" + card 0 + } + min_dB -51.0 + max_dB 0.0 +} + +# Defaults: playback through softvol, capture raw on the HAT pcm.!default { type asym - playback.pcm "plughw:0,0" - capture.pcm "plughw:0,0" + playback.pcm "softvol" + capture.pcm "hw:0,0" } ctl.!default { type hw card 0 } - -# Stable capture device for ffmpeg/roverd: exposes the HAT at fixed format/rate. -pcm.rovermic { - type plug - slave { - pcm "hw:0,0" - format S32_LE - rate 48000 - channels 2 - } -} diff --git a/pi/roverd/config.go b/pi/roverd/config.go index 3d0be548..13fb48a0 100644 --- a/pi/roverd/config.go +++ b/pi/roverd/config.go @@ -256,7 +256,7 @@ func clampFloat(value, min, max float64) float64 { func validateAudioConfig(cfg *AudioConfig) { if cfg.CaptureEnabled && cfg.CaptureDevice == "" { - cfg.CaptureDevice = "rovermic" + cfg.CaptureDevice = "hw:0,0" } if cfg.SampleRate <= 0 { cfg.SampleRate = 48000 diff --git a/webui/src/components/VideoTile.jsx b/webui/src/components/VideoTile.jsx index e8d34047..b822767a 100644 --- a/webui/src/components/VideoTile.jsx +++ b/webui/src/components/VideoTile.jsx @@ -204,16 +204,6 @@ export default function VideoTile({ : detail ? `${status} (${detail})` : status; - // eslint-disable-next-line no-console - useEffect(() => { - if (!audioSessionInfo?.url && !sessionInfo?.url) return; - console.info('VideoTile sessions', { - video: sessionInfo, - audio: audioSessionInfo, - status, - audioStatus, - }); - }, [sessionInfo, audioSessionInfo, status, audioStatus]); return (