mirror of
https://github.com/pikvm/ustreamer.git
synced 2026-03-16 12:33:43 +00:00
latency test
This commit is contained in:
@@ -50,8 +50,9 @@ frame_s *memsink_fd_get_frame(int fd, memsink_shared_s *mem, uint64_t *frame_id)
|
|||||||
frame_s *frame = frame_init();
|
frame_s *frame = frame_init();
|
||||||
frame_set_data(frame, mem->data, mem->used);
|
frame_set_data(frame, mem->data, mem->used);
|
||||||
FRAME_COPY_META(mem, frame);
|
FRAME_COPY_META(mem, frame);
|
||||||
|
frame->extra1_ts = get_now_monotonic();
|
||||||
*frame_id = mem->id;
|
*frame_id = mem->id;
|
||||||
mem->last_client_ts = get_now_monotonic();
|
mem->last_client_ts = frame->extra1_ts;
|
||||||
|
|
||||||
bool ok = true;
|
bool ok = true;
|
||||||
if (frame->format != V4L2_PIX_FMT_H264) {
|
if (frame->format != V4L2_PIX_FMT_H264) {
|
||||||
|
|||||||
@@ -110,9 +110,17 @@ static void *_video_rtp_thread(UNUSED void *arg) {
|
|||||||
while (!STOP) {
|
while (!STOP) {
|
||||||
frame_s *frame;
|
frame_s *frame;
|
||||||
if (queue_get(_g_video_queue, (void **)&frame, 0.1) == 0) {
|
if (queue_get(_g_video_queue, (void **)&frame, 0.1) == 0) {
|
||||||
|
frame->extra2_ts = get_now_monotonic();
|
||||||
LOCK_VIDEO;
|
LOCK_VIDEO;
|
||||||
rtpv_wrap(_g_rtpv, frame);
|
rtpv_wrap(_g_rtpv, frame);
|
||||||
UNLOCK_VIDEO;
|
UNLOCK_VIDEO;
|
||||||
|
frame->extra3_ts = get_now_monotonic();
|
||||||
|
JLOG_INFO("video",
|
||||||
|
"grab_ts=%Lf, encode_begin_ts=%Lf, encode_end_ts=%Lf,"
|
||||||
|
" memsink_ts=%Lf, rtp_begin_ts=%Lf, rtp_end_ts=%Lf, latency=%Lf",
|
||||||
|
frame->grab_ts, frame->encode_begin_ts, frame->encode_end_ts,
|
||||||
|
frame->extra1_ts, frame->extra2_ts, frame->extra3_ts,
|
||||||
|
(frame->extra3_ts - frame->encode_begin_ts));
|
||||||
frame_destroy(frame);
|
frame_destroy(frame);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,6 +54,10 @@ typedef struct {
|
|||||||
long double grab_ts;
|
long double grab_ts;
|
||||||
long double encode_begin_ts;
|
long double encode_begin_ts;
|
||||||
long double encode_end_ts;
|
long double encode_end_ts;
|
||||||
|
|
||||||
|
long double extra1_ts;
|
||||||
|
long double extra2_ts;
|
||||||
|
long double extra3_ts;
|
||||||
} frame_s;
|
} frame_s;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user