Re: [RFCv2 API PATCH 12/28] v4l2-core: Add new V4L2_CAP_MONOTONIC_TS capability.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>
> > 
> > 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@xxxxxxxxx>
> > ---
> > 
> >  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

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux