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

Commit 3c2ebae8 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "VtsHalCameraProviderV2_4TargetTest: Override rotate&crop" into sc-v2-dev

parents dc6da704 06ec563f
Loading
Loading
Loading
Loading
+28 −0
Original line number Original line Diff line number Diff line
@@ -882,6 +882,7 @@ public:
            camera_metadata* oldSessionParams, camera_metadata* newSessionParams);
            camera_metadata* oldSessionParams, camera_metadata* newSessionParams);


    void verifyRequestTemplate(const camera_metadata_t* metadata, RequestTemplate requestTemplate);
    void verifyRequestTemplate(const camera_metadata_t* metadata, RequestTemplate requestTemplate);
    static void overrideRotateAndCrop(::android::hardware::hidl_vec<uint8_t> *settings /*in/out*/);


    static bool isDepthOnly(const camera_metadata_t* staticMeta);
    static bool isDepthOnly(const camera_metadata_t* staticMeta);


@@ -4660,6 +4661,7 @@ void CameraHidlTest::processCaptureRequestInternal(uint64_t bufferUsage,
                                                           settings = req;
                                                           settings = req;
                                                       });
                                                       });
        ASSERT_TRUE(ret.isOk());
        ASSERT_TRUE(ret.isOk());
        overrideRotateAndCrop(&settings);


        hidl_handle buffer_handle;
        hidl_handle buffer_handle;
        StreamBuffer outputBuffer;
        StreamBuffer outputBuffer;
@@ -4836,6 +4838,7 @@ TEST_P(CameraHidlTest, processMultiCaptureRequestPreview) {
        settings.setToExternal(
        settings.setToExternal(
                reinterpret_cast<uint8_t *> (const_cast<camera_metadata_t *> (settingsBuffer)),
                reinterpret_cast<uint8_t *> (const_cast<camera_metadata_t *> (settingsBuffer)),
                get_camera_metadata_size(settingsBuffer));
                get_camera_metadata_size(settingsBuffer));
        overrideRotateAndCrop(&settings);


        free_camera_metadata(staticMeta);
        free_camera_metadata(staticMeta);
        ret = session->close();
        ret = session->close();
@@ -4913,6 +4916,7 @@ TEST_P(CameraHidlTest, processMultiCaptureRequestPreview) {
                reinterpret_cast<uint8_t *> (const_cast<camera_metadata_t *> (
                reinterpret_cast<uint8_t *> (const_cast<camera_metadata_t *> (
                        filteredSettingsBuffer)),
                        filteredSettingsBuffer)),
                get_camera_metadata_size(filteredSettingsBuffer));
                get_camera_metadata_size(filteredSettingsBuffer));
        overrideRotateAndCrop(&camSettings[0].settings);
        camSettings[0].fmqSettingsSize = 0;
        camSettings[0].fmqSettingsSize = 0;
        camSettings[0].physicalCameraId = physicalDeviceId;
        camSettings[0].physicalCameraId = physicalDeviceId;


