Exposes internal MediaEntity::Entity list to help extracting more information regarding linked entities. For example, when the pad index of the last device in the list need to be retrieved from the media pipeline user. Exposes as const to with a dedicated access to prevent any corruption from user. Then it is still protected so as when the list was private. Since MediaPipeline::Entity needs also to be moved to public, then need to add some documentation in cpp source. Existing documentation from header file is applied when available. Signed-off-by: Andrei Gansari <andrei.gansari@nxp.com> Signed-off-by: Antoine Bouyer <antoine.bouyer@nxp.com> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
45 lines
779 B
C++
45 lines
779 B
C++
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
/*
|
|
* Copyright (C) 2024, Ideas on Board Oy
|
|
*
|
|
* Media pipeline support
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <list>
|
|
#include <string>
|
|
|
|
#include <libcamera/base/log.h>
|
|
|
|
namespace libcamera {
|
|
|
|
class CameraSensor;
|
|
class MediaEntity;
|
|
class MediaLink;
|
|
class MediaPad;
|
|
struct V4L2SubdeviceFormat;
|
|
|
|
class MediaPipeline
|
|
{
|
|
public:
|
|
struct Entity {
|
|
MediaEntity *entity;
|
|
bool supportsRouting;
|
|
const MediaPad *sink;
|
|
const MediaPad *source;
|
|
MediaLink *sourceLink;
|
|
};
|
|
|
|
int init(MediaEntity *source, std::string_view sink);
|
|
int initLinks();
|
|
int configure(CameraSensor *sensor, V4L2SubdeviceFormat *);
|
|
|
|
const std::list<Entity> &entities() const { return entities_; }
|
|
|
|
private:
|
|
std::list<Entity> entities_;
|
|
};
|
|
|
|
} /* namespace libcamera */
|