[libcamera-devel] [PATCH v2 1/6] libcamera: v4l2_subdevice: Store media entity
Jacopo Mondi
jacopo at jmondi.org
Tue Feb 26 09:18:46 CET 2019
Hi Niklas,
On Tue, Feb 26, 2019 at 03:30:25AM +0100, Niklas Söderlund wrote:
> Hi Jacopo,
>
> Thanks for your patch.
>
> On 2019-02-25 13:10:32 +0100, Jacopo Mondi wrote:
> > Store the media entity backing the V4L2Subdevice and add a deviceName()
> > method to retrieve the human readable name of the subdevice, which is
> > created using the name of the associated media entity.
> >
> > Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> > ---
> > src/libcamera/include/v4l2_subdevice.h | 5 ++++-
> > src/libcamera/v4l2_subdevice.cpp | 9 ++++++++-
> > 2 files changed, 12 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/libcamera/include/v4l2_subdevice.h b/src/libcamera/include/v4l2_subdevice.h
> > index 82fa6685ab52..fcfbee5af106 100644
> > --- a/src/libcamera/include/v4l2_subdevice.h
> > +++ b/src/libcamera/include/v4l2_subdevice.h
> > @@ -9,9 +9,10 @@
> >
> > #include <string>
> >
> > +#include "media_object.h"
> > +
> > namespace libcamera {
> >
> > -class MediaEntity;
> > struct Rectangle;
> >
> > struct V4L2SubdeviceFormat {
> > @@ -32,6 +33,7 @@ public:
> > void close();
> >
> > std::string deviceNode() const { return deviceNode_; }
> > + std::string deviceName() const { return entity_->name(); }
> >
> > int setCrop(unsigned int pad, Rectangle *rect);
> > int setCompose(unsigned int pad, Rectangle *rect);
> > @@ -43,6 +45,7 @@ private:
> > int setSelection(unsigned int pad, unsigned int target,
> > Rectangle *rect);
> >
> > + const MediaEntity *entity_;
> > std::string deviceNode_;
> > int fd_;
> > };
> > diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp
> > index b436f73cc75f..ebf87f0124cb 100644
> > --- a/src/libcamera/v4l2_subdevice.cpp
> > +++ b/src/libcamera/v4l2_subdevice.cpp
> > @@ -88,7 +88,7 @@ LOG_DEFINE_CATEGORY(V4L2Subdev)
> > * path
> > */
> > V4L2Subdevice::V4L2Subdevice(const MediaEntity *entity)
> > - : deviceNode_(entity->deviceNode()), fd_(-1)
> > + : entity_(entity), deviceNode_(entity->deviceNode()), fd_(-1)
>
> This looks odd. Can't you remove the deviceNode_ member of
> V4L2SubdeviceFormat and use the same schema to retrieve it as
> deviceName?
>
> std::string deviceNode() const { return entity_->deviceNode(); }
> std::string deviceName() const { return entity_->name(); }
deviceNode is used in several places, I considered it was better to
store it to avoid going through accessing the entity_.
I'm sure the advantage is not that significant, so if you prefer so,
I'll change it.
Thanks
j
>
> > {
> > }
> >
> > @@ -147,6 +147,13 @@ void V4L2Subdevice::close()
> > * \return The subdevice's device node system path
> > */
> >
> > +/**
> > + * \fn V4L2Subdevice::deviceName()
> > + * \brief Retrieve the name of the media entity associated with the subdevice
> > + *
> > + * \return The name of the media entity the subdevice is associated to
> > + */
> > +
> > /**
> > * \brief Set a crop rectangle on one of the V4L2 subdevice pads
> > * \param[in] pad The 0-indexed pad number the rectangle is to be applied to
> > --
> > 2.20.1
> >
> > _______________________________________________
> > libcamera-devel mailing list
> > libcamera-devel at lists.libcamera.org
> > https://lists.libcamera.org/listinfo/libcamera-devel
>
> --
> Regards,
> Niklas Söderlund
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20190226/45a8312f/attachment.sig>
More information about the libcamera-devel
mailing list