Home Reference Source

src/types/remuxer.ts

  1. import type { TrackSet } from './track';
  2. import {
  3. DemuxedAudioTrack,
  4. DemuxedMetadataTrack,
  5. DemuxedUserdataTrack,
  6. DemuxedVideoTrack,
  7. MetadataSample,
  8. UserdataSample,
  9. } from './demuxer';
  10. import type { SourceBufferName } from './buffer';
  11.  
  12. export interface Remuxer {
  13. remux(
  14. audioTrack: DemuxedAudioTrack,
  15. videoTrack: DemuxedVideoTrack,
  16. id3Track: DemuxedMetadataTrack,
  17. textTrack: DemuxedUserdataTrack,
  18. timeOffset: number,
  19. accurateTimeOffset: boolean,
  20. flush: boolean
  21. ): RemuxerResult;
  22. resetInitSegment(
  23. initSegment: Uint8Array | undefined,
  24. audioCodec: string | undefined,
  25. videoCodec: string | undefined
  26. ): void;
  27. resetTimeStamp(defaultInitPTS): void;
  28. resetNextTimestamp(): void;
  29. destroy(): void;
  30. }
  31.  
  32. export interface RemuxedTrack {
  33. data1: Uint8Array;
  34. data2?: Uint8Array;
  35. startPTS: number;
  36. endPTS: number;
  37. startDTS: number;
  38. endDTS: number;
  39. type: SourceBufferName;
  40. hasAudio: boolean;
  41. hasVideo: boolean;
  42. independent?: boolean;
  43. nb: number;
  44. transferredData1?: ArrayBuffer;
  45. transferredData2?: ArrayBuffer;
  46. dropped?: number;
  47. }
  48.  
  49. export interface RemuxedMetadata {
  50. samples: MetadataSample[];
  51. }
  52.  
  53. export interface RemuxedUserdata {
  54. samples: UserdataSample[];
  55. }
  56.  
  57. export interface RemuxerResult {
  58. audio?: RemuxedTrack;
  59. video?: RemuxedTrack;
  60. text?: RemuxedUserdata;
  61. id3?: RemuxedMetadata;
  62. initSegment?: InitSegmentData;
  63. independent?: boolean;
  64. }
  65.  
  66. export interface InitSegmentData {
  67. tracks?: TrackSet;
  68. initPTS: number | undefined;
  69. timescale: number | undefined;
  70. }