From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: "'Sakari Ailus'" <sakari.ailus@iki.fi>
Cc: "Laurent Pinchart" <laurent.pinchart@ideasonboard.com>,
"Kamil Debski" <k.debski@samsung.com>,
linux-media@vger.kernel.org,
"'Sebastian Dröge'" <sebastian.droege@collabora.co.uk>,
"Sylwester Nawrocki" <s.nawrocki@samsung.com>,
"Marek Szyprowski" <m.szyprowski@samsung.com>,
"Hans Verkuil" <hans.verkuil@cisco.com>
Subject: Re: [RFC] Resolution change support in video codecs in v4l2
Date: Tue, 06 Dec 2011 12:41:46 -0200 [thread overview]
Message-ID: <4EDE29AA.8090203@redhat.com> (raw)
In-Reply-To: <20111206142821.GC938@valkosipuli.localdomain>
On 06-12-2011 12:28, 'Sakari Ailus' wrote:
> Hi all,
>
> On Tue, Dec 06, 2011 at 01:00:59PM +0100, Laurent Pinchart wrote:
> ...
>>>>>>> 2) new requirement is for a bigger buffer. DMA transfers need to be
>>>>>>> stopped before actually writing inside the buffer (otherwise, memory
>>>>>>> will be corrupted).
>>>>>>>
>>>>>>> In this case, all queued buffers should be marked with an error flag.
>>>>>>> So, both V4L2_BUF_FLAG_FORMATCHANGED and V4L2_BUF_FLAG_ERROR should
>>>>>>> raise. The new format should be available via G_FMT.
>>
>> I'd like to reword this as follows:
>>
>> 1. In all cases, the application needs to be informed that the format has
>> changed.
>>
>> V4L2_BUF_FLAG_FORMATCHANGED (or a similar flag) is all we need. G_FMT will
>> report the new format.
>>
>> 2. In all cases, the application must have the option of reallocating buffers
>> if it wishes.
>>
>> In order to support this, the driver needs to wait until the application
>> acknowledged the format change before it starts decoding the stream.
>> Otherwise, if the codec started decoding the new stream to the existing
>> buffers by itself, applications wouldn't have the option of freeing the
>> existing buffers and allocating smaller ones.
>>
>> STREAMOFF/STREAMON is one way of acknowledging the format change. I'm not
>> opposed to other ways of doing that, but I think we need an acknowledgment API
>> to tell the driver to proceed.
>
> Forcing STRAEMOFF/STRAEMON has two major advantages:
>
> 1) The application will have an ability to free and reallocate buffers if it
> wishes so, and
>
> 2) It will get explicit information on the changed format. Alternative would
> require an additional API to query the format of buffers in cases the
> information isn't implicitly available.
As already said, a simple flag may give this meaning. Alternatively (or complementary,
an event may be generated, containing the new format).
>
> If we do not require STRAEMOFF/STREAMON, the stream would have to be paused
> until the application chooses to continue it after dealing with its buffers
> and formats.
No. STREAMOFF is always used to stop the stream. We can't make it mean otherwise.
So, after calling it, application should assume that frames will be lost, while
the DMA engine doesn't start again.
For things like MPEG decoders, Hans proposed an ioctl, that could use to pause
and continue the decoding.
> I'd still return a specific error when the size changes since it's more
> explicit that something is not right, rather than just a flag. But if I'm
> alone in thinking so I won't insist.
>
> Regards,
>
next prev parent reply other threads:[~2011-12-06 14:42 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-02 10:31 [RFC] Resolution change support in video codecs in v4l2 Kamil Debski
2011-12-02 12:35 ` Mauro Carvalho Chehab
2011-12-02 13:57 ` Sakari Ailus
2011-12-02 15:41 ` Kamil Debski
2011-12-02 17:07 ` Mauro Carvalho Chehab
2011-12-02 17:32 ` Kamil Debski
2011-12-02 18:09 ` Mauro Carvalho Chehab
2011-12-06 12:00 ` Laurent Pinchart
2011-12-06 14:28 ` 'Sakari Ailus'
2011-12-06 14:41 ` Mauro Carvalho Chehab [this message]
2011-12-06 15:19 ` Kamil Debski
2011-12-06 15:40 ` Mauro Carvalho Chehab
2011-12-06 16:11 ` Kamil Debski
2011-12-06 16:39 ` Mauro Carvalho Chehab
2011-12-07 11:49 ` Kamil Debski
2011-12-10 9:17 ` 'Sakari Ailus'
2011-12-12 11:11 ` Laurent Pinchart
2011-12-03 0:08 ` 'Sakari Ailus'
2011-12-05 13:01 ` Mauro Carvalho Chehab
2011-12-02 16:50 ` Mauro Carvalho Chehab
2011-12-06 14:35 ` Sakari Ailus
2011-12-06 15:03 ` Kamil Debski
2011-12-09 19:54 ` 'Sakari Ailus'
2011-12-12 10:17 ` Kamil Debski
2012-01-01 22:29 ` 'Sakari Ailus'
2012-01-04 10:19 ` Kamil Debski
2012-01-11 22:30 ` 'Sakari Ailus'
2011-12-12 10:59 ` Laurent Pinchart
2011-12-12 11:09 ` Kamil Debski
2011-12-06 16:20 ` Mauro Carvalho Chehab
2011-12-06 22:41 ` Sakari Ailus
2011-12-07 11:12 ` Kamil Debski
2011-12-09 19:58 ` 'Sakari Ailus'
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=4EDE29AA.8090203@redhat.com \
--to=mchehab@redhat.com \
--cc=hans.verkuil@cisco.com \
--cc=k.debski@samsung.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=s.nawrocki@samsung.com \
--cc=sakari.ailus@iki.fi \
--cc=sebastian.droege@collabora.co.uk \
/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