mirror of
https://github.com/legop3/MultiRoombaRover.git
synced 2026-09-15 17:12:59 -04:00
ahh!!
This commit is contained in:
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
+15
-14
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
@@ -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 (
|
||||
<div className="flex flex-col gap-0.5">
|
||||
|
||||
@@ -99,8 +99,6 @@ export function useVideoRequests(sourceList = []) {
|
||||
socket.emit('video:request', payload, (resp = {}) => {
|
||||
if (cancelled) return;
|
||||
if (!resp || resp.error || !resp.url || !resp.token) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn('video:request failed', { entry, resp });
|
||||
scheduleRetry(entry);
|
||||
setSources((prev) => ({
|
||||
...prev,
|
||||
@@ -110,8 +108,6 @@ export function useVideoRequests(sourceList = []) {
|
||||
}
|
||||
clearRetry(entry.key);
|
||||
setSources((prev) => ({ ...prev, [entry.key]: resp }));
|
||||
// eslint-disable-next-line no-console
|
||||
console.info('video:request ok', { entry, url: resp.url });
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -82,8 +82,7 @@ export class WhepPlayer {
|
||||
}
|
||||
|
||||
pc.onconnectionstatechange = () => {
|
||||
const state = pc.connectionState;
|
||||
this.notify(state);
|
||||
this.notify(pc.connectionState);
|
||||
};
|
||||
pc.oniceconnectionstatechange = () => {
|
||||
const state = pc.iceConnectionState;
|
||||
|
||||
Reference in New Issue
Block a user