diff options
author | Igor Murashkin <iam@google.com> | 2013-02-21 13:49:26 -0800 |
---|---|---|
committer | Igor Murashkin <iam@google.com> | 2013-02-22 10:50:15 -0800 |
commit | 7b33a74bbc514b99c16be7fff9a34e892bc19264 (patch) | |
tree | a3c2e719aebc4dc486312970b57c588cba8f5ce9 /camera/tests | |
parent | a91537e268f2b35f9f0dfdc0c4f84655c93285ae (diff) | |
download | frameworks_av-7b33a74bbc514b99c16be7fff9a34e892bc19264.zip frameworks_av-7b33a74bbc514b99c16be7fff9a34e892bc19264.tar.gz frameworks_av-7b33a74bbc514b99c16be7fff9a34e892bc19264.tar.bz2 |
ProCamera: Add getInfo for getting static metadata (and a test)
Change-Id: I3b87dfbc621d98bf41f37a892a1012baf85b5166
Diffstat (limited to 'camera/tests')
-rw-r--r-- | camera/tests/ProCameraTests.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/camera/tests/ProCameraTests.cpp b/camera/tests/ProCameraTests.cpp index 021fbae..69b7f3c 100644 --- a/camera/tests/ProCameraTests.cpp +++ b/camera/tests/ProCameraTests.cpp @@ -324,10 +324,40 @@ protected: ASSERT_NE((void*)NULL, surface.get()); } + template <typename T> + static bool FindItem(T needle, T* array, size_t count) { + for (int i = 0; i < count; ++i) { + if (array[i] == needle) { + return true; + } + } + return false; + } + }; sp<Thread> ProCameraTest::mTestThread; +TEST_F(ProCameraTest, AvailableFormats) { + if (HasFatalFailure()) { + return; + } + + camera_metadata_t* info = mCamera->getCameraInfo(CAMERA_ID); + ASSERT_NE((void*)NULL, info); + + camera_metadata_entry_t entry; + uint32_t tag = static_cast<uint32_t>(ANDROID_SCALER_AVAILABLE_FORMATS); + EXPECT_EQ(OK, find_camera_metadata_entry(info, tag, &entry)); + + EXPECT_TRUE(FindItem<int32_t>(HAL_PIXEL_FORMAT_YV12, + entry.data.i32, entry.count)); + EXPECT_TRUE(FindItem<int32_t>(HAL_PIXEL_FORMAT_YCrCb_420_SP, + entry.data.i32, entry.count)); + + free_camera_metadata(info); +} + // test around exclusiveTryLock (immediate locking) TEST_F(ProCameraTest, LockingImmediate) { |