Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f68d60d4 authored by Shuzhen Wang's avatar Shuzhen Wang Committed by Android (Google) Code Review
Browse files

Merge "Camera: Increase bit depth of stream use case to 64" into tm-dev

parents 235ca70c 36efa716
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -194,7 +194,7 @@ enum CameraMetadataEnumAndroidScalerAvailableRecommendedStreamConfigurations :
/** android.scaler.availableStreamUseCases enumeration values
/** android.scaler.availableStreamUseCases enumeration values
 * @see ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES
 * @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_DEFAULT           = 0x0,
    ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW           = 0x1,
    ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW           = 0x1,
    ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE     = 0x2,
    ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE     = 0x2,
+1 −1
Original line number Original line Diff line number Diff line
@@ -36,7 +36,7 @@
// later when a module using the interface is updated, e.g., Mainline modules.
// later when a module using the interface is updated, e.g., Mainline modules.


package android.hardware.camera.metadata;
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
@Backing(type="long") @VintfStability
enum ScalerAvailableStreamUseCases {
enum ScalerAvailableStreamUseCases {
  ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT = 0,
  ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT = 0,
  ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW = 1,
  ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW = 1,
+1 −1
Original line number Original line Diff line number Diff line
@@ -27,7 +27,7 @@ package android.hardware.camera.metadata;
 * @see ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES
 * @see ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES
 */
 */
@VintfStability
@VintfStability
@Backing(type="int")
@Backing(type="long")
enum ScalerAvailableStreamUseCases {
enum ScalerAvailableStreamUseCases {
    ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT = 0x0,
    ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT = 0x0,
    ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW = 0x1,
    ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW = 0x1,
+11 −11
Original line number Original line Diff line number Diff line
@@ -222,7 +222,7 @@ enum SystemCameraKind {
    HIDDEN_SECURE_CAMERA
    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_DEFAULT,
        ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW,
        ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW,
        ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE,
        ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE,
@@ -6995,16 +6995,16 @@ TEST_P(CameraHidlTest, configureStreamsUseCases) {
        ASSERT_NE(0u, outputPreviewStreams.size());
        ASSERT_NE(0u, outputPreviewStreams.size());


        // Combine valid and invalid stream use cases
        // 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);
        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;
        camera_metadata_ro_entry entry;
        auto retcode = find_camera_metadata_ro_entry(staticMeta,
        auto retcode = find_camera_metadata_ro_entry(staticMeta,
                ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, &entry);
                ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, &entry);
        if ((0 == retcode) && (entry.count > 0)) {
        if ((0 == retcode) && (entry.count > 0)) {
            supportedUseCases.insert(supportedUseCases.end(), entry.data.i32,
            supportedUseCases.insert(supportedUseCases.end(), entry.data.i64,
                    entry.data.i32 + entry.count);
                    entry.data.i64 + entry.count);
        } else {
        } else {
            supportedUseCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT);
            supportedUseCases.push_back(ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT);
        }
        }
@@ -7038,7 +7038,7 @@ TEST_P(CameraHidlTest, configureStreamsUseCases) {
                                                });
                                                });
        ASSERT_TRUE(ret.isOk());
        ASSERT_TRUE(ret.isOk());


        for (int32_t useCase : useCases) {
        for (int64_t useCase : useCases) {
            bool useCaseSupported = std::find(supportedUseCases.begin(),
            bool useCaseSupported = std::find(supportedUseCases.begin(),
                    supportedUseCases.end(), useCase) != supportedUseCases.end();
                    supportedUseCases.end(), useCase) != supportedUseCases.end();


@@ -9488,19 +9488,19 @@ void CameraHidlTest::verifyStreamUseCaseCharacteristics(const camera_metadata_t*
    if ((0 == retcode) && (entry.count > 0)) {
    if ((0 == retcode) && (entry.count > 0)) {
        supportMandatoryUseCases = true;
        supportMandatoryUseCases = true;
        for (size_t i = 0; i < kMandatoryUseCases.size(); i++) {
        for (size_t i = 0; i < kMandatoryUseCases.size(); i++) {
            if (std::find(entry.data.i32, entry.data.i32 + entry.count, kMandatoryUseCases[i])
            if (std::find(entry.data.i64, entry.data.i64 + entry.count, kMandatoryUseCases[i])
                    == entry.data.i32 + entry.count) {
                    == entry.data.i64 + entry.count) {
                supportMandatoryUseCases = false;
                supportMandatoryUseCases = false;
                break;
                break;
            }
            }
        }
        }
        bool supportDefaultUseCase = false;
        bool supportDefaultUseCase = false;
        for (size_t i = 0; i < entry.count; i++) {
        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;
                supportDefaultUseCase = true;
            }
            }
            ASSERT_TRUE(entry.data.i32[i] <= ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL ||
            ASSERT_TRUE(entry.data.i64[i] <= ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL ||
                    entry.data.i32[i] >= ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VENDOR_START);
                    entry.data.i64[i] >= ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VENDOR_START);
        }
        }
        ASSERT_TRUE(supportDefaultUseCase);
        ASSERT_TRUE(supportDefaultUseCase);
    }
    }
+4 −4
Original line number Original line Diff line number Diff line
@@ -50,7 +50,7 @@ const uint32_t kMaxStillHeight = 1536;


const int64_t kEmptyFlushTimeoutMSec = 200;
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_DEFAULT,
        ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW,
        ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW,
        ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE,
        ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE,
@@ -2981,10 +2981,10 @@ TEST_P(CameraAidlTest, configureStreamsUseCases) {
        ASSERT_NE(0u, outputPreviewStreams.size());
        ASSERT_NE(0u, outputPreviewStreams.size());


        // Combine valid and invalid stream use cases
        // 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);
        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;
        camera_metadata_ro_entry entry;
        auto retcode = find_camera_metadata_ro_entry(
        auto retcode = find_camera_metadata_ro_entry(
                staticMeta, ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, &entry);
                staticMeta, ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, &entry);
@@ -3020,7 +3020,7 @@ TEST_P(CameraAidlTest, configureStreamsUseCases) {
        ASSERT_TRUE(ret.isOk());
        ASSERT_TRUE(ret.isOk());
        config.sessionParams = req;
        config.sessionParams = req;


        for (int32_t useCase : useCases) {
        for (int64_t useCase : useCases) {
            bool useCaseSupported = std::find(supportedUseCases.begin(), supportedUseCases.end(),
            bool useCaseSupported = std::find(supportedUseCases.begin(), supportedUseCases.end(),
                                              useCase) != supportedUseCases.end();
                                              useCase) != supportedUseCases.end();


Loading