mirror of
https://github.com/pikvm/ustreamer.git
synced 2026-05-26 23:36:16 +00:00
eps
This commit is contained in:
16
src/http.c
16
src/http.c
@@ -174,10 +174,12 @@ static void _http_callback_ping(struct evhttp_request *request, void *v_server)
|
|||||||
assert(evbuffer_add_printf(buf,
|
assert(evbuffer_add_printf(buf,
|
||||||
"{\"stream\": {\"resolution\":"
|
"{\"stream\": {\"resolution\":"
|
||||||
" {\"width\": %u, \"height\": %u},"
|
" {\"width\": %u, \"height\": %u},"
|
||||||
" \"fps\": %u, \"online\": %s, \"clients\": %u}}",
|
" \"fps\": %u, \"eps\": %u,"
|
||||||
|
" \"online\": %s, \"clients\": %u}}",
|
||||||
(server->fake_width ? server->fake_width : server->run->exposed->width),
|
(server->fake_width ? server->fake_width : server->run->exposed->width),
|
||||||
(server->fake_height ? server->fake_height : server->run->exposed->height),
|
(server->fake_height ? server->fake_height : server->run->exposed->height),
|
||||||
server->run->exposed->fps,
|
server->run->exposed->fps, // frame per second (capturing)
|
||||||
|
server->run->exposed->eps, // expose per second (server)
|
||||||
(server->run->exposed->online ? "true" : "false"),
|
(server->run->exposed->online ? "true" : "false"),
|
||||||
server->run->stream_clients_count
|
server->run->stream_clients_count
|
||||||
));
|
));
|
||||||
@@ -400,6 +402,9 @@ static void _http_exposed_refresh(UNUSED int fd, UNUSED short what, void *v_serv
|
|||||||
struct http_server_t *server = (struct http_server_t *)v_server;
|
struct http_server_t *server = (struct http_server_t *)v_server;
|
||||||
bool updated = false;
|
bool updated = false;
|
||||||
bool queue_send = false;
|
bool queue_send = false;
|
||||||
|
long long now;
|
||||||
|
static unsigned eps = 0;
|
||||||
|
static long long eps_second = 0;
|
||||||
|
|
||||||
#define LOCK_STREAM \
|
#define LOCK_STREAM \
|
||||||
A_PTHREAD_M_LOCK(&server->run->stream->mutex);
|
A_PTHREAD_M_LOCK(&server->run->stream->mutex);
|
||||||
@@ -425,6 +430,13 @@ static void _http_exposed_refresh(UNUSED int fd, UNUSED short what, void *v_serv
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (queue_send) {
|
if (queue_send) {
|
||||||
|
if ((now = (long long)now_monotonic_ms()) != eps_second) {
|
||||||
|
server->run->exposed->eps = eps;
|
||||||
|
eps = 0;
|
||||||
|
eps_second = now;
|
||||||
|
}
|
||||||
|
eps += 1;
|
||||||
|
|
||||||
_http_queue_send_stream(server, updated);
|
_http_queue_send_stream(server, updated);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ struct exposed_t {
|
|||||||
unsigned fps;
|
unsigned fps;
|
||||||
bool online;
|
bool online;
|
||||||
unsigned dropped;
|
unsigned dropped;
|
||||||
|
unsigned eps;
|
||||||
long double expose_begin_time;
|
long double expose_begin_time;
|
||||||
long double expose_end_time;
|
long double expose_end_time;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user