|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 1/1] cameraif: add ABI for para-virtual camera
On 3/12/19 10:35 AM, Oleksandr Andrushchenko wrote:
> On 3/12/19 11:30 AM, Hans Verkuil wrote:
>> On 3/12/19 10:08 AM, Oleksandr Andrushchenko wrote:
>>> On 3/12/19 10:58 AM, Hans Verkuil wrote:
>>>> Hi Oleksandr,
>>>>
>>>> Just one comment:
>>>>
>>>> On 3/12/19 9:20 AM, Oleksandr Andrushchenko wrote:
>>>>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx>
>>>>>
>>>>> This is the ABI for the two halves of a para-virtualized
>>>>> camera driver which extends Xen's reach multimedia capabilities even
>>>>> farther enabling it for video conferencing, In-Vehicle Infotainment,
>>>>> high definition maps etc.
>>>>>
>>>>> The initial goal is to support most needed functionality with the
>>>>> final idea to make it possible to extend the protocol if need be:
>>>>>
>>>>> 1. Provide means for base virtual device configuration:
>>>>> - pixel formats
>>>>> - resolutions
>>>>> - frame rates
>>>>> 2. Support basic camera controls:
>>>>> - contrast
>>>>> - brightness
>>>>> - hue
>>>>> - saturation
>>>>> 3. Support streaming control
>>>>>
>>>>> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx>
>>>>> ---
>>>>> xen/include/public/io/cameraif.h | 1370 ++++++++++++++++++++++++++++++
>>>>> 1 file changed, 1370 insertions(+)
>>>>> create mode 100644 xen/include/public/io/cameraif.h
>>>>>
>>>>> diff --git a/xen/include/public/io/cameraif.h
>>>>> b/xen/include/public/io/cameraif.h
>>>>> new file mode 100644
>>>>> index 000000000000..1ae4c51ea758
>>>>> --- /dev/null
>>>>> +++ b/xen/include/public/io/cameraif.h
>>>>> @@ -0,0 +1,1370 @@
>>>> <snip>
>>>>
>>>>> +/*
>>>>> + * Request camera buffer's layout:
>>>>> + * 0 1 2 3
>>>>> octet
>>>>> + * +----------------+----------------+----------------+----------------+
>>>>> + * | id | _BUF_GET_LAYOUT| reserved |
>>>>> 4
>>>>> + * +----------------+----------------+----------------+----------------+
>>>>> + * | reserved |
>>>>> 8
>>>>> + * +----------------+----------------+----------------+----------------+
>>>>> + * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
>>>>> + * +----------------+----------------+----------------+----------------+
>>>>> + * | reserved |
>>>>> 64
>>>>> + * +----------------+----------------+----------------+----------------+
>>>>> + *
>>>>> + * See response format for this request.
>>>>> + *
>>>>> + *
>>>>> + * Request number of buffers to be used:
>>>>> + * 0 1 2 3
>>>>> octet
>>>>> + * +----------------+----------------+----------------+----------------+
>>>>> + * | id | _OP_BUF_REQUEST| reserved |
>>>>> 4
>>>>> + * +----------------+----------------+----------------+----------------+
>>>>> + * | reserved |
>>>>> 8
>>>>> + * +----------------+----------------+----------------+----------------+
>>>>> + * | num_bufs | reserved |
>>>>> 12
>>>>> + * +----------------+----------------+----------------+----------------+
>>>>> + * | reserved |
>>>>> 16
>>>>> + * +----------------+----------------+----------------+----------------+
>>>>> + * |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
>>>>> + * +----------------+----------------+----------------+----------------+
>>>>> + * | reserved |
>>>>> 64
>>>>> + * +----------------+----------------+----------------+----------------+
>>>>> + *
>>>>> + * num_bufs - uint8_t, desired number of buffers to be used.
>>>>> + *
>>>>> + * If num_bufs is not zero then the backend validates the requested
>>>>> number of
>>>>> + * buffers and responds with the number of buffers allowed for this
>>>>> frontend.
>>>>> + * Frontend is responsible for checking the corresponding response in
>>>>> order to
>>>>> + * see if the values reported back by the backend do match the desired
>>>>> ones
>>>>> + * and can be accepted.
>>>>> + * Frontend is allowed to send multiple XENCAMERA_OP_BUF_REQUEST requests
>>>>> + * before sending XENCAMERA_OP_STREAM_START request to update or tune the
>>>>> + * final configuration.
>>>>> + * Frontend is not allowed to change the number of buffers and/or camera
>>>>> + * configuration after the streaming has started.
>>>> This last sentence isn't quite right, and I missed that when reviewing the
>>>> proposed text during the v4 discussions.
>>>>
>>>> The bit about not being allowed to change the number of buffers when
>>>> streaming
>>>> has started is correct.
>>>>
>>>> But the camera configuration is more strict: you can't change the camera
>>>> configuration after this request unless you call this again with num_bufs
>>>> = 0.
>>>>
>>>> The camera configuration changes the buffer size, so once the buffers are
>>>> allocated you can no longer change the camera config. It is unrelated to
>>>> streaming.
>>> Can you please give me a hint of what would be the right thing to put in?
>> How about this:
>>
>> Frontend is not allowed to change the camera configuration after this call
>> with
>> a non-zero value of num_bufs. If camera reconfiguration is required then this
>> request must be sent with num_bufs set to zero and any created buffers must
>> be
>> destroyed first.
>>
>> Frontend is not allowed to change the number of buffers after the streaming
>> has started.
> Sounds great, so I'll replace:
>
> "Frontend is not allowed to change the number of buffers and/or camera
> configuration after the streaming has started."
>
> with:
>
> "Frontend is not allowed to change the camera configuration after this
> call with
> a non-zero value of num_bufs. If camera reconfiguration is required
> then this
> request must be sent with num_bufs set to zero and any created buffers
> must be
> destroyed first.
>
> Frontend is not allowed to change the number of buffers after the
> streaming has started.
> "
>
> Are these all the changes you see at the moment?
Also this change below...
>>>>> + *
>>>>> + * If num_bufs is 0 and streaming has not started yet, then the backend
>>>>> will
>>>>> + * free all previously allocated buffers (if any).
>>>>> + * Trying to call this if streaming is in progress will result in an
>>>>> error.
>>>>> + *
>>>>> + * If camera reconfiguration is required then the streaming must be
>>>>> stopped
>>>>> + * and this request must be sent with num_bufs set to zero and finally
>>>>> + * buffers destroyed.
>> I would rewrite the last part as well:
>>
>> ...set to zero and any created buffers must be destroyed.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
And note my note below :-)
>>
>>
>> Note that "any created buffers must be destroyed" is something that you need
>> to
>> check for in your code if I am not mistaken.
^^^^^^^^^^^^^^^^^
Regards,
Hans
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |