From 845e52b676443cbaccf0e735e935a63f62a138c8 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov <alexander.smorkalov@itseez.com> Date: Thu, 22 Nov 2012 12:39:06 +0400 Subject: [PATCH 1/2] OpenCV Manager headers refactoring. All constants moved to android independent header file. --- android/service/engine/jni/include/EngineCommon.h | 6 ++++++ android/service/engine/jni/include/IOpenCVEngine.h | 6 +----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/android/service/engine/jni/include/EngineCommon.h b/android/service/engine/jni/include/EngineCommon.h index 67a94e270f..8aa99f8c94 100644 --- a/android/service/engine/jni/include/EngineCommon.h +++ b/android/service/engine/jni/include/EngineCommon.h @@ -5,10 +5,16 @@ #undef LOG_TAG #define LOG_TAG "OpenCVEngine" +// OpenCV Engine API version #ifndef OPEN_CV_ENGINE_VERSION #define OPEN_CV_ENGINE_VERSION 2 #endif #define LIB_OPENCV_INFO_NAME "libopencv_info.so" +// OpenCV Manager package name +#define OPENCV_ENGINE_PACKAGE "org.opencv.engine" +// Class name of OpenCV engine binder object. Is needned for connection to service +#define OPECV_ENGINE_CLASSNAME "org.opencv.engine.OpenCVEngineInterface" + #endif \ No newline at end of file diff --git a/android/service/engine/jni/include/IOpenCVEngine.h b/android/service/engine/jni/include/IOpenCVEngine.h index 87ff3b6f99..4dbb251c56 100644 --- a/android/service/engine/jni/include/IOpenCVEngine.h +++ b/android/service/engine/jni/include/IOpenCVEngine.h @@ -4,11 +4,7 @@ #include <binder/IInterface.h> #include <binder/Parcel.h> #include <utils/String16.h> - -// OpenCV Manager package name -#define OPENCV_ENGINE_PACKAGE "org.opencv.engine" -// Class name of OpenCV engine binder object. Is needned for connection to service -#define OPECV_ENGINE_CLASSNAME "org.opencv.engine.OpenCVEngineInterface" +#include "EngineCommon.h" enum EngineMethonID { From 3282e08f55463ab203ac39a6dc04565a4b69e533 Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov <alexander.smorkalov@itseez.com> Date: Thu, 22 Nov 2012 12:40:25 +0400 Subject: [PATCH 2/2] Default native library path for native camera updated. New versions tries to search library in arm-v7a and Manager packages only. --- modules/androidcamera/CMakeLists.txt | 2 +- modules/androidcamera/src/camera_activity.cpp | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/modules/androidcamera/CMakeLists.txt b/modules/androidcamera/CMakeLists.txt index f55b55136f..d54dd5d208 100644 --- a/modules/androidcamera/CMakeLists.txt +++ b/modules/androidcamera/CMakeLists.txt @@ -6,7 +6,7 @@ set(the_description "Auxiliary module for Android native camera support") set(OPENCV_MODULE_TYPE STATIC) ocv_define_module(androidcamera INTERNAL opencv_core log dl) -ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/camera_wrapper") +ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/camera_wrapper" "${OpenCV_SOURCE_DIR}/android/service/engine/jni/include") # Android source tree for native camera SET (ANDROID_SOURCE_TREE "ANDROID_SOURCE_TREE-NOTFOUND" CACHE PATH diff --git a/modules/androidcamera/src/camera_activity.cpp b/modules/androidcamera/src/camera_activity.cpp index f9925b1170..28e18c479e 100644 --- a/modules/androidcamera/src/camera_activity.cpp +++ b/modules/androidcamera/src/camera_activity.cpp @@ -9,6 +9,7 @@ #include <opencv2/core/version.hpp> #include "camera_activity.hpp" #include "camera_wrapper.h" +#include "EngineCommon.h" #undef LOG_TAG #undef LOGE @@ -267,12 +268,13 @@ void CameraWrapperConnector::fillListWrapperLibs(const string& folderPath, vecto std::string CameraWrapperConnector::getDefaultPathLibFolder() { - const string packageList[] = {"tegra3", "armv7a_neon", "armv7a", "armv5", "x86"}; - for (size_t i = 0; i < 5; i++) + #define BIN_PACKAGE_NAME(x) "org.opencv.lib_v" CVAUX_STR(CV_MAJOR_VERSION) CVAUX_STR(CV_MINOR_VERSION) "_" x + const char* const packageList[] = {BIN_PACKAGE_NAME("armv7a"), OPENCV_ENGINE_PACKAGE}; + for (size_t i = 0; i < sizeof(packageList)/sizeof(packageList[0]); i++) { char path[128]; - sprintf(path, "/data/data/org.opencv.lib_v%d%d_%s/lib/", CV_MAJOR_VERSION, CV_MINOR_VERSION, packageList[i].c_str()); - LOGD("Trying package \"%s\" (\"%s\")", packageList[i].c_str(), path); + sprintf(path, "/data/data/%s/lib/", packageList[i]); + LOGD("Trying package \"%s\" (\"%s\")", packageList[i], path); DIR* dir = opendir(path); if (!dir)