am 4f0a12a9: am 7076e464: Merge "Add 64-bit software GLES/EGL support in gralloc.goldfish module"
* commit '4f0a12a9306f13fb6208c7f43c8a355ed48d8cc5':
Add 64-bit software GLES/EGL support in gralloc.goldfish module
diff --git a/camera/EmulatedFakeCamera2.cpp b/camera/EmulatedFakeCamera2.cpp
index f007a86..09fd629 100644
--- a/camera/EmulatedFakeCamera2.cpp
+++ b/camera/EmulatedFakeCamera2.cpp
@@ -110,9 +110,6 @@
status_t EmulatedFakeCamera2::Initialize() {
status_t res;
- set_camera_metadata_vendor_tag_ops(
- static_cast<vendor_tag_query_ops_t*>(&mVendorTagOps));
-
res = constructStaticInfo(&mCameraInfo, true);
if (res != OK) {
ALOGE("%s: Unable to allocate static info: %s (%d)",
@@ -631,80 +628,6 @@
ext1, ext2);
}
-/** Custom tag definitions */
-
-// Emulator camera metadata sections
-enum {
- EMULATOR_SCENE = VENDOR_SECTION,
- END_EMULATOR_SECTIONS
-};
-
-enum {
- EMULATOR_SCENE_START = EMULATOR_SCENE << 16,
-};
-
-// Emulator camera metadata tags
-enum {
- // Hour of day to use for lighting calculations (0-23). Default: 12
- EMULATOR_SCENE_HOUROFDAY = EMULATOR_SCENE_START,
- EMULATOR_SCENE_END
-};
-
-unsigned int emulator_metadata_section_bounds[END_EMULATOR_SECTIONS -
- VENDOR_SECTION][2] = {
- { EMULATOR_SCENE_START, EMULATOR_SCENE_END }
-};
-
-const char *emulator_metadata_section_names[END_EMULATOR_SECTIONS -
- VENDOR_SECTION] = {
- "com.android.emulator.scene"
-};
-
-typedef struct emulator_tag_info {
- const char *tag_name;
- uint8_t tag_type;
-} emulator_tag_info_t;
-
-emulator_tag_info_t emulator_scene[EMULATOR_SCENE_END - EMULATOR_SCENE_START] = {
- { "hourOfDay", TYPE_INT32 }
-};
-
-emulator_tag_info_t *tag_info[END_EMULATOR_SECTIONS -
- VENDOR_SECTION] = {
- emulator_scene
-};
-
-const char* EmulatedFakeCamera2::getVendorSectionName(uint32_t tag) {
- ALOGV("%s", __FUNCTION__);
- uint32_t section = tag >> 16;
- if (section < VENDOR_SECTION || section > END_EMULATOR_SECTIONS) return NULL;
- return emulator_metadata_section_names[section - VENDOR_SECTION];
-}
-
-const char* EmulatedFakeCamera2::getVendorTagName(uint32_t tag) {
- ALOGV("%s", __FUNCTION__);
- uint32_t section = tag >> 16;
- if (section < VENDOR_SECTION || section > END_EMULATOR_SECTIONS) return NULL;
- uint32_t section_index = section - VENDOR_SECTION;
- if (tag >= emulator_metadata_section_bounds[section_index][1]) {
- return NULL;
- }
- uint32_t tag_index = tag & 0xFFFF;
- return tag_info[section_index][tag_index].tag_name;
-}
-
-int EmulatedFakeCamera2::getVendorTagType(uint32_t tag) {
- ALOGV("%s", __FUNCTION__);
- uint32_t section = tag >> 16;
- if (section < VENDOR_SECTION || section > END_EMULATOR_SECTIONS) return -1;
- uint32_t section_index = section - VENDOR_SECTION;
- if (tag >= emulator_metadata_section_bounds[section_index][1]) {
- return -1;
- }
- uint32_t tag_index = tag & 0xFFFF;
- return tag_info[section_index][tag_index].tag_type;
-}
-
/** Shutdown and debug methods */
int EmulatedFakeCamera2::dump(int fd) {
@@ -981,14 +904,6 @@
}
mNextSensitivity = *e.data.i32;
- res = find_camera_metadata_entry(mRequest,
- EMULATOR_SCENE_HOUROFDAY,
- &e);
- if (res == NO_ERROR) {
- ALOGV("Setting hour: %d", *e.data.i32);
- mParent->mSensor->getScene().setHour(*e.data.i32);
- }
-
// Start waiting on readout thread
mWaitingForReadout = true;
ALOGV("Configure: Waiting for readout thread");
@@ -1418,24 +1333,6 @@
&captureTime,
1);
- int32_t hourOfDay = (int32_t)mParent->mSensor->getScene().getHour();
- camera_metadata_entry_t requestedHour;
- res = find_camera_metadata_entry(frame,
- EMULATOR_SCENE_HOUROFDAY,
- &requestedHour);
- if (res == NAME_NOT_FOUND) {
- res = add_camera_metadata_entry(frame,
- EMULATOR_SCENE_HOUROFDAY,
- &hourOfDay, 1);
- if (res != NO_ERROR) {
- ALOGE("Unable to add vendor tag");
- }
- } else if (res == OK) {
- *requestedHour.data.i32 = hourOfDay;
- } else {
- ALOGE("%s: Error looking up vendor tag", __FUNCTION__);
- }
-
collectStatisticsMetadata(frame);
// TODO: Collect all final values used from sensor in addition to timestamp
}
@@ -1708,7 +1605,7 @@
// disable all 3A
if (mControlMode == ANDROID_CONTROL_MODE_OFF) {
mEffectMode = ANDROID_CONTROL_EFFECT_MODE_OFF;
- mSceneMode = ANDROID_CONTROL_SCENE_MODE_UNSUPPORTED;
+ mSceneMode = ANDROID_CONTROL_SCENE_MODE_DISABLED;
mAfMode = ANDROID_CONTROL_AF_MODE_OFF;
mAeLock = ANDROID_CONTROL_AE_LOCK_ON;
mAeMode = ANDROID_CONTROL_AE_MODE_OFF;
@@ -1730,7 +1627,7 @@
ANDROID_CONTROL_SCENE_MODE,
&mode);
mSceneMode = READ_IF_OK(res, mode.data.u8[0],
- ANDROID_CONTROL_SCENE_MODE_UNSUPPORTED);
+ ANDROID_CONTROL_SCENE_MODE_DISABLED);
res = find_camera_metadata_entry(request,
ANDROID_CONTROL_AF_MODE,
@@ -2201,21 +2098,6 @@
ADD_OR_SIZE(ANDROID_LENS_INFO_SHADING_MAP_SIZE, lensShadingMapSize,
sizeof(lensShadingMapSize)/sizeof(int32_t));
- // Identity transform
- static const int32_t geometricCorrectionMapSize[] = {2, 2};
- ADD_OR_SIZE(ANDROID_LENS_INFO_GEOMETRIC_CORRECTION_MAP_SIZE,
- geometricCorrectionMapSize,
- sizeof(geometricCorrectionMapSize)/sizeof(int32_t));
-
- static const float geometricCorrectionMap[2 * 3 * 2 * 2] = {
- 0.f, 0.f, 0.f, 0.f, 0.f, 0.f,
- 1.f, 0.f, 1.f, 0.f, 1.f, 0.f,
- 0.f, 1.f, 0.f, 1.f, 0.f, 1.f,
- 1.f, 1.f, 1.f, 1.f, 1.f, 1.f};
- ADD_OR_SIZE(ANDROID_LENS_INFO_GEOMETRIC_CORRECTION_MAP,
- geometricCorrectionMap,
- sizeof(geometricCorrectionMap)/sizeof(float));
-
int32_t lensFacing = mFacingBack ?
ANDROID_LENS_FACING_BACK : ANDROID_LENS_FACING_FRONT;
ADD_OR_SIZE(ANDROID_LENS_FACING, &lensFacing, 1);
@@ -2379,7 +2261,7 @@
// android.control
static const uint8_t availableSceneModes[] = {
- ANDROID_CONTROL_SCENE_MODE_UNSUPPORTED
+ ANDROID_CONTROL_SCENE_MODE_DISABLED
};
ADD_OR_SIZE(ANDROID_CONTROL_AVAILABLE_SCENE_MODES,
availableSceneModes, sizeof(availableSceneModes));
@@ -2390,9 +2272,9 @@
ADD_OR_SIZE(ANDROID_CONTROL_AVAILABLE_EFFECTS,
availableEffects, sizeof(availableEffects));
- int32_t max3aRegions = 0;
+ static const int32_t max3aRegions[] = {/*AE*/ 0,/*AWB*/ 0,/*AF*/ 0};
ADD_OR_SIZE(ANDROID_CONTROL_MAX_REGIONS,
- &max3aRegions, 1);
+ max3aRegions, sizeof(max3aRegions)/sizeof(max3aRegions[0]));
static const uint8_t availableAeModes[] = {
ANDROID_CONTROL_AE_MODE_OFF,
@@ -2561,7 +2443,6 @@
uint8_t demosaicMode = 0;
uint8_t noiseMode = 0;
uint8_t shadingMode = 0;
- uint8_t geometricMode = 0;
uint8_t colorMode = 0;
uint8_t tonemapMode = 0;
uint8_t edgeMode = 0;
@@ -2575,7 +2456,6 @@
demosaicMode = ANDROID_DEMOSAIC_MODE_HIGH_QUALITY;
noiseMode = ANDROID_NOISE_REDUCTION_MODE_HIGH_QUALITY;
shadingMode = ANDROID_SHADING_MODE_HIGH_QUALITY;
- geometricMode = ANDROID_GEOMETRIC_MODE_HIGH_QUALITY;
colorMode = ANDROID_COLOR_CORRECTION_MODE_HIGH_QUALITY;
tonemapMode = ANDROID_TONEMAP_MODE_HIGH_QUALITY;
edgeMode = ANDROID_EDGE_MODE_HIGH_QUALITY;
@@ -2589,7 +2469,6 @@
demosaicMode = ANDROID_DEMOSAIC_MODE_FAST;
noiseMode = ANDROID_NOISE_REDUCTION_MODE_FAST;
shadingMode = ANDROID_SHADING_MODE_FAST;
- geometricMode = ANDROID_GEOMETRIC_MODE_FAST;
colorMode = ANDROID_COLOR_CORRECTION_MODE_FAST;
tonemapMode = ANDROID_TONEMAP_MODE_FAST;
edgeMode = ANDROID_EDGE_MODE_FAST;
@@ -2599,7 +2478,6 @@
ADD_OR_SIZE(ANDROID_DEMOSAIC_MODE, &demosaicMode, 1);
ADD_OR_SIZE(ANDROID_NOISE_REDUCTION_MODE, &noiseMode, 1);
ADD_OR_SIZE(ANDROID_SHADING_MODE, &shadingMode, 1);
- ADD_OR_SIZE(ANDROID_GEOMETRIC_MODE, &geometricMode, 1);
ADD_OR_SIZE(ANDROID_COLOR_CORRECTION_MODE, &colorMode, 1);
ADD_OR_SIZE(ANDROID_TONEMAP_MODE, &tonemapMode, 1);
ADD_OR_SIZE(ANDROID_EDGE_MODE, &edgeMode, 1);
diff --git a/camera/EmulatedFakeCamera2.h b/camera/EmulatedFakeCamera2.h
index 1d209be..64c8667 100644
--- a/camera/EmulatedFakeCamera2.h
+++ b/camera/EmulatedFakeCamera2.h
@@ -125,11 +125,6 @@
int32_t ext1,
int32_t ext2);
- /** Custom tag definitions */
- virtual const char* getVendorSectionName(uint32_t tag);
- virtual const char* getVendorTagName(uint32_t tag);
- virtual int getVendorTagType(uint32_t tag);
-
/** Debug methods */
virtual int dump(int fd);
diff --git a/camera/EmulatedFakeCamera3.cpp b/camera/EmulatedFakeCamera3.cpp
index 0274aad..ba92459 100644
--- a/camera/EmulatedFakeCamera3.cpp
+++ b/camera/EmulatedFakeCamera3.cpp
@@ -522,7 +522,6 @@
uint8_t demosaicMode = 0;
uint8_t noiseMode = 0;
uint8_t shadingMode = 0;
- uint8_t geometricMode = 0;
uint8_t colorMode = 0;
uint8_t tonemapMode = 0;
uint8_t edgeMode = 0;
@@ -536,7 +535,6 @@
demosaicMode = ANDROID_DEMOSAIC_MODE_HIGH_QUALITY;
noiseMode = ANDROID_NOISE_REDUCTION_MODE_HIGH_QUALITY;
shadingMode = ANDROID_SHADING_MODE_HIGH_QUALITY;
- geometricMode = ANDROID_GEOMETRIC_MODE_HIGH_QUALITY;
colorMode = ANDROID_COLOR_CORRECTION_MODE_HIGH_QUALITY;
tonemapMode = ANDROID_TONEMAP_MODE_HIGH_QUALITY;
edgeMode = ANDROID_EDGE_MODE_HIGH_QUALITY;
@@ -550,7 +548,6 @@
demosaicMode = ANDROID_DEMOSAIC_MODE_FAST;
noiseMode = ANDROID_NOISE_REDUCTION_MODE_FAST;
shadingMode = ANDROID_SHADING_MODE_FAST;
- geometricMode = ANDROID_GEOMETRIC_MODE_FAST;
colorMode = ANDROID_COLOR_CORRECTION_MODE_FAST;
tonemapMode = ANDROID_TONEMAP_MODE_FAST;
edgeMode = ANDROID_EDGE_MODE_FAST;
@@ -560,7 +557,6 @@
settings.update(ANDROID_DEMOSAIC_MODE, &demosaicMode, 1);
settings.update(ANDROID_NOISE_REDUCTION_MODE, &noiseMode, 1);
settings.update(ANDROID_SHADING_MODE, &shadingMode, 1);
- settings.update(ANDROID_GEOMETRIC_MODE, &geometricMode, 1);
settings.update(ANDROID_COLOR_CORRECTION_MODE, &colorMode, 1);
settings.update(ANDROID_TONEMAP_MODE, &tonemapMode, 1);
settings.update(ANDROID_EDGE_MODE, &edgeMode, 1);
@@ -1062,21 +1058,6 @@
info.update(ANDROID_LENS_INFO_SHADING_MAP_SIZE, lensShadingMapSize,
sizeof(lensShadingMapSize)/sizeof(int32_t));
- // Identity transform
- static const int32_t geometricCorrectionMapSize[] = {2, 2};
- info.update(ANDROID_LENS_INFO_GEOMETRIC_CORRECTION_MAP_SIZE,
- geometricCorrectionMapSize,
- sizeof(geometricCorrectionMapSize)/sizeof(int32_t));
-
- static const float geometricCorrectionMap[2 * 3 * 2 * 2] = {
- 0.f, 0.f, 0.f, 0.f, 0.f, 0.f,
- 1.f, 0.f, 1.f, 0.f, 1.f, 0.f,
- 0.f, 1.f, 0.f, 1.f, 0.f, 1.f,
- 1.f, 1.f, 1.f, 1.f, 1.f, 1.f};
- info.update(ANDROID_LENS_INFO_GEOMETRIC_CORRECTION_MAP,
- geometricCorrectionMap,
- sizeof(geometricCorrectionMap)/sizeof(float));
-
uint8_t lensFacing = mFacingBack ?
ANDROID_LENS_FACING_BACK : ANDROID_LENS_FACING_FRONT;
info.update(ANDROID_LENS_FACING, &lensFacing, 1);
@@ -1132,6 +1113,9 @@
info.update(ANDROID_SENSOR_BLACK_LEVEL_PATTERN,
blackLevelPattern, sizeof(blackLevelPattern)/sizeof(int32_t));
+ static const int32_t orientation = 0; // unrotated (0 degrees)
+ info.update(ANDROID_SENSOR_ORIENTATION, &orientation, 1);
+
//TODO: sensor color calibration fields
// android.flash
@@ -1240,7 +1224,7 @@
// android.control
static const uint8_t availableSceneModes[] = {
- ANDROID_CONTROL_SCENE_MODE_UNSUPPORTED
+ ANDROID_CONTROL_SCENE_MODE_DISABLED
};
info.update(ANDROID_CONTROL_AVAILABLE_SCENE_MODES,
availableSceneModes, sizeof(availableSceneModes));
@@ -1251,9 +1235,9 @@
info.update(ANDROID_CONTROL_AVAILABLE_EFFECTS,
availableEffects, sizeof(availableEffects));
- int32_t max3aRegions = 0;
+ static const int32_t max3aRegions[] = {/*AE*/ 0,/*AWB*/ 0,/*AF*/ 0};
info.update(ANDROID_CONTROL_MAX_REGIONS,
- &max3aRegions, 1);
+ max3aRegions, sizeof(max3aRegions)/sizeof(max3aRegions[0]));
static const uint8_t availableAeModes[] = {
ANDROID_CONTROL_AE_MODE_OFF,
diff --git a/camera/media_codecs.xml b/camera/media_codecs.xml
index 8d46b98..87d11f2 100644
--- a/camera/media_codecs.xml
+++ b/camera/media_codecs.xml
@@ -16,10 +16,12 @@
<!--
<!DOCTYPE MediaCodecs [
-<!ELEMENT MediaCodecs (Decoders,Encoders)>
-<!ELEMENT Decoders (MediaCodec*)>
-<!ELEMENT Encoders (MediaCodec*)>
-<!ELEMENT MediaCodec (Type*,Quirk*)>
+<!ELEMENT Include EMPTY>
+<!ATTLIST Include href CDATA #REQUIRED>
+<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
+<!ELEMENT Decoders (MediaCodec|Include)*>
+<!ELEMENT Encoders (MediaCodec|Include)*>
+<!ELEMENT MediaCodec (Type|Quirk|Include)*>
<!ATTLIST MediaCodec name CDATA #REQUIRED>
<!ATTLIST MediaCodec type CDATA>
<!ELEMENT Type EMPTY>
@@ -76,31 +78,7 @@
-->
<MediaCodecs>
- <Decoders>
- <MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg" />
- <MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp" />
- <MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb" />
- <MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm" />
- <MediaCodec name="OMX.google.g711.alaw.decoder" type="audio/g711-alaw" />
- <MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw" />
- <MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis" />
- <MediaCodec name="OMX.google.gsm.decoder" type="audio/gsm" />
-
- <MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" />
- <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" />
- <MediaCodec name="OMX.google.h264.decoder" type="video/avc" />
- <MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" />
- <MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" />
- </Decoders>
-
- <Encoders>
- <MediaCodec name="OMX.google.aac.encoder" type="audio/mp4a-latm" />
- <MediaCodec name="OMX.google.amrnb.encoder" type="audio/3gpp" />
- <MediaCodec name="OMX.google.amrwb.encoder" type="audio/amr-wb" />
- <MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" />
- <MediaCodec name="OMX.google.h264.encoder" type="video/avc" />
- <MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" />
- <MediaCodec name="OMX.google.flac.encoder" type="audio/flac" />
- <MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" />
- </Encoders>
+ <Include href="media_codecs_google_audio.xml" />
+ <Include href="media_codecs_google_telephony.xml" />
+ <Include href="media_codecs_google_video.xml" />
</MediaCodecs>