11#include <promeki/config.h>
12#if PROMEKI_ENABLE_PROAV
25PROMEKI_NAMESPACE_BEGIN
107 AncFrameSync() =
default;
110 explicit AncFrameSync(AncTranslateConfig cfg) : _translator(std::move(cfg)) {}
113 const AncTranslateConfig &config()
const {
return _translator.config(); }
116 void setConfig(AncTranslateConfig cfg) { _translator.setConfig(std::move(cfg)); }
141 Result<::promeki::List<Frame>> apply(Frame in, FrameSyncDisposition disposition);
147 size_t stashedPacketCount()
const;
159 Error applyToFrame(Frame &frame, FrameSyncDisposition disposition, uint8_t repeatIndex);
164 void warnFallbackOnce(AncFormat::ID
id,
const String &name);
170 Error applyDropAndStash(
const Frame &frame);
178 void stashPackets(AncFormat::ID
id,
const AncPacket::List &pkts);
184 void drainStashInto(Frame &frame);
186 AncTranslator _translator;
187 Set<AncFormat::ID> _fallbackWarned;
188 Map<AncFormat::ID, AncPacket::List> _stash;