diff options
author | Eino-Ville Talvala <etalvala@google.com> | 2012-10-01 16:33:03 -0700 |
---|---|---|
committer | Eino-Ville Talvala <etalvala@google.com> | 2012-10-01 16:33:03 -0700 |
commit | 94879bd88f7ac3f2f678221497b8ad50c0bb3314 (patch) | |
tree | 5bf8bce652a3ef20827524d618c6dc3a80bca74f | |
parent | ceb22cffe92c73116009342c4f5e31e41b34fe5d (diff) | |
download | android_system_media-94879bd88f7ac3f2f678221497b8ad50c0bb3314.tar.gz android_system_media-94879bd88f7ac3f2f678221497b8ad50c0bb3314.tar.bz2 android_system_media-94879bd88f7ac3f2f678221497b8ad50c0bb3314.zip |
Camera: Add scene mode override and quirks fields.
To provide scene mode override information while preview is disabled,
need more static metadata from the HAL.
In addition, add a quirks section to allow for temporary workarounds
for incomplete HAL behavior. Any quirks added will be deprecated as
soon as possible.
Bug: 7159577
Bug: 7172543
Change-Id: Icadb6baa4132bf20ad82b2c549ac2b9a0c6618de
-rw-r--r-- | camera/include/system/camera_metadata_tags.h | 10 | ||||
-rw-r--r-- | camera/src/camera_metadata.c | 2 | ||||
-rw-r--r-- | camera/src/camera_metadata_tag_info.c | 22 |
3 files changed, 27 insertions, 7 deletions
diff --git a/camera/include/system/camera_metadata_tags.h b/camera/include/system/camera_metadata_tags.h index 17123028..727fa0ad 100644 --- a/camera/include/system/camera_metadata_tags.h +++ b/camera/include/system/camera_metadata_tags.h @@ -60,6 +60,7 @@ enum { ANDROID_STATS_INFO, ANDROID_CONTROL, ANDROID_CONTROL_INFO, + ANDROID_QUIRKS_INFO, ANDROID_SECTION_COUNT, VENDOR_SECTION = 0x8000 @@ -101,6 +102,7 @@ enum { ANDROID_STATS_INFO_START = ANDROID_STATS_INFO << 16, ANDROID_CONTROL_START = ANDROID_CONTROL << 16, ANDROID_CONTROL_INFO_START = ANDROID_CONTROL_INFO << 16, + ANDROID_QUIRKS_INFO_START = ANDROID_QUIRKS_INFO << 16, VENDOR_SECTION_START = VENDOR_SECTION << 16 }; @@ -293,7 +295,6 @@ enum { ANDROID_CONTROL_AF_REGIONS, ANDROID_CONTROL_AF_STATE, ANDROID_CONTROL_AF_TRIGGER_ID, - ANDROID_CONTROL_END, ANDROID_CONTROL_AVAILABLE_SCENE_MODES = ANDROID_CONTROL_INFO_START, @@ -307,7 +308,12 @@ enum { ANDROID_CONTROL_AWB_AVAILABLE_MODES, ANDROID_CONTROL_AF_AVAILABLE_MODES, ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES, - ANDROID_CONTROL_INFO_END + ANDROID_CONTROL_SCENE_MODE_OVERRIDES, + ANDROID_CONTROL_INFO_END, + + ANDROID_QUIRKS_TRIGGER_AF_WITH_AUTO = ANDROID_QUIRKS_INFO_START, + ANDROID_QUIRKS_USE_ZSL_FORMAT, + ANDROID_QUIRKS_INFO_END }; /** diff --git a/camera/src/camera_metadata.c b/camera/src/camera_metadata.c index 7bca3f4c..0b6597df 100644 --- a/camera/src/camera_metadata.c +++ b/camera/src/camera_metadata.c @@ -622,7 +622,7 @@ void dump_indented_camera_metadata(const camera_metadata_t *metadata, int verbosity, int indentation) { if (metadata == NULL) { - fdprintf(fd, "%*sDumping camera metadata array: Not allocated", + fdprintf(fd, "%*sDumping camera metadata array: Not allocated\n", indentation, ""); return; } diff --git a/camera/src/camera_metadata_tag_info.c b/camera/src/camera_metadata_tag_info.c index 794c18ec..2ae7e148 100644 --- a/camera/src/camera_metadata_tag_info.c +++ b/camera/src/camera_metadata_tag_info.c @@ -55,7 +55,8 @@ const char *camera_metadata_section_names[ANDROID_SECTION_COUNT] = { [ANDROID_STATS] = "android.statistics", [ANDROID_STATS_INFO] = "android.statistics.info", [ANDROID_CONTROL] = "android.control", - [ANDROID_CONTROL_INFO] = "android.control.info" + [ANDROID_CONTROL_INFO] = "android.control.info", + [ANDROID_QUIRKS_INFO] = "android.quirks.info" }; unsigned int camera_metadata_section_bounds[ANDROID_SECTION_COUNT][2] = { @@ -120,7 +121,9 @@ unsigned int camera_metadata_section_bounds[ANDROID_SECTION_COUNT][2] = { [ANDROID_CONTROL] = { ANDROID_CONTROL_START, ANDROID_CONTROL_END }, [ANDROID_CONTROL_INFO] = { ANDROID_CONTROL_INFO_START, - ANDROID_CONTROL_INFO_END } + ANDROID_CONTROL_INFO_END }, + [ANDROID_QUIRKS_INFO] = { ANDROID_QUIRKS_INFO_START, + ANDROID_QUIRKS_INFO_END } }; // Shortcut defines to make succint names for field definitions @@ -515,7 +518,17 @@ tag_info_t android_control_info[ANDROID_CONTROL_INFO_END - TIIDX(CONTROL, AF_AVAILABLE_MODES) = { "afAvailableModes", TYPE_BYTE }, TIIDX(CONTROL, AVAILABLE_VIDEO_STABILIZATION_MODES) = - { "availableVideoStabilizationModes", TYPE_BYTE } + { "availableVideoStabilizationModes", TYPE_BYTE }, + TIIDX(CONTROL, SCENE_MODE_OVERRIDES) = + { "sceneModeOverrides", TYPE_BYTE } +}; + +tag_info_t android_quirks_info[ANDROID_QUIRKS_INFO_END - + ANDROID_QUIRKS_INFO_START] = { + TIIDX(QUIRKS, TRIGGER_AF_WITH_AUTO) = + { "triggerAfWithAuto", TYPE_BYTE }, + TIIDX(QUIRKS, USE_ZSL_FORMAT) = + { "useZslFormat", TYPE_BYTE } }; #undef TIDX @@ -552,5 +565,6 @@ tag_info_t *tag_info[ANDROID_SECTION_COUNT] = { android_stats, android_stats_info, android_control, - android_control_info + android_control_info, + android_quirks_info }; |