Add camera packet test 67/290967/1
authorKwanghoon Son <k.son@samsung.com>
Thu, 6 Apr 2023 00:07:30 +0000 (09:07 +0900)
committerKwanghoon Son <k.son@samsung.com>
Thu, 6 Apr 2023 00:07:30 +0000 (09:07 +0900)
Change-Id: Iefcf4d47935a17d43aaa9e207c88f351c8491f06
Based-on: e9b459708b880b444e7e8e7b88444b5e17b0600f
Signed-off-by: Kwanghoon Son <k.son@samsung.com>
CMakeLists.txt
test/CMakeLists.txt
test/testsuites/common/test_camera_pkt.cpp [new file with mode: 0644]

index 55a76ec..e07aebe 100644 (file)
@@ -5,6 +5,7 @@ cmake_minimum_required(VERSION 2.6...3.13)
 option(BUILD_ML_ONLY "Build mv_machine_learning only" OFF)
 option(BUILD_VISUALIZER "Build visualizer for testing 2D/3D output" OFF)
 option(BUILD_DESIGNQR "Build Design QR feature" OFF)
+option(BUILD_CAMERA_PACKET "Build camera packet output test" OFF)
 
 if(BUILD_VISUALIZER)
     add_compile_definitions(BUILD_VISUALIZER)
index 080cb05..1777da4 100644 (file)
@@ -28,6 +28,10 @@ if (${BUILD_DEPTH_STREAM_TESTSUITE})
 set(SRC_FILES ${SRC_FILES} testsuites/mv3d/test_3d.cpp)
 endif()
 
+if (${BUILD_CAMERA_PACKET})
+set(SRC_FILES ${SRC_FILES} testsuites/common/test_camera_pkt.cpp)
+endif()
+
 if (WITH_DA_PROFILE)
 set(SRC_FILES ${SRC_FILES} testsuites/common/test_common.cpp)
 endif()
@@ -48,4 +52,8 @@ if (${BUILD_DEPTH_STREAM_TESTSUITE})
 target_link_libraries(${PROJECT_NAME} mv_3d)
 endif()
 
+if (${BUILD_CAMERA_PACKET})
+target_link_libraries(${PROJECT_NAME} capi-media-camera)
+endif()
+
 install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
\ No newline at end of file
diff --git a/test/testsuites/common/test_camera_pkt.cpp b/test/testsuites/common/test_camera_pkt.cpp
new file mode 100644 (file)
index 0000000..645108e
--- /dev/null
@@ -0,0 +1,26 @@
+#include <gtest/gtest.h>
+#include <camera.h>
+#include <mv_common.h>
+
+/* This test needs camera privilege and to be owner user*/
+
+static void _camera_preview_cb(media_packet_h pkt, void *user_data)
+{
+       mv_source_h mv_source;
+       ASSERT_EQ(mv_create_source(&mv_source), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_source_fill_by_media_packet(mv_source, pkt), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(media_packet_unref(pkt), MEDIA_PACKET_ERROR_NONE);
+       ASSERT_EQ(mv_destroy_source(mv_source), MEDIA_VISION_ERROR_NONE);
+}
+
+TEST(Camera, MediaPacket)
+{
+       camera_h camera;
+       ASSERT_EQ(camera_create(CAMERA_DEVICE_CAMERA0, &camera), CAMERA_ERROR_NONE);
+       ASSERT_TRUE(camera_is_supported_media_packet_preview_cb(camera));
+       ASSERT_EQ(camera_set_media_packet_preview_cb(camera, _camera_preview_cb, NULL), CAMERA_ERROR_NONE);
+       ASSERT_EQ(camera_start_preview(camera), CAMERA_ERROR_NONE);
+       sleep(1);
+       ASSERT_EQ(camera_stop_preview(camera), CAMERA_ERROR_NONE);
+       ASSERT_EQ(camera_destroy(camera), CAMERA_ERROR_NONE);
+}
\ No newline at end of file