UNPKG

rtp.js

Version:

RTP stack for Node.js and browser written in TypeScript

75 lines (74 loc) 3.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ExtendedJitterReportsPacket_1 = require("../../../packets/RTCP/ExtendedJitterReportsPacket"); const RtcpPacket_1 = require("../../../packets/RTCP/RtcpPacket"); const helpers_1 = require("../../../utils/helpers"); const extendedJitterReportsPacketDump = { byteLength: 12, padding: 0, packetType: RtcpPacket_1.RtcpPacketType.IJ, count: 2, jitters: [0x11223344, 0x55667788], }; const array = new Uint8Array([ 0x82, 0xc3, 0x00, 0x02, // Type: 195 (IJ), Count: 2, Length: 2 0x11, 0x22, 0x33, 0x44, // Jitter: 0x11223344 0x55, 0x66, 0x77, 0x88, // Jitter: 0x55667788 ]); const view = new DataView(array.buffer, array.byteOffset, array.byteLength); describe('parse RTCP Extended Jitter Reports packet', () => { test('buffer view is RTCP', () => { expect((0, RtcpPacket_1.isRtcp)(view)).toBe(true); }); test('packet processing succeeds', () => { const packet = new ExtendedJitterReportsPacket_1.ExtendedJitterReportsPacket(view); expect(packet.needsSerialization()).toBe(false); expect(packet.dump()).toEqual(extendedJitterReportsPacketDump); expect((0, helpers_1.areDataViewsEqual)(packet.getView(), view)).toBe(true); packet.serialize(); expect(packet.needsSerialization()).toBe(false); expect(packet.dump()).toEqual(extendedJitterReportsPacketDump); expect((0, helpers_1.areDataViewsEqual)(packet.getView(), view)).toBe(true); const clonedPacket = packet.clone(); expect(clonedPacket.needsSerialization()).toBe(false); expect(clonedPacket.dump()).toEqual(extendedJitterReportsPacketDump); expect((0, helpers_1.areDataViewsEqual)(clonedPacket.getView(), view)).toBe(true); }); }); describe('create RTCP Extended Jitter Reports packet', () => { const packet = new ExtendedJitterReportsPacket_1.ExtendedJitterReportsPacket(); test('packet view is RTCP', () => { expect((0, RtcpPacket_1.isRtcp)(packet.getView())).toBe(true); }); test('packet processing succeeds', () => { expect(packet.needsSerialization()).toBe(false); expect(packet.dump()).toEqual({ ...extendedJitterReportsPacketDump, byteLength: 4, count: 0, jitters: [], }); // Fill optional fields so serialization should be needed. packet.setJitters(extendedJitterReportsPacketDump.jitters); expect(packet.needsSerialization()).toBe(true); expect(packet.dump()).toEqual(extendedJitterReportsPacketDump); expect((0, helpers_1.areDataViewsEqual)(packet.getView(), view)).toBe(true); packet.serialize(); expect(packet.needsSerialization()).toBe(false); expect(packet.dump()).toEqual(extendedJitterReportsPacketDump); expect((0, helpers_1.areDataViewsEqual)(packet.getView(), view)).toBe(true); const clonedPacket = packet.clone(); expect(clonedPacket.needsSerialization()).toBe(false); expect(clonedPacket.dump()).toEqual(extendedJitterReportsPacketDump); expect((0, helpers_1.areDataViewsEqual)(clonedPacket.getView(), view)).toBe(true); }); });