All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans Verkuil <hverkuil@xs4all.nl>
To: Sakari Ailus <sakari.ailus@iki.fi>
Cc: linux-media@vger.kernel.org, laurent.pinchart@ideasonboard.com,
	k.debski@samsung.com
Subject: Re: [PATCH v5 7/7] v4l: Document timestamp buffer flag behaviour
Date: Tue, 25 Feb 2014 18:28:06 +0100	[thread overview]
Message-ID: <530CD2A6.80906@xs4all.nl> (raw)
In-Reply-To: <20140225170842.GF15635@valkosipuli.retiisi.org.uk>

On 02/25/2014 06:08 PM, Sakari Ailus wrote:
> Hi Hans,
> 
> On Sun, Feb 23, 2014 at 12:45:28PM +0100, Hans Verkuil wrote:
>> On 02/15/2014 09:53 PM, Sakari Ailus wrote:
>>> Timestamp buffer flags are constant at the moment. Document them so that 1)
>>> they're always valid and 2) not changed by the drivers. This leaves room to
>>> extend the functionality later on if needed.
>>>
>>> Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
>>> ---
>>>  Documentation/DocBook/media/v4l/io.xml |   10 ++++++++++
>>>  1 file changed, 10 insertions(+)
>>>
>>> diff --git a/Documentation/DocBook/media/v4l/io.xml b/Documentation/DocBook/media/v4l/io.xml
>>> index fbd0c6e..4f76565 100644
>>> --- a/Documentation/DocBook/media/v4l/io.xml
>>> +++ b/Documentation/DocBook/media/v4l/io.xml
>>> @@ -653,6 +653,16 @@ plane, are stored in struct <structname>v4l2_plane</structname> instead.
>>>  In that case, struct <structname>v4l2_buffer</structname> contains an array of
>>>  plane structures.</para>
>>>  
>>> +    <para>Dequeued video buffers come with timestamps. These
>>> +    timestamps can be taken from different clocks and at different
>>> +    part of the frame, depending on the driver. Please see flags in
>>> +    the masks <constant>V4L2_BUF_FLAG_TIMESTAMP_MASK</constant> and
>>> +    <constant>V4L2_BUF_FLAG_TSTAMP_SRC_MASK</constant> in <xref
>>> +    linkend="buffer-flags">. These flags are guaranteed to be always
>>> +    valid and will not be changed by the driver autonomously. Changes
>>> +    in these flags may take place due as a side effect of
>>> +    &VIDIOC-S-INPUT; or &VIDIOC-S-OUTPUT; however.</para>
>>
>> There is one exception to this: if the timestamps are copied from the output
>> buffer to the capture buffer (TIMESTAMP_COPY), then it can change theoretically
>> for every buffer since it entirely depends on what is being sent to it. The
>> value comes from userspace and you simply don't have any control over that.
> 
> Yes; I agree.
> 
> And a good point as well --- the timestamp source flags currently come from
> __fill_v4l2_buffer() which takes them from q->timestamp. This isn't right
> for m2m devices.
> 
> I'll fix and resend (3rd patch most likely).

You'll want to reference this patch I posted today:

[RFCv1 PATCH 16/20] vb2: fix timecode and flags handling for output buffers

Also available in this git repo:

http://git.linuxtv.org/hverkuil/media_tree.git/shortlog/refs/heads/vb2-part4

The current implementation in vb2 is actually broken (which is one of the
things fixed by this patch): if you prepare a buffer (VIDIOC_PREPARE_BUF)
and only then call VIDIOC_QBUF with a timestamp, that timestamp will be
lost since it will use the one set by PREPARE_BUF (either that or it is
zeroed, I've forgotten which of the two it was).

If you want to take that patch and add your own changes to it, then that's
fine by me. It should be pretty much standalone.

Regards,

	Hans

  reply	other threads:[~2014-02-25 17:28 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-15 20:52 [PATCH v5 0/7] Fix buffer timestamp documentation, add new timestamp flags Sakari Ailus
2014-02-15 20:52 ` [PATCH v5 1/7] v4l: Document timestamp behaviour to correspond to reality Sakari Ailus
2014-02-15 20:53 ` [PATCH v5 2/7] v4l: Use full 32 bits for buffer flags Sakari Ailus
2014-02-17  8:46   ` Hans Verkuil
2014-02-23 11:49   ` Hans Verkuil
2014-02-24 15:34     ` Sakari Ailus
2014-02-24 16:02       ` Hans Verkuil
2014-02-24 17:57         ` Laurent Pinchart
2014-02-24 16:13       ` Kamil Debski
2014-02-25 11:44         ` 'Sakari Ailus'
2014-02-25 12:02           ` Hans Verkuil
2014-02-15 20:53 ` [PATCH v5 3/7] v4l: Add timestamp source flags, mask and document them Sakari Ailus
2014-02-17  8:54   ` Hans Verkuil
2014-02-17 23:29     ` Sakari Ailus
2014-02-20 19:41       ` [PATCH v5.1 " Sakari Ailus
2014-02-20 20:36         ` Hans Verkuil
2014-02-20 21:10           ` Sylwester Nawrocki
2014-02-20 21:20             ` Sylwester Nawrocki
2014-02-21  9:51             ` Sakari Ailus
2014-02-20 23:30           ` Laurent Pinchart
2014-02-21  7:17             ` Hans Verkuil
2014-02-21  9:31           ` Sakari Ailus
2014-02-21 11:58             ` Laurent Pinchart
2014-02-21 13:04               ` Sakari Ailus
2014-02-21 13:19                 ` Laurent Pinchart
2014-02-23 10:40             ` [PATCH v5.2 " Sakari Ailus
2014-02-23 11:36               ` Hans Verkuil
2014-02-25 13:09   ` [PATCH v5 " Kamil Debski
2014-02-26  0:09     ` 'Sakari Ailus'
2014-02-15 20:53 ` [PATCH v5 4/7] uvcvideo: Tell the user space we're using start-of-exposure timestamps Sakari Ailus
2014-02-17  0:51   ` Laurent Pinchart
2014-02-15 20:53 ` [PATCH v5 5/7] exynos-gsc, m2m-deinterlace, mx2_emmaprp: Copy v4l2_buffer data from src to dst Sakari Ailus
2014-02-25 13:08   ` Kamil Debski
2014-02-15 20:53 ` [PATCH v5 6/7] v4l: Copy timestamp source flags to destination on m2m devices Sakari Ailus
2014-02-25 13:08   ` Kamil Debski
2014-02-15 20:53 ` [PATCH v5 7/7] v4l: Document timestamp buffer flag behaviour Sakari Ailus
2014-02-15 21:03   ` Hans Verkuil
2014-02-16 17:50     ` Sakari Ailus
2014-02-17  0:56     ` Laurent Pinchart
2014-02-17  8:43       ` Hans Verkuil
2014-02-17 23:32         ` Sakari Ailus
2014-02-17 23:33           ` Sakari Ailus
2014-02-20 19:42             ` [PATCH v5.1 " Sakari Ailus
2014-02-20 20:25               ` Hans Verkuil
2014-02-23 10:39                 ` Sakari Ailus
2014-02-23 11:45   ` [PATCH v5 " Hans Verkuil
2014-02-25 17:08     ` Sakari Ailus
2014-02-25 17:28       ` Hans Verkuil [this message]
2014-02-26  0:04         ` Sakari Ailus
2014-02-26  0:07           ` Hans Verkuil

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=530CD2A6.80906@xs4all.nl \
    --to=hverkuil@xs4all.nl \
    --cc=k.debski@samsung.com \
    --cc=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.