[libcamera-devel] [EXTERNAL] Re: Porting libCamera in to RDKC
Dubey, Vijayanand
vijay_dubey at comcast.com
Mon Jun 8 16:30:08 CEST 2020
Hi Laurent
Thanks for the response. RDKC's hardware platform is Ambarella (Armv7 and Arm8 architecture).
Regards
Vijay
On 6/5/20, 9:09 PM, "Laurent Pinchart" <laurent.pinchart at ideasonboard.com> wrote:
Hi Vijay,
On Fri, Jun 05, 2020 at 07:13:06PM +0000, Dubey, Vijayanand wrote:
> Hi,
>
> This is Vijay form RDK for Camera (RDKC) team in Comcast.
Nice to meet you, and thanks for your interest in libcamera.
> We are trying to understand how can we fit libCamera in our current
> architecture. In our current RDKC architecture as shown in the block diagram,
>
> [cid]
>
> camera has process called xStreamer. It runs as a web server (producer )and
> provides H264 /PCM/G711/AAC/YUV data to client applications (e.g.; live, cvr,
> video analytics etc.). Moreover it
>
> ● Controls the encoding parameter
> ● control single and multi-stream encoding
> ● Overlay on stream
>
> Camera has separate processes for Live, CVR and video analytics which connect
> to xStreamer and send the request to configure the encoding parameter and get
> the encoded or RAW AV data over socket.
>
> Based on our initial investigation of libCamera architecture I have couple of
> questions
>
> It seems current architecture of libCamera requires to have a single process
> with all functionalities(Live/CVR/Analytics etc.) Is our understanding
> correct? If yes is their plan to support the RDKC use case in libCamera? In no
> how can we align RDKC architecture with libCamera?
Your understanding is correct. While libcamera allows access to
different cameras from the same process, it doesn't support multiple
processes sharing the same camera concurrently.
This is a feature we don't plan to add to libcamera at the moment, as we
consider it out of scope. libcamera is meant to be a low-level library
to control cameras, and especially computational cameras requiring
algorithms running on the main CPU. Sharing cameras between different
processes is a feature of a higher-level component in the stack. On
desktop Linux systems, pipewire will fulfil this (as well as offering
access control features), based on libcamera as the camera provider. I
believe embedded Linux systems would also benefit from pipewire usage.
I would assume there are other middlewares that allow sharing cameras
between multiple processes. It maye make sense to add libcamera support
to one of such existing middlewares, or to develop a new one specific to
RDKC. I haven't researched this topic in details, so I can't tell which
option would be best, but I'm available for further discussions on this
topic.
Which hardware platforms does RDKC officially support or plans to
support ?
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list