mbox series

[Xen-devel,0/1] cameraif: Add ABI for para-virtualized

Message ID 20180731093142.3828-1-andr2000@gmail.com (mailing list archive)
Headers show
Series cameraif: Add ABI for para-virtualized | expand

Message

Oleksandr Andrushchenko July 31, 2018, 9:31 a.m. UTC
From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

Hello!

At the moment Xen [1] already supports some virtual multimedia
features [2] such as virtual display, sound. It supports keyboards,
pointers and multi-touch devices all allowing Xen to be used in
automotive appliances, In-Vehicle Infotainment (IVI) systems
and many more.

This work adds a new Xen para-virtualized protocol for a virtual
camera device which extends multimedia capabilities of Xen even
farther: video conferencing, IVI, 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
4. Support zero-copying use-cases

I hope that Xen and V4L and other communities could give their
valuable feedback on this work, so I can update the protocol
to better fit any additional requirements I might have missed.

Thank you,
Oleksandr Andrushchenko

[1] https://www.xenproject.org/
[2] https://xenbits.xen.org/gitweb/?p=xen.git;a=tree;f=xen/include/public/io

Oleksandr Andrushchenko (1):
  cameraif: add ABI for para-virtual camera

 xen/include/public/io/cameraif.h | 981 +++++++++++++++++++++++++++++++
 1 file changed, 981 insertions(+)
 create mode 100644 xen/include/public/io/cameraif.h

Comments

Laurent Pinchart Sept. 10, 2018, 12:48 p.m. UTC | #1
Hi Oleksandr,

Thank you for the patch.

On Tuesday, 31 July 2018 12:31:41 EEST Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> Hello!
> 
> At the moment Xen [1] already supports some virtual multimedia
> features [2] such as virtual display, sound. It supports keyboards,
> pointers and multi-touch devices all allowing Xen to be used in
> automotive appliances, In-Vehicle Infotainment (IVI) systems
> and many more.
> 
> This work adds a new Xen para-virtualized protocol for a virtual
> camera device which extends multimedia capabilities of Xen even
> farther: video conferencing, IVI, 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
> 4. Support zero-copying use-cases
> 
> I hope that Xen and V4L and other communities could give their
> valuable feedback on this work, so I can update the protocol
> to better fit any additional requirements I might have missed.

I'll start with a question : what are the expected use cases ? The ones listed 
above sound like they would better be solved by passing the corresponding 
device(s) to the guest.

> [1] https://www.xenproject.org/
> [2] https://xenbits.xen.org/gitweb/?p=xen.git;a=tree;f=xen/include/public/io
> 
> Oleksandr Andrushchenko (1):
>   cameraif: add ABI for para-virtual camera
> 
>  xen/include/public/io/cameraif.h | 981 +++++++++++++++++++++++++++++++
>  1 file changed, 981 insertions(+)
>  create mode 100644 xen/include/public/io/cameraif.h
Oleksandr Andrushchenko Sept. 10, 2018, 1:02 p.m. UTC | #2
Hi, Laurent!

On 09/10/2018 03:48 PM, Laurent Pinchart wrote:
> Hi Oleksandr,
>
> Thank you for the patch.
>
> On Tuesday, 31 July 2018 12:31:41 EEST Oleksandr Andrushchenko wrote:
>> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
>>
>> Hello!
>>
>> At the moment Xen [1] already supports some virtual multimedia
>> features [2] such as virtual display, sound. It supports keyboards,
>> pointers and multi-touch devices all allowing Xen to be used in
>> automotive appliances, In-Vehicle Infotainment (IVI) systems
>> and many more.
>>
>> This work adds a new Xen para-virtualized protocol for a virtual
>> camera device which extends multimedia capabilities of Xen even
>> farther: video conferencing, IVI, 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
>> 4. Support zero-copying use-cases
>>
>> I hope that Xen and V4L and other communities could give their
>> valuable feedback on this work, so I can update the protocol
>> to better fit any additional requirements I might have missed.
> I'll start with a question : what are the expected use cases ?
The very basic use-case is to share a capture stream produced
by a single HW camera to multiple VMs for different
purposes: In-Vehicle Infotainment, high definition maps etc.
all running in different (dedicated) VMs at the same time
>   The ones listed
> above sound like they would better be solved by passing the corresponding
> device(s) to the guest.
With the above use-case I cannot tell how passing the
corresponding *single* device can serve *multiple* VMs.
Could you please elaborate more on the solution you see?
>
>> [1] https://www.xenproject.org/
>> [2] https://xenbits.xen.org/gitweb/?p=xen.git;a=tree;f=xen/include/public/io
>>
>> Oleksandr Andrushchenko (1):
>>    cameraif: add ABI for para-virtual camera
>>
>>   xen/include/public/io/cameraif.h | 981 +++++++++++++++++++++++++++++++
>>   1 file changed, 981 insertions(+)
>>   create mode 100644 xen/include/public/io/cameraif.h
Thank you,
Oleksandr