infobip-rtc
Version:
Infobip RTC JavaScript SDK - Infobip WebRTC API Implementation
33 lines • 1.41 kB
JavaScript
import VideoType from "../../../util/VideoType";
export const BitrateConfig = {
[VideoType.CAMERA]: 2000000,
[VideoType.SCREENSHARE]: 2500000,
};
export function configureForSending(peerConnection, streamKind, bitrateBps, logger) {
if (!peerConnection) {
return;
}
const senders = peerConnection.getSenders();
senders.forEach((sender) => {
var _a, _b;
if (sender.track && sender.track.kind !== streamKind) {
return;
}
const parameters = sender.getParameters();
(_a = parameters.encodings) !== null && _a !== void 0 ? _a : (parameters.encodings = [{}]);
if (bitrateBps <= 0) {
return;
}
logger.debug(`Configuring ${(_b = sender === null || sender === void 0 ? void 0 : sender.track) === null || _b === void 0 ? void 0 : _b.id} bitrate for video streaming to ${bitrateBps / 1000} [Kbps]`);
if (parameters.encodings[0]) {
parameters.encodings[0].priority = "high";
parameters.encodings[0].networkPriority = "high";
}
parameters.encodings.forEach(encoding => {
encoding.maxBitrate = bitrateBps;
});
sender.setParameters(parameters)
.catch(err => logger.error(`Changing sender parameters failed: ${err === null || err === void 0 ? void 0 : err.message}`));
});
}
//# sourceMappingURL=BitrateUtil.js.map