11#include <promeki/config.h>
12#if PROMEKI_ENABLE_PROAV
20PROMEKI_NAMESPACE_BEGIN
68class MediaIOReadCache {
79 explicit MediaIOReadCache(MediaIOSource *source);
84 MediaIOReadCache(
const MediaIOReadCache &) =
delete;
85 MediaIOReadCache &operator=(
const MediaIOReadCache &) =
delete;
111 bool isEmpty()
const;
120 bool isHeadReady()
const;
141 MediaIORequest readFrame();
170 void pushSyntheticResult(Error err);
187 void onCommandCompleted();
190 MediaIOCommand::Ptr submitOneLocked();
191 bool checkArmedLocked();
193 MediaIOSource *_source =
nullptr;
194 List<MediaIOCommand::Ptr> _queue;
196 bool _headReadyArmed =
false;
197 mutable Mutex _mutex;