summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVito Caputo <vcaputo@pengaru.com>2023-08-18 21:10:52 -0700
committerVito Caputo <vcaputo@pengaru.com>2023-08-18 21:13:43 -0700
commitc748e9ddc66492d0b01d2a13b5fc46f97c20b73c (patch)
tree691af6aa88680eae4aa6fb9d756eeaac94b0b700
parent0b471f3579e49c28032536de3c276a9d6eddd15d (diff)
til_stream: introduce a per-stream frame counter
This adds til_stream_start_frame() which advances a per-stream counter. Subsequent commits will make use of this for implementing a pre-frame competition for pipe ownership.
-rw-r--r--src/til_stream.c9
-rw-r--r--src/til_stream.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/src/til_stream.c b/src/til_stream.c
index 247dbf3..c508e35 100644
--- a/src/til_stream.c
+++ b/src/til_stream.c
@@ -92,6 +92,7 @@ struct til_stream_module_context_t {
typedef struct til_stream_t {
pthread_mutex_t mutex;
volatile int ended;
+ unsigned frame;
const til_stream_hooks_t *hooks;
void *hooks_context;
til_stream_pipe_t *pipe_buckets[TIL_STREAM_PIPE_BUCKETS_COUNT];
@@ -129,6 +130,14 @@ int til_stream_active(til_stream_t *stream)
}
+void til_stream_start_frame(til_stream_t *stream)
+{
+ assert(stream);
+
+ stream->frame++;
+}
+
+
til_stream_t * til_stream_free(til_stream_t *stream)
{
unsigned leaked;
diff --git a/src/til_stream.h b/src/til_stream.h
index f9717af..54bbdc5 100644
--- a/src/til_stream.h
+++ b/src/til_stream.h
@@ -48,6 +48,7 @@ til_stream_t * til_stream_new(void);
til_stream_t * til_stream_free(til_stream_t *stream);
void til_stream_end(til_stream_t *stream);
int til_stream_active(til_stream_t *stream);
+void til_stream_start_frame(til_stream_t *stream);
int til_stream_set_hooks(til_stream_t *stream, const til_stream_hooks_t *hooks, void *context);
int til_stream_unset_hooks(til_stream_t *stream, const til_stream_hooks_t *hooks);
© All Rights Reserved