diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2020-07-24 14:28:01 +0200 |
---|---|---|
committer | Jacopo Mondi <jacopo@jmondi.org> | 2020-08-05 14:33:52 +0200 |
commit | 29b59a91469a5aaeab792799dfa303fc753be956 (patch) | |
tree | 7621f5f0d8ab833db210cb27f2d314ba5eb9c1d1 | |
parent | 3efc7e8834303fbc71779b199e415ccfe18a94f0 (diff) |
android: camera_metadata: Add method to update an entry
Add a method to update an existing metadata tag entry, by wrapping
the update_metadata_entry() function provided by the Android
metadata library.
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
-rw-r--r-- | src/android/camera_metadata.cpp | 27 | ||||
-rw-r--r-- | src/android/camera_metadata.h | 1 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/android/camera_metadata.cpp b/src/android/camera_metadata.cpp index ea33e9c2..f0da9ea9 100644 --- a/src/android/camera_metadata.cpp +++ b/src/android/camera_metadata.cpp @@ -46,6 +46,33 @@ bool CameraMetadata::addEntry(uint32_t tag, const void *data, size_t count) return false; } +bool CameraMetadata::updateEntry(uint32_t tag, const void *data, size_t count) +{ + if (!valid_) + return false; + + camera_metadata_entry_t entry; + int ret = find_camera_metadata_entry(metadata_, tag, &entry); + if (ret) { + const char *name = get_camera_metadata_tag_name(tag); + LOG(CameraMetadata, Error) + << "Failed to update tag " + << (name ? name : "<unknown>") << ": not present"; + return false; + } + + ret = update_camera_metadata_entry(metadata_, entry.index, data, + count, nullptr); + if (ret) { + const char *name = get_camera_metadata_tag_name(tag); + LOG(CameraMetadata, Error) + << "Failed to update tag " << (name ? name : "<unknown>"); + return false; + } + + return true; +} + camera_metadata_t *CameraMetadata::get() { return valid_ ? metadata_ : nullptr; diff --git a/src/android/camera_metadata.h b/src/android/camera_metadata.h index f16dd27b..9d047b1b 100644 --- a/src/android/camera_metadata.h +++ b/src/android/camera_metadata.h @@ -19,6 +19,7 @@ public: bool isValid() const { return valid_; } bool addEntry(uint32_t tag, const void *data, size_t data_count); + bool updateEntry(uint32_t tag, const void *data, size_t data_count); camera_metadata_t *get(); const camera_metadata_t *get() const; |