mirror of https://github.com/jetkvm/kvm.git
Cleanup: PR Comments
This commit is contained in:
parent
6728c492a1
commit
1caf57ff00
|
|
@ -15,7 +15,7 @@ import { FocusTrap } from "focus-trap-react";
|
||||||
import { motion, AnimatePresence } from "framer-motion";
|
import { motion, AnimatePresence } from "framer-motion";
|
||||||
import useWebSocket from "react-use-websocket";
|
import useWebSocket from "react-use-websocket";
|
||||||
|
|
||||||
import { CLOUD_API, DEVICE_API } from "@/ui.config";
|
import { CLOUD_API, DEVICE_API, OPUS_STEREO_PARAMS } from "@/ui.config";
|
||||||
import api from "@/api";
|
import api from "@/api";
|
||||||
import { checkAuth, isInCloud, isOnDevice } from "@/main";
|
import { checkAuth, isInCloud, isOnDevice } from "@/main";
|
||||||
import { cx } from "@/cva.config";
|
import { cx } from "@/cva.config";
|
||||||
|
|
@ -191,19 +191,18 @@ export default function KvmIdRoute() {
|
||||||
console.warn("[SDP] Opus 48kHz stereo not found in answer - stereo may not work");
|
console.warn("[SDP] Opus 48kHz stereo not found in answer - stereo may not work");
|
||||||
} else {
|
} else {
|
||||||
const pt = opusMatch[1];
|
const pt = opusMatch[1];
|
||||||
const stereoParams = 'stereo=1;sprop-stereo=1;maxaveragebitrate=128000;usedtx=1;useinbandfec=1';
|
|
||||||
const fmtpRegex = new RegExp(`a=fmtp:${pt}\\s+(.+)`, 'i');
|
const fmtpRegex = new RegExp(`a=fmtp:${pt}\\s+(.+)`, 'i');
|
||||||
const fmtpMatch = remoteDescription.sdp.match(fmtpRegex);
|
const fmtpMatch = remoteDescription.sdp.match(fmtpRegex);
|
||||||
|
|
||||||
if (fmtpMatch && !fmtpMatch[1].includes('stereo=')) {
|
if (fmtpMatch && !fmtpMatch[1].includes('stereo=')) {
|
||||||
remoteDescription.sdp = remoteDescription.sdp.replace(
|
remoteDescription.sdp = remoteDescription.sdp.replace(
|
||||||
fmtpRegex,
|
fmtpRegex,
|
||||||
`a=fmtp:${pt} ${fmtpMatch[1]};${stereoParams}`
|
`a=fmtp:${pt} ${fmtpMatch[1]};${OPUS_STEREO_PARAMS}`
|
||||||
);
|
);
|
||||||
} else if (!fmtpMatch) {
|
} else if (!fmtpMatch) {
|
||||||
remoteDescription.sdp = remoteDescription.sdp.replace(
|
remoteDescription.sdp = remoteDescription.sdp.replace(
|
||||||
opusMatch[0],
|
opusMatch[0],
|
||||||
`${opusMatch[0]}\r\na=fmtp:${pt} ${stereoParams}`
|
`${opusMatch[0]}\r\na=fmtp:${pt} ${OPUS_STEREO_PARAMS}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -463,18 +462,17 @@ export default function KvmIdRoute() {
|
||||||
console.warn("[SDP] Opus 48kHz stereo not found in offer - stereo may not work");
|
console.warn("[SDP] Opus 48kHz stereo not found in offer - stereo may not work");
|
||||||
} else {
|
} else {
|
||||||
const pt = opusMatch[1];
|
const pt = opusMatch[1];
|
||||||
const stereoParams = 'stereo=1;sprop-stereo=1;maxaveragebitrate=128000;usedtx=1;useinbandfec=1';
|
|
||||||
const fmtpRegex = new RegExp(`a=fmtp:${pt}\\s+(.+)`, 'i');
|
const fmtpRegex = new RegExp(`a=fmtp:${pt}\\s+(.+)`, 'i');
|
||||||
const fmtpMatch = offer.sdp.match(fmtpRegex);
|
const fmtpMatch = offer.sdp.match(fmtpRegex);
|
||||||
|
|
||||||
if (fmtpMatch) {
|
if (fmtpMatch) {
|
||||||
// Modify existing fmtp line
|
// Modify existing fmtp line
|
||||||
if (!fmtpMatch[1].includes('stereo=')) {
|
if (!fmtpMatch[1].includes('stereo=')) {
|
||||||
offer.sdp = offer.sdp.replace(fmtpRegex, `a=fmtp:${pt} ${fmtpMatch[1]};${stereoParams}`);
|
offer.sdp = offer.sdp.replace(fmtpRegex, `a=fmtp:${pt} ${fmtpMatch[1]};${OPUS_STEREO_PARAMS}`);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Add new fmtp line after rtpmap
|
// Add new fmtp line after rtpmap
|
||||||
offer.sdp = offer.sdp.replace(opusMatch[0], `${opusMatch[0]}\r\na=fmtp:${pt} ${stereoParams}`);
|
offer.sdp = offer.sdp.replace(opusMatch[0], `${opusMatch[0]}\r\na=fmtp:${pt} ${OPUS_STEREO_PARAMS}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,3 +2,6 @@ export const CLOUD_API = import.meta.env.VITE_CLOUD_API;
|
||||||
|
|
||||||
// In device mode, an empty string uses the current hostname (the JetKVM device's IP) as the API endpoint
|
// In device mode, an empty string uses the current hostname (the JetKVM device's IP) as the API endpoint
|
||||||
export const DEVICE_API = "";
|
export const DEVICE_API = "";
|
||||||
|
|
||||||
|
// Opus codec parameters for stereo audio with error correction
|
||||||
|
export const OPUS_STEREO_PARAMS = 'stereo=1;sprop-stereo=1;maxaveragebitrate=128000;usedtx=1;useinbandfec=1';
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue