import 'dart:typed_data'; /// SPS/PPS/I帧依赖关系管理器 class FrameDependencyManager { Uint8List? _sps; Uint8List? _pps; int? _lastIFrameSeq; /// 更新SPS缓存 void updateSps(Uint8List sps) { _sps = sps; } /// 更新PPS缓存 void updatePps(Uint8List pps) { _pps = pps; } Uint8List? get sps => _sps; Uint8List? get pps => _pps; /// 判断是否有可用I帧 bool get hasIFrame => _lastIFrameSeq != null; int? get lastIFrameSeq => _lastIFrameSeq; void updateIFrameSeq(int seq) { _lastIFrameSeq = seq; } /// 判断指定I帧序号是否为最近一次成功解码的I帧 bool isIFrameDecoded(int? seq) { return seq != null && seq == _lastIFrameSeq; } }