latency test

This commit is contained in:
Maxim Devaev 2022-07-13 15:08:25 +03:00
parent 7b0e171e74
commit 021823bcba
3 changed files with 14 additions and 1 deletions

View File

@ -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_set_data(frame, mem->data, mem->used);
FRAME_COPY_META(mem, frame);
frame->extra1_ts = get_now_monotonic();
*frame_id = mem->id;
mem->last_client_ts = get_now_monotonic();
mem->last_client_ts = frame->extra1_ts;
bool ok = true;
if (frame->format != V4L2_PIX_FMT_H264) {

View File

@ -110,9 +110,17 @@ static void *_video_rtp_thread(UNUSED void *arg) {
while (!STOP) {
frame_s *frame;
if (queue_get(_g_video_queue, (void **)&frame, 0.1) == 0) {
frame->extra2_ts = get_now_monotonic();
LOCK_VIDEO;
rtpv_wrap(_g_rtpv, frame);
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);
}
}

View File

@ -54,6 +54,10 @@ typedef struct {
long double grab_ts;
long double encode_begin_ts;
long double encode_end_ts;
long double extra1_ts;
long double extra2_ts;
long double extra3_ts;
} frame_s;