@@ -5070,6 +5074,7 @@ TEST_P(CameraHidlTest, processUltraHighResolutionRequest) {
        settings.setToExternal(
        settings.setToExternal(
                reinterpret_cast<uint8_t*>(const_cast<camera_metadata_t*>(settingsBuffer)),
                reinterpret_cast<uint8_t*>(const_cast<camera_metadata_t*>(settingsBuffer)),
                get_camera_metadata_size(settingsBuffer));
                get_camera_metadata_size(settingsBuffer));
        overrideRotateAndCrop(&settings);


        free_camera_metadata(staticMeta);
        free_camera_metadata(staticMeta);
        ret = session->close();
        ret = session->close();
@@ -5305,6 +5310,7 @@ TEST_P(CameraHidlTest, processCaptureRequestBurstISO) {
            camera_metadata_t *metaBuffer = requestMeta.release();
            camera_metadata_t *metaBuffer = requestMeta.release();
            requestSettings[i].setToExternal(reinterpret_cast<uint8_t *> (metaBuffer),
            requestSettings[i].setToExternal(reinterpret_cast<uint8_t *> (metaBuffer),
                    get_camera_metadata_size(metaBuffer), true);
                    get_camera_metadata_size(metaBuffer), true);
            overrideRotateAndCrop(&requestSettings[i]);


            requests[i] = {frameNumber + i, 0 /* fmqSettingsSize */, requestSettings[i],
            requests[i] = {frameNumber + i, 0 /* fmqSettingsSize */, requestSettings[i],
                emptyInputBuffer, {outputBuffers[i]}};
                emptyInputBuffer, {outputBuffers[i]}};
@@ -5531,6 +5537,7 @@ TEST_P(CameraHidlTest, switchToOffline) {
            camera_metadata_t *metaBuffer = requestMeta.release();
            camera_metadata_t *metaBuffer = requestMeta.release();
            requestSettings[i].setToExternal(reinterpret_cast<uint8_t *> (metaBuffer),
            requestSettings[i].setToExternal(reinterpret_cast<uint8_t *> (metaBuffer),
                    get_camera_metadata_size(metaBuffer), true);
                    get_camera_metadata_size(metaBuffer), true);
            overrideRotateAndCrop(&requestSettings[i]);


            requests[i] = {frameNumber + i, 0 /* fmqSettingsSize */, requestSettings[i],
            requests[i] = {frameNumber + i, 0 /* fmqSettingsSize */, requestSettings[i],
                emptyInputBuffer, {outputBuffers[i]}};
                emptyInputBuffer, {outputBuffers[i]}};
@@ -5671,6 +5678,7 @@ TEST_P(CameraHidlTest, processCaptureRequestInvalidBuffer) {
                                                           settings = req;
                                                           settings = req;
                                                       });
                                                       });
        ASSERT_TRUE(ret.isOk());
        ASSERT_TRUE(ret.isOk());
        overrideRotateAndCrop(&settings);


        ::android::hardware::hidl_vec<StreamBuffer> emptyOutputBuffers;
        ::android::hardware::hidl_vec<StreamBuffer> emptyOutputBuffers;
        StreamBuffer emptyInputBuffer = {-1, 0, nullptr, BufferStatus::ERROR, nullptr,
        StreamBuffer emptyInputBuffer = {-1, 0, nullptr, BufferStatus::ERROR, nullptr,
@@ -5755,6 +5763,7 @@ TEST_P(CameraHidlTest, flushPreviewRequest) {
                                                           settings = req;
                                                           settings = req;
                                                       });
                                                       });
        ASSERT_TRUE(ret.isOk());
        ASSERT_TRUE(ret.isOk());
        overrideRotateAndCrop(&settings);


        hidl_handle buffer_handle;
        hidl_handle buffer_handle;
        if (useHalBufManager) {
        if (useHalBufManager) {
@@ -8909,6 +8918,25 @@ void CameraHidlTest::verifyRequestTemplate(const camera_metadata_t* metadata,
    }
    }
}
}


void CameraHidlTest::overrideRotateAndCrop(
        ::android::hardware::hidl_vec<uint8_t> *settings /*in/out*/) {
    if (settings == nullptr) {
        return;
    }

    ::android::hardware::camera::common::V1_0::helper::CameraMetadata requestMeta;
    requestMeta.append(reinterpret_cast<camera_metadata_t *> (settings->data()));
    auto entry = requestMeta.find(ANDROID_SCALER_ROTATE_AND_CROP);
    if ((entry.count > 0) && (entry.data.u8[0] == ANDROID_SCALER_ROTATE_AND_CROP_AUTO)) {
        uint8_t disableRotateAndCrop = ANDROID_SCALER_ROTATE_AND_CROP_NONE;
        requestMeta.update(ANDROID_SCALER_ROTATE_AND_CROP, &disableRotateAndCrop, 1);
        settings->releaseData();
        camera_metadata_t *metaBuffer = requestMeta.release();
        settings->setToExternal(reinterpret_cast<uint8_t *> (metaBuffer),
                get_camera_metadata_size(metaBuffer), true);
    }
}

GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(CameraHidlTest);
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(CameraHidlTest);
INSTANTIATE_TEST_SUITE_P(
INSTANTIATE_TEST_SUITE_P(
        PerInstance, CameraHidlTest,
        PerInstance, CameraHidlTest,