public inbox for linux-media@vger.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: Wed, 26 Feb 2014 01:07:26 +0100	[thread overview]
Message-ID: <530D303E.1060100@xs4all.nl> (raw)
In-Reply-To: <20140226000405.GG15635@valkosipuli.retiisi.org.uk>

On 02/26/2014 01:04 AM, Sakari Ailus wrote:
> Hi Hans,
> 
> On Tue, Feb 25, 2014 at 06:28:06PM +0100, Hans Verkuil wrote:
>> 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.
> 
> I'll keep that as-is and write another to pass the timestamp source flags
> when needed. Would it be ok if I prepend the patch to the set?
> 

Sure, no problem.

	Hans

      reply	other threads:[~2014-02-26  0:07 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
2014-02-26  0:04         ` Sakari Ailus
2014-02-26  0:07           ` Hans Verkuil [this message]

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=530D303E.1060100@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox