@phenixrts/sdk
Version:
JavaScript SDK
44 lines (43 loc) • 1.83 kB
TypeScript
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;
}