All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sakari Ailus <sakari.ailus@iki.fi>
Cc: linux-media@vger.kernel.org
Subject: Re: [yavta PATCH 7/9] Print timestamp type and source for dequeued buffers
Date: Wed, 02 Apr 2014 02:26:31 +0200	[thread overview]
Message-ID: <5116965.JxiWPkm0Gp@avalon> (raw)
In-Reply-To: <1393690690-5004-8-git-send-email-sakari.ailus@iki.fi>

Hi Sakari,

Thank you for the patch.

Given that the timestamp type and source are not supposed to change during 
streaming, do we really need to print them for every frame ?

On Saturday 01 March 2014 18:18:08 Sakari Ailus wrote:
> Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
> ---
>  yavta.c |   52 ++++++++++++++++++++++++++++++----------------------
>  1 file changed, 30 insertions(+), 22 deletions(-)
> 
> diff --git a/yavta.c b/yavta.c
> index 71c1477..224405d 100644
> --- a/yavta.c
> +++ b/yavta.c
> @@ -445,6 +445,30 @@ static int video_set_framerate(struct device *dev,
> struct v4l2_fract *time_per_f return 0;
>  }
> 
> +static void get_ts_flags(uint32_t flags, const char **ts_type, const char
> **ts_source) +{
> +	switch (flags & V4L2_BUF_FLAG_TIMESTAMP_MASK) {
> +	case V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN:
> +		*ts_type = "unknown";
> +		break;
> +	case V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC:
> +		*ts_type = "monotonic";
> +		break;
> +	default:
> +		*ts_type = "invalid";
> +	}
> +	switch (flags & V4L2_BUF_FLAG_TSTAMP_SRC_MASK) {
> +	case V4L2_BUF_FLAG_TSTAMP_SRC_EOF:
> +		*ts_source = "EoF";
> +		break;
> +	case V4L2_BUF_FLAG_TSTAMP_SRC_SOE:
> +		*ts_source = "SoE";
> +		break;
> +	default:
> +		*ts_source = "invalid";
> +	}
> +}
> +
>  static int video_alloc_buffers(struct device *dev, int nbufs,
>  	unsigned int offset, unsigned int padding)
>  {
> @@ -488,26 +512,7 @@ static int video_alloc_buffers(struct device *dev, int
> nbufs, strerror(errno), errno);
>  			return ret;
>  		}
> -		switch (buf.flags & V4L2_BUF_FLAG_TIMESTAMP_MASK) {
> -		case V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN:
> -			ts_type = "unknown";
> -			break;
> -		case V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC:
> -			ts_type = "monotonic";
> -			break;
> -		default:
> -			ts_type = "invalid";
> -		}
> -		switch (buf.flags & V4L2_BUF_FLAG_TSTAMP_SRC_MASK) {
> -		case V4L2_BUF_FLAG_TSTAMP_SRC_EOF:
> -			ts_source = "EoF";
> -			break;
> -		case V4L2_BUF_FLAG_TSTAMP_SRC_SOE:
> -			ts_source = "SoE";
> -			break;
> -		default:
> -			ts_source = "invalid";
> -		}
> +		get_ts_flags(buf.flags, &ts_type, &ts_source);
>  		printf("length: %u offset: %u timestamp type/source: %s/%s\n",
>  		       buf.length, buf.m.offset, ts_type, ts_source);
> 
> @@ -1131,6 +1136,7 @@ static int video_do_capture(struct device *dev,
> unsigned int nframes, last.tv_usec = start.tv_nsec / 1000;
> 
>  	for (i = 0; i < nframes; ++i) {
> +		const char *ts_type, *ts_source;
>  		/* Dequeue a buffer. */
>  		memset(&buf, 0, sizeof buf);
>  		buf.type = dev->type;
> @@ -1163,10 +1169,12 @@ static int video_do_capture(struct device *dev,
> unsigned int nframes, fps = fps ? 1000000.0 / fps : 0.0;
> 
>  		clock_gettime(CLOCK_MONOTONIC, &ts);
> -		printf("%u (%u) [%c] %u %u bytes %ld.%06ld %ld.%06ld %.3f fps\n", i,
> buf.index, +		get_ts_flags(buf.flags, &ts_type, &ts_source);
> +		printf("%u (%u) [%c] %u %u bytes %ld.%06ld %ld.%06ld %.3f fps tstamp
> type/src %s/%s\n", i, buf.index, (buf.flags & V4L2_BUF_FLAG_ERROR) ? 'E' :
> '-',
>  			buf.sequence, buf.bytesused, buf.timestamp.tv_sec,
> -			buf.timestamp.tv_usec, ts.tv_sec, ts.tv_nsec/1000, fps);
> +			buf.timestamp.tv_usec, ts.tv_sec, ts.tv_nsec/1000, fps,
> +			ts_type, ts_source);
> 
>  		last = buf.timestamp;

-- 
Regards,

Laurent Pinchart


  reply	other threads:[~2014-04-02  0:24 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-01 16:18 [yavta PATCH 0/9] Timestamp source and mem-to-mem device support Sakari Ailus
2014-03-01 16:18 ` [yavta PATCH 1/9] Update headers from upstream kernel, including timestamp source patches Sakari Ailus
2014-03-01 16:18 ` [yavta PATCH 2/9] Print timestamp source (start-of-exposure or end-of-frame) Sakari Ailus
2014-03-01 16:18 ` [yavta PATCH 3/9] Allow supporting mem2mem devices by adding forced OUTPUT device type Sakari Ailus
2014-04-01 22:05   ` Laurent Pinchart
2014-04-10 18:19     ` Sakari Ailus
2014-03-01 16:18 ` [yavta PATCH 4/9] Zero dev in main() Sakari Ailus
2014-03-01 16:18 ` [yavta PATCH 5/9] Allow passing file descriptors to yavta Sakari Ailus
2014-04-01 22:16   ` Laurent Pinchart
2014-04-10 18:48     ` Sakari Ailus
2014-04-10 22:17       ` Laurent Pinchart
2014-04-10 22:30         ` Sakari Ailus
2014-03-01 16:18 ` [yavta PATCH 6/9] Timestamp source for output buffers Sakari Ailus
2014-04-01 22:20   ` Laurent Pinchart
2014-04-10 18:53     ` Sakari Ailus
2014-03-01 16:18 ` [yavta PATCH 7/9] Print timestamp type and source for dequeued buffers Sakari Ailus
2014-04-02  0:26   ` Laurent Pinchart [this message]
2014-04-10 18:58     ` Sakari Ailus
2014-04-10 22:28       ` Laurent Pinchart
2014-04-10 22:36         ` Sakari Ailus
2014-04-11 13:11           ` Laurent Pinchart
2014-03-01 16:18 ` [yavta PATCH 8/9] Support copy timestamps Sakari Ailus
2014-03-01 16:18 ` [yavta PATCH 9/9] Set timestamp for output buffers if the timestamp type is copy Sakari Ailus
2014-04-02  0:24 ` [yavta PATCH 0/9] Timestamp source and mem-to-mem device support Laurent Pinchart
2014-04-02 21:24   ` Sakari Ailus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5116965.JxiWPkm0Gp@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=sakari.ailus@iki.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.