From 321f4c995636d91b11db712a363be6118c0b4279 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Wed, 5 Mar 2014 21:41:02 +0100 Subject: [PATCH] v4l2-ctl: add timestamp source support. Show the timestamp source when receiving a buffer. Signed-off-by: Hans Verkuil --- utils/v4l2-ctl/v4l2-ctl-streaming.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/utils/v4l2-ctl/v4l2-ctl-streaming.cpp b/utils/v4l2-ctl/v4l2-ctl-streaming.cpp index 49aad26..975dbf2 100644 --- a/utils/v4l2-ctl/v4l2-ctl-streaming.cpp +++ b/utils/v4l2-ctl/v4l2-ctl-streaming.cpp @@ -131,6 +131,21 @@ static std::string timestamp_type2s(__u32 flags) } } +static std::string timestamp_src2s(__u32 flags) +{ + char buf[20]; + + switch (flags & V4L2_BUF_FLAG_TSTAMP_SRC_MASK) { + case V4L2_BUF_FLAG_TSTAMP_SRC_EOF: + return "End-of-Frame"; + case V4L2_BUF_FLAG_TSTAMP_SRC_SOE: + return "Start-of-Exposure"; + default: + sprintf(buf, "Source %d", (flags & V4L2_BUF_FLAG_TSTAMP_SRC_MASK) >> 16); + return std::string(buf); + } +} + static const flag_def tc_flags_def[] = { { V4L2_TC_FLAG_DROPFRAME, "dropframe" }, { V4L2_TC_FLAG_COLORFRAME, "colorframe" }, @@ -149,8 +164,8 @@ static void print_buffer(FILE *f, struct v4l2_buffer &buf) fprintf(f, "\tSequence : %u\n", buf.sequence); fprintf(f, "\tLength : %u\n", buf.length); fprintf(f, "\tBytesused: %u\n", buf.bytesused); - fprintf(f, "\tTimestamp: %lu.%06lus (%s)\n", buf.timestamp.tv_sec, buf.timestamp.tv_usec, - timestamp_type2s(buf.flags).c_str()); + fprintf(f, "\tTimestamp: %lu.%06lus (%s, %s)\n", buf.timestamp.tv_sec, buf.timestamp.tv_usec, + timestamp_type2s(buf.flags).c_str(), timestamp_src2s(buf.flags).c_str()); if (buf.flags & V4L2_BUF_FLAG_TIMECODE) { static const int fps_types[] = { 0, 24, 25, 30, 50, 60 }; int fps = buf.timecode.type; -- 2.7.4