Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
422f650b
O
Opencv
项目概览
Greenplum
/
Opencv
大约 1 年 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
422f650b
编写于
7月 12, 2012
作者:
A
Alexander Smorkalov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Package name logic improved;
Aditional tests added; Some bug fixes with different __SUPPORT_XXX defines.
上级
2aacff4c
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
99 addition
and
44 deletion
+99
-44
android/service/engine/jni/Android.mk
android/service/engine/jni/Android.mk
+6
-0
android/service/engine/jni/NativeService/CommonPackageManager.cpp
...service/engine/jni/NativeService/CommonPackageManager.cpp
+6
-0
android/service/engine/jni/NativeService/PackageInfo.cpp
android/service/engine/jni/NativeService/PackageInfo.cpp
+15
-7
android/service/engine/jni/NativeService/PackageInfo.h
android/service/engine/jni/NativeService/PackageInfo.h
+1
-1
android/service/engine/jni/Tests/OpenCVEngineTest.cpp
android/service/engine/jni/Tests/OpenCVEngineTest.cpp
+3
-2
android/service/engine/jni/Tests/PackageInfoTest.cpp
android/service/engine/jni/Tests/PackageInfoTest.cpp
+64
-33
android/service/engine/jni/Tests/PackageManagerStub.cpp
android/service/engine/jni/Tests/PackageManagerStub.cpp
+1
-1
android/service/engine/jni/Tests/Tests.mk
android/service/engine/jni/Tests/Tests.mk
+3
-0
未找到文件。
android/service/engine/jni/Android.mk
浏览文件 @
422f650b
...
...
@@ -24,6 +24,9 @@ LOCAL_C_INCLUDES := \
$(TOP)
/system/core/include
LOCAL_CFLAGS
+=
-DPLATFORM_ANDROID
#LOCAL_CFLAGS += -D__SUPPORT_TEGRA3
#LOCAL_CFLAGS += -D__SUPPORT_ARMEABI_V7A_FEATURES
#LOCAL_CFLAGS += -D__SUPPORT_ARMEABI_FEATURES
LOCAL_PRELINK_MODULE
:=
false
...
...
@@ -62,6 +65,9 @@ LOCAL_C_INCLUDES := \
LOCAL_PRELINK_MODULE
:=
false
LOCAL_CFLAGS
+=
-DPLATFORM_ANDROID
#LOCAL_CFLAGS += -D__SUPPORT_TEGRA3
#LOCAL_CFLAGS += -D__SUPPORT_ARMEABI_V7A_FEATURES
#LOCAL_CFLAGS += -D__SUPPORT_ARMEABI_FEATURES
LOCAL_MODULE
:=
libOpenCVEngine_jni
...
...
android/service/engine/jni/NativeService/CommonPackageManager.cpp
浏览文件 @
422f650b
...
...
@@ -63,10 +63,16 @@ string CommonPackageManager::GetPackagePathByVersion(const std::string& version,
for
(
vector
<
PackageInfo
>::
iterator
it
=
all_packages
.
begin
();
it
!=
all_packages
.
end
();
++
it
)
{
LOGD
(
"Check version
\"
%s
\"
compatibility with
\"
%s
\"\n
"
,
version
.
c_str
(),
it
->
GetVersion
().
c_str
());
if
(
IsVersionCompatible
(
version
,
it
->
GetVersion
()))
{
LOGD
(
"Compatible"
);
packages
.
push_back
(
*
it
);
}
else
{
LOGD
(
"NOT Compatible"
);
}
}
if
(
!
packages
.
empty
())
...
...
android/service/engine/jni/NativeService/PackageInfo.cpp
浏览文件 @
422f650b
...
...
@@ -30,19 +30,23 @@ inline string JoinARMFeatures(int cpu_id)
if
(
FEATURES_HAS_NEON2
&
cpu_id
)
{
result
=
string
(
FEATURES_HAS_NEON2_NAME
);
if
(
!
((
ARCH_ARMv5
&
cpu_id
)
||
(
ARCH_ARMv6
&
cpu_id
)
||
(
ARCH_ARMv7
&
cpu_id
)))
result
=
string
(
FEATURES_HAS_NEON2_NAME
);
}
else
if
(
FEATURES_HAS_NEON
&
cpu_id
)
{
result
=
string
(
FEATURES_HAS_NEON_NAME
);
if
(
!
((
ARCH_ARMv5
&
cpu_id
)
||
(
ARCH_ARMv6
&
cpu_id
)))
result
=
string
(
FEATURES_HAS_NEON_NAME
);
}
else
if
(
FEATURES_HAS_VFPv3
&
cpu_id
)
{
result
=
string
(
FEATURES_HAS_VFPv3_NAME
);
if
((
ARCH_ARMv5
&
cpu_id
)
||
(
ARCH_ARMv6
&
cpu_id
))
result
=
string
(
FEATURES_HAS_VFPv3_NAME
);
}
else
if
(
FEATURES_HAS_VFPv3d16
&
cpu_id
)
{
result
=
string
(
FEATURES_HAS_VFPv3d16_NAME
);
if
((
ARCH_ARMv5
&
cpu_id
)
||
(
ARCH_ARMv6
&
cpu_id
))
result
=
string
(
FEATURES_HAS_VFPv3d16_NAME
);
}
return
result
;
...
...
@@ -182,7 +186,7 @@ inline int SplitPlatfrom(const vector<string>& features)
* If platform is unknown it is defined by hardware capabilities using pattern: <arch>_<floating point and vectorization features>_<other features>
* Example: armv7_neon, armv5_vfpv3
*/
PackageInfo
::
PackageInfo
(
const
string
&
version
,
int
platform
,
int
cpu_id
)
:
PackageInfo
::
PackageInfo
(
const
string
&
version
,
int
platform
,
int
cpu_id
,
std
::
string
install_path
)
:
Version
(
version
),
Platform
(
platform
),
CpuID
(
cpu_id
),
...
...
@@ -194,7 +198,6 @@ PackageInfo::PackageInfo(const string& version, int platform, int cpu_id):
FullName
=
BasePackageName
+
"_v"
+
Version
.
substr
(
0
,
Version
.
size
()
-
1
);
if
(
PLATFORM_UNKNOWN
!=
Platform
)
{
LOGD
(
"Try to use known platform !!!"
);
FullName
+=
string
(
"_"
)
+
JoinPlatform
(
platform
);
}
else
...
...
@@ -307,13 +310,18 @@ PackageInfo::PackageInfo(const string& version, int platform, int cpu_id):
Platform
=
PLATFORM_UNKNOWN
;
}
}
if
(
!
FullName
.
empty
())
{
InstallPath
=
install_path
+
FullName
+
"/lib"
;
}
}
PackageInfo
::
PackageInfo
(
const
string
&
fullname
,
const
string
&
install_path
,
const
string
&
package_version
)
:
FullName
(
fullname
),
InstallPath
(
install_path
)
{
LOGD
(
"PackageInfo::PackageInfo(
\"
%s
\"
,
\"
%s
\"
)"
,
fullname
.
c_str
(),
install_path
.
c_str
());
LOGD
(
"PackageInfo::PackageInfo(
\"
%s
\"
,
\"
%s
\"
,
\"
%s
\"
)"
,
fullname
.
c_str
(),
install_path
.
c_str
(),
package_version
.
c_str
());
assert
(
!
fullname
.
empty
());
assert
(
!
install_path
.
empty
());
...
...
android/service/engine/jni/NativeService/PackageInfo.h
浏览文件 @
422f650b
...
...
@@ -28,7 +28,7 @@
class
PackageInfo
{
public:
PackageInfo
(
const
std
::
string
&
version
,
int
platform
,
int
cpu_id
);
PackageInfo
(
const
std
::
string
&
version
,
int
platform
,
int
cpu_id
,
std
::
string
install_path
=
"/data/data/"
);
PackageInfo
(
const
std
::
string
&
fullname
,
const
std
::
string
&
install_path
,
const
std
::
string
&
package_version
=
"0.0"
);
std
::
string
GetFullName
()
const
;
std
::
string
GetVersion
()
const
;
...
...
android/service/engine/jni/Tests/OpenCVEngineTest.cpp
浏览文件 @
422f650b
...
...
@@ -104,9 +104,9 @@ TEST(OpenCVEngineTest, GetPathForExecHWNewVersion)
{
sp
<
IOpenCVEngine
>
Engine
=
InitConnect
();
Starter
.
PackageManager
->
InstalledPackages
.
clear
();
Starter
.
PackageManager
->
InstallVersion
(
"24
2
"
,
PLATFORM_TEGRA3
,
ARCH_ARMv7
|
FEATURES_HAS_NEON
);
Starter
.
PackageManager
->
InstallVersion
(
"24
1
"
,
PLATFORM_TEGRA3
,
ARCH_ARMv7
|
FEATURES_HAS_NEON
);
EXPECT_FALSE
(
NULL
==
Engine
.
get
());
String16
result
=
Engine
->
GetLibPathByVersion
(
String16
(
"2.4.
3
"
));
String16
result
=
Engine
->
GetLibPathByVersion
(
String16
(
"2.4.
2
"
));
EXPECT_EQ
(
0
,
result
.
size
());
}
...
...
@@ -121,6 +121,7 @@ TEST(OpenCVEngineTest, GetPathForUnExistVersion)
TEST
(
OpenCVEngineTest
,
InstallAndGetVersion
)
{
sp
<
IOpenCVEngine
>
Engine
=
InitConnect
();
Starter
.
PackageManager
->
InstalledPackages
.
clear
();
EXPECT_FALSE
(
NULL
==
Engine
.
get
());
EXPECT_TRUE
(
Engine
->
InstallVersion
(
String16
(
"2.4"
)));
String16
result
=
Engine
->
GetLibPathByVersion
(
String16
(
"2.4"
));
...
...
android/service/engine/jni/Tests/PackageInfoTest.cpp
浏览文件 @
422f650b
...
...
@@ -18,25 +18,24 @@ TEST(PackageInfo, FullNameArmv7)
TEST
(
PackageInfo
,
FullNameArmv7Neon
)
{
PackageInfo
info
(
"2
30
"
,
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_NEON
);
PackageInfo
info
(
"2
41
"
,
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_NEON
);
string
name
=
info
.
GetFullName
();
#ifdef __SUPPORT_ARMEABI_V7A_FEATURES
EXPECT_STREQ
(
"org.opencv.lib_v2
3
_armv7a_neon"
,
name
.
c_str
());
EXPECT_STREQ
(
"org.opencv.lib_v2
4
_armv7a_neon"
,
name
.
c_str
());
#else
EXPECT_STREQ
(
"org.opencv.lib_v2
3
_armv7a"
,
name
.
c_str
());
EXPECT_STREQ
(
"org.opencv.lib_v2
4
_armv7a"
,
name
.
c_str
());
#endif
}
TEST
(
PackageInfo
,
FullNameArmv7VFPv3
)
{
PackageInfo
info
(
"23
0
"
,
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
);
PackageInfo
info
(
"23
3
"
,
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
);
string
name
=
info
.
GetFullName
();
EXPECT_STREQ
(
"org.opencv.lib_v23_armv7a"
,
name
.
c_str
());
}
TEST
(
PackageInfo
,
FullNameArmv7VFPv3Neon
)
{
PackageInfo
info
(
"230"
,
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_NEON
);
string
name
=
info
.
GetFullName
();
#ifdef __SUPPORT_ARMEABI_V7A_FEATURES
...
...
@@ -46,6 +45,46 @@ TEST(PackageInfo, FullNameArmv7VFPv3Neon)
#endif
}
TEST
(
PackageInfo
,
FullNameArmv5
)
{
PackageInfo
info
(
"230"
,
PLATFORM_UNKNOWN
,
ARCH_ARMv5
);
string
name
=
info
.
GetFullName
();
EXPECT_STREQ
(
"org.opencv.lib_v23_armv5"
,
name
.
c_str
());
}
TEST
(
PackageInfo
,
FullNameArmv6
)
{
PackageInfo
info
(
"230"
,
PLATFORM_UNKNOWN
,
ARCH_ARMv6
);
string
name
=
info
.
GetFullName
();
EXPECT_STREQ
(
"org.opencv.lib_v23_armv5"
,
name
.
c_str
());
}
TEST
(
PackageInfo
,
FullNameArmv6VFPv3
)
{
PackageInfo
info
(
"232"
,
PLATFORM_UNKNOWN
,
ARCH_ARMv6
|
FEATURES_HAS_VFPv3
);
string
name
=
info
.
GetFullName
();
#ifdef __SUPPORT_ARMEABI_FEATURES
EXPECT_STREQ
(
"org.opencv.lib_v23_armv5_vfpv3"
,
name
.
c_str
());
#else
EXPECT_STREQ
(
"org.opencv.lib_v23_armv5"
,
name
.
c_str
());
#endif
}
TEST
(
PackageInfo
,
FullNameTegra3
)
{
PackageInfo
info
(
"230"
,
PLATFORM_TEGRA3
,
ARCH_ARMv7
|
FEATURES_HAS_NEON
);
string
name
=
info
.
GetFullName
();
#ifdef __SUPPORT_TEGRA3
EXPECT_STREQ
(
"org.opencv.lib_v23_tegra3"
,
name
.
c_str
());
#else
#ifdef __SUPPORT_ARMEABI_V7A_FEATURES
EXPECT_STREQ
(
"org.opencv.lib_v23_armv7a_neon"
,
name
.
c_str
());
#else
EXPECT_STREQ
(
"org.opencv.lib_v23_armv7a"
,
name
.
c_str
());
#endif
#endif
}
TEST
(
PackageInfo
,
FullNameX86SSE2
)
{
PackageInfo
info
(
"230"
,
PLATFORM_UNKNOWN
,
ARCH_X86
|
FEATURES_HAS_SSE2
);
...
...
@@ -64,6 +103,20 @@ TEST(PackageInfo, Armv7NeonFromFullName)
EXPECT_EQ
(
ARCH_ARMv7
|
FEATURES_HAS_NEON
,
info
.
GetCpuID
());
}
TEST
(
PackageInfo
,
Armv5FromFullName
)
{
PackageInfo
info
(
"org.opencv.lib_v23_armv5"
,
"/data/data/org.opencv.lib_v23_armv5"
);
EXPECT_EQ
(
"230"
,
info
.
GetVersion
());
EXPECT_EQ
(
ARCH_ARMv5
,
info
.
GetCpuID
());
}
TEST
(
PackageInfo
,
Armv5VFPv3FromFullName
)
{
PackageInfo
info
(
"org.opencv.lib_v23_armv5_vfpv3"
,
"/data/data/org.opencv.lib_v23_armv5_vfpv3"
);
EXPECT_EQ
(
"230"
,
info
.
GetVersion
());
EXPECT_EQ
(
ARCH_ARMv5
|
FEATURES_HAS_VFPv3
,
info
.
GetCpuID
());
}
TEST
(
PackageInfo
,
X86SSE2FromFullName
)
{
PackageInfo
info
(
"org.opencv.lib_v24_x86_sse2"
,
"/data/data/org.opencv.lib_v24_x86_sse2"
);
...
...
@@ -86,30 +139,6 @@ TEST(PackageInfo, Tegra3FromFullName)
EXPECT_EQ
(
PLATFORM_TEGRA3
,
info
.
GetPlatform
());
}
TEST
(
PackageInfo
,
FullNameTegra3
)
{
PackageInfo
info
(
"230"
,
PLATFORM_TEGRA3
,
ARCH_ARMv7
|
FEATURES_HAS_NEON
);
string
name
=
info
.
GetFullName
();
#ifdef __SUPPORT_TEGRA3
EXPECT_STREQ
(
"org.opencv.lib_v23_tegra3"
,
name
.
c_str
());
#else
#ifdef __SUPPORT_ARMEABI_V7A_FEATURES
EXPECT_STREQ
(
"org.opencv.lib_v23_armv7a_neon"
,
name
.
c_str
());
#else
EXPECT_STREQ
(
"org.opencv.lib_v23_armv7a"
,
name
.
c_str
());
#endif
#endif
}
TEST
(
PackageInfo
,
FullNameTegra2
)
{
PackageInfo
info
(
"230"
,
PLATFORM_TEGRA2
,
0
);
EXPECT_TRUE
(
!
info
.
IsValid
());
// TODO: Replace if seporate package will be exists
//string name = info.GetFullName();
//EXPECT_STREQ("org.opencv.lib_v23_tegra2", name.c_str());
}
TEST
(
PackageInfo
,
Comparator1
)
{
PackageInfo
info1
(
"240"
,
PLATFORM_UNKNOWN
,
ARCH_X86
);
...
...
@@ -121,9 +150,11 @@ TEST(PackageInfo, Comparator1)
TEST
(
PackageInfo
,
Comparator2
)
{
PackageInfo
info1
(
"240"
,
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_NEON
|
FEATURES_HAS_VFPv3
);
#ifdef __SUPPORT_ARMEABI_V7A_FEATURES
PackageInfo
info2
(
"org.opencv.lib_v24_armv7a_neon"
,
"/data/data/org.opencv.lib_v24_armv7a_neon"
);
#else
PackageInfo
info2
(
"org.opencv.lib_v24_armv7a"
,
"/data/data/org.opencv.lib_v24_armv7a"
);
// TODO: Replace if seporate package will be exists
//PackageInfo info2("org.opencv.lib_v24_armv7_vfpv3_neon", "/data/data/org.opencv.lib_v24_armv7_vfpv3_neon");
#endif
EXPECT_STREQ
(
info1
.
GetFullName
().
c_str
(),
info2
.
GetFullName
().
c_str
());
EXPECT_EQ
(
info1
,
info2
);
}
...
...
@@ -131,8 +162,8 @@ TEST(PackageInfo, Comparator2)
#ifdef __SUPPORT_TEGRA3
TEST
(
PackageInfo
,
Comparator3
)
{
PackageInfo
info1
(
"230"
,
PLATFORM_TEGRA
2
,
0
);
PackageInfo
info2
(
"org.opencv.lib_v23_tegra
2"
,
"/data/data/org.opencv.lib_v23_tegra2
"
);
PackageInfo
info1
(
"230"
,
PLATFORM_TEGRA
3
,
0
);
PackageInfo
info2
(
"org.opencv.lib_v23_tegra
3"
,
"/data/data/org.opencv.lib_v23_tegra3
"
);
EXPECT_STREQ
(
info1
.
GetFullName
().
c_str
(),
info2
.
GetFullName
().
c_str
());
EXPECT_EQ
(
info1
,
info2
);
}
...
...
android/service/engine/jni/Tests/PackageManagerStub.cpp
浏览文件 @
422f650b
...
...
@@ -4,7 +4,7 @@ using namespace std;
bool
PackageManagerStub
::
InstallPackage
(
const
PackageInfo
&
package
)
{
InstalledPackages
.
push_back
(
PackageInfo
(
package
.
GetFullName
(),
"/data/data/"
+
package
.
GetFullName
()
+
"/lib"
)
);
InstalledPackages
.
push_back
(
package
);
return
true
;
}
...
...
android/service/engine/jni/Tests/Tests.mk
浏览文件 @
422f650b
...
...
@@ -31,6 +31,9 @@ LOCAL_C_INCLUDES := \
$(TOP)
/system/core/include
LOCAL_CFLAGS
+=
-O0
-DGTEST_HAS_CLONE
=
0
-DGTEST_OS_LINUX_ANDROID
=
1
-DGTEST_HAS_TR1_TUPLE
=
0
#LOCAL_CFLAGS += -D__SUPPORT_TEGRA3
#LOCAL_CFLAGS += -D__SUPPORT_ARMEABI_V7A_FEATURES
#LOCAL_CFLAGS += -D__SUPPORT_ARMEABI_FEATURES
LOCAL_LDFLAGS
=
-Wl
,-allow-shlib-undefined
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录