Home Reference Source

src/types/transmuxer.ts

  1. import type { RemuxerResult } from './remuxer';
  2. import type { HlsChunkPerformanceTiming } from './loader';
  3. import type { SourceBufferName } from './buffer';
  4.  
  5. export interface TransmuxerResult {
  6. remuxResult: RemuxerResult;
  7. chunkMeta: ChunkMetadata;
  8. }
  9.  
  10. export class ChunkMetadata {
  11. public readonly level: number;
  12. public readonly sn: number;
  13. public readonly part: number;
  14. public readonly id: number;
  15. public readonly size: number;
  16. public readonly partial: boolean;
  17. public readonly transmuxing: HlsChunkPerformanceTiming =
  18. getNewPerformanceTiming();
  19. public readonly buffering: {
  20. [key in SourceBufferName]: HlsChunkPerformanceTiming;
  21. } = {
  22. audio: getNewPerformanceTiming(),
  23. video: getNewPerformanceTiming(),
  24. audiovideo: getNewPerformanceTiming(),
  25. };
  26.  
  27. constructor(
  28. level: number,
  29. sn: number,
  30. id: number,
  31. size = 0,
  32. part = -1,
  33. partial = false
  34. ) {
  35. this.level = level;
  36. this.sn = sn;
  37. this.id = id;
  38. this.size = size;
  39. this.part = part;
  40. this.partial = partial;
  41. }
  42. }
  43.  
  44. function getNewPerformanceTiming(): HlsChunkPerformanceTiming {
  45. return { start: 0, executeStart: 0, executeEnd: 0, end: 0 };
  46. }