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

Commit 9af4be55 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Camera: Set arbitrary dataspace for RAW streams" am: 37126523

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1576524

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I55fc51967ff4d5af17ae740b7ebeed5d0c8bdf4a
parents a45166f8 37126523
Loading
Loading
Loading
Loading
+24 −34
Original line number Diff line number Diff line
@@ -888,6 +888,8 @@ public:
    static Status getSystemCameraKind(const camera_metadata_t* staticMeta,
                                      SystemCameraKind* systemCameraKind);

    static V3_2::DataspaceFlags getDataspace(PixelFormat format);

    void processCaptureRequestInternal(uint64_t bufferusage, RequestTemplate reqTemplate,
                                       bool useSecureOnlyCameras);

@@ -3178,7 +3180,6 @@ TEST_P(CameraHidlTest, constructDefaultRequestSettings) {
    }
}


// Verify that all supported stream formats and sizes can be configured
// successfully.
TEST_P(CameraHidlTest, configureStreamsAvailableOutputs) {
@@ -3221,17 +3222,7 @@ TEST_P(CameraHidlTest, configureStreamsAvailableOutputs) {
        uint32_t streamConfigCounter = 0;
        for (auto& it : outputStreams) {
            V3_2::Stream stream3_2;
            V3_2::DataspaceFlags dataspaceFlag = 0;
            switch (static_cast<PixelFormat>(it.format)) {
                case PixelFormat::BLOB:
                    dataspaceFlag = static_cast<V3_2::DataspaceFlags>(Dataspace::V0_JFIF);
                    break;
                case PixelFormat::Y16:
                    dataspaceFlag = static_cast<V3_2::DataspaceFlags>(Dataspace::DEPTH);
                    break;
                default:
                    dataspaceFlag = static_cast<V3_2::DataspaceFlags>(Dataspace::UNKNOWN);
            }
            V3_2::DataspaceFlags dataspaceFlag = getDataspace(static_cast<PixelFormat>(it.format));
            stream3_2 = {streamId,
                             StreamType::OUTPUT,
                             static_cast<uint32_t>(it.width),
@@ -3351,17 +3342,8 @@ TEST_P(CameraHidlTest, configureConcurrentStreamsAvailableOutputs) {
            size_t j = 0;
            for (const auto& it : outputStreams) {
                V3_2::Stream stream3_2;
                V3_2::DataspaceFlags dataspaceFlag = 0;
                switch (static_cast<PixelFormat>(it.format)) {
                    case PixelFormat::BLOB:
                        dataspaceFlag = static_cast<V3_2::DataspaceFlags>(Dataspace::V0_JFIF);
                        break;
                    case PixelFormat::Y16:
                        dataspaceFlag = static_cast<V3_2::DataspaceFlags>(Dataspace::DEPTH);
                        break;
                    default:
                        dataspaceFlag = static_cast<V3_2::DataspaceFlags>(Dataspace::UNKNOWN);
                }
                V3_2::DataspaceFlags dataspaceFlag = getDataspace(
                        static_cast<PixelFormat>(it.format));
                stream3_2 = {streamId++,
                             StreamType::OUTPUT,
                             static_cast<uint32_t>(it.width),
@@ -5901,6 +5883,23 @@ Status CameraHidlTest::getSystemCameraKind(const camera_metadata_t* staticMeta,
    return ret;
}

// Select an appropriate dataspace given a specific pixel format.
V3_2::DataspaceFlags CameraHidlTest::getDataspace(PixelFormat format) {
    switch (format) {
        case PixelFormat::BLOB:
            return static_cast<V3_2::DataspaceFlags>(Dataspace::V0_JFIF);
        case PixelFormat::Y16:
            return static_cast<V3_2::DataspaceFlags>(Dataspace::DEPTH);
        case PixelFormat::RAW16:
        case PixelFormat::RAW_OPAQUE:
        case PixelFormat::RAW10:
        case PixelFormat::RAW12:
            return  static_cast<V3_2::DataspaceFlags>(Dataspace::ARBITRARY);
        default:
            return static_cast<V3_2::DataspaceFlags>(Dataspace::UNKNOWN);
    }
}

// Check whether this is a monochrome camera using the static camera characteristics.
Status CameraHidlTest::isMonochromeCamera(const camera_metadata_t *staticMeta) {
    Status ret = Status::METHOD_NOT_SUPPORTED;
@@ -6275,17 +6274,8 @@ void CameraHidlTest::configureOfflineStillStream(const std::string &name,
    ASSERT_EQ(Status::OK, rc);
    ASSERT_FALSE(outputStreams.empty());

    V3_2::DataspaceFlags dataspaceFlag = 0;
    switch (static_cast<PixelFormat>(outputStreams[idx].format)) {
        case PixelFormat::BLOB:
            dataspaceFlag = static_cast<V3_2::DataspaceFlags>(Dataspace::V0_JFIF);
            break;
        case PixelFormat::Y16:
            dataspaceFlag = static_cast<V3_2::DataspaceFlags>(Dataspace::DEPTH);
            break;
        default:
            dataspaceFlag = static_cast<V3_2::DataspaceFlags>(Dataspace::UNKNOWN);
    }
    V3_2::DataspaceFlags dataspaceFlag = getDataspace(
            static_cast<PixelFormat>(outputStreams[idx].format));

    ::android::hardware::hidl_vec<V3_4::Stream> streams3_4(/*size*/1);
    V3_4::Stream stream3_4 = {{ 0 /*streamId*/, StreamType::OUTPUT,