expose keyframe flag

This commit is contained in:
Devaev Maxim
2021-02-03 05:39:18 +03:00
parent 5cfb3b1e60
commit a165ff4523
7 changed files with 19 additions and 5 deletions

View File

@@ -81,6 +81,7 @@ void frame_copy_meta(const frame_s *src, frame_s *dest) {
COPY(format);
COPY(stride);
COPY(online);
COPY(key);
COPY(grab_ts);
COPY(encode_begin_ts);
COPY(encode_end_ts);
@@ -98,6 +99,7 @@ bool frame_compare(const frame_s *a, const frame_s *b) {
&& CMP(format)
&& CMP(stride)
&& CMP(online)
&& CMP(key)
&& !memcmp(a->data, b->data, b->used)
);
# undef CMP

View File

@@ -51,6 +51,7 @@ typedef struct {
// https://medium.com/@oleg.shipitko/what-does-stride-mean-in-image-processing-bba158a72bcd
bool online;
bool key;
long double grab_ts;
long double encode_begin_ts;

View File

@@ -109,7 +109,7 @@ bool memsink_server_check(memsink_s *sink, const frame_s *frame) {
sink->has_clients = (sink->mem->last_client_ts + sink->client_ttl > get_now_monotonic());
# define NEQ(_field) (sink->mem->_field != frame->_field)
bool retval = (sink->has_clients || NEQ(width) || NEQ(height) || NEQ(format) || NEQ(stride) || NEQ(online));
bool retval = (sink->has_clients || NEQ(width) || NEQ(height) || NEQ(format) || NEQ(stride) || NEQ(online) || NEQ(key));
# undef NEQ
if (flock(sink->fd, LOCK_UN) < 0) {
@@ -142,6 +142,7 @@ int memsink_server_put(memsink_s *sink, const frame_s *frame) {
COPY(format);
COPY(stride);
COPY(online);
COPY(key);
COPY(grab_ts);
COPY(encode_begin_ts);
COPY(encode_end_ts);
@@ -195,6 +196,7 @@ int memsink_client_get(memsink_s *sink, frame_s *frame) { // cppcheck-suppress u
COPY(format);
COPY(stride);
COPY(online);
COPY(key);
COPY(grab_ts);
COPY(encode_begin_ts);
COPY(encode_end_ts);

View File

@@ -29,7 +29,7 @@
#define MEMSINK_MAGIC ((uint64_t)0xCAFEBABECAFEBABE)
#define MEMSINK_VERSION ((uint32_t)1)
#define MEMSINK_VERSION ((uint32_t)2)
#ifndef CFG_MEMSINK_MAX_DATA
# define CFG_MEMSINK_MAX_DATA 33554432
@@ -49,6 +49,7 @@ typedef struct {
unsigned format;
unsigned stride;
bool online;
bool key;
long double grab_ts;
long double encode_begin_ts;