Merge "AudioTrack: presentationComplete by time for Direct Tracks." into sc-dev
diff --git a/camera/ndk/include/camera/NdkCameraMetadataTags.h b/camera/ndk/include/camera/NdkCameraMetadataTags.h
index 1609c7b..541c21e 100644
--- a/camera/ndk/include/camera/NdkCameraMetadataTags.h
+++ b/camera/ndk/include/camera/NdkCameraMetadataTags.h
@@ -9224,10 +9224,10 @@
* respective color channel provided in
* ACAMERA_SENSOR_TEST_PATTERN_DATA.</p>
* <p>For example:</p>
- * <pre><code>android.control.testPatternData = [0, 0xFFFFFFFF, 0xFFFFFFFF, 0]
+ * <pre><code>ACAMERA_SENSOR_TEST_PATTERN_DATA = [0, 0xFFFFFFFF, 0xFFFFFFFF, 0]
* </code></pre>
* <p>All green pixels are 100% green. All red/blue pixels are black.</p>
- * <pre><code>android.control.testPatternData = [0xFFFFFFFF, 0, 0xFFFFFFFF, 0]
+ * <pre><code>ACAMERA_SENSOR_TEST_PATTERN_DATA = [0xFFFFFFFF, 0, 0xFFFFFFFF, 0]
* </code></pre>
* <p>All red pixels are 100% red. Only the odd green pixels
* are 100% green. All blue pixels are 100% black.</p>
diff --git a/media/codec2/components/gav1/C2SoftGav1Dec.cpp b/media/codec2/components/gav1/C2SoftGav1Dec.cpp
index 76345ae..2fa4f25 100644
--- a/media/codec2/components/gav1/C2SoftGav1Dec.cpp
+++ b/media/codec2/components/gav1/C2SoftGav1Dec.cpp
@@ -65,12 +65,14 @@
C2Config::PROFILE_AV1_1}),
C2F(mProfileLevel, level)
.oneOf({
- C2Config::LEVEL_AV1_2,
- C2Config::LEVEL_AV1_2_1,
- C2Config::LEVEL_AV1_2_2,
- C2Config::LEVEL_AV1_3,
- C2Config::LEVEL_AV1_3_1,
- C2Config::LEVEL_AV1_3_2,
+ C2Config::LEVEL_AV1_2, C2Config::LEVEL_AV1_2_1,
+ C2Config::LEVEL_AV1_2_2, C2Config::LEVEL_AV1_2_3,
+ C2Config::LEVEL_AV1_3, C2Config::LEVEL_AV1_3_1,
+ C2Config::LEVEL_AV1_3_2, C2Config::LEVEL_AV1_3_3,
+ C2Config::LEVEL_AV1_4, C2Config::LEVEL_AV1_4_1,
+ C2Config::LEVEL_AV1_4_2, C2Config::LEVEL_AV1_4_3,
+ C2Config::LEVEL_AV1_5, C2Config::LEVEL_AV1_5_1,
+ C2Config::LEVEL_AV1_5_2, C2Config::LEVEL_AV1_5_3,
})})
.withSetter(ProfileLevelSetter, mSize)
.build());
diff --git a/media/libstagefright/data/media_codecs_sw.xml b/media/libstagefright/data/media_codecs_sw.xml
index a15a988..a32bc26 100644
--- a/media/libstagefright/data/media_codecs_sw.xml
+++ b/media/libstagefright/data/media_codecs_sw.xml
@@ -183,7 +183,7 @@
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="c2.android.av1.decoder" type="video/av01" variant="!slow-cpu">
- <Limit name="size" min="2x2" max="1920x1080" />
+ <Limit name="size" min="2x2" max="2048x2048" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="1-16384" />
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp
index d05a2e1..4b042f7 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.cpp
+++ b/services/camera/libcameraservice/device3/Camera3Device.cpp
@@ -353,9 +353,15 @@
camera_metadata_entry_t availableTestPatternModes = mDeviceInfo.find(
ANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES);
for (size_t i = 0; i < availableTestPatternModes.count; i++) {
- if (availableTestPatternModes.data.i32[i] == ANDROID_SENSOR_TEST_PATTERN_MODE_SOLID_COLOR) {
+ if (availableTestPatternModes.data.i32[i] ==
+ ANDROID_SENSOR_TEST_PATTERN_MODE_SOLID_COLOR) {
mSupportCameraMute = true;
+ mSupportTestPatternSolidColor = true;
break;
+ } else if (availableTestPatternModes.data.i32[i] ==
+ ANDROID_SENSOR_TEST_PATTERN_MODE_BLACK) {
+ mSupportCameraMute = true;
+ mSupportTestPatternSolidColor = false;
}
}
@@ -4163,7 +4169,7 @@
mCurrentAfTriggerId(0),
mCurrentPreCaptureTriggerId(0),
mRotateAndCropOverride(ANDROID_SCALER_ROTATE_AND_CROP_NONE),
- mCameraMute(false),
+ mCameraMute(ANDROID_SENSOR_TEST_PATTERN_MODE_OFF),
mCameraMuteChanged(false),
mRepeatingLastFrameNumber(
hardware::camera2::ICameraDeviceUser::NO_IN_FLIGHT_REPEATING_FRAMES),
@@ -5265,11 +5271,11 @@
return OK;
}
-status_t Camera3Device::RequestThread::setCameraMute(bool enabled) {
+status_t Camera3Device::RequestThread::setCameraMute(int32_t muteMode) {
ATRACE_CALL();
Mutex::Autolock l(mTriggerMutex);
- if (enabled != mCameraMute) {
- mCameraMute = enabled;
+ if (muteMode != mCameraMute) {
+ mCameraMute = muteMode;
mCameraMuteChanged = true;
}
return OK;
@@ -5844,8 +5850,8 @@
request->mOriginalTestPatternData[3]
};
- if (mCameraMute) {
- testPatternMode = ANDROID_SENSOR_TEST_PATTERN_MODE_SOLID_COLOR;
+ if (mCameraMute != ANDROID_SENSOR_TEST_PATTERN_MODE_OFF) {
+ testPatternMode = mCameraMute;
testPatternData[0] = 0;
testPatternData[1] = 0;
testPatternData[2] = 0;
@@ -6535,7 +6541,11 @@
if (mRequestThread == nullptr || !mSupportCameraMute) {
return INVALID_OPERATION;
}
- return mRequestThread->setCameraMute(enabled);
+ int32_t muteMode =
+ !enabled ? ANDROID_SENSOR_TEST_PATTERN_MODE_OFF :
+ mSupportTestPatternSolidColor ? ANDROID_SENSOR_TEST_PATTERN_MODE_SOLID_COLOR :
+ ANDROID_SENSOR_TEST_PATTERN_MODE_BLACK;
+ return mRequestThread->setCameraMute(muteMode);
}
status_t Camera3Device::injectCamera(const String8& injectedCamId,
diff --git a/services/camera/libcameraservice/device3/Camera3Device.h b/services/camera/libcameraservice/device3/Camera3Device.h
index f962c78..b27f1a5 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.h
+++ b/services/camera/libcameraservice/device3/Camera3Device.h
@@ -918,7 +918,7 @@
status_t setRotateAndCropAutoBehavior(
camera_metadata_enum_android_scaler_rotate_and_crop_t rotateAndCropValue);
- status_t setCameraMute(bool enabled);
+ status_t setCameraMute(int32_t muteMode);
status_t setHalInterface(sp<HalInterface> newHalInterface);
@@ -1069,7 +1069,7 @@
uint32_t mCurrentAfTriggerId;
uint32_t mCurrentPreCaptureTriggerId;
camera_metadata_enum_android_scaler_rotate_and_crop_t mRotateAndCropOverride;
- bool mCameraMute;
+ int32_t mCameraMute; // 0 = no mute, otherwise the TEST_PATTERN_MODE to use
bool mCameraMuteChanged;
int64_t mRepeatingLastFrameNumber;
@@ -1342,6 +1342,8 @@
// Whether the HAL supports camera muting via test pattern
bool mSupportCameraMute = false;
+ // Whether the HAL supports SOLID_COLOR or BLACK if mSupportCameraMute is true
+ bool mSupportTestPatternSolidColor = false;
// Injection camera related methods.
class Camera3DeviceInjectionMethods : public virtual RefBase {