Message ID | 20210121165305.367801-2-jacopo@jmondi.org |
---|---|
State | Accepted |
Headers | show |
Series |
|
Related | show |
Hi Jacopo, Thank you for the patch. On Thu, Jan 21, 2021 at 05:52:59PM +0100, Jacopo Mondi wrote: > From: Paul Elder <paul.elder@ideasonboard.com> > > Add a copy constructor and assignment operator to CameraMetadata, as well > a constructor from camera_metadata_t. Also add a function getEntry to > allow getting metadata entries from CameraMetadata. This allows us to > use CameraMetadata for reading from camera_metadata_t. > > Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > src/android/camera_metadata.cpp | 33 +++++++++++++++++++++++++++++++++ > src/android/camera_metadata.h | 5 +++++ > 2 files changed, 38 insertions(+) > > diff --git a/src/android/camera_metadata.cpp b/src/android/camera_metadata.cpp > index edea48fe5581..8e36e758d231 100644 > --- a/src/android/camera_metadata.cpp > +++ b/src/android/camera_metadata.cpp > @@ -19,12 +19,45 @@ CameraMetadata::CameraMetadata(size_t entryCapacity, size_t dataCapacity) > valid_ = metadata_ != nullptr; > } > > +CameraMetadata::CameraMetadata(const camera_metadata_t *metadata) > +{ > + metadata_ = clone_camera_metadata(metadata); > + valid_ = metadata_ != nullptr; > +} > + > +CameraMetadata::CameraMetadata(const CameraMetadata &other) > + : CameraMetadata(other.get()) > +{ > +} > + > CameraMetadata::~CameraMetadata() > { > if (metadata_) > free_camera_metadata(metadata_); > } > > +CameraMetadata &CameraMetadata::operator=(const CameraMetadata &other) > +{ > + if (this == &other) > + return *this; > + > + if (metadata_) > + free_camera_metadata(metadata_); > + > + metadata_ = clone_camera_metadata(other.get()); > + valid_ = metadata_ != nullptr; > + > + return *this; > +} > + > +bool CameraMetadata::getEntry(uint32_t tag, camera_metadata_ro_entry_t *entry) const > +{ > + if (find_camera_metadata_ro_entry(metadata_, tag, entry)) > + return false; > + > + return true; > +} > + > bool CameraMetadata::addEntry(uint32_t tag, const void *data, size_t count) > { > if (!valid_) > diff --git a/src/android/camera_metadata.h b/src/android/camera_metadata.h > index 9d047b1bb534..720b760d44da 100644 > --- a/src/android/camera_metadata.h > +++ b/src/android/camera_metadata.h > @@ -15,9 +15,14 @@ class CameraMetadata > { > public: > CameraMetadata(size_t entryCapacity, size_t dataCapacity); > + CameraMetadata(const camera_metadata_t *metadata); > + CameraMetadata(const CameraMetadata &other); > ~CameraMetadata(); > > + CameraMetadata &operator=(const CameraMetadata &other); > + > bool isValid() const { return valid_; } > + bool getEntry(uint32_t tag, camera_metadata_ro_entry_t *entry) const; > bool addEntry(uint32_t tag, const void *data, size_t data_count); > bool updateEntry(uint32_t tag, const void *data, size_t data_count); >
Hi Jacopo, On Thu, Jan 21, 2021 at 05:52:59PM +0100, Jacopo Mondi wrote: > From: Paul Elder <paul.elder@ideasonboard.com> > > Add a copy constructor and assignment operator to CameraMetadata, as well > a constructor from camera_metadata_t. Also add a function getEntry to > allow getting metadata entries from CameraMetadata. This allows us to > use CameraMetadata for reading from camera_metadata_t. > > Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> (Can I review a patch that's from me?) Anyway for the minor fix that you applied, Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> > --- > src/android/camera_metadata.cpp | 33 +++++++++++++++++++++++++++++++++ > src/android/camera_metadata.h | 5 +++++ > 2 files changed, 38 insertions(+) > > diff --git a/src/android/camera_metadata.cpp b/src/android/camera_metadata.cpp > index edea48fe5581..8e36e758d231 100644 > --- a/src/android/camera_metadata.cpp > +++ b/src/android/camera_metadata.cpp > @@ -19,12 +19,45 @@ CameraMetadata::CameraMetadata(size_t entryCapacity, size_t dataCapacity) > valid_ = metadata_ != nullptr; > } > > +CameraMetadata::CameraMetadata(const camera_metadata_t *metadata) > +{ > + metadata_ = clone_camera_metadata(metadata); > + valid_ = metadata_ != nullptr; > +} > + > +CameraMetadata::CameraMetadata(const CameraMetadata &other) > + : CameraMetadata(other.get()) > +{ > +} > + > CameraMetadata::~CameraMetadata() > { > if (metadata_) > free_camera_metadata(metadata_); > } > > +CameraMetadata &CameraMetadata::operator=(const CameraMetadata &other) > +{ > + if (this == &other) > + return *this; > + > + if (metadata_) > + free_camera_metadata(metadata_); > + > + metadata_ = clone_camera_metadata(other.get()); > + valid_ = metadata_ != nullptr; > + > + return *this; > +} > + > +bool CameraMetadata::getEntry(uint32_t tag, camera_metadata_ro_entry_t *entry) const > +{ > + if (find_camera_metadata_ro_entry(metadata_, tag, entry)) > + return false; > + > + return true; > +} > + > bool CameraMetadata::addEntry(uint32_t tag, const void *data, size_t count) > { > if (!valid_) > diff --git a/src/android/camera_metadata.h b/src/android/camera_metadata.h > index 9d047b1bb534..720b760d44da 100644 > --- a/src/android/camera_metadata.h > +++ b/src/android/camera_metadata.h > @@ -15,9 +15,14 @@ class CameraMetadata > { > public: > CameraMetadata(size_t entryCapacity, size_t dataCapacity); > + CameraMetadata(const camera_metadata_t *metadata); > + CameraMetadata(const CameraMetadata &other); > ~CameraMetadata(); > > + CameraMetadata &operator=(const CameraMetadata &other); > + > bool isValid() const { return valid_; } > + bool getEntry(uint32_t tag, camera_metadata_ro_entry_t *entry) const; > bool addEntry(uint32_t tag, const void *data, size_t data_count); > bool updateEntry(uint32_t tag, const void *data, size_t data_count); > > -- > 2.29.2 >
Hi Paul, On Fri, Jan 22, 2021 at 12:42:00PM +0900, paul.elder@ideasonboard.com wrote: > Hi Jacopo, > > On Thu, Jan 21, 2021 at 05:52:59PM +0100, Jacopo Mondi wrote: > > From: Paul Elder <paul.elder@ideasonboard.com> > > > > Add a copy constructor and assignment operator to CameraMetadata, as well > > a constructor from camera_metadata_t. Also add a function getEntry to > > allow getting metadata entries from CameraMetadata. This allows us to > > use CameraMetadata for reading from camera_metadata_t. > > > > Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> > > (Can I review a patch that's from me?) Sure you can > > Anyway for the minor fix that you applied, I'm sorry I just realized I took the liberty to edit your patch and re-send it. I should have asked first. > > Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Thanks j > > > --- > > src/android/camera_metadata.cpp | 33 +++++++++++++++++++++++++++++++++ > > src/android/camera_metadata.h | 5 +++++ > > 2 files changed, 38 insertions(+) > > > > diff --git a/src/android/camera_metadata.cpp b/src/android/camera_metadata.cpp > > index edea48fe5581..8e36e758d231 100644 > > --- a/src/android/camera_metadata.cpp > > +++ b/src/android/camera_metadata.cpp > > @@ -19,12 +19,45 @@ CameraMetadata::CameraMetadata(size_t entryCapacity, size_t dataCapacity) > > valid_ = metadata_ != nullptr; > > } > > > > +CameraMetadata::CameraMetadata(const camera_metadata_t *metadata) > > +{ > > + metadata_ = clone_camera_metadata(metadata); > > + valid_ = metadata_ != nullptr; > > +} > > + > > +CameraMetadata::CameraMetadata(const CameraMetadata &other) > > + : CameraMetadata(other.get()) > > +{ > > +} > > + > > CameraMetadata::~CameraMetadata() > > { > > if (metadata_) > > free_camera_metadata(metadata_); > > } > > > > +CameraMetadata &CameraMetadata::operator=(const CameraMetadata &other) > > +{ > > + if (this == &other) > > + return *this; > > + > > + if (metadata_) > > + free_camera_metadata(metadata_); > > + > > + metadata_ = clone_camera_metadata(other.get()); > > + valid_ = metadata_ != nullptr; > > + > > + return *this; > > +} > > + > > +bool CameraMetadata::getEntry(uint32_t tag, camera_metadata_ro_entry_t *entry) const > > +{ > > + if (find_camera_metadata_ro_entry(metadata_, tag, entry)) > > + return false; > > + > > + return true; > > +} > > + > > bool CameraMetadata::addEntry(uint32_t tag, const void *data, size_t count) > > { > > if (!valid_) > > diff --git a/src/android/camera_metadata.h b/src/android/camera_metadata.h > > index 9d047b1bb534..720b760d44da 100644 > > --- a/src/android/camera_metadata.h > > +++ b/src/android/camera_metadata.h > > @@ -15,9 +15,14 @@ class CameraMetadata > > { > > public: > > CameraMetadata(size_t entryCapacity, size_t dataCapacity); > > + CameraMetadata(const camera_metadata_t *metadata); > > + CameraMetadata(const CameraMetadata &other); > > ~CameraMetadata(); > > > > + CameraMetadata &operator=(const CameraMetadata &other); > > + > > bool isValid() const { return valid_; } > > + bool getEntry(uint32_t tag, camera_metadata_ro_entry_t *entry) const; > > bool addEntry(uint32_t tag, const void *data, size_t data_count); > > bool updateEntry(uint32_t tag, const void *data, size_t data_count); > > > > -- > > 2.29.2 > >
diff --git a/src/android/camera_metadata.cpp b/src/android/camera_metadata.cpp index edea48fe5581..8e36e758d231 100644 --- a/src/android/camera_metadata.cpp +++ b/src/android/camera_metadata.cpp @@ -19,12 +19,45 @@ CameraMetadata::CameraMetadata(size_t entryCapacity, size_t dataCapacity) valid_ = metadata_ != nullptr; } +CameraMetadata::CameraMetadata(const camera_metadata_t *metadata) +{ + metadata_ = clone_camera_metadata(metadata); + valid_ = metadata_ != nullptr; +} + +CameraMetadata::CameraMetadata(const CameraMetadata &other) + : CameraMetadata(other.get()) +{ +} + CameraMetadata::~CameraMetadata() { if (metadata_) free_camera_metadata(metadata_); } +CameraMetadata &CameraMetadata::operator=(const CameraMetadata &other) +{ + if (this == &other) + return *this; + + if (metadata_) + free_camera_metadata(metadata_); + + metadata_ = clone_camera_metadata(other.get()); + valid_ = metadata_ != nullptr; + + return *this; +} + +bool CameraMetadata::getEntry(uint32_t tag, camera_metadata_ro_entry_t *entry) const +{ + if (find_camera_metadata_ro_entry(metadata_, tag, entry)) + return false; + + return true; +} + bool CameraMetadata::addEntry(uint32_t tag, const void *data, size_t count) { if (!valid_) diff --git a/src/android/camera_metadata.h b/src/android/camera_metadata.h index 9d047b1bb534..720b760d44da 100644 --- a/src/android/camera_metadata.h +++ b/src/android/camera_metadata.h @@ -15,9 +15,14 @@ class CameraMetadata { public: CameraMetadata(size_t entryCapacity, size_t dataCapacity); + CameraMetadata(const camera_metadata_t *metadata); + CameraMetadata(const CameraMetadata &other); ~CameraMetadata(); + CameraMetadata &operator=(const CameraMetadata &other); + bool isValid() const { return valid_; } + bool getEntry(uint32_t tag, camera_metadata_ro_entry_t *entry) const; bool addEntry(uint32_t tag, const void *data, size_t data_count); bool updateEntry(uint32_t tag, const void *data, size_t data_count);