src/types/transmuxer.ts
import type { RemuxerResult } from './remuxer';
import type { HlsChunkPerformanceTiming } from './loader';
import type { SourceBufferName } from './buffer';
export interface TransmuxerResult {
remuxResult: RemuxerResult
chunkMeta: ChunkMetadata
}
export class ChunkMetadata {
public readonly level: number;
public readonly sn: number;
public readonly part: number;
public readonly id: number;
public readonly size: number;
public readonly partial: boolean;
public readonly transmuxing: HlsChunkPerformanceTiming = getNewPerformanceTiming();
public readonly buffering: { [key in SourceBufferName]: HlsChunkPerformanceTiming } = {
audio: getNewPerformanceTiming(),
video: getNewPerformanceTiming(),
audiovideo: getNewPerformanceTiming()
};
constructor (level: number, sn: number, id: number, size = 0, part = -1, partial = false) {
this.level = level;
this.sn = sn;
this.id = id;
this.size = size;
this.part = part;
this.partial = partial;
}
}
function getNewPerformanceTiming (): HlsChunkPerformanceTiming {
return { start: 0, executeStart: 0, executeEnd: 0, end: 0 };
}