[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