summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Expand)Author
2022-09-01libcamera: color_space: Move color space adjustment to ColorSpace classUmang Jain
2022-09-01libcamera: v4l2_videodevice: Improve toColorSpace() readabilityUmang Jain
2022-09-01libcamera: v4l2_device: Adjust colorspace based on pixel formatUmang Jain
2022-08-31libcamera: request: Rename Private::reuse() to Private::reset()Umang Jain
2022-08-31libcamera: base: signal: Disable connect() for functor if args mismatchLaurent Pinchart
2022-08-26libcamera: color_space: Add fromString() functionLaurent Pinchart
2022-08-26utils: Satisfy LegacyInputIterator with StringSplitter::iteratorLaurent Pinchart
2022-08-25libcamera: color_space: Rename Jpeg to SyccLaurent Pinchart
2022-08-21libcamera: yaml_parser: Enable YamlObject::get() for int8_t and uint8_tLaurent Pinchart
2022-08-16libcamera: base: Make message.h and mutex.h privateLaurent Pinchart
2022-08-10libcamera: Allow concurrent use of cameras from same pipeline handlerLaurent Pinchart
2022-08-10libcamera: formats: Fix warning for unknown V4L2 pixfmtJacopo Mondi
2022-08-09libcamera: pub_key: Support openssl as an alternative to gnutlsLaurent Pinchart
2022-08-09libcamera: controls: Generate and use fixed-sized Span typesChristian Rauch
2022-08-04pipeline: rkisp1: Move ControlInfoMap to IPA moduleLaurent Pinchart
2022-08-03libcamera: v4l2_subdevice: Add support for the V4L2 subdev routing APIJacopo Mondi
2022-08-03libcamera: v4l2_subdevice: Collect subdev capabilitiesJacopo Mondi
2022-08-03libcamera: v4l2_subdevice: Change V4L2Subdevice::WhenceJacopo Mondi
2022-08-03include: linux: Add V4L2 subdev internal routing APILaurent Pinchart
2022-08-03include: linux: Add V4L2 YUVA32 and YUVX32 pixel formatsLaurent Pinchart
2022-08-03include: drm_fourcc: Add AVUY and XVUY 4:4:4 packet formatsLaurent Pinchart
2022-08-03include: linux: Update kernel headers to version v5.19Laurent Pinchart
2022-08-03libcamera: v4l2_videodevice: Match formats supported by the deviceJacopo Mondi
2022-08-03libcamera: v4l2_pixelformat: Implement std::hash specializationLaurent Pinchart
2022-08-03libcamera: v4l2_pixelformat: Return the list of V4L2 formatsJacopo Mondi
2022-08-03libcamera: v4l2_videodevice: Reintroduce toV4L2PixelFormat()Jacopo Mondi
2022-08-03libcamera: formats: Merge V4L2 single and multi formatsJacopo Mondi
2022-07-28libcamera: Drop unnecessary typename keyword used with std::enable_if_tLaurent Pinchart
2022-07-28include: linux: Update rkisp1 kernel header for DPCC configurationFlorian Sylvestre
2022-07-28libcamera: base: utils: Provide defopt to simplify std::optional::value_or() ...Laurent Pinchart
2022-07-28libcamera: yaml_parser: Add getList() functionFlorian Sylvestre
2022-07-28libcamera: yaml_parser: Preserve order of items in dictionaryLaurent Pinchart
2022-07-28libcamera: yaml_parser: Replace ok flag to get() with std::optionalLaurent Pinchart
2022-07-27raspberrypi: Update Copyright statement in all Raspberry Pi source filesNaushir Patuck
2022-07-20libcamera: controls: Suppress error message from ControlList::get()Naushir Patuck
2022-07-20libcamera: controls: Drop ControlList::contains()Laurent Pinchart
2022-07-20libcamera: Remove extra ':' after '\todo'Laurent Pinchart
2022-07-19libcamera: controls: Use std::optional to handle invalid control valuesChristian Rauch
2022-07-05delayed_controls: Remove reduandant firstSequence_Kieran Bingham
2022-07-04libcamera: framebuffer: Turn the cookie into a 64-bit integerLaurent Pinchart
2022-06-29pipeline: ipa: raspberrypi: Correctly report available control limitsNaushir Patuck
2022-06-29pipeline: ipa: raspberrypi: Move ControlInfoMap to the IPANaushir Patuck
2022-06-27libcamera: v4l2_videodevice: Identify non-zero stream startsKieran Bingham
2022-06-20libcamera: yaml_parser: Add get() specializations for 16-bit integersLaurent Pinchart
2022-06-20libcamera: yaml_parser: Remove memberNames() functionLaurent Pinchart
2022-06-20libcamera: yaml_parser: Add iterator APILaurent Pinchart
2022-06-20libcamera: yaml_parser: Use std::is_same_v<>Laurent Pinchart
2022-06-16libcamera: yaml_parser: Switch from FILE to FileLaurent Pinchart
2022-06-16libcamera: yaml_parser: Extend YamlObject::size() to dictionariesLaurent Pinchart
2022-06-16libcamera: yaml_object: Turn Type into an enum classLaurent Pinchart
>/** * \var MediaObject::id_ * \brief The media object id */ /** * \class MediaLink * \brief The MediaLink represents a link between two pads in the media graph. * * Links are created from the information provided by the Media Controller API * in the media_v2_link structure. They reference the source() and sink() pads * they connect and track the link status through link flags(). * * Each link is referenced in the link array of both of the pads it connect. */ /** * \brief Enable or disable a link * \param enable True to enable the link, false to disable it * * Set the status of a link according to the value of \a enable. * Links between two pads can be set to the enabled or disabled state freely, * unless they're immutable links, whose status cannot be changed. * Enabling an immutable link is not considered an error, while trying to * disable it is. * * Enabling a link establishes a data connection between two pads, while * disabling it interrupts that connection. * * \return 0 on success, or a negative error code otherwise */ int MediaLink::setEnabled(bool enable) { unsigned int flags = enable ? MEDIA_LNK_FL_ENABLED : 0; int ret = dev_->setupLink(this, flags); if (ret) return ret; flags_ = flags; return 0; } /** * \brief Construct a MediaLink * \param link The media link kernel data * \param source The source pad at the origin of the link * \param sink The sink pad at the destination of the link */ MediaLink::MediaLink(const struct media_v2_link *link, MediaPad *source, MediaPad *sink) : MediaObject(source->device(), link->id), source_(source), sink_(sink), flags_(link->flags) { } /** * \fn MediaLink::source() * \brief Retrieve the link's source pad * \return The source pad at the origin of the link */ /** * \fn MediaLink::sink() * \brief Retrieve the link's sink pad * \return The sink pad at the destination of the link */ /** * \fn MediaLink::flags() * \brief Retrieve the link's flags * * Link flags are a bitmask of flags defined by the Media Controller API * MEDIA_LNK_FL_* macros. * * \return The link flags */ /** * \class MediaPad * \brief The MediaPad represents a pad of an entity in the media graph * * Pads are created from the information provided by the Media Controller API * in the media_v2_pad structure. They reference the entity() they belong to. * * In addition to their graph id, media graph pads are identified by an index * unique in the context of the entity the pad belongs to. * * A pad can be either a 'source' pad or a 'sink' pad. This information is * captured in the pad flags(). * * Pads are connected through links. Links originating from a source pad are * outbound links, and links arriving at a sink pad are inbound links. Pads * reference all the links() that are connected to them. */ /** * \brief Construct a MediaPad * \param pad The media pad kernel data * \param entity The entity the pad belongs to */ MediaPad::MediaPad(const struct media_v2_pad *pad, MediaEntity *entity) : MediaObject(entity->device(), pad->id), index_(pad->index), entity_(entity), flags_(pad->flags) { } MediaPad::~MediaPad() { /* * Don't delete the links as we only borrow the reference owned by * MediaDevice. */ links_.clear(); } /** * \fn MediaPad::index() * \brief Retrieve the pad index * \return The 0-based pad index identifying the pad in the context of the * entity it belongs to */ /** * \fn MediaPad::entity() * \brief Retrieve the entity the pad belongs to * \return The MediaEntity the pad belongs to */ /** * \fn MediaPad::flags() * \brief Retrieve the pad flags * * Pad flags are a bitmask of flags defined by the Media Controller API * MEDIA_PAD_FL_* macros. * * \return The pad flags */ /** * \fn MediaPad::links() * \brief Retrieve all links in the pad * \return A list of links connected to the pad */ /** * \brief Add a new link to this pad * \param link The MediaLink to add */ void MediaPad::addLink(MediaLink *link) { links_.push_back(link); } /** * \class MediaEntity * \brief The MediaEntity represents an entity in the media graph * * Entities are created from the information provided by the Media Controller * API in the media_v2_entity structure. They reference the pads() they contain. * * In addition to their graph id, media graph entities are identified by a * name() unique in the media device context. They implement a function() and * may expose a devnode(). */ /** * \fn MediaEntity::name() * \brief Retrieve the entity name * \return The entity name */ /** * \fn MediaEntity::function() * \brief Retrieve the entity's main function * * Media entity functions are expressed using the MEDIA_ENT_F_* macros * defined by the Media Controller API. * * \return The entity's function */ /** * \fn MediaEntity::devnode() * \brief Retrieve the entity's device node path, if any * * \sa int setDeviceNode() * * \return The entity's device node path, or an empty string if it is not set */ /** * \fn MediaEntity::deviceMajor() * \brief Retrieve the major number of the interface associated with the entity * \return The interface major number, or 0 if the entity isn't associated with * an interface */ /** * \fn MediaEntity::deviceMinor() * \brief Retrieve the minor number of the interface associated with the entity * \return The interface minor number, or 0 if the entity isn't associated with * an interface */ /** * \fn MediaEntity::pads() * \brief Retrieve all pads of the entity * \return The list of the entity's pads */ /**