linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sakari Ailus <sakari.ailus@iki.fi>
Cc: Hans Verkuil <hverkuil@xs4all.nl>,
	linux-media@vger.kernel.org,
	Hans Verkuil <hans.verkuil@cisco.com>
Subject: Re: [RFCv2 API PATCH 12/28] v4l2-core: Add new V4L2_CAP_MONOTONIC_TS capability.
Date: Thu, 13 Sep 2012 22:50:32 +0200	[thread overview]
Message-ID: <10295113.chWiZVzcZs@avalon> (raw)
In-Reply-To: <20120913203814.GK6834@valkosipuli.retiisi.org.uk>

Hi Sakari,

On Thursday 13 September 2012 23:38:14 Sakari Ailus wrote:
> On Fri, Sep 07, 2012 at 03:29:12PM +0200, Hans Verkuil wrote:
> > From: Hans Verkuil <hans.verkuil@cisco.com>
> > 
> > Add a new flag that tells userspace that the monotonic clock is used
> > for timestamps and update the documentation accordingly.
> > 
> > We decided on this new flag during the 2012 Media Workshop.
> > 
> > Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
> > ---
> > 
> >  Documentation/DocBook/media/v4l/io.xml              |   10 +++++++---
> >  Documentation/DocBook/media/v4l/vidioc-dqevent.xml  |    3 ++-
> >  Documentation/DocBook/media/v4l/vidioc-querycap.xml |    7 +++++++
> >  include/linux/videodev2.h                           |    1 +
> >  4 files changed, 17 insertions(+), 4 deletions(-)
> > 
> > diff --git a/Documentation/DocBook/media/v4l/io.xml
> > b/Documentation/DocBook/media/v4l/io.xml index 2dc39d8..b680d66 100644
> > --- a/Documentation/DocBook/media/v4l/io.xml
> > +++ b/Documentation/DocBook/media/v4l/io.xml
> > @@ -582,10 +582,14 @@ applications when an output stream.</entry>
> > 
> >  	    <entry>struct timeval</entry>
> >  	    <entry><structfield>timestamp</structfield></entry>
> >  	    <entry></entry>
> > 
> > -	    <entry><para>For input streams this is the
> > +	    <entry><para>This is either the
> > 
> >  system time (as returned by the <function>gettimeofday()</function>
> > 
> > -function) when the first data byte was captured. For output streams
> > -the data will not be displayed before this time, secondary to the
> > +function) or a monotonic timestamp (as returned by the
> > +<function>clock_gettime(CLOCK_MONOTONIC, &amp;ts)</function> function).
> > +A monotonic timestamp is used if the
> > <constant>V4L2_CAP_MONOTONIC_TS</constant> +capability is set, otherwise
> > the system time is used.
> > +For input streams this is the timestamp when the first data byte was
> > captured. +For output streams the data will not be displayed before this
> > time, secondary to the
> I have an alternative proposal.
> 
> The type of the desired timestamps depend on the use case, not the driver
> used to capture the buffers. Thus we could also give the choice to the user
> by means of e.g. a control.

Or a buffer flag. I will need something similar to select device-specific 
timestamps.

However, for wall clock vs. monotonic clock, I don't think there's a reason to 
let applications decide to use the wall clock. It would be a broken use case. 
I don't think we should let applications decide in this case.

On the other hand, reporting a timespec instead of a timeval would be a good 
idea. I'm tempted.

> If we'd make it configurable (applications would still get the wallclock
> time unless they ask for monotonic time), we'd have a chance to add more
> precision by using struct timespec (ns precision) instead of struct timeval
> (us precision). struct timespec is also used by V4L2 events.
> 
> Adding support for CLOCK_MONOTONIC_RAW would also be a non-issue.
> 
> Additional helper function could be used to generate the timestamp of the
> desired type.
> 
> What do you think?

-- 
Regards,

