UNPKG

@phenixrts/sdk

Version:
44 lines (43 loc) 1.83 kB
import ReadOnlySubject from '../../../rx/ReadOnlySubject'; import { TrackWriterStatisticsType } from './TrackWriterStatistics'; import { TrackWriterWriteStatus } from './TrackWriterWriteStatus'; export default class TrackWriter { private static readonly _ftypByteCode; private static readonly _stypByteCode; private static readonly _moofByteCode; private static readonly _isoBmffMajorBrand; private readonly _logger; private readonly _mimeType; private readonly _sourceBuffer; private readonly _bufferedStart; private readonly _bufferedEnd; private readonly _statistics; private readonly _readOnlyBufferedStart; private readonly _readOnlyBufferedEnd; private readonly _readOnlyStatistics; private readonly _segmentsWithWriteStatusPromise; private readonly _lowWaterMarkInSeconds; private readonly _highWaterMarkInSeconds; private _isUpdatingSourceBuffer; private _bufferedEndIndex; constructor(mimeType: string, sourceBuffer: SourceBuffer); get statistics(): ReadOnlySubject<TrackWriterStatisticsType>; get bufferedStart(): ReadOnlySubject<number>; get bufferedEnd(): ReadOnlySubject<number>; write(segment: Uint8Array): Promise<TrackWriterWriteStatus>; dispose(): void; private writeIsoBmff; private isIsoBmffSegment; private updateReceivedStatistics; private updateWrittenStatistics; private appendPendingWritesAndTrimBufferIfAble; private updateBufferedTimeRangeValues; private appendIsoBmffInitializationSegment; private appendIsoBmffMediaSegment; private getSourceBufferBufferedStartInSeconds; private getSourceBufferBufferedEndInSeconds; private trimBuffer; private resolveAllPendingWritePromises; private cleanUpResource; private static isDataAtOffsetTargetByteSequence; }