import FlvHeader from "./flv/FlvHeader.ts"; import FlvScriptTag from "./flv/FlvScriptTag.ts"; import type { AVIFormatContext } from "../AVFormatContext.ts"; import IFormat from "./IFormat.ts"; import { AVFormat, type AVPacket, type AVStream } from "@libmedia/avutil"; export interface IFlvFormatOptions { /** * 使用纳秒时间戳 */ useNanoTimestamp?: boolean; } export default class IFlvFormat extends IFormat { type: AVFormat; header: FlvHeader; script: FlvScriptTag; options: IFlvFormatOptions; private firstTagPos; constructor(options?: IFlvFormatOptions); init(formatContext: AVIFormatContext): void; readHeader(formatContext: AVIFormatContext): Promise; private readModEx; private readCodecConfigurationRecord; private readAVPacketData; private parseColorInfo; private findStream; private createStream; private readAVPacket_; readAVPacket(formatContext: AVIFormatContext, avpacket: pointer): Promise; syncTag(formatContext: AVIFormatContext): Promise; seek(formatContext: AVIFormatContext, stream: AVStream, timestamp: int64, flags: int32): Promise; getAnalyzeStreamsCount(): number; }