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
prev parent 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