@epicgames-ps/lib-pixelstreamingfrontend-ue5.4
Version:
Frontend library for Unreal Engine 5.4 Pixel Streaming
41 lines (36 loc) • 1.87 kB
text/typescript
export class RTCUtils {
static isVideoTransciever(transceiver : RTCRtpTransceiver | undefined) : boolean {
return this.canTransceiverReceiveVideo(transceiver) || this.canTransceiverSendVideo(transceiver);
}
static canTransceiverReceiveVideo(transceiver : RTCRtpTransceiver | undefined) : boolean {
return !!transceiver &&
(transceiver.direction === 'sendrecv' || transceiver.direction === 'recvonly') &&
transceiver.receiver &&
transceiver.receiver.track &&
transceiver.receiver.track.kind === 'video';
}
static canTransceiverSendVideo(transceiver : RTCRtpTransceiver | undefined) : boolean {
return !!transceiver &&
(transceiver.direction === 'sendrecv' || transceiver.direction === 'sendonly') &&
transceiver.sender &&
transceiver.sender.track &&
transceiver.sender.track.kind === 'video';
}
static isAudioTransciever(transceiver : RTCRtpTransceiver | undefined) : boolean {
return this.canTransceiverReceiveAudio(transceiver) || this.canTransceiverSendAudio(transceiver);
}
static canTransceiverReceiveAudio(transceiver : RTCRtpTransceiver | undefined) : boolean {
return !!transceiver &&
(transceiver.direction === 'sendrecv' || transceiver.direction === 'recvonly') &&
transceiver.receiver &&
transceiver.receiver.track &&
transceiver.receiver.track.kind === 'audio';
}
static canTransceiverSendAudio(transceiver : RTCRtpTransceiver | undefined) : boolean {
return !!transceiver &&
(transceiver.direction === 'sendrecv' || transceiver.direction === 'sendonly') &&
transceiver.sender &&
transceiver.sender.track &&
transceiver.sender.track.kind === 'audio';
}
}