Loading camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp +64 −12 Original line number Original line Diff line number Diff line Loading @@ -715,7 +715,8 @@ public: StreamConfigurationMode configMode, StreamConfigurationMode configMode, ::android::hardware::camera::device::V3_2::StreamConfiguration *config3_2, ::android::hardware::camera::device::V3_2::StreamConfiguration *config3_2, ::android::hardware::camera::device::V3_4::StreamConfiguration *config3_4, ::android::hardware::camera::device::V3_4::StreamConfiguration *config3_4, ::android::hardware::camera::device::V3_5::StreamConfiguration *config3_5); ::android::hardware::camera::device::V3_5::StreamConfiguration *config3_5, uint32_t jpegBufferSize = 0); void configurePreviewStreams3_4(const std::string &name, int32_t deviceVersion, void configurePreviewStreams3_4(const std::string &name, int32_t deviceVersion, sp<ICameraProvider> provider, sp<ICameraProvider> provider, Loading Loading @@ -766,6 +767,8 @@ public: static Status getAvailableOutputStreams(camera_metadata_t *staticMeta, static Status getAvailableOutputStreams(camera_metadata_t *staticMeta, std::vector<AvailableStream> &outputStreams, std::vector<AvailableStream> &outputStreams, const AvailableStream *threshold = nullptr); const AvailableStream *threshold = nullptr); static Status getJpegBufferSize(camera_metadata_t *staticMeta, uint32_t* outBufSize); static Status isConstrainedModeAvailable(camera_metadata_t *staticMeta); static Status isConstrainedModeAvailable(camera_metadata_t *staticMeta); static Status isLogicalMultiCamera(const camera_metadata_t *staticMeta); static Status isLogicalMultiCamera(const camera_metadata_t *staticMeta); static Status getPhysicalCameraIds(const camera_metadata_t *staticMeta, static Status getPhysicalCameraIds(const camera_metadata_t *staticMeta, Loading Loading @@ -2786,6 +2789,10 @@ TEST_F(CameraHidlTest, configureStreamsAvailableOutputs) { ASSERT_EQ(Status::OK, getAvailableOutputStreams(staticMeta, outputStreams)); ASSERT_EQ(Status::OK, getAvailableOutputStreams(staticMeta, outputStreams)); ASSERT_NE(0u, outputStreams.size()); ASSERT_NE(0u, outputStreams.size()); uint32_t jpegBufferSize = 0; ASSERT_EQ(Status::OK, getJpegBufferSize(staticMeta, &jpegBufferSize)); ASSERT_NE(0u, jpegBufferSize); int32_t streamId = 0; int32_t streamId = 0; uint32_t streamConfigCounter = 0; uint32_t streamConfigCounter = 0; for (auto& it : outputStreams) { for (auto& it : outputStreams) { Loading @@ -2804,7 +2811,7 @@ TEST_F(CameraHidlTest, configureStreamsAvailableOutputs) { ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; createStreamConfiguration(streams3_2, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams3_2, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { verifyStreamCombination(cameraDevice3_5, config3_4, verifyStreamCombination(cameraDevice3_5, config3_4, /*expectedStatus*/ true); /*expectedStatus*/ true); Loading Loading @@ -2879,6 +2886,10 @@ TEST_F(CameraHidlTest, configureStreamsInvalidOutputs) { ASSERT_EQ(Status::OK, getAvailableOutputStreams(staticMeta, outputStreams)); ASSERT_EQ(Status::OK, getAvailableOutputStreams(staticMeta, outputStreams)); ASSERT_NE(0u, outputStreams.size()); ASSERT_NE(0u, outputStreams.size()); uint32_t jpegBufferSize = 0; ASSERT_EQ(Status::OK, getJpegBufferSize(staticMeta, &jpegBufferSize)); ASSERT_NE(0u, jpegBufferSize); int32_t streamId = 0; int32_t streamId = 0; V3_2::Stream stream3_2 = {streamId++, V3_2::Stream stream3_2 = {streamId++, StreamType::OUTPUT, StreamType::OUTPUT, Loading @@ -2894,7 +2905,7 @@ TEST_F(CameraHidlTest, configureStreamsInvalidOutputs) { ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { verifyStreamCombination(cameraDevice3_5, config3_4, /*expectedStatus*/ false); verifyStreamCombination(cameraDevice3_5, config3_4, /*expectedStatus*/ false); config3_5.streamConfigCounter = streamConfigCounter++; config3_5.streamConfigCounter = streamConfigCounter++; Loading Loading @@ -2934,7 +2945,7 @@ TEST_F(CameraHidlTest, configureStreamsInvalidOutputs) { StreamRotation::ROTATION_0}; StreamRotation::ROTATION_0}; streams[0] = stream3_2; streams[0] = stream3_2; createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { config3_5.streamConfigCounter = streamConfigCounter++; config3_5.streamConfigCounter = streamConfigCounter++; ret = session3_5->configureStreams_3_5(config3_5, [](Status s, ret = session3_5->configureStreams_3_5(config3_5, [](Status s, Loading Loading @@ -2970,7 +2981,7 @@ TEST_F(CameraHidlTest, configureStreamsInvalidOutputs) { StreamRotation::ROTATION_0}; StreamRotation::ROTATION_0}; streams[0] = stream3_2; streams[0] = stream3_2; createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { config3_5.streamConfigCounter = streamConfigCounter++; config3_5.streamConfigCounter = streamConfigCounter++; ret = session3_5->configureStreams_3_5(config3_5, ret = session3_5->configureStreams_3_5(config3_5, Loading Loading @@ -3005,7 +3016,7 @@ TEST_F(CameraHidlTest, configureStreamsInvalidOutputs) { static_cast<StreamRotation>(UINT32_MAX)}; static_cast<StreamRotation>(UINT32_MAX)}; streams[0] = stream3_2; streams[0] = stream3_2; createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { config3_5.streamConfigCounter = streamConfigCounter++; config3_5.streamConfigCounter = streamConfigCounter++; ret = session3_5->configureStreams_3_5(config3_5, ret = session3_5->configureStreams_3_5(config3_5, Loading Loading @@ -3093,6 +3104,10 @@ TEST_F(CameraHidlTest, configureStreamsZSLInputOutputs) { } } } } uint32_t jpegBufferSize = 0; ASSERT_EQ(Status::OK, getJpegBufferSize(staticMeta, &jpegBufferSize)); ASSERT_NE(0u, jpegBufferSize); int32_t streamId = 0; int32_t streamId = 0; bool hasPrivToY8 = false, hasY8ToY8 = false, hasY8ToBlob = false; bool hasPrivToY8 = false, hasY8ToY8 = false, hasY8ToBlob = false; uint32_t streamConfigCounter = 0; uint32_t streamConfigCounter = 0; Loading Loading @@ -3150,7 +3165,7 @@ TEST_F(CameraHidlTest, configureStreamsZSLInputOutputs) { ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { verifyStreamCombination(cameraDevice3_5, config3_4, verifyStreamCombination(cameraDevice3_5, config3_4, /*expectedStatus*/ true); /*expectedStatus*/ true); Loading Loading @@ -3199,7 +3214,7 @@ TEST_F(CameraHidlTest, configureStreamsZSLInputOutputs) { } } } } // Check wehether session parameters are supported. If Hal support for them // Check whether session parameters are supported. If Hal support for them // exist, then try to configure a preview stream using them. // exist, then try to configure a preview stream using them. TEST_F(CameraHidlTest, configureStreamsWithSessionParameters) { TEST_F(CameraHidlTest, configureStreamsWithSessionParameters) { hidl_vec<hidl_string> cameraDeviceNames = getCameraDeviceNames(mProvider); hidl_vec<hidl_string> cameraDeviceNames = getCameraDeviceNames(mProvider); Loading Loading @@ -3266,6 +3281,7 @@ TEST_F(CameraHidlTest, configureStreamsWithSessionParameters) { GRALLOC1_CONSUMER_USAGE_HWCOMPOSER, GRALLOC1_CONSUMER_USAGE_HWCOMPOSER, 0, 0, StreamRotation::ROTATION_0}; StreamRotation::ROTATION_0}; previewStream.bufferSize = 0; ::android::hardware::hidl_vec<V3_4::Stream> streams = {previewStream}; ::android::hardware::hidl_vec<V3_4::Stream> streams = {previewStream}; ::android::hardware::camera::device::V3_4::StreamConfiguration config; ::android::hardware::camera::device::V3_4::StreamConfiguration config; ::android::hardware::camera::device::V3_5::StreamConfiguration config3_5; ::android::hardware::camera::device::V3_5::StreamConfiguration config3_5; Loading Loading @@ -3344,6 +3360,10 @@ TEST_F(CameraHidlTest, configureStreamsPreviewStillOutputs) { &previewThreshold)); &previewThreshold)); ASSERT_NE(0u, outputPreviewStreams.size()); ASSERT_NE(0u, outputPreviewStreams.size()); uint32_t jpegBufferSize = 0; ASSERT_EQ(Status::OK, getJpegBufferSize(staticMeta, &jpegBufferSize)); ASSERT_NE(0u, jpegBufferSize); int32_t streamId = 0; int32_t streamId = 0; uint32_t streamConfigCounter = 0; uint32_t streamConfigCounter = 0; for (auto& blobIter : outputBlobStreams) { for (auto& blobIter : outputBlobStreams) { Loading @@ -3370,7 +3390,7 @@ TEST_F(CameraHidlTest, configureStreamsPreviewStillOutputs) { ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { verifyStreamCombination(cameraDevice3_5, config3_4, verifyStreamCombination(cameraDevice3_5, config3_4, /*expectedStatus*/ true); /*expectedStatus*/ true); Loading Loading @@ -3661,6 +3681,10 @@ TEST_F(CameraHidlTest, configureStreamsVideoStillOutputs) { &videoThreshold)); &videoThreshold)); ASSERT_NE(0u, outputVideoStreams.size()); ASSERT_NE(0u, outputVideoStreams.size()); uint32_t jpegBufferSize = 0; ASSERT_EQ(Status::OK, getJpegBufferSize(staticMeta, &jpegBufferSize)); ASSERT_NE(0u, jpegBufferSize); int32_t streamId = 0; int32_t streamId = 0; uint32_t streamConfigCounter = 0; uint32_t streamConfigCounter = 0; for (auto& blobIter : outputBlobStreams) { for (auto& blobIter : outputBlobStreams) { Loading @@ -3686,7 +3710,7 @@ TEST_F(CameraHidlTest, configureStreamsVideoStillOutputs) { ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { verifyStreamCombination(cameraDevice3_5, config3_4, verifyStreamCombination(cameraDevice3_5, config3_4, /*expectedStatus*/ true); /*expectedStatus*/ true); Loading Loading @@ -4660,6 +4684,23 @@ Status CameraHidlTest::getAvailableOutputStreams(camera_metadata_t *staticMeta, return Status::OK; return Status::OK; } } // Get max jpeg buffer size in android.jpeg.maxSize Status CameraHidlTest::getJpegBufferSize(camera_metadata_t *staticMeta, uint32_t* outBufSize) { if (nullptr == staticMeta || nullptr == outBufSize) { return Status::ILLEGAL_ARGUMENT; } camera_metadata_ro_entry entry; int rc = find_camera_metadata_ro_entry(staticMeta, ANDROID_JPEG_MAX_SIZE, &entry); if ((0 != rc) || (1 != entry.count)) { return Status::ILLEGAL_ARGUMENT; } *outBufSize = static_cast<uint32_t>(entry.data.i32[0]); return Status::OK; } // Check if the camera device has logical multi-camera capability. // Check if the camera device has logical multi-camera capability. Status CameraHidlTest::isLogicalMultiCamera(const camera_metadata_t *staticMeta) { Status CameraHidlTest::isLogicalMultiCamera(const camera_metadata_t *staticMeta) { Status ret = Status::METHOD_NOT_SUPPORTED; Status ret = Status::METHOD_NOT_SUPPORTED; Loading Loading @@ -4946,7 +4987,8 @@ void CameraHidlTest::createStreamConfiguration( StreamConfigurationMode configMode, StreamConfigurationMode configMode, ::android::hardware::camera::device::V3_2::StreamConfiguration *config3_2 /*out*/, ::android::hardware::camera::device::V3_2::StreamConfiguration *config3_2 /*out*/, ::android::hardware::camera::device::V3_4::StreamConfiguration *config3_4 /*out*/, ::android::hardware::camera::device::V3_4::StreamConfiguration *config3_4 /*out*/, ::android::hardware::camera::device::V3_5::StreamConfiguration *config3_5 /*out*/) { ::android::hardware::camera::device::V3_5::StreamConfiguration *config3_5 /*out*/, uint32_t jpegBufferSize) { ASSERT_NE(nullptr, config3_2); ASSERT_NE(nullptr, config3_2); ASSERT_NE(nullptr, config3_4); ASSERT_NE(nullptr, config3_4); ASSERT_NE(nullptr, config3_5); ASSERT_NE(nullptr, config3_5); Loading @@ -4956,6 +4998,11 @@ void CameraHidlTest::createStreamConfiguration( for (auto& stream3_2 : streams3_2) { for (auto& stream3_2 : streams3_2) { V3_4::Stream stream; V3_4::Stream stream; stream.v3_2 = stream3_2; stream.v3_2 = stream3_2; stream.bufferSize = 0; if (stream3_2.format == PixelFormat::BLOB && stream3_2.dataSpace == static_cast<V3_2::DataspaceFlags>(Dataspace::V0_JFIF)) { stream.bufferSize = jpegBufferSize; } streams3_4[idx++] = stream; streams3_4[idx++] = stream; } } // Caller is responsible to fill in non-zero config3_5->streamConfigCounter after this returns // Caller is responsible to fill in non-zero config3_5->streamConfigCounter after this returns Loading Loading @@ -5191,6 +5238,11 @@ void CameraHidlTest::configurePreviewStream(const std::string &name, int32_t dev outputPreviewStreams.clear(); outputPreviewStreams.clear(); auto rc = getAvailableOutputStreams(staticMeta, auto rc = getAvailableOutputStreams(staticMeta, outputPreviewStreams, previewThreshold); outputPreviewStreams, previewThreshold); uint32_t jpegBufferSize = 0; ASSERT_EQ(Status::OK, getJpegBufferSize(staticMeta, &jpegBufferSize)); ASSERT_NE(0u, jpegBufferSize); free_camera_metadata(staticMeta); free_camera_metadata(staticMeta); ASSERT_EQ(Status::OK, rc); ASSERT_EQ(Status::OK, rc); ASSERT_FALSE(outputPreviewStreams.empty()); ASSERT_FALSE(outputPreviewStreams.empty()); Loading @@ -5205,7 +5257,7 @@ void CameraHidlTest::configurePreviewStream(const std::string &name, int32_t dev ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_5::StreamConfiguration config3_5; ::android::hardware::camera::device::V3_5::StreamConfiguration config3_5; createStreamConfiguration(streams3_2, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams3_2, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { RequestTemplate reqTemplate = RequestTemplate::PREVIEW; RequestTemplate reqTemplate = RequestTemplate::PREVIEW; ret = session3_5->constructDefaultRequestSettings(reqTemplate, ret = session3_5->constructDefaultRequestSettings(reqTemplate, Loading Loading
camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp +64 −12 Original line number Original line Diff line number Diff line Loading @@ -715,7 +715,8 @@ public: StreamConfigurationMode configMode, StreamConfigurationMode configMode, ::android::hardware::camera::device::V3_2::StreamConfiguration *config3_2, ::android::hardware::camera::device::V3_2::StreamConfiguration *config3_2, ::android::hardware::camera::device::V3_4::StreamConfiguration *config3_4, ::android::hardware::camera::device::V3_4::StreamConfiguration *config3_4, ::android::hardware::camera::device::V3_5::StreamConfiguration *config3_5); ::android::hardware::camera::device::V3_5::StreamConfiguration *config3_5, uint32_t jpegBufferSize = 0); void configurePreviewStreams3_4(const std::string &name, int32_t deviceVersion, void configurePreviewStreams3_4(const std::string &name, int32_t deviceVersion, sp<ICameraProvider> provider, sp<ICameraProvider> provider, Loading Loading @@ -766,6 +767,8 @@ public: static Status getAvailableOutputStreams(camera_metadata_t *staticMeta, static Status getAvailableOutputStreams(camera_metadata_t *staticMeta, std::vector<AvailableStream> &outputStreams, std::vector<AvailableStream> &outputStreams, const AvailableStream *threshold = nullptr); const AvailableStream *threshold = nullptr); static Status getJpegBufferSize(camera_metadata_t *staticMeta, uint32_t* outBufSize); static Status isConstrainedModeAvailable(camera_metadata_t *staticMeta); static Status isConstrainedModeAvailable(camera_metadata_t *staticMeta); static Status isLogicalMultiCamera(const camera_metadata_t *staticMeta); static Status isLogicalMultiCamera(const camera_metadata_t *staticMeta); static Status getPhysicalCameraIds(const camera_metadata_t *staticMeta, static Status getPhysicalCameraIds(const camera_metadata_t *staticMeta, Loading Loading @@ -2786,6 +2789,10 @@ TEST_F(CameraHidlTest, configureStreamsAvailableOutputs) { ASSERT_EQ(Status::OK, getAvailableOutputStreams(staticMeta, outputStreams)); ASSERT_EQ(Status::OK, getAvailableOutputStreams(staticMeta, outputStreams)); ASSERT_NE(0u, outputStreams.size()); ASSERT_NE(0u, outputStreams.size()); uint32_t jpegBufferSize = 0; ASSERT_EQ(Status::OK, getJpegBufferSize(staticMeta, &jpegBufferSize)); ASSERT_NE(0u, jpegBufferSize); int32_t streamId = 0; int32_t streamId = 0; uint32_t streamConfigCounter = 0; uint32_t streamConfigCounter = 0; for (auto& it : outputStreams) { for (auto& it : outputStreams) { Loading @@ -2804,7 +2811,7 @@ TEST_F(CameraHidlTest, configureStreamsAvailableOutputs) { ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; createStreamConfiguration(streams3_2, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams3_2, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { verifyStreamCombination(cameraDevice3_5, config3_4, verifyStreamCombination(cameraDevice3_5, config3_4, /*expectedStatus*/ true); /*expectedStatus*/ true); Loading Loading @@ -2879,6 +2886,10 @@ TEST_F(CameraHidlTest, configureStreamsInvalidOutputs) { ASSERT_EQ(Status::OK, getAvailableOutputStreams(staticMeta, outputStreams)); ASSERT_EQ(Status::OK, getAvailableOutputStreams(staticMeta, outputStreams)); ASSERT_NE(0u, outputStreams.size()); ASSERT_NE(0u, outputStreams.size()); uint32_t jpegBufferSize = 0; ASSERT_EQ(Status::OK, getJpegBufferSize(staticMeta, &jpegBufferSize)); ASSERT_NE(0u, jpegBufferSize); int32_t streamId = 0; int32_t streamId = 0; V3_2::Stream stream3_2 = {streamId++, V3_2::Stream stream3_2 = {streamId++, StreamType::OUTPUT, StreamType::OUTPUT, Loading @@ -2894,7 +2905,7 @@ TEST_F(CameraHidlTest, configureStreamsInvalidOutputs) { ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { verifyStreamCombination(cameraDevice3_5, config3_4, /*expectedStatus*/ false); verifyStreamCombination(cameraDevice3_5, config3_4, /*expectedStatus*/ false); config3_5.streamConfigCounter = streamConfigCounter++; config3_5.streamConfigCounter = streamConfigCounter++; Loading Loading @@ -2934,7 +2945,7 @@ TEST_F(CameraHidlTest, configureStreamsInvalidOutputs) { StreamRotation::ROTATION_0}; StreamRotation::ROTATION_0}; streams[0] = stream3_2; streams[0] = stream3_2; createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { config3_5.streamConfigCounter = streamConfigCounter++; config3_5.streamConfigCounter = streamConfigCounter++; ret = session3_5->configureStreams_3_5(config3_5, [](Status s, ret = session3_5->configureStreams_3_5(config3_5, [](Status s, Loading Loading @@ -2970,7 +2981,7 @@ TEST_F(CameraHidlTest, configureStreamsInvalidOutputs) { StreamRotation::ROTATION_0}; StreamRotation::ROTATION_0}; streams[0] = stream3_2; streams[0] = stream3_2; createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { config3_5.streamConfigCounter = streamConfigCounter++; config3_5.streamConfigCounter = streamConfigCounter++; ret = session3_5->configureStreams_3_5(config3_5, ret = session3_5->configureStreams_3_5(config3_5, Loading Loading @@ -3005,7 +3016,7 @@ TEST_F(CameraHidlTest, configureStreamsInvalidOutputs) { static_cast<StreamRotation>(UINT32_MAX)}; static_cast<StreamRotation>(UINT32_MAX)}; streams[0] = stream3_2; streams[0] = stream3_2; createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { config3_5.streamConfigCounter = streamConfigCounter++; config3_5.streamConfigCounter = streamConfigCounter++; ret = session3_5->configureStreams_3_5(config3_5, ret = session3_5->configureStreams_3_5(config3_5, Loading Loading @@ -3093,6 +3104,10 @@ TEST_F(CameraHidlTest, configureStreamsZSLInputOutputs) { } } } } uint32_t jpegBufferSize = 0; ASSERT_EQ(Status::OK, getJpegBufferSize(staticMeta, &jpegBufferSize)); ASSERT_NE(0u, jpegBufferSize); int32_t streamId = 0; int32_t streamId = 0; bool hasPrivToY8 = false, hasY8ToY8 = false, hasY8ToBlob = false; bool hasPrivToY8 = false, hasY8ToY8 = false, hasY8ToBlob = false; uint32_t streamConfigCounter = 0; uint32_t streamConfigCounter = 0; Loading Loading @@ -3150,7 +3165,7 @@ TEST_F(CameraHidlTest, configureStreamsZSLInputOutputs) { ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { verifyStreamCombination(cameraDevice3_5, config3_4, verifyStreamCombination(cameraDevice3_5, config3_4, /*expectedStatus*/ true); /*expectedStatus*/ true); Loading Loading @@ -3199,7 +3214,7 @@ TEST_F(CameraHidlTest, configureStreamsZSLInputOutputs) { } } } } // Check wehether session parameters are supported. If Hal support for them // Check whether session parameters are supported. If Hal support for them // exist, then try to configure a preview stream using them. // exist, then try to configure a preview stream using them. TEST_F(CameraHidlTest, configureStreamsWithSessionParameters) { TEST_F(CameraHidlTest, configureStreamsWithSessionParameters) { hidl_vec<hidl_string> cameraDeviceNames = getCameraDeviceNames(mProvider); hidl_vec<hidl_string> cameraDeviceNames = getCameraDeviceNames(mProvider); Loading Loading @@ -3266,6 +3281,7 @@ TEST_F(CameraHidlTest, configureStreamsWithSessionParameters) { GRALLOC1_CONSUMER_USAGE_HWCOMPOSER, GRALLOC1_CONSUMER_USAGE_HWCOMPOSER, 0, 0, StreamRotation::ROTATION_0}; StreamRotation::ROTATION_0}; previewStream.bufferSize = 0; ::android::hardware::hidl_vec<V3_4::Stream> streams = {previewStream}; ::android::hardware::hidl_vec<V3_4::Stream> streams = {previewStream}; ::android::hardware::camera::device::V3_4::StreamConfiguration config; ::android::hardware::camera::device::V3_4::StreamConfiguration config; ::android::hardware::camera::device::V3_5::StreamConfiguration config3_5; ::android::hardware::camera::device::V3_5::StreamConfiguration config3_5; Loading Loading @@ -3344,6 +3360,10 @@ TEST_F(CameraHidlTest, configureStreamsPreviewStillOutputs) { &previewThreshold)); &previewThreshold)); ASSERT_NE(0u, outputPreviewStreams.size()); ASSERT_NE(0u, outputPreviewStreams.size()); uint32_t jpegBufferSize = 0; ASSERT_EQ(Status::OK, getJpegBufferSize(staticMeta, &jpegBufferSize)); ASSERT_NE(0u, jpegBufferSize); int32_t streamId = 0; int32_t streamId = 0; uint32_t streamConfigCounter = 0; uint32_t streamConfigCounter = 0; for (auto& blobIter : outputBlobStreams) { for (auto& blobIter : outputBlobStreams) { Loading @@ -3370,7 +3390,7 @@ TEST_F(CameraHidlTest, configureStreamsPreviewStillOutputs) { ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { verifyStreamCombination(cameraDevice3_5, config3_4, verifyStreamCombination(cameraDevice3_5, config3_4, /*expectedStatus*/ true); /*expectedStatus*/ true); Loading Loading @@ -3661,6 +3681,10 @@ TEST_F(CameraHidlTest, configureStreamsVideoStillOutputs) { &videoThreshold)); &videoThreshold)); ASSERT_NE(0u, outputVideoStreams.size()); ASSERT_NE(0u, outputVideoStreams.size()); uint32_t jpegBufferSize = 0; ASSERT_EQ(Status::OK, getJpegBufferSize(staticMeta, &jpegBufferSize)); ASSERT_NE(0u, jpegBufferSize); int32_t streamId = 0; int32_t streamId = 0; uint32_t streamConfigCounter = 0; uint32_t streamConfigCounter = 0; for (auto& blobIter : outputBlobStreams) { for (auto& blobIter : outputBlobStreams) { Loading @@ -3686,7 +3710,7 @@ TEST_F(CameraHidlTest, configureStreamsVideoStillOutputs) { ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; ::android::hardware::camera::device::V3_2::StreamConfiguration config3_2; createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { verifyStreamCombination(cameraDevice3_5, config3_4, verifyStreamCombination(cameraDevice3_5, config3_4, /*expectedStatus*/ true); /*expectedStatus*/ true); Loading Loading @@ -4660,6 +4684,23 @@ Status CameraHidlTest::getAvailableOutputStreams(camera_metadata_t *staticMeta, return Status::OK; return Status::OK; } } // Get max jpeg buffer size in android.jpeg.maxSize Status CameraHidlTest::getJpegBufferSize(camera_metadata_t *staticMeta, uint32_t* outBufSize) { if (nullptr == staticMeta || nullptr == outBufSize) { return Status::ILLEGAL_ARGUMENT; } camera_metadata_ro_entry entry; int rc = find_camera_metadata_ro_entry(staticMeta, ANDROID_JPEG_MAX_SIZE, &entry); if ((0 != rc) || (1 != entry.count)) { return Status::ILLEGAL_ARGUMENT; } *outBufSize = static_cast<uint32_t>(entry.data.i32[0]); return Status::OK; } // Check if the camera device has logical multi-camera capability. // Check if the camera device has logical multi-camera capability. Status CameraHidlTest::isLogicalMultiCamera(const camera_metadata_t *staticMeta) { Status CameraHidlTest::isLogicalMultiCamera(const camera_metadata_t *staticMeta) { Status ret = Status::METHOD_NOT_SUPPORTED; Status ret = Status::METHOD_NOT_SUPPORTED; Loading Loading @@ -4946,7 +4987,8 @@ void CameraHidlTest::createStreamConfiguration( StreamConfigurationMode configMode, StreamConfigurationMode configMode, ::android::hardware::camera::device::V3_2::StreamConfiguration *config3_2 /*out*/, ::android::hardware::camera::device::V3_2::StreamConfiguration *config3_2 /*out*/, ::android::hardware::camera::device::V3_4::StreamConfiguration *config3_4 /*out*/, ::android::hardware::camera::device::V3_4::StreamConfiguration *config3_4 /*out*/, ::android::hardware::camera::device::V3_5::StreamConfiguration *config3_5 /*out*/) { ::android::hardware::camera::device::V3_5::StreamConfiguration *config3_5 /*out*/, uint32_t jpegBufferSize) { ASSERT_NE(nullptr, config3_2); ASSERT_NE(nullptr, config3_2); ASSERT_NE(nullptr, config3_4); ASSERT_NE(nullptr, config3_4); ASSERT_NE(nullptr, config3_5); ASSERT_NE(nullptr, config3_5); Loading @@ -4956,6 +4998,11 @@ void CameraHidlTest::createStreamConfiguration( for (auto& stream3_2 : streams3_2) { for (auto& stream3_2 : streams3_2) { V3_4::Stream stream; V3_4::Stream stream; stream.v3_2 = stream3_2; stream.v3_2 = stream3_2; stream.bufferSize = 0; if (stream3_2.format == PixelFormat::BLOB && stream3_2.dataSpace == static_cast<V3_2::DataspaceFlags>(Dataspace::V0_JFIF)) { stream.bufferSize = jpegBufferSize; } streams3_4[idx++] = stream; streams3_4[idx++] = stream; } } // Caller is responsible to fill in non-zero config3_5->streamConfigCounter after this returns // Caller is responsible to fill in non-zero config3_5->streamConfigCounter after this returns Loading Loading @@ -5191,6 +5238,11 @@ void CameraHidlTest::configurePreviewStream(const std::string &name, int32_t dev outputPreviewStreams.clear(); outputPreviewStreams.clear(); auto rc = getAvailableOutputStreams(staticMeta, auto rc = getAvailableOutputStreams(staticMeta, outputPreviewStreams, previewThreshold); outputPreviewStreams, previewThreshold); uint32_t jpegBufferSize = 0; ASSERT_EQ(Status::OK, getJpegBufferSize(staticMeta, &jpegBufferSize)); ASSERT_NE(0u, jpegBufferSize); free_camera_metadata(staticMeta); free_camera_metadata(staticMeta); ASSERT_EQ(Status::OK, rc); ASSERT_EQ(Status::OK, rc); ASSERT_FALSE(outputPreviewStreams.empty()); ASSERT_FALSE(outputPreviewStreams.empty()); Loading @@ -5205,7 +5257,7 @@ void CameraHidlTest::configurePreviewStream(const std::string &name, int32_t dev ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_4::StreamConfiguration config3_4; ::android::hardware::camera::device::V3_5::StreamConfiguration config3_5; ::android::hardware::camera::device::V3_5::StreamConfiguration config3_5; createStreamConfiguration(streams3_2, StreamConfigurationMode::NORMAL_MODE, createStreamConfiguration(streams3_2, StreamConfigurationMode::NORMAL_MODE, &config3_2, &config3_4, &config3_5); &config3_2, &config3_4, &config3_5, jpegBufferSize); if (session3_5 != nullptr) { if (session3_5 != nullptr) { RequestTemplate reqTemplate = RequestTemplate::PREVIEW; RequestTemplate reqTemplate = RequestTemplate::PREVIEW; ret = session3_5->constructDefaultRequestSettings(reqTemplate, ret = session3_5->constructDefaultRequestSettings(reqTemplate, Loading