StrictSync.h File
Strict multi-stream synchronization helpers (pending frame store, token store, release pacer). More...
Included Headers
#include "pipeline/SessionOptions.h"
#include "pipeline/Run.h"
#include <atomic>
#include <condition_variable>
#include <cstddef>
#include <cstdint>
#include <deque>
#include <functional>
#include <memory>
#include <mutex>
#include <optional>
#include <thread>
#include <unordered_map>
#include <vector>
Namespaces Index
| namespace | simaai |
| namespace | neat |
| namespace | graph |
| namespace | strict_sync |
Classes Index
| class | PendingVideoStore |
| struct | PendingFrame |
| struct | StreamStats |
| struct | StreamState |
| class | YoloTokenStore |
| struct | Token |
| struct | OrderedToken |
| struct | Stats |
| struct | State |
| class | ReleasePacer |
| struct | Stats |
| struct | State |
Description
Strict multi-stream synchronization helpers (pending frame store, token store, release pacer).
File Listing
The file content with the documentation metadata removed is:
9#include "pipeline/SessionOptions.h"
10#include "pipeline/Run.h"
25namespace simaai::neat::graph::strict_sync {
27class PendingVideoStore {
29 struct PendingFrame {
35 struct StreamStats {
39 size_t pending_depth = 0;
40 size_t pending_bytes = 0;
41 size_t max_pending_depth = 0;
42 size_t max_pending_bytes = 0;
45 explicit PendingVideoStore(size_t streams);
47 bool enqueue(size_t idx, int64_t frame_id, simaai::neat::Sample&& sample, int64_t cap_ms,
52 StreamStats stats(size_t idx) const;
60 StreamStats stats;
66class YoloTokenStore {
70 int64_t enqueued_ms = 0;
73 struct OrderedToken {
74 size_t stream_idx = 0;
76 int64_t enqueued_ms = 0;
87 explicit YoloTokenStore(size_t streams);
90 std::optional<OrderedToken> take_ordered();
108class ReleasePacer {
115 int64_t max_queue_depth = 0;
118 using OnSendResult = std::function<void(size_t /*stream_idx*/, bool /*ok*/)>;
121 ReleasePacer(const std::vector<std::shared_ptr<simaai::neat::Run>>& runs, int target_fps,
122 size_t max_queue, OnSendResult on_send_result = {}, OnDrop on_drop = {});
123 ~ReleasePacer();
128 int64_t interval_ms() const {
135 bool enqueue(size_t idx, simaai::neat::Sample&& sample);
145 bool stop = false;
160 OnSendResult on_send_result_;
161 OnDrop on_drop_;
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.1.