Laurent Pinchart


  reply	other threads:[~2012-09-13 20:50 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-07 13:29 [RFCv2 API PATCH 00/28] Full series of API fixes from the 2012 Media Workshop Hans Verkuil
2012-09-07 13:29 ` [RFCv2 API PATCH 01/28] v4l: Remove experimental tag from certain API elements Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 02/28] videodev2.h: split off controls into v4l2-controls.h Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 03/28] DocBook: improve STREAMON/OFF documentation Hans Verkuil
2012-09-07 19:58     ` Sylwester Nawrocki
2012-09-13  2:17     ` Laurent Pinchart
2012-09-07 13:29   ` [RFCv2 API PATCH 04/28] DocBook: make the G/S/TRY_FMT specification more strict Hans Verkuil
2012-09-07 20:00     ` Sylwester Nawrocki
2012-09-13  2:18     ` Laurent Pinchart
2012-09-07 13:29   ` [RFCv2 API PATCH 05/28] DocBook: bus_info can no longer be empty Hans Verkuil
2012-09-07 20:00     ` Sylwester Nawrocki
2012-09-08 11:15       ` Hans Verkuil
2012-09-08 14:19         ` Sylwester Nawrocki
2012-09-09  8:45           ` Hans Verkuil
2012-09-09 14:01             ` Sylwester Nawrocki
2012-09-13  1:24     ` Laurent Pinchart
2012-09-13 10:40       ` Hans Verkuil
2012-09-19 18:46         ` Laurent Pinchart
2012-09-20  6:38           ` Hans Verkuil
2012-09-20 13:24             ` Laurent Pinchart
2012-09-07 13:29   ` [RFCv2 API PATCH 06/28] v4l2-core: deprecate V4L2_BUF_TYPE_PRIVATE Hans Verkuil
2012-09-13  2:21     ` Laurent Pinchart
2012-09-13 10:46       ` Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 07/28] DocBook: " Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 08/28] v4l2: remove experimental tag from a number of old drivers Hans Verkuil
2012-09-07 20:04     ` Sylwester Nawrocki
2012-09-07 13:29   ` [RFCv2 API PATCH 09/28] DocBook: document when to return ENODATA Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 10/28] Rename V4L2_(IN|OUT)_CAP_CUSTOM_TIMINGS Hans Verkuil
2012-09-13  2:22     ` Laurent Pinchart
2012-09-13 10:47       ` Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 11/28] DocBook: fix awkward language and fix the documented return value Hans Verkuil
2012-09-07 20:08     ` Sylwester Nawrocki
2012-09-07 13:29   ` [RFCv2 API PATCH 12/28] v4l2-core: Add new V4L2_CAP_MONOTONIC_TS capability Hans Verkuil
2012-09-07 20:11     ` Sylwester Nawrocki
2012-09-13  2:26     ` Laurent Pinchart
2012-09-13 20:38     ` Sakari Ailus
2012-09-13 20:50       ` Laurent Pinchart [this message]
2012-09-13 20:56         ` Hans Verkuil
2012-09-14  9:02           ` Sakari Ailus
2012-09-14  9:21             ` Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 13/28] Add V4L2_CAP_MONOTONIC_TS where applicable Hans Verkuil
2012-09-07 20:15     ` Sylwester Nawrocki
2012-09-08 14:33     ` Rémi Denis-Courmont
2012-09-09  8:46       ` Hans Verkuil
2012-09-13  1:27     ` Laurent Pinchart
2012-09-07 13:29   ` [RFCv2 API PATCH 14/28] DocBook: clarify that sequence is also set for output devices Hans Verkuil
2012-09-07 20:18     ` Sylwester Nawrocki
2012-09-13  2:28     ` Laurent Pinchart
2012-09-13 10:48       ` Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 15/28] DocBook: Mark CROPCAP as optional instead of as compulsory Hans Verkuil
2012-09-13  2:32     ` Laurent Pinchart
2012-09-07 13:29   ` [RFCv2 API PATCH 16/28] v4l2: make vidioc_s_fbuf const Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 17/28] v4l2: make vidioc_s_jpegcomp const Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 18/28] v4l2: make vidioc_s_freq_hw_seek const Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 19/28] v4l2: make vidioc_(un)subscribe_event const Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 20/28] v4l2: make vidioc_s_audio const Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 21/28] v4l2: make vidioc_s_audout const Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 22/28] v4l2: make vidioc_s_modulator const Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 23/28] v4l2: make vidioc_s_crop const Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 24/28] v4l2-dev: add new VFL_DIR_ defines Hans Verkuil
2012-09-13  2:36     ` Laurent Pinchart
2012-09-13 10:54       ` Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 25/28] Set vfl_dir for all display or m2m drivers Hans Verkuil
2012-09-13  2:37     ` Laurent Pinchart
2012-09-13 10:56       ` Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 26/28] v4l2-dev: improve ioctl validity checks Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 27/28] v4l2-dev: reorder checks into blocks of ioctls with similar properties Hans Verkuil
2012-09-07 13:29   ` [RFCv2 API PATCH 28/28] Add vfl_dir field documentation Hans Verkuil
2012-09-07 13:59 ` [RFCv2 API PATCH 00/28] Full series of API fixes from the 2012 Media Workshop Devin Heitmueller

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=10295113.chWiZVzcZs@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=hans.verkuil@cisco.com \
    --cc=hverkuil@xs4all.nl \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).