summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2012-10-01 16:33:03 -0700
committerEino-Ville Talvala <etalvala@google.com>2012-10-01 16:33:03 -0700
commit94879bd88f7ac3f2f678221497b8ad50c0bb3314 (patch)
tree5bf8bce652a3ef20827524d618c6dc3a80bca74f
parentceb22cffe92c73116009342c4f5e31e41b34fe5d (diff)
downloadandroid_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.h10
-rw-r--r--camera/src/camera_metadata.c2
-rw-r--r--camera/src/camera_metadata_tag_info.c22
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
};