mirror of
https://github.com/chararomandroid/android_device_samsung_a20
synced 2026-08-23 12:35:33 -04:00
universal7885: run clang-format based on system-clang-format
* On every *.cpp *.h files Signed-off-by: roynatech2544 <whiteshell2544@naver.com>
This commit is contained in:
parent
6bc1c25485
commit
098179eabb
47 changed files with 1545 additions and 1709 deletions
|
|
@ -24,41 +24,34 @@
|
|||
|
||||
namespace android {
|
||||
|
||||
#define ALIGN_TO(val, alignment) \
|
||||
(((uintptr_t)(val) + ((alignment) - 1)) & ~((alignment) - 1))
|
||||
#define ALIGN_TO(val, alignment) (((uintptr_t)(val) + ((alignment)-1)) & ~((alignment)-1))
|
||||
|
||||
CameraMetadata::CameraMetadata() :
|
||||
mBuffer(NULL), mLocked(false) {
|
||||
}
|
||||
CameraMetadata::CameraMetadata() : mBuffer(NULL), mLocked(false) {}
|
||||
|
||||
CameraMetadata::CameraMetadata(size_t entryCapacity, size_t dataCapacity) :
|
||||
mLocked(false)
|
||||
{
|
||||
CameraMetadata::CameraMetadata(size_t entryCapacity, size_t dataCapacity) : mLocked(false) {
|
||||
mBuffer = allocate_camera_metadata(entryCapacity, dataCapacity);
|
||||
}
|
||||
|
||||
CameraMetadata::CameraMetadata(const CameraMetadata &other) :
|
||||
mLocked(false) {
|
||||
CameraMetadata::CameraMetadata(const CameraMetadata& other) : mLocked(false) {
|
||||
mBuffer = clone_camera_metadata(other.mBuffer);
|
||||
}
|
||||
|
||||
CameraMetadata::CameraMetadata(camera_metadata_t *buffer) :
|
||||
mBuffer(NULL), mLocked(false) {
|
||||
CameraMetadata::CameraMetadata(camera_metadata_t* buffer) : mBuffer(NULL), mLocked(false) {
|
||||
acquire(buffer);
|
||||
}
|
||||
|
||||
CameraMetadata &CameraMetadata::operator=(const CameraMetadata &other) {
|
||||
CameraMetadata& CameraMetadata::operator=(const CameraMetadata& other) {
|
||||
return operator=(other.mBuffer);
|
||||
}
|
||||
|
||||
CameraMetadata &CameraMetadata::operator=(const camera_metadata_t *buffer) {
|
||||
CameraMetadata& CameraMetadata::operator=(const camera_metadata_t* buffer) {
|
||||
if (mLocked) {
|
||||
ALOGE("%s: Assignment to a locked CameraMetadata!", __FUNCTION__);
|
||||
return *this;
|
||||
}
|
||||
|
||||
if (CC_LIKELY(buffer != mBuffer)) {
|
||||
camera_metadata_t *newBuffer = clone_camera_metadata(buffer);
|
||||
camera_metadata_t* newBuffer = clone_camera_metadata(buffer);
|
||||
clear();
|
||||
mBuffer = newBuffer;
|
||||
}
|
||||
|
|
@ -75,14 +68,13 @@ const camera_metadata_t* CameraMetadata::getAndLock() const {
|
|||
return mBuffer;
|
||||
}
|
||||
|
||||
status_t CameraMetadata::unlock(const camera_metadata_t *buffer) const {
|
||||
status_t CameraMetadata::unlock(const camera_metadata_t* buffer) const {
|
||||
if (!mLocked) {
|
||||
ALOGE("%s: Can't unlock a non-locked CameraMetadata!", __FUNCTION__);
|
||||
return INVALID_OPERATION;
|
||||
}
|
||||
if (buffer != mBuffer) {
|
||||
ALOGE("%s: Can't unlock CameraMetadata with wrong pointer!",
|
||||
__FUNCTION__);
|
||||
ALOGE("%s: Can't unlock CameraMetadata with wrong pointer!", __FUNCTION__);
|
||||
return BAD_VALUE;
|
||||
}
|
||||
mLocked = false;
|
||||
|
|
@ -94,7 +86,7 @@ camera_metadata_t* CameraMetadata::release() {
|
|||
ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
camera_metadata_t *released = mBuffer;
|
||||
camera_metadata_t* released = mBuffer;
|
||||
mBuffer = NULL;
|
||||
return released;
|
||||
}
|
||||
|
|
@ -110,7 +102,7 @@ void CameraMetadata::clear() {
|
|||
}
|
||||
}
|
||||
|
||||
void CameraMetadata::acquire(camera_metadata_t *buffer) {
|
||||
void CameraMetadata::acquire(camera_metadata_t* buffer) {
|
||||
if (mLocked) {
|
||||
ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
|
||||
return;
|
||||
|
|
@ -118,12 +110,11 @@ void CameraMetadata::acquire(camera_metadata_t *buffer) {
|
|||
clear();
|
||||
mBuffer = buffer;
|
||||
|
||||
ALOGE_IF(validate_camera_metadata_structure(mBuffer, /*size*/NULL) != OK,
|
||||
"%s: Failed to validate metadata structure %p",
|
||||
__FUNCTION__, buffer);
|
||||
ALOGE_IF(validate_camera_metadata_structure(mBuffer, /*size*/ NULL) != OK,
|
||||
"%s: Failed to validate metadata structure %p", __FUNCTION__, buffer);
|
||||
}
|
||||
|
||||
void CameraMetadata::acquire(CameraMetadata &other) {
|
||||
void CameraMetadata::acquire(CameraMetadata& other) {
|
||||
if (mLocked) {
|
||||
ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
|
||||
return;
|
||||
|
|
@ -131,7 +122,7 @@ void CameraMetadata::acquire(CameraMetadata &other) {
|
|||
acquire(other.release());
|
||||
}
|
||||
|
||||
status_t CameraMetadata::append(const CameraMetadata &other) {
|
||||
status_t CameraMetadata::append(const CameraMetadata& other) {
|
||||
return append(other.mBuffer);
|
||||
}
|
||||
|
||||
|
|
@ -148,8 +139,7 @@ status_t CameraMetadata::append(const camera_metadata_t* other) {
|
|||
}
|
||||
|
||||
size_t CameraMetadata::entryCount() const {
|
||||
return (mBuffer == NULL) ? 0 :
|
||||
get_camera_metadata_entry_count(mBuffer);
|
||||
return (mBuffer == NULL) ? 0 : get_camera_metadata_entry_count(mBuffer);
|
||||
}
|
||||
|
||||
bool CameraMetadata::isEmpty() const {
|
||||
|
|
@ -166,127 +156,119 @@ status_t CameraMetadata::sort() {
|
|||
|
||||
status_t CameraMetadata::checkType(uint32_t tag, uint8_t expectedType) {
|
||||
int tagType = get_local_camera_metadata_tag_type(tag, mBuffer);
|
||||
if ( CC_UNLIKELY(tagType == -1)) {
|
||||
if (CC_UNLIKELY(tagType == -1)) {
|
||||
ALOGE("Update metadata entry: Unknown tag %d", tag);
|
||||
return INVALID_OPERATION;
|
||||
}
|
||||
if ( CC_UNLIKELY(tagType != expectedType) ) {
|
||||
if (CC_UNLIKELY(tagType != expectedType)) {
|
||||
ALOGE("Mismatched tag type when updating entry %s (%d) of type %s; "
|
||||
"got type %s data instead ",
|
||||
get_local_camera_metadata_tag_name(tag, mBuffer), tag,
|
||||
camera_metadata_type_names[tagType],
|
||||
camera_metadata_type_names[expectedType]);
|
||||
"got type %s data instead ",
|
||||
get_local_camera_metadata_tag_name(tag, mBuffer), tag,
|
||||
camera_metadata_type_names[tagType], camera_metadata_type_names[expectedType]);
|
||||
return INVALID_OPERATION;
|
||||
}
|
||||
return OK;
|
||||
}
|
||||
|
||||
status_t CameraMetadata::update(uint32_t tag,
|
||||
const int32_t *data, size_t data_count) {
|
||||
status_t CameraMetadata::update(uint32_t tag, const int32_t* data, size_t data_count) {
|
||||
status_t res;
|
||||
if (mLocked) {
|
||||
ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
|
||||
return INVALID_OPERATION;
|
||||
}
|
||||
if ( (res = checkType(tag, TYPE_INT32)) != OK) {
|
||||
if ((res = checkType(tag, TYPE_INT32)) != OK) {
|
||||
return res;
|
||||
}
|
||||
return updateImpl(tag, (const void*)data, data_count);
|
||||
}
|
||||
|
||||
status_t CameraMetadata::update(uint32_t tag,
|
||||
const uint8_t *data, size_t data_count) {
|
||||
status_t CameraMetadata::update(uint32_t tag, const uint8_t* data, size_t data_count) {
|
||||
status_t res;
|
||||
if (mLocked) {
|
||||
ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
|
||||
return INVALID_OPERATION;
|
||||
}
|
||||
if ( (res = checkType(tag, TYPE_BYTE)) != OK) {
|
||||
if ((res = checkType(tag, TYPE_BYTE)) != OK) {
|
||||
return res;
|
||||
}
|
||||
return updateImpl(tag, (const void*)data, data_count);
|
||||
}
|
||||
|
||||
status_t CameraMetadata::update(uint32_t tag,
|
||||
const float *data, size_t data_count) {
|
||||
status_t CameraMetadata::update(uint32_t tag, const float* data, size_t data_count) {
|
||||
status_t res;
|
||||
if (mLocked) {
|
||||
ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
|
||||
return INVALID_OPERATION;
|
||||
}
|
||||
if ( (res = checkType(tag, TYPE_FLOAT)) != OK) {
|
||||
if ((res = checkType(tag, TYPE_FLOAT)) != OK) {
|
||||
return res;
|
||||
}
|
||||
return updateImpl(tag, (const void*)data, data_count);
|
||||
}
|
||||
|
||||
status_t CameraMetadata::update(uint32_t tag,
|
||||
const int64_t *data, size_t data_count) {
|
||||
status_t CameraMetadata::update(uint32_t tag, const int64_t* data, size_t data_count) {
|
||||
status_t res;
|
||||
if (mLocked) {
|
||||
ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
|
||||
return INVALID_OPERATION;
|
||||
}
|
||||
if ( (res = checkType(tag, TYPE_INT64)) != OK) {
|
||||
if ((res = checkType(tag, TYPE_INT64)) != OK) {
|
||||
return res;
|
||||
}
|
||||
return updateImpl(tag, (const void*)data, data_count);
|
||||
}
|
||||
|
||||
status_t CameraMetadata::update(uint32_t tag,
|
||||
const double *data, size_t data_count) {
|
||||
status_t CameraMetadata::update(uint32_t tag, const double* data, size_t data_count) {
|
||||
status_t res;
|
||||
if (mLocked) {
|
||||
ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
|
||||
return INVALID_OPERATION;
|
||||
}
|
||||
if ( (res = checkType(tag, TYPE_DOUBLE)) != OK) {
|
||||
if ((res = checkType(tag, TYPE_DOUBLE)) != OK) {
|
||||
return res;
|
||||
}
|
||||
return updateImpl(tag, (const void*)data, data_count);
|
||||
}
|
||||
|
||||
status_t CameraMetadata::update(uint32_t tag,
|
||||
const camera_metadata_rational_t *data, size_t data_count) {
|
||||
status_t CameraMetadata::update(uint32_t tag, const camera_metadata_rational_t* data,
|
||||
size_t data_count) {
|
||||
status_t res;
|
||||
if (mLocked) {
|
||||
ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
|
||||
return INVALID_OPERATION;
|
||||
}
|
||||
if ( (res = checkType(tag, TYPE_RATIONAL)) != OK) {
|
||||
if ((res = checkType(tag, TYPE_RATIONAL)) != OK) {
|
||||
return res;
|
||||
}
|
||||
return updateImpl(tag, (const void*)data, data_count);
|
||||
}
|
||||
|
||||
status_t CameraMetadata::update(uint32_t tag,
|
||||
const String8 &string) {
|
||||
status_t CameraMetadata::update(uint32_t tag, const String8& string) {
|
||||
status_t res;
|
||||
if (mLocked) {
|
||||
ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
|
||||
return INVALID_OPERATION;
|
||||
}
|
||||
if ( (res = checkType(tag, TYPE_BYTE)) != OK) {
|
||||
if ((res = checkType(tag, TYPE_BYTE)) != OK) {
|
||||
return res;
|
||||
}
|
||||
// string.size() doesn't count the null termination character.
|
||||
return updateImpl(tag, (const void*)string.string(), string.size() + 1);
|
||||
}
|
||||
|
||||
status_t CameraMetadata::update(const camera_metadata_ro_entry &entry) {
|
||||
status_t CameraMetadata::update(const camera_metadata_ro_entry& entry) {
|
||||
status_t res;
|
||||
if (mLocked) {
|
||||
ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
|
||||
return INVALID_OPERATION;
|
||||
}
|
||||
if ( (res = checkType(entry.tag, entry.type)) != OK) {
|
||||
if ((res = checkType(entry.tag, entry.type)) != OK) {
|
||||
return res;
|
||||
}
|
||||
return updateImpl(entry.tag, (const void*)entry.data.u8, entry.count);
|
||||
}
|
||||
|
||||
status_t CameraMetadata::updateImpl(uint32_t tag, const void *data,
|
||||
size_t data_count) {
|
||||
status_t CameraMetadata::updateImpl(uint32_t tag, const void* data, size_t data_count) {
|
||||
status_t res;
|
||||
if (mLocked) {
|
||||
ALOGE("%s: CameraMetadata is locked", __FUNCTION__);
|
||||
|
|
@ -303,13 +285,11 @@ status_t CameraMetadata::updateImpl(uint32_t tag, const void *data,
|
|||
uintptr_t bufAddr = reinterpret_cast<uintptr_t>(mBuffer);
|
||||
uintptr_t dataAddr = reinterpret_cast<uintptr_t>(data);
|
||||
if (dataAddr > bufAddr && dataAddr < (bufAddr + bufferSize)) {
|
||||
ALOGE("%s: Update attempted with data from the same metadata buffer!",
|
||||
__FUNCTION__);
|
||||
ALOGE("%s: Update attempted with data from the same metadata buffer!", __FUNCTION__);
|
||||
return INVALID_OPERATION;
|
||||
}
|
||||
|
||||
size_t data_size = calculate_camera_metadata_entry_data_size(type,
|
||||
data_count);
|
||||
size_t data_size = calculate_camera_metadata_entry_data_size(type, data_count);
|
||||
|
||||
res = resizeIfNeeded(1, data_size);
|
||||
|
||||
|
|
@ -317,27 +297,23 @@ status_t CameraMetadata::updateImpl(uint32_t tag, const void *data,
|
|||
camera_metadata_entry_t entry;
|
||||
res = find_camera_metadata_entry(mBuffer, tag, &entry);
|
||||
if (res == NAME_NOT_FOUND) {
|
||||
res = add_camera_metadata_entry(mBuffer,
|
||||
tag, data, data_count);
|
||||
res = add_camera_metadata_entry(mBuffer, tag, data, data_count);
|
||||
} else if (res == OK) {
|
||||
res = update_camera_metadata_entry(mBuffer,
|
||||
entry.index, data, data_count, NULL);
|
||||
res = update_camera_metadata_entry(mBuffer, entry.index, data, data_count, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
if (res != OK) {
|
||||
ALOGE("%s: Unable to update metadata entry %s.%s (%x): %s (%d)",
|
||||
__FUNCTION__, get_local_camera_metadata_section_name(tag, mBuffer),
|
||||
get_local_camera_metadata_tag_name(tag, mBuffer), tag,
|
||||
strerror(-res), res);
|
||||
ALOGE("%s: Unable to update metadata entry %s.%s (%x): %s (%d)", __FUNCTION__,
|
||||
get_local_camera_metadata_section_name(tag, mBuffer),
|
||||
get_local_camera_metadata_tag_name(tag, mBuffer), tag, strerror(-res), res);
|
||||
}
|
||||
|
||||
IF_ALOGV() {
|
||||
ALOGE_IF(validate_camera_metadata_structure(mBuffer, /*size*/NULL) !=
|
||||
OK,
|
||||
ALOGE_IF(validate_camera_metadata_structure(mBuffer, /*size*/ NULL) != OK,
|
||||
|
||||
"%s: Failed to validate metadata structure after update %p",
|
||||
__FUNCTION__, mBuffer);
|
||||
"%s: Failed to validate metadata structure after update %p", __FUNCTION__,
|
||||
mBuffer);
|
||||
}
|
||||
|
||||
return res;
|
||||
|
|
@ -357,7 +333,7 @@ camera_metadata_entry_t CameraMetadata::find(uint32_t tag) {
|
|||
return entry;
|
||||
}
|
||||
res = find_camera_metadata_entry(mBuffer, tag, &entry);
|
||||
if (CC_UNLIKELY( res != OK )) {
|
||||
if (CC_UNLIKELY(res != OK)) {
|
||||
entry.count = 0;
|
||||
entry.data.u8 = NULL;
|
||||
}
|
||||
|
|
@ -368,7 +344,7 @@ camera_metadata_ro_entry_t CameraMetadata::find(uint32_t tag) const {
|
|||
status_t res;
|
||||
camera_metadata_ro_entry entry;
|
||||
res = find_camera_metadata_ro_entry(mBuffer, tag, &entry);
|
||||
if (CC_UNLIKELY( res != OK )) {
|
||||
if (CC_UNLIKELY(res != OK)) {
|
||||
entry.count = 0;
|
||||
entry.data.u8 = NULL;
|
||||
}
|
||||
|
|
@ -386,20 +362,16 @@ status_t CameraMetadata::erase(uint32_t tag) {
|
|||
if (res == NAME_NOT_FOUND) {
|
||||
return OK;
|
||||
} else if (res != OK) {
|
||||
ALOGE("%s: Error looking for entry %s.%s (%x): %s %d",
|
||||
__FUNCTION__,
|
||||
get_local_camera_metadata_section_name(tag, mBuffer),
|
||||
get_local_camera_metadata_tag_name(tag, mBuffer),
|
||||
tag, strerror(-res), res);
|
||||
ALOGE("%s: Error looking for entry %s.%s (%x): %s %d", __FUNCTION__,
|
||||
get_local_camera_metadata_section_name(tag, mBuffer),
|
||||
get_local_camera_metadata_tag_name(tag, mBuffer), tag, strerror(-res), res);
|
||||
return res;
|
||||
}
|
||||
res = delete_camera_metadata_entry(mBuffer, entry.index);
|
||||
if (res != OK) {
|
||||
ALOGE("%s: Error deleting entry %s.%s (%x): %s %d",
|
||||
__FUNCTION__,
|
||||
get_local_camera_metadata_section_name(tag, mBuffer),
|
||||
get_local_camera_metadata_tag_name(tag, mBuffer),
|
||||
tag, strerror(-res), res);
|
||||
ALOGE("%s: Error deleting entry %s.%s (%x): %s %d", __FUNCTION__,
|
||||
get_local_camera_metadata_section_name(tag, mBuffer),
|
||||
get_local_camera_metadata_tag_name(tag, mBuffer), tag, strerror(-res), res);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
|
@ -418,23 +390,17 @@ status_t CameraMetadata::resizeIfNeeded(size_t extraEntries, size_t extraData) {
|
|||
} else {
|
||||
size_t currentEntryCount = get_camera_metadata_entry_count(mBuffer);
|
||||
size_t currentEntryCap = get_camera_metadata_entry_capacity(mBuffer);
|
||||
size_t newEntryCount = currentEntryCount +
|
||||
extraEntries;
|
||||
newEntryCount = (newEntryCount > currentEntryCap) ?
|
||||
newEntryCount * 2 : currentEntryCap;
|
||||
size_t newEntryCount = currentEntryCount + extraEntries;
|
||||
newEntryCount = (newEntryCount > currentEntryCap) ? newEntryCount * 2 : currentEntryCap;
|
||||
|
||||
size_t currentDataCount = get_camera_metadata_data_count(mBuffer);
|
||||
size_t currentDataCap = get_camera_metadata_data_capacity(mBuffer);
|
||||
size_t newDataCount = currentDataCount +
|
||||
extraData;
|
||||
newDataCount = (newDataCount > currentDataCap) ?
|
||||
newDataCount * 2 : currentDataCap;
|
||||
size_t newDataCount = currentDataCount + extraData;
|
||||
newDataCount = (newDataCount > currentDataCap) ? newDataCount * 2 : currentDataCap;
|
||||
|
||||
if (newEntryCount > currentEntryCap ||
|
||||
newDataCount > currentDataCap) {
|
||||
camera_metadata_t *oldBuffer = mBuffer;
|
||||
mBuffer = allocate_camera_metadata(newEntryCount,
|
||||
newDataCount);
|
||||
if (newEntryCount > currentEntryCap || newDataCount > currentDataCap) {
|
||||
camera_metadata_t* oldBuffer = mBuffer;
|
||||
mBuffer = allocate_camera_metadata(newEntryCount, newDataCount);
|
||||
if (mBuffer == NULL) {
|
||||
ALOGE("%s: Can't allocate larger metadata buffer", __FUNCTION__);
|
||||
return NO_MEMORY;
|
||||
|
|
@ -462,5 +428,4 @@ void CameraMetadata::swap(CameraMetadata& other) {
|
|||
mBuffer = otherBuf;
|
||||
}
|
||||
|
||||
|
||||
}; // namespace android
|
||||
}; // namespace android
|
||||
|
|
|
|||
|
|
@ -39,15 +39,15 @@ class CameraMetadata {
|
|||
~CameraMetadata();
|
||||
|
||||
/** Takes ownership of passed-in buffer */
|
||||
CameraMetadata(camera_metadata_t *buffer);
|
||||
CameraMetadata(camera_metadata_t* buffer);
|
||||
/** Clones the metadata */
|
||||
CameraMetadata(const CameraMetadata &other);
|
||||
CameraMetadata(const CameraMetadata& other);
|
||||
|
||||
/**
|
||||
* Assignment clones metadata buffer.
|
||||
*/
|
||||
CameraMetadata &operator=(const CameraMetadata &other);
|
||||
CameraMetadata &operator=(const camera_metadata_t *buffer);
|
||||
CameraMetadata& operator=(const CameraMetadata& other);
|
||||
CameraMetadata& operator=(const camera_metadata_t* buffer);
|
||||
|
||||
/**
|
||||
* Get reference to the underlying metadata buffer. Ownership remains with
|
||||
|
|
@ -64,7 +64,7 @@ class CameraMetadata {
|
|||
* from getAndLock must be provided to guarantee that the right object is
|
||||
* being unlocked.
|
||||
*/
|
||||
status_t unlock(const camera_metadata_t *buffer) const;
|
||||
status_t unlock(const camera_metadata_t* buffer) const;
|
||||
|
||||
/**
|
||||
* Release a raw metadata buffer to the caller. After this call,
|
||||
|
|
@ -91,12 +91,12 @@ class CameraMetadata {
|
|||
* Acquires raw buffer from other CameraMetadata object. After the call, the argument
|
||||
* object no longer has any metadata.
|
||||
*/
|
||||
void acquire(CameraMetadata &other);
|
||||
void acquire(CameraMetadata& other);
|
||||
|
||||
/**
|
||||
* Append metadata from another CameraMetadata object.
|
||||
*/
|
||||
status_t append(const CameraMetadata &other);
|
||||
status_t append(const CameraMetadata& other);
|
||||
|
||||
/**
|
||||
* Append metadata from a raw camera_metadata buffer
|
||||
|
|
@ -123,24 +123,16 @@ class CameraMetadata {
|
|||
* will reallocate the buffer if insufficient space exists. Overloaded for
|
||||
* the various types of valid data.
|
||||
*/
|
||||
status_t update(uint32_t tag,
|
||||
const uint8_t *data, size_t data_count);
|
||||
status_t update(uint32_t tag,
|
||||
const int32_t *data, size_t data_count);
|
||||
status_t update(uint32_t tag,
|
||||
const float *data, size_t data_count);
|
||||
status_t update(uint32_t tag,
|
||||
const int64_t *data, size_t data_count);
|
||||
status_t update(uint32_t tag,
|
||||
const double *data, size_t data_count);
|
||||
status_t update(uint32_t tag,
|
||||
const camera_metadata_rational_t *data, size_t data_count);
|
||||
status_t update(uint32_t tag,
|
||||
const String8 &string);
|
||||
status_t update(const camera_metadata_ro_entry &entry);
|
||||
status_t update(uint32_t tag, const uint8_t* data, size_t data_count);
|
||||
status_t update(uint32_t tag, const int32_t* data, size_t data_count);
|
||||
status_t update(uint32_t tag, const float* data, size_t data_count);
|
||||
status_t update(uint32_t tag, const int64_t* data, size_t data_count);
|
||||
status_t update(uint32_t tag, const double* data, size_t data_count);
|
||||
status_t update(uint32_t tag, const camera_metadata_rational_t* data, size_t data_count);
|
||||
status_t update(uint32_t tag, const String8& string);
|
||||
status_t update(const camera_metadata_ro_entry& entry);
|
||||
|
||||
|
||||
template<typename T>
|
||||
template <typename T>
|
||||
status_t update(uint32_t tag, Vector<T> data) {
|
||||
return update(tag, data.array(), data.size());
|
||||
}
|
||||
|
|
@ -170,7 +162,7 @@ class CameraMetadata {
|
|||
* Swap the underlying camera metadata between this and the other
|
||||
* metadata object.
|
||||
*/
|
||||
void swap(CameraMetadata &other);
|
||||
void swap(CameraMetadata& other);
|
||||
|
||||
/**
|
||||
* Dump contents into FD for debugging. The verbosity levels are
|
||||
|
|
@ -184,9 +176,9 @@ class CameraMetadata {
|
|||
void dump(int fd, int verbosity = 1, int indentation = 0) const;
|
||||
|
||||
private:
|
||||
camera_metadata_t *mBuffer;
|
||||
volatile char mReserved[3] __attribute__ ((unused));
|
||||
mutable bool mLocked;
|
||||
camera_metadata_t* mBuffer;
|
||||
volatile char mReserved[3] __attribute__((unused));
|
||||
mutable bool mLocked;
|
||||
|
||||
/**
|
||||
* Check if tag has a given type
|
||||
|
|
@ -196,15 +188,14 @@ class CameraMetadata {
|
|||
/**
|
||||
* Base update entry method
|
||||
*/
|
||||
status_t updateImpl(uint32_t tag, const void *data, size_t data_count);
|
||||
status_t updateImpl(uint32_t tag, const void* data, size_t data_count);
|
||||
|
||||
/**
|
||||
* Resize metadata buffer if needed by reallocating it and copying it over.
|
||||
*/
|
||||
status_t resizeIfNeeded(size_t extraEntries, size_t extraData);
|
||||
|
||||
};
|
||||
|
||||
} // namespace android
|
||||
} // namespace android
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -18,11 +18,11 @@
|
|||
#define LOG_TAG "CameraParams"
|
||||
#include <log/log.h>
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <system/graphics.h>
|
||||
#include <unistd.h>
|
||||
#include "CameraParameters.h"
|
||||
#include <system/graphics.h>
|
||||
|
||||
namespace android {
|
||||
|
||||
|
|
@ -74,7 +74,8 @@ const char CameraParameters::KEY_EXPOSURE_COMPENSATION_STEP[] = "exposure-compen
|
|||
const char CameraParameters::KEY_AUTO_EXPOSURE_LOCK[] = "auto-exposure-lock";
|
||||
const char CameraParameters::KEY_AUTO_EXPOSURE_LOCK_SUPPORTED[] = "auto-exposure-lock-supported";
|
||||
const char CameraParameters::KEY_AUTO_WHITEBALANCE_LOCK[] = "auto-whitebalance-lock";
|
||||
const char CameraParameters::KEY_AUTO_WHITEBALANCE_LOCK_SUPPORTED[] = "auto-whitebalance-lock-supported";
|
||||
const char CameraParameters::KEY_AUTO_WHITEBALANCE_LOCK_SUPPORTED[] =
|
||||
"auto-whitebalance-lock-supported";
|
||||
const char CameraParameters::KEY_MAX_NUM_METERING_AREAS[] = "max-num-metering-areas";
|
||||
const char CameraParameters::KEY_METERING_AREAS[] = "metering-areas";
|
||||
const char CameraParameters::KEY_ZOOM[] = "zoom";
|
||||
|
|
@ -86,7 +87,8 @@ const char CameraParameters::KEY_FOCUS_DISTANCES[] = "focus-distances";
|
|||
const char CameraParameters::KEY_VIDEO_FRAME_FORMAT[] = "video-frame-format";
|
||||
const char CameraParameters::KEY_VIDEO_SIZE[] = "video-size";
|
||||
const char CameraParameters::KEY_SUPPORTED_VIDEO_SIZES[] = "video-size-values";
|
||||
const char CameraParameters::KEY_PREFERRED_PREVIEW_SIZE_FOR_VIDEO[] = "preferred-preview-size-for-video";
|
||||
const char CameraParameters::KEY_PREFERRED_PREVIEW_SIZE_FOR_VIDEO[] =
|
||||
"preferred-preview-size-for-video";
|
||||
const char CameraParameters::KEY_MAX_NUM_DETECTED_FACES_HW[] = "max-num-detected-faces-hw";
|
||||
const char CameraParameters::KEY_MAX_NUM_DETECTED_FACES_SW[] = "max-num-detected-faces-sw";
|
||||
const char CameraParameters::KEY_RECORDING_HINT[] = "recording-hint";
|
||||
|
|
@ -155,7 +157,7 @@ const char CameraParameters::SCENE_MODE_HDR[] = "hdr";
|
|||
const char CameraParameters::PIXEL_FORMAT_YUV422SP[] = "yuv422sp";
|
||||
const char CameraParameters::PIXEL_FORMAT_YUV420SP[] = "yuv420sp";
|
||||
const char CameraParameters::PIXEL_FORMAT_YUV422I[] = "yuv422i-yuyv";
|
||||
const char CameraParameters::PIXEL_FORMAT_YUV420P[] = "yuv420p";
|
||||
const char CameraParameters::PIXEL_FORMAT_YUV420P[] = "yuv420p";
|
||||
const char CameraParameters::PIXEL_FORMAT_RGB565[] = "rgb565";
|
||||
const char CameraParameters::PIXEL_FORMAT_RGBA8888[] = "rgba8888";
|
||||
const char CameraParameters::PIXEL_FORMAT_JPEG[] = "jpeg";
|
||||
|
|
@ -175,17 +177,11 @@ const char CameraParameters::FOCUS_MODE_CONTINUOUS_PICTURE[] = "continuous-pictu
|
|||
const char CameraParameters::LIGHTFX_LOWLIGHT[] = "low-light";
|
||||
const char CameraParameters::LIGHTFX_HDR[] = "high-dynamic-range";
|
||||
|
||||
CameraParameters::CameraParameters()
|
||||
: mMap()
|
||||
{
|
||||
}
|
||||
CameraParameters::CameraParameters() : mMap() {}
|
||||
|
||||
CameraParameters::~CameraParameters()
|
||||
{
|
||||
}
|
||||
CameraParameters::~CameraParameters() {}
|
||||
|
||||
String8 CameraParameters::flatten() const
|
||||
{
|
||||
String8 CameraParameters::flatten() const {
|
||||
String8 flattened("");
|
||||
size_t size = mMap.size();
|
||||
|
||||
|
|
@ -197,31 +193,28 @@ String8 CameraParameters::flatten() const
|
|||
flattened += k;
|
||||
flattened += "=";
|
||||
flattened += v;
|
||||
if (i != size-1)
|
||||
flattened += ";";
|
||||
if (i != size - 1) flattened += ";";
|
||||
}
|
||||
|
||||
return flattened;
|
||||
}
|
||||
|
||||
void CameraParameters::unflatten(const String8 ¶ms)
|
||||
{
|
||||
const char *a = params.string();
|
||||
const char *b;
|
||||
void CameraParameters::unflatten(const String8& params) {
|
||||
const char* a = params.string();
|
||||
const char* b;
|
||||
|
||||
mMap.clear();
|
||||
|
||||
for (;;) {
|
||||
// Find the bounds of the key name.
|
||||
b = strchr(a, '=');
|
||||
if (b == 0)
|
||||
break;
|
||||
if (b == 0) break;
|
||||
|
||||
// Create the key string.
|
||||
String8 k(a, (size_t)(b-a));
|
||||
String8 k(a, (size_t)(b - a));
|
||||
|
||||
// Find the value.
|
||||
a = b+1;
|
||||
a = b + 1;
|
||||
b = strchr(a, ';');
|
||||
if (b == 0) {
|
||||
// If there's no semicolon, this is the last item.
|
||||
|
|
@ -230,15 +223,13 @@ void CameraParameters::unflatten(const String8 ¶ms)
|
|||
break;
|
||||
}
|
||||
|
||||
String8 v(a, (size_t)(b-a));
|
||||
String8 v(a, (size_t)(b - a));
|
||||
mMap.add(k, v);
|
||||
a = b+1;
|
||||
a = b + 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CameraParameters::set(const char *key, const char *value)
|
||||
{
|
||||
void CameraParameters::set(const char* key, const char* value) {
|
||||
// i think i can do this with strspn()
|
||||
if (strchr(key, '=') || strchr(key, ';')) {
|
||||
// ALOGE("Key \"%s\"contains invalid character (= or ;)", key);
|
||||
|
|
@ -253,54 +244,44 @@ void CameraParameters::set(const char *key, const char *value)
|
|||
mMap.replaceValueFor(String8(key), String8(value));
|
||||
}
|
||||
|
||||
void CameraParameters::set(const char *key, int value)
|
||||
{
|
||||
void CameraParameters::set(const char* key, int value) {
|
||||
char str[16];
|
||||
sprintf(str, "%d", value);
|
||||
set(key, str);
|
||||
}
|
||||
|
||||
void CameraParameters::setFloat(const char *key, float value)
|
||||
{
|
||||
void CameraParameters::setFloat(const char* key, float value) {
|
||||
char str[16]; // 14 should be enough. We overestimate to be safe.
|
||||
snprintf(str, sizeof(str), "%g", value);
|
||||
set(key, str);
|
||||
}
|
||||
|
||||
const char *CameraParameters::get(const char *key) const
|
||||
{
|
||||
const char* CameraParameters::get(const char* key) const {
|
||||
String8 v = mMap.valueFor(String8(key));
|
||||
if (v.length() == 0)
|
||||
return 0;
|
||||
if (v.length() == 0) return 0;
|
||||
return v.string();
|
||||
}
|
||||
|
||||
int CameraParameters::getInt(const char *key) const
|
||||
{
|
||||
const char *v = get(key);
|
||||
if (v == 0)
|
||||
return -1;
|
||||
int CameraParameters::getInt(const char* key) const {
|
||||
const char* v = get(key);
|
||||
if (v == 0) return -1;
|
||||
return strtol(v, 0, 0);
|
||||
}
|
||||
|
||||
float CameraParameters::getFloat(const char *key) const
|
||||
{
|
||||
const char *v = get(key);
|
||||
float CameraParameters::getFloat(const char* key) const {
|
||||
const char* v = get(key);
|
||||
if (v == 0) return -1;
|
||||
return strtof(v, 0);
|
||||
}
|
||||
|
||||
void CameraParameters::remove(const char *key)
|
||||
{
|
||||
void CameraParameters::remove(const char* key) {
|
||||
mMap.removeItem(String8(key));
|
||||
}
|
||||
|
||||
// Parse string like "640x480" or "10000,20000"
|
||||
static int parse_pair(const char *str, int *first, int *second, char delim,
|
||||
char **endptr = NULL)
|
||||
{
|
||||
static int parse_pair(const char* str, int* first, int* second, char delim, char** endptr = NULL) {
|
||||
// Find the first integer.
|
||||
char *end;
|
||||
char* end;
|
||||
int w = (int)strtol(str, &end, 10);
|
||||
// If a delimeter does not immediately follow, give up.
|
||||
if (*end != delim) {
|
||||
|
|
@ -309,7 +290,7 @@ static int parse_pair(const char *str, int *first, int *second, char delim,
|
|||
}
|
||||
|
||||
// Find the second integer, immediately after the delimeter.
|
||||
int h = (int)strtol(end+1, &end, 10);
|
||||
int h = (int)strtol(end + 1, &end, 10);
|
||||
|
||||
*first = w;
|
||||
*second = h;
|
||||
|
|
@ -321,18 +302,16 @@ static int parse_pair(const char *str, int *first, int *second, char delim,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void parseSizesList(const char *sizesStr, Vector<Size> &sizes)
|
||||
{
|
||||
static void parseSizesList(const char* sizesStr, Vector<Size>& sizes) {
|
||||
if (sizesStr == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
char *sizeStartPtr = (char *)sizesStr;
|
||||
char* sizeStartPtr = (char*)sizesStr;
|
||||
|
||||
while (true) {
|
||||
int width, height;
|
||||
int success = parse_pair(sizeStartPtr, &width, &height, 'x',
|
||||
&sizeStartPtr);
|
||||
int success = parse_pair(sizeStartPtr, &width, &height, 'x', &sizeStartPtr);
|
||||
if (success == -1 || (*sizeStartPtr != ',' && *sizeStartPtr != '\0')) {
|
||||
ALOGE("Picture sizes string \"%s\" contains invalid character.", sizesStr);
|
||||
return;
|
||||
|
|
@ -346,119 +325,101 @@ static void parseSizesList(const char *sizesStr, Vector<Size> &sizes)
|
|||
}
|
||||
}
|
||||
|
||||
void CameraParameters::setPreviewSize(int width, int height)
|
||||
{
|
||||
void CameraParameters::setPreviewSize(int width, int height) {
|
||||
char str[32];
|
||||
sprintf(str, "%dx%d", width, height);
|
||||
set(KEY_PREVIEW_SIZE, str);
|
||||
}
|
||||
|
||||
void CameraParameters::getPreviewSize(int *width, int *height) const
|
||||
{
|
||||
void CameraParameters::getPreviewSize(int* width, int* height) const {
|
||||
*width = *height = -1;
|
||||
// Get the current string, if it doesn't exist, leave the -1x-1
|
||||
const char *p = get(KEY_PREVIEW_SIZE);
|
||||
if (p == 0) return;
|
||||
const char* p = get(KEY_PREVIEW_SIZE);
|
||||
if (p == 0) return;
|
||||
parse_pair(p, width, height, 'x');
|
||||
}
|
||||
|
||||
void CameraParameters::getPreferredPreviewSizeForVideo(int *width, int *height) const
|
||||
{
|
||||
void CameraParameters::getPreferredPreviewSizeForVideo(int* width, int* height) const {
|
||||
*width = *height = -1;
|
||||
const char *p = get(KEY_PREFERRED_PREVIEW_SIZE_FOR_VIDEO);
|
||||
if (p == 0) return;
|
||||
const char* p = get(KEY_PREFERRED_PREVIEW_SIZE_FOR_VIDEO);
|
||||
if (p == 0) return;
|
||||
parse_pair(p, width, height, 'x');
|
||||
}
|
||||
|
||||
void CameraParameters::getSupportedPreviewSizes(Vector<Size> &sizes) const
|
||||
{
|
||||
const char *previewSizesStr = get(KEY_SUPPORTED_PREVIEW_SIZES);
|
||||
void CameraParameters::getSupportedPreviewSizes(Vector<Size>& sizes) const {
|
||||
const char* previewSizesStr = get(KEY_SUPPORTED_PREVIEW_SIZES);
|
||||
parseSizesList(previewSizesStr, sizes);
|
||||
}
|
||||
|
||||
void CameraParameters::setVideoSize(int width, int height)
|
||||
{
|
||||
void CameraParameters::setVideoSize(int width, int height) {
|
||||
char str[32];
|
||||
sprintf(str, "%dx%d", width, height);
|
||||
set(KEY_VIDEO_SIZE, str);
|
||||
}
|
||||
|
||||
void CameraParameters::getVideoSize(int *width, int *height) const
|
||||
{
|
||||
void CameraParameters::getVideoSize(int* width, int* height) const {
|
||||
*width = *height = -1;
|
||||
const char *p = get(KEY_VIDEO_SIZE);
|
||||
const char* p = get(KEY_VIDEO_SIZE);
|
||||
if (p == 0) return;
|
||||
parse_pair(p, width, height, 'x');
|
||||
}
|
||||
|
||||
void CameraParameters::getSupportedVideoSizes(Vector<Size> &sizes) const
|
||||
{
|
||||
const char *videoSizesStr = get(KEY_SUPPORTED_VIDEO_SIZES);
|
||||
void CameraParameters::getSupportedVideoSizes(Vector<Size>& sizes) const {
|
||||
const char* videoSizesStr = get(KEY_SUPPORTED_VIDEO_SIZES);
|
||||
parseSizesList(videoSizesStr, sizes);
|
||||
}
|
||||
|
||||
void CameraParameters::setPreviewFrameRate(int fps)
|
||||
{
|
||||
void CameraParameters::setPreviewFrameRate(int fps) {
|
||||
set(KEY_PREVIEW_FRAME_RATE, fps);
|
||||
}
|
||||
|
||||
int CameraParameters::getPreviewFrameRate() const
|
||||
{
|
||||
int CameraParameters::getPreviewFrameRate() const {
|
||||
return getInt(KEY_PREVIEW_FRAME_RATE);
|
||||
}
|
||||
|
||||
void CameraParameters::getPreviewFpsRange(int *min_fps, int *max_fps) const
|
||||
{
|
||||
void CameraParameters::getPreviewFpsRange(int* min_fps, int* max_fps) const {
|
||||
*min_fps = *max_fps = -1;
|
||||
const char *p = get(KEY_PREVIEW_FPS_RANGE);
|
||||
const char* p = get(KEY_PREVIEW_FPS_RANGE);
|
||||
if (p == 0) return;
|
||||
parse_pair(p, min_fps, max_fps, ',');
|
||||
}
|
||||
|
||||
void CameraParameters::setPreviewFormat(const char *format)
|
||||
{
|
||||
void CameraParameters::setPreviewFormat(const char* format) {
|
||||
set(KEY_PREVIEW_FORMAT, format);
|
||||
}
|
||||
|
||||
const char *CameraParameters::getPreviewFormat() const
|
||||
{
|
||||
const char* CameraParameters::getPreviewFormat() const {
|
||||
return get(KEY_PREVIEW_FORMAT);
|
||||
}
|
||||
|
||||
void CameraParameters::setPictureSize(int width, int height)
|
||||
{
|
||||
void CameraParameters::setPictureSize(int width, int height) {
|
||||
char str[32];
|
||||
sprintf(str, "%dx%d", width, height);
|
||||
set(KEY_PICTURE_SIZE, str);
|
||||
}
|
||||
|
||||
void CameraParameters::getPictureSize(int *width, int *height) const
|
||||
{
|
||||
void CameraParameters::getPictureSize(int* width, int* height) const {
|
||||
*width = *height = -1;
|
||||
// Get the current string, if it doesn't exist, leave the -1x-1
|
||||
const char *p = get(KEY_PICTURE_SIZE);
|
||||
const char* p = get(KEY_PICTURE_SIZE);
|
||||
if (p == 0) return;
|
||||
parse_pair(p, width, height, 'x');
|
||||
}
|
||||
|
||||
void CameraParameters::getSupportedPictureSizes(Vector<Size> &sizes) const
|
||||
{
|
||||
const char *pictureSizesStr = get(KEY_SUPPORTED_PICTURE_SIZES);
|
||||
void CameraParameters::getSupportedPictureSizes(Vector<Size>& sizes) const {
|
||||
const char* pictureSizesStr = get(KEY_SUPPORTED_PICTURE_SIZES);
|
||||
parseSizesList(pictureSizesStr, sizes);
|
||||
}
|
||||
|
||||
void CameraParameters::setPictureFormat(const char *format)
|
||||
{
|
||||
void CameraParameters::setPictureFormat(const char* format) {
|
||||
set(KEY_PICTURE_FORMAT, format);
|
||||
}
|
||||
|
||||
const char *CameraParameters::getPictureFormat() const
|
||||
{
|
||||
const char* CameraParameters::getPictureFormat() const {
|
||||
return get(KEY_PICTURE_FORMAT);
|
||||
}
|
||||
|
||||
void CameraParameters::dump() const
|
||||
{
|
||||
void CameraParameters::dump() const {
|
||||
ALOGD("dump: mMap.size = %zu", mMap.size());
|
||||
for (size_t i = 0; i < mMap.size(); i++) {
|
||||
String8 k, v;
|
||||
|
|
@ -468,8 +429,7 @@ void CameraParameters::dump() const
|
|||
}
|
||||
}
|
||||
|
||||
status_t CameraParameters::dump(int fd, const Vector<String16>& /*args*/) const
|
||||
{
|
||||
status_t CameraParameters::dump(int fd, const Vector<String16>& /*args*/) const {
|
||||
const size_t SIZE = 256;
|
||||
char buffer[SIZE];
|
||||
String8 result;
|
||||
|
|
@ -487,8 +447,7 @@ status_t CameraParameters::dump(int fd, const Vector<String16>& /*args*/) const
|
|||
}
|
||||
|
||||
void CameraParameters::getSupportedPreviewFormats(Vector<int>& formats) const {
|
||||
const char* supportedPreviewFormats =
|
||||
get(CameraParameters::KEY_SUPPORTED_PREVIEW_FORMATS);
|
||||
const char* supportedPreviewFormats = get(CameraParameters::KEY_SUPPORTED_PREVIEW_FORMATS);
|
||||
|
||||
if (supportedPreviewFormats == NULL) {
|
||||
ALOGW("%s: No supported preview formats.", __FUNCTION__);
|
||||
|
|
@ -510,30 +469,27 @@ void CameraParameters::getSupportedPreviewFormats(Vector<int>& formats) const {
|
|||
fmtStr.unlockBuffer(fmtStr.size());
|
||||
}
|
||||
|
||||
|
||||
int CameraParameters::previewFormatToEnum(const char* format) {
|
||||
return
|
||||
!format ?
|
||||
HAL_PIXEL_FORMAT_YCrCb_420_SP :
|
||||
!strcmp(format, PIXEL_FORMAT_YUV422SP) ?
|
||||
HAL_PIXEL_FORMAT_YCbCr_422_SP : // NV16
|
||||
!strcmp(format, PIXEL_FORMAT_YUV420SP) ?
|
||||
HAL_PIXEL_FORMAT_YCrCb_420_SP : // NV21
|
||||
!strcmp(format, PIXEL_FORMAT_YUV422I) ?
|
||||
HAL_PIXEL_FORMAT_YCbCr_422_I : // YUY2
|
||||
!strcmp(format, PIXEL_FORMAT_YUV420P) ?
|
||||
HAL_PIXEL_FORMAT_YV12 : // YV12
|
||||
!strcmp(format, PIXEL_FORMAT_RGB565) ?
|
||||
HAL_PIXEL_FORMAT_RGB_565 : // RGB565
|
||||
!strcmp(format, PIXEL_FORMAT_RGBA8888) ?
|
||||
HAL_PIXEL_FORMAT_RGBA_8888 : // RGB8888
|
||||
!strcmp(format, PIXEL_FORMAT_BAYER_RGGB) ?
|
||||
HAL_PIXEL_FORMAT_RAW16 : // Raw sensor data
|
||||
-1;
|
||||
return !format ? HAL_PIXEL_FORMAT_YCrCb_420_SP
|
||||
: !strcmp(format, PIXEL_FORMAT_YUV422SP) ? HAL_PIXEL_FORMAT_YCbCr_422_SP
|
||||
: // NV16
|
||||
!strcmp(format, PIXEL_FORMAT_YUV420SP) ? HAL_PIXEL_FORMAT_YCrCb_420_SP
|
||||
: // NV21
|
||||
!strcmp(format, PIXEL_FORMAT_YUV422I) ? HAL_PIXEL_FORMAT_YCbCr_422_I
|
||||
: // YUY2
|
||||
!strcmp(format, PIXEL_FORMAT_YUV420P) ? HAL_PIXEL_FORMAT_YV12
|
||||
: // YV12
|
||||
!strcmp(format, PIXEL_FORMAT_RGB565) ? HAL_PIXEL_FORMAT_RGB_565
|
||||
: // RGB565
|
||||
!strcmp(format, PIXEL_FORMAT_RGBA8888) ? HAL_PIXEL_FORMAT_RGBA_8888
|
||||
: // RGB8888
|
||||
!strcmp(format, PIXEL_FORMAT_BAYER_RGGB) ? HAL_PIXEL_FORMAT_RAW16
|
||||
: // Raw sensor data
|
||||
-1;
|
||||
}
|
||||
|
||||
bool CameraParameters::isEmpty() const {
|
||||
return mMap.isEmpty();
|
||||
}
|
||||
|
||||
}; // namespace android
|
||||
}; // namespace android
|
||||
|
|
|
|||
|
|
@ -37,28 +37,27 @@ struct Size {
|
|||
}
|
||||
};
|
||||
|
||||
class CameraParameters
|
||||
{
|
||||
public:
|
||||
class CameraParameters {
|
||||
public:
|
||||
CameraParameters();
|
||||
CameraParameters(const String8 ¶ms) { unflatten(params); }
|
||||
CameraParameters(const String8& params) { unflatten(params); }
|
||||
~CameraParameters();
|
||||
|
||||
String8 flatten() const;
|
||||
void unflatten(const String8 ¶ms);
|
||||
void unflatten(const String8& params);
|
||||
|
||||
void set(const char *key, const char *value);
|
||||
void set(const char *key, int value);
|
||||
void setFloat(const char *key, float value);
|
||||
const char *get(const char *key) const;
|
||||
int getInt(const char *key) const;
|
||||
float getFloat(const char *key) const;
|
||||
void set(const char* key, const char* value);
|
||||
void set(const char* key, int value);
|
||||
void setFloat(const char* key, float value);
|
||||
const char* get(const char* key) const;
|
||||
int getInt(const char* key) const;
|
||||
float getFloat(const char* key) const;
|
||||
|
||||
void remove(const char *key);
|
||||
void remove(const char* key);
|
||||
|
||||
void setPreviewSize(int width, int height);
|
||||
void getPreviewSize(int *width, int *height) const;
|
||||
void getSupportedPreviewSizes(Vector<Size> &sizes) const;
|
||||
void getPreviewSize(int* width, int* height) const;
|
||||
void getSupportedPreviewSizes(Vector<Size>& sizes) const;
|
||||
|
||||
// Set the dimensions in pixels to the given width and height
|
||||
// for video frames. The given width and height must be one
|
||||
|
|
@ -71,14 +70,14 @@ public:
|
|||
// supported dimensions returned from getSupportedVideoSizes().
|
||||
// Must not be called if getSupportedVideoSizes() returns an
|
||||
// empty Vector of Size.
|
||||
void getVideoSize(int *width, int *height) const;
|
||||
void getVideoSize(int* width, int* height) const;
|
||||
// Retrieve a Vector of supported dimensions (width and height)
|
||||
// in pixels for video frames. If sizes returned from the method
|
||||
// is empty, the camera does not support calls to setVideoSize()
|
||||
// or getVideoSize(). In adddition, it also indicates that
|
||||
// the camera only has a single output, and does not have
|
||||
// separate output for video frames and preview frame.
|
||||
void getSupportedVideoSizes(Vector<Size> &sizes) const;
|
||||
void getSupportedVideoSizes(Vector<Size>& sizes) const;
|
||||
// Retrieve the preferred preview size (width and height) in pixels
|
||||
// for video recording. The given width and height must be one of
|
||||
// supported preview sizes returned from getSupportedPreviewSizes().
|
||||
|
|
@ -86,18 +85,18 @@ public:
|
|||
// Vector of Size. If getSupportedVideoSizes() returns an empty
|
||||
// Vector of Size, the width and height returned from this method
|
||||
// is invalid, and is "-1x-1".
|
||||
void getPreferredPreviewSizeForVideo(int *width, int *height) const;
|
||||
void getPreferredPreviewSizeForVideo(int* width, int* height) const;
|
||||
|
||||
void setPreviewFrameRate(int fps);
|
||||
int getPreviewFrameRate() const;
|
||||
void getPreviewFpsRange(int *min_fps, int *max_fps) const;
|
||||
void setPreviewFormat(const char *format);
|
||||
const char *getPreviewFormat() const;
|
||||
void getPreviewFpsRange(int* min_fps, int* max_fps) const;
|
||||
void setPreviewFormat(const char* format);
|
||||
const char* getPreviewFormat() const;
|
||||
void setPictureSize(int width, int height);
|
||||
void getPictureSize(int *width, int *height) const;
|
||||
void getSupportedPictureSizes(Vector<Size> &sizes) const;
|
||||
void setPictureFormat(const char *format);
|
||||
const char *getPictureFormat() const;
|
||||
void getPictureSize(int* width, int* height) const;
|
||||
void getSupportedPictureSizes(Vector<Size>& sizes) const;
|
||||
void setPictureFormat(const char* format);
|
||||
const char* getPictureFormat() const;
|
||||
|
||||
void dump() const;
|
||||
status_t dump(int fd, const Vector<String16>& args) const;
|
||||
|
|
@ -614,9 +613,9 @@ public:
|
|||
// Pixel color formats for KEY_PREVIEW_FORMAT, KEY_PICTURE_FORMAT,
|
||||
// and KEY_VIDEO_FRAME_FORMAT
|
||||
static const char PIXEL_FORMAT_YUV422SP[];
|
||||
static const char PIXEL_FORMAT_YUV420SP[]; // NV21
|
||||
static const char PIXEL_FORMAT_YUV422I[]; // YUY2
|
||||
static const char PIXEL_FORMAT_YUV420P[]; // YV12
|
||||
static const char PIXEL_FORMAT_YUV420SP[]; // NV21
|
||||
static const char PIXEL_FORMAT_YUV422I[]; // YUY2
|
||||
static const char PIXEL_FORMAT_YUV420P[]; // YV12
|
||||
static const char PIXEL_FORMAT_RGB565[];
|
||||
static const char PIXEL_FORMAT_RGBA8888[];
|
||||
static const char PIXEL_FORMAT_JPEG[];
|
||||
|
|
@ -690,10 +689,10 @@ public:
|
|||
*/
|
||||
static int previewFormatToEnum(const char* format);
|
||||
|
||||
private:
|
||||
DefaultKeyedVector<String8,String8> mMap;
|
||||
private:
|
||||
DefaultKeyedVector<String8, String8> mMap;
|
||||
};
|
||||
|
||||
}; // namespace
|
||||
}; // namespace android
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -23,9 +23,9 @@ using android::Mutex;
|
|||
|
||||
static Mutex gLock;
|
||||
|
||||
extern "C" ALooper *ALooper_forCamera() {
|
||||
extern "C" ALooper* ALooper_forCamera() {
|
||||
LOG(VERBOSE) << "ALooper_forCamera";
|
||||
ALooper *sLooper = NULL;
|
||||
ALooper* sLooper = NULL;
|
||||
|
||||
Mutex::Autolock autoLock(gLock);
|
||||
sLooper = new ALooper;
|
||||
|
|
@ -33,7 +33,7 @@ extern "C" ALooper *ALooper_forCamera() {
|
|||
return sLooper;
|
||||
}
|
||||
|
||||
extern "C" int ALooper_release_forCamera(ALooper *sLooper) {
|
||||
extern "C" int ALooper_release_forCamera(ALooper* sLooper) {
|
||||
if (sLooper != nullptr) {
|
||||
Mutex::Autolock autoLock(gLock);
|
||||
delete sLooper;
|
||||
|
|
@ -42,11 +42,8 @@ extern "C" int ALooper_release_forCamera(ALooper *sLooper) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
extern "C" int ALooper_pollOnce_camera(ALooper *sLooper,
|
||||
int timeoutMillis,
|
||||
int* outFd,
|
||||
int* outEvents,
|
||||
void** outData) {
|
||||
extern "C" int ALooper_pollOnce_camera(ALooper* sLooper, int timeoutMillis, int* outFd,
|
||||
int* outEvents, void** outData) {
|
||||
int res = sLooper->pollOnce(timeoutMillis, outFd, outEvents, outData);
|
||||
LOG(VERBOSE) << "ALooper_pollOnce_camera => " << res;
|
||||
return res;
|
||||
|
|
|
|||
Loading…
Reference in a new issue