test: Reduce memcpy in loadImageToSource 91/262691/2
authorKwang Son <k.son@samsung.com>
Wed, 18 Aug 2021 03:12:11 +0000 (23:12 -0400)
committerKwang Son <k.son@samsung.com>
Wed, 18 Aug 2021 03:52:15 +0000 (23:52 -0400)
loadImageToBuffer and mv_source_fill_by_buffer has own memcpy functions
which are duplicated.

- Before patch

[  PASSED  ] 117 tests.
real    0m24.457s
user    0m23.040s
sys     0m6.565s

- After patch

[  PASSED  ] 117 tests.
real    0m23.857s
user    0m22.802s
sys     0m6.085s

Change-Id: Ibc6dbcc01a1b4a768ea6a8b9311f3484008e4ff0
Signed-off-by: Kwang Son <k.son@samsung.com>
test/testsuites/common/image_helper/CMakeLists.txt
test/testsuites/common/image_helper/src/ImageHelper.cpp

index e96a744..be4ec3f 100644 (file)
@@ -18,6 +18,6 @@ else()
     add_library(${PROJECT_NAME} SHARED ${MV_IMAGE_HELPER_SRC_LIST})
 endif()
 
-target_include_directories(${PROJECT_NAME} PUBLIC include ${OpenCV_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/include ${${PROJECT_NAME}_DEP_INCLUDE_DIRS})
-target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})
+target_include_directories(${PROJECT_NAME} PUBLIC include)
+target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS} ${${PROJECT_NAME}_DEP_LIBRARIES} mv_common)
 install(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR})
index fa123cc..66c164f 100644 (file)
@@ -16,7 +16,6 @@
 
 #include "ImageHelper.h"
 #include "mv_private.h"
-
 #include <vector>
 
 #include <cstring>
@@ -28,6 +27,7 @@
 #include <opencv2/imgproc.hpp>
 #include <opencv2/imgproc/imgproc_c.h>
 #include <opencv2/imgcodecs/legacy/constants_c.h>
+#include <MediaSource.h>
 
 /**
  * @file   ImageHelper.cpp
@@ -89,30 +89,18 @@ int ImageHelper::loadImageToBuffer(
 
 int ImageHelper::loadImageToSource(const char *filePath, mv_source_h source)
 {
-       unsigned char *data_buffer = NULL;
-       unsigned long buffer_size = 0;
-       ImageData image_data;
-
-       int err = loadImageToBuffer(filePath, &data_buffer, &buffer_size,
-                                                               &image_data);
-       if (MEDIA_VISION_ERROR_NONE != err) {
-               printf("ERROR: Errors were occurred during opening file!!! code: %i\n",
-                          err);
-               return err;
-       }
+       if (filePath == nullptr || source == nullptr)
+               return MEDIA_VISION_ERROR_INVALID_PARAMETER;
 
-       err = mv_source_fill_by_buffer(source, data_buffer, buffer_size,
-                                                                  image_data.imageWidth,
-                                                                  image_data.imageHeight,
-                                                                  image_data.imageColorspace);
+       MediaSource *mediaSource = static_cast<MediaSource *>(source);
+       cv::Mat image = cv::imread(filePath);
+       cv::cvtColor(image, image, CV_BGR2RGB);
 
-       if (MEDIA_VISION_ERROR_NONE != err)
-               printf("ERROR: Errors were occurred during filling source!!! code %i\n",
-                          err);
+       if (!(mediaSource->fill(image.data, image.total() * image.elemSize(),
+                                                       image.cols, image.rows, OPEN_CV_COLOR)))
+               return MEDIA_VISION_ERROR_OUT_OF_MEMORY;
 
-       if (NULL != data_buffer)
-               destroyLoadedBuffer(data_buffer);
-       return err;
+       return MEDIA_VISION_ERROR_NONE;
 }
 
 int ImageHelper::saveImageFromBuffer(