41 lines
1.6 KiB
TypeScript
41 lines
1.6 KiB
TypeScript
import { IGetToken } from 'strtok3/lib/core.js';
|
|
import * as Token from 'token-types';
|
|
|
|
export interface IBroadcastAudioExtensionChunk {
|
|
description: string;
|
|
originator: string;
|
|
originatorReference: string;
|
|
originationDate: string;
|
|
originationTime: string;
|
|
timeReferenceLow: number,
|
|
timeReferenceHigh: number,
|
|
version: number,
|
|
umid: Uint8Array,
|
|
}
|
|
|
|
/**
|
|
* Broadcast Audio Extension Chunk
|
|
* Ref: https://tech.ebu.ch/docs/tech/tech3285.pdf
|
|
*/
|
|
export const BroadcastAudioExtensionChunk: IGetToken<IBroadcastAudioExtensionChunk> = {
|
|
len: 420,
|
|
|
|
get: (uint8array, off) => {
|
|
return {
|
|
description: new Token.StringType(256, 'ascii').get(uint8array, off).trim(),
|
|
originator: new Token.StringType(32, 'ascii').get(uint8array, off + 256).trim(),
|
|
originatorReference: new Token.StringType(32, 'ascii').get(uint8array, off + 288).trim(),
|
|
originationDate: new Token.StringType(10, 'ascii').get(uint8array, off + 320).trim(),
|
|
originationTime: new Token.StringType(8, 'ascii').get(uint8array, off + 330).trim(),
|
|
timeReferenceLow: Token.UINT32_LE.get(uint8array, off + 338),
|
|
timeReferenceHigh: Token.UINT32_LE.get(uint8array, off + 342),
|
|
version: Token.UINT16_LE.get(uint8array, off + 346),
|
|
umid: new Token.Uint8ArrayType(64).get(uint8array, off + 348),
|
|
loudnessValue: Token.UINT16_LE.get(uint8array, off + 412),
|
|
maxTruePeakLevel: Token.UINT16_LE.get(uint8array, off + 414),
|
|
maxMomentaryLoudness: Token.UINT16_LE.get(uint8array, off + 416),
|
|
maxShortTermLoudness: Token.UINT16_LE.get(uint8array, off + 418)
|
|
};
|
|
}
|
|
};
|