mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Camera: Increase bit depth of stream use case to 64
Test: Camera CTS Bug: 223387965 Change-Id: I23a4324602ed37cf38c7a1a34dade615c4adb72b
This commit is contained in:
@@ -194,7 +194,7 @@ enum CameraMetadataEnumAndroidScalerAvailableRecommendedStreamConfigurations :
|
||||
/** android.scaler.availableStreamUseCases enumeration values
|
||||
* @see ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES
|
||||
*/
|
||||
enum CameraMetadataEnumAndroidScalerAvailableStreamUseCases : uint32_t {
|
||||
enum CameraMetadataEnumAndroidScalerAvailableStreamUseCases : int64_t {
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT = 0x0,
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW = 0x1,
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE = 0x2,
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
// later when a module using the interface is updated, e.g., Mainline modules.
|
||||
|
||||
package android.hardware.camera.metadata;
|
||||
@Backing(type="int") @VintfStability
|
||||
@Backing(type="long") @VintfStability
|
||||
enum ScalerAvailableStreamUseCases {
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT = 0,
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW = 1,
|
||||
|
||||
@@ -27,7 +27,7 @@ package android.hardware.camera.metadata;
|
||||
* @see ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES
|
||||
*/
|
||||
@VintfStability
|
||||
@Backing(type="int")
|
||||
@Backing(type="long")
|
||||
enum ScalerAvailableStreamUseCases {
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT = 0x0,
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW = 0x1,
|
||||
|
||||
@@ -222,7 +222,7 @@ enum SystemCameraKind {
|
||||
HIDDEN_SECURE_CAMERA
|
||||
};
|
||||
|
||||
const static std::vector<int32_t> kMandatoryUseCases = {
|
||||
const static std::vector<int64_t> kMandatoryUseCases = {
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT,
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW,
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE,
|
||||
@@ -6995,16 +6995,16 @@ TEST_P(CameraHidlTest, configureStreamsUseCases) {
|
||||
ASSERT_NE(0u, outputPreviewStreams.size());
|
||||
|
||||
// Combine valid and invalid stream use cases
|
||||
std::vector<int32_t> useCases(kMandatoryUseCases);
|
||||
std::vector<int64_t> useCases(kMandatoryUseCases);
|
||||
useCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL + 1);
|
||||
|
||||
std::vector<int32_t> supportedUseCases;
|
||||
std::vector<int64_t> supportedUseCases;
|
||||
camera_metadata_ro_entry entry;
|
||||
auto retcode = find_camera_metadata_ro_entry(staticMeta,
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, &entry);
|
||||
if ((0 == retcode) && (entry.count > 0)) {
|
||||
supportedUseCases.insert(supportedUseCases.end(), entry.data.i32,
|
||||
entry.data.i32 + entry.count);
|
||||
supportedUseCases.insert(supportedUseCases.end(), entry.data.i64,
|
||||
entry.data.i64 + entry.count);
|
||||
} else {
|
||||
supportedUseCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT);
|
||||
}
|
||||
@@ -7038,7 +7038,7 @@ TEST_P(CameraHidlTest, configureStreamsUseCases) {
|
||||
});
|
||||
ASSERT_TRUE(ret.isOk());
|
||||
|
||||
for (int32_t useCase : useCases) {
|
||||
for (int64_t useCase : useCases) {
|
||||
bool useCaseSupported = std::find(supportedUseCases.begin(),
|
||||
supportedUseCases.end(), useCase) != supportedUseCases.end();
|
||||
|
||||
@@ -9488,19 +9488,19 @@ void CameraHidlTest::verifyStreamUseCaseCharacteristics(const camera_metadata_t*
|
||||
if ((0 == retcode) && (entry.count > 0)) {
|
||||
supportMandatoryUseCases = true;
|
||||
for (size_t i = 0; i < kMandatoryUseCases.size(); i++) {
|
||||
if (std::find(entry.data.i32, entry.data.i32 + entry.count, kMandatoryUseCases[i])
|
||||
== entry.data.i32 + entry.count) {
|
||||
if (std::find(entry.data.i64, entry.data.i64 + entry.count, kMandatoryUseCases[i])
|
||||
== entry.data.i64 + entry.count) {
|
||||
supportMandatoryUseCases = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
bool supportDefaultUseCase = false;
|
||||
for (size_t i = 0; i < entry.count; i++) {
|
||||
if (entry.data.i32[i] == ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT) {
|
||||
if (entry.data.i64[i] == ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT) {
|
||||
supportDefaultUseCase = true;
|
||||
}
|
||||
ASSERT_TRUE(entry.data.i32[i] <= ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL ||
|
||||
entry.data.i32[i] >= ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VENDOR_START);
|
||||
ASSERT_TRUE(entry.data.i64[i] <= ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL ||
|
||||
entry.data.i64[i] >= ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VENDOR_START);
|
||||
}
|
||||
ASSERT_TRUE(supportDefaultUseCase);
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ const uint32_t kMaxStillHeight = 1536;
|
||||
|
||||
const int64_t kEmptyFlushTimeoutMSec = 200;
|
||||
|
||||
const static std::vector<int32_t> kMandatoryUseCases = {
|
||||
const static std::vector<int64_t> kMandatoryUseCases = {
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT,
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW,
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE,
|
||||
@@ -2974,10 +2974,10 @@ TEST_P(CameraAidlTest, configureStreamsUseCases) {
|
||||
ASSERT_NE(0u, outputPreviewStreams.size());
|
||||
|
||||
// Combine valid and invalid stream use cases
|
||||
std::vector<int32_t> useCases(kMandatoryUseCases);
|
||||
std::vector<int64_t> useCases(kMandatoryUseCases);
|
||||
useCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL + 1);
|
||||
|
||||
std::vector<int32_t> supportedUseCases;
|
||||
std::vector<int64_t> supportedUseCases;
|
||||
camera_metadata_ro_entry entry;
|
||||
auto retcode = find_camera_metadata_ro_entry(
|
||||
staticMeta, ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, &entry);
|
||||
@@ -3013,7 +3013,7 @@ TEST_P(CameraAidlTest, configureStreamsUseCases) {
|
||||
ASSERT_TRUE(ret.isOk());
|
||||
config.sessionParams = req;
|
||||
|
||||
for (int32_t useCase : useCases) {
|
||||
for (int64_t useCase : useCases) {
|
||||
bool useCaseSupported = std::find(supportedUseCases.begin(), supportedUseCases.end(),
|
||||
useCase) != supportedUseCases.end();
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ bool parseProviderName(const std::string& serviceDescriptor, std::string* type /
|
||||
return true;
|
||||
}
|
||||
|
||||
const std::vector<int32_t> kMandatoryUseCases = {
|
||||
const std::vector<int64_t> kMandatoryUseCases = {
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT,
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW,
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE,
|
||||
@@ -328,19 +328,19 @@ void CameraAidlTest::verifyStreamUseCaseCharacteristics(const camera_metadata_t*
|
||||
if ((0 == retcode) && (entry.count > 0)) {
|
||||
supportMandatoryUseCases = true;
|
||||
for (size_t i = 0; i < kMandatoryUseCases.size(); i++) {
|
||||
if (std::find(entry.data.i32, entry.data.i32 + entry.count, kMandatoryUseCases[i]) ==
|
||||
entry.data.i32 + entry.count) {
|
||||
if (std::find(entry.data.i64, entry.data.i64 + entry.count, kMandatoryUseCases[i]) ==
|
||||
entry.data.i64 + entry.count) {
|
||||
supportMandatoryUseCases = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
bool supportDefaultUseCase = false;
|
||||
for (size_t i = 0; i < entry.count; i++) {
|
||||
if (entry.data.i32[i] == ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT) {
|
||||
if (entry.data.i64[i] == ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT) {
|
||||
supportDefaultUseCase = true;
|
||||
}
|
||||
ASSERT_TRUE(entry.data.i32[i] <= ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL ||
|
||||
entry.data.i32[i] >=
|
||||
ASSERT_TRUE(entry.data.i64[i] <= ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL ||
|
||||
entry.data.i64[i] >=
|
||||
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VENDOR_START);
|
||||
}
|
||||
ASSERT_TRUE(supportDefaultUseCase);
|
||||
|
||||
Reference in New Issue
Block a user