pssh-tools
Version:
Tools to generate PSSH Data and PSSH Box
52 lines (51 loc) • 1.31 kB
TypeScript
/// <reference types="node" />
type Omit<K, KEY extends keyof K> = Pick<K, Exclude<keyof K, KEY>>;
export interface WidevineEncodeConfig {
contentId: string;
dataOnly: boolean;
keyIds?: string[];
provider?: string;
protectionScheme?: string;
trackType?: string;
}
export type WidevineDataEncodeConfig = Omit<WidevineEncodeConfig, 'dataOnly'>;
export interface KeyPair {
kid: string;
key: string;
}
export interface PlayReadyEncodeConfig {
keyPairs?: KeyPair[];
licenseUrl?: string;
keySeed?: string;
compatibilityMode: boolean;
dataOnly: boolean;
checksum?: boolean;
}
export type PlayReadyDataEncodeConfig = Omit<PlayReadyEncodeConfig, 'dataOnly'>;
export interface HeaderConfig {
systemId: string;
keyIds?: string[];
data: string;
}
export interface PlayReadyData {
recordSize: number;
recordType: number;
recordXml: string;
}
export interface WidevineData {
widevineKeyCount?: number;
keyId?: string[];
provider?: string;
contentId?: string;
}
export type PsshData = PlayReadyData | WidevineData;
export interface DecodeResult {
keyIds?: string[];
dataObject?: PsshData;
systemId?: Buffer;
systemName?: string;
version?: number;
keyCount?: number;
printPssh?: Function;
}
export {};