android: camera_metadata: Add copy constructor and getEntry
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: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
parent
afbf0ec626
commit
5e2596006b
2 changed files with 38 additions and 0 deletions
|
@ -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_)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue