summaryrefslogtreecommitdiffstats
path: root/tests/camera2/CameraStreamFixture.h
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2013-06-25 18:12:19 -0700
committerEino-Ville Talvala <etalvala@google.com>2013-06-27 18:02:24 -0700
commit4c543a1456cd34a94e2c3a09879aa65ed8cd2f3a (patch)
tree15bf4a8edf1aecdf2bf59b3f88c5ba3e07a923b6 /tests/camera2/CameraStreamFixture.h
parent1a70c0fd39eed070c2c28fc0731fa689d15931c4 (diff)
downloadhardware_libhardware-4c543a1456cd34a94e2c3a09879aa65ed8cd2f3a.zip
hardware_libhardware-4c543a1456cd34a94e2c3a09879aa65ed8cd2f3a.tar.gz
hardware_libhardware-4c543a1456cd34a94e2c3a09879aa65ed8cd2f3a.tar.bz2
Enable native HAL tests to work for camera3 devices
Change-Id: Ie11270cc8cf301ec94795b595f0517ee3bad2817
Diffstat (limited to 'tests/camera2/CameraStreamFixture.h')
-rw-r--r--tests/camera2/CameraStreamFixture.h39
1 files changed, 36 insertions, 3 deletions
diff --git a/tests/camera2/CameraStreamFixture.h b/tests/camera2/CameraStreamFixture.h
index c5db7ef..a4dc4a8 100644
--- a/tests/camera2/CameraStreamFixture.h
+++ b/tests/camera2/CameraStreamFixture.h
@@ -24,6 +24,7 @@
#include <gui/Surface.h>
#include <utils/Condition.h>
#include <utils/Mutex.h>
+#include <system/camera_metadata.h>
#include "CameraModuleFixture.h"
#include "TestExtensions.h"
@@ -32,14 +33,33 @@ namespace android {
namespace camera2 {
namespace tests {
+// Format specifier for picking the best format for CPU reading the given device
+// version
+#define CAMERA_STREAM_AUTO_CPU_FORMAT (-1)
+
+struct CameraStreamParams;
+
+void PrintTo(const CameraStreamParams& p, ::std::ostream* os);
+
struct CameraStreamParams {
int mFormat;
int mHeapCount;
+
};
+inline ::std::ostream& operator<<(::std::ostream& os, const CameraStreamParams &p) {
+ PrintTo(p, &os);
+ return os;
+}
+
inline void PrintTo(const CameraStreamParams& p, ::std::ostream* os) {
+ char fmt[100];
+ camera_metadata_enum_snprint(
+ ANDROID_SCALER_AVAILABLE_FORMATS, p.mFormat, fmt, sizeof(fmt));
+
*os << "{ ";
*os << "Format: 0x" << std::hex << p.mFormat << ", ";
+ *os << "Format name: " << fmt << ", ";
*os << "HeapCount: " << p.mHeapCount;
*os << " }";
}
@@ -71,7 +91,7 @@ private:
CameraModuleFixture::SetUp();
CameraStreamParams p = mParam;
- sp<Camera2Device> device = mDevice;
+ sp<CameraDeviceBase> device = mDevice;
/* use an arbitrary w,h */
{
@@ -136,7 +156,7 @@ protected:
};
void CreateStream() {
- sp<Camera2Device> device = mDevice;
+ sp<CameraDeviceBase> device = mDevice;
CameraStreamParams p = mParam;
mCpuConsumer = new CpuConsumer(p.mHeapCount);
@@ -145,9 +165,11 @@ protected:
mNativeWindow = new Surface(
mCpuConsumer->getProducerInterface());
+ int format = MapAutoFormat(p.mFormat);
+
ASSERT_EQ(OK,
device->createStream(mNativeWindow,
- mWidth, mHeight, p.mFormat, /*size (for jpegs)*/0,
+ mWidth, mHeight, format, /*size (for jpegs)*/0,
&mStreamId));
ASSERT_NE(-1, mStreamId);
@@ -161,6 +183,17 @@ protected:
ASSERT_EQ(OK, mDevice->deleteStream(mStreamId));
}
+ int MapAutoFormat(int format) {
+ if (format == CAMERA_STREAM_AUTO_CPU_FORMAT) {
+ if (getDeviceVersion() >= CAMERA_DEVICE_API_VERSION_3_0) {
+ format = HAL_PIXEL_FORMAT_YCbCr_420_888;
+ } else {
+ format = HAL_PIXEL_FORMAT_YCrCb_420_SP;
+ }
+ }
+ return format;
+ }
+
int mWidth;
int mHeight;