Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
bd314bf9
Commit
bd314bf9
authored
Nov 22, 2013
by
Alexander Smorkalov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
VFPv4 detection implemented. Some Tegra5 related updates.
parent
fd759223
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
115 additions
and
38 deletions
+115
-38
HardwareDetector.cpp
...d/service/engine/jni/BinderComponent/HardwareDetector.cpp
+4
-0
HardwareDetector.h
...oid/service/engine/jni/BinderComponent/HardwareDetector.h
+3
-2
ProcReader.h
...s/android/service/engine/jni/BinderComponent/ProcReader.h
+2
-1
CommonPackageManager.cpp
...service/engine/jni/NativeService/CommonPackageManager.cpp
+7
-1
OpenCVEngineTest.cpp
...rms/android/service/engine/jni/Tests/OpenCVEngineTest.cpp
+16
-16
PackageInfoTest.cpp
...orms/android/service/engine/jni/Tests/PackageInfoTest.cpp
+49
-12
PackageManagmentTest.cpp
...android/service/engine/jni/Tests/PackageManagmentTest.cpp
+18
-2
HardwareDetector.java
...ervice/engine/src/org/opencv/engine/HardwareDetector.java
+3
-2
ManagerActivity.java
...engine/src/org/opencv/engine/manager/ManagerActivity.java
+13
-2
No files found.
platforms/android/service/engine/jni/BinderComponent/HardwareDetector.cpp
View file @
bd314bf9
...
...
@@ -91,6 +91,10 @@ int GetCpuID()
{
result
|=
FEATURES_HAS_NEON2
;
}
if
(
features
.
end
()
!=
features
.
find
(
CPU_INFO_VFPV4_STR
))
{
result
|=
FEATURES_HAS_VFPv4
;
}
if
(
features
.
end
()
!=
features
.
find
(
CPU_INFO_VFPV3_STR
))
{
if
(
features
.
end
()
!=
features
.
find
(
CPU_INFO_VFPV3D16_STR
))
...
...
platforms/android/service/engine/jni/BinderComponent/HardwareDetector.h
View file @
bd314bf9
...
...
@@ -17,6 +17,7 @@
#define FEATURES_HAS_VFPv4 4L
#define FEATURES_HAS_NEON 8L
#define FEATURES_HAS_NEON2 16L
#define FEATURES_HAS_SSE 1L
#define FEATURES_HAS_SSE2 2L
#define FEATURES_HAS_SSSE3 4L
...
...
@@ -28,8 +29,8 @@
#define PLATFORM_TEGRA 1L
#define PLATFORM_TEGRA2 2L
#define PLATFORM_TEGRA3 3L
#define PLATFORM_TEGRA4
4L
#define PLATFORM_TEGRA4
i
5L
#define PLATFORM_TEGRA4
i
4L
#define PLATFORM_TEGRA4
5L
#define PLATFORM_TEGRA5 6L
int
DetectKnownPlatforms
();
...
...
platforms/android/service/engine/jni/BinderComponent/ProcReader.h
View file @
bd314bf9
...
...
@@ -7,8 +7,9 @@
#define CPU_INFO_NEON_STR "neon"
#define CPU_INFO_NEON2_STR "neon2"
#define CPU_INFO_VFPV3_STR "vfpv3"
#define CPU_INFO_VFPV3D16_STR "vfpv3d16"
#define CPU_INFO_VFPV3_STR "vfpv3"
#define CPU_INFO_VFPV4_STR "vfpv4"
#define CPU_INFO_SSE_STR "sse"
#define CPU_INFO_SSE2_STR "sse2"
...
...
platforms/android/service/engine/jni/NativeService/CommonPackageManager.cpp
View file @
bd314bf9
...
...
@@ -187,16 +187,22 @@ std::vector<std::pair<int, int> > CommonPackageManager::InitArmRating()
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_ARMv6
|
FEATURES_HAS_VFPv3d16
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_ARMv6
|
FEATURES_HAS_VFPv3
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_ARMv6
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_VFPv3d16
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_ARMv7
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3d16
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_TEGRA2
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3d16
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3d16
|
FEATURES_HAS_VFPv3
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_NEON
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3d16
|
FEATURES_HAS_NEON
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_NEON
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_VFPv3d16
|
FEATURES_HAS_NEON
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_VFPv3d16
|
FEATURES_HAS_VFPv4
|
FEATURES_HAS_NEON
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv4
|
FEATURES_HAS_NEON
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv4
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_NEON
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv4
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_VFPv3d16
|
FEATURES_HAS_NEON
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_TEGRA3
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_NEON
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_TEGRA4i
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_VFPv4
|
FEATURES_HAS_NEON
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_TEGRA4
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_VFPv4
|
FEATURES_HAS_NEON
));
...
...
platforms/android/service/engine/jni/Tests/OpenCVEngineTest.cpp
View file @
bd314bf9
...
...
@@ -193,11 +193,11 @@ TEST(OpenCVEngineTest, GetPathForCompatiblePackage2)
#ifdef __SUPPORT_TEGRA3
EXPECT_STREQ
(
"/data/data/org.opencv.lib_v24_tegra3/lib"
,
String8
(
result
).
string
());
#else
#
ifdef __SUPPORT_ARMEABI_V7A_FEATURES
#
ifdef __SUPPORT_ARMEABI_V7A_FEATURES
EXPECT_STREQ
(
"/data/data/org.opencv.lib_v24_armv7a_neon/lib"
,
String8
(
result
).
string
());
#
else
#
else
EXPECT_STREQ
(
"/data/data/org.opencv.lib_v24_armv7a/lib"
,
String8
(
result
).
string
());
#
endif
#
endif
#endif
}
...
...
@@ -205,18 +205,18 @@ TEST(OpenCVEngineTest, GetPathForCompatiblePackage3)
{
sp
<
IOpenCVEngine
>
Engine
=
InitConnect
();
Starter
.
PackageManager
->
InstalledPackages
.
clear
();
Starter
.
PackageManager
->
InstallVersion
(
2040400
,
PLATFORM_TEGRA4
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_NEON
);
Starter
.
PackageManager
->
InstallVersion
(
2040400
,
PLATFORM_TEGRA4
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_
VFPv4
|
FEATURES_HAS_
NEON
);
EXPECT_FALSE
(
NULL
==
Engine
.
get
());
String16
result
=
Engine
->
GetLibPathByVersion
(
String16
(
"2.4"
));
#ifdef __SUPPORT_TEGRA3
#ifdef __SUPPORT_TEGRA3
EXPECT_STREQ
(
"/data/data/org.opencv.lib_v24_tegra4/lib"
,
String8
(
result
).
string
());
#else
#
ifdef __SUPPORT_ARMEABI_V7A_FEATURES
#else
#
ifdef __SUPPORT_ARMEABI_V7A_FEATURES
EXPECT_STREQ
(
"/data/data/org.opencv.lib_v24_armv7a_neon/lib"
,
String8
(
result
).
string
());
#
else
#
else
EXPECT_STREQ
(
"/data/data/org.opencv.lib_v24_armv7a/lib"
,
String8
(
result
).
string
());
#
endif
#endif
#
endif
#endif
}
TEST
(
OpenCVEngineTest
,
InstallAndGetVersion
)
...
...
@@ -226,15 +226,15 @@ TEST(OpenCVEngineTest, InstallAndGetVersion)
EXPECT_FALSE
(
NULL
==
Engine
.
get
());
EXPECT_TRUE
(
Engine
->
InstallVersion
(
String16
(
"2.4"
)));
String16
result
=
Engine
->
GetLibPathByVersion
(
String16
(
"2.4"
));
#ifdef __SUPPORT_TEGRA3
#ifdef __SUPPORT_TEGRA3
EXPECT_STREQ
(
"/data/data/org.opencv.lib_v24_tegra3/lib"
,
String8
(
result
).
string
());
#else
#
ifdef __SUPPORT_ARMEABI_V7A_FEATURES
#else
#
ifdef __SUPPORT_ARMEABI_V7A_FEATURES
EXPECT_STREQ
(
"/data/data/org.opencv.lib_v24_armv7a_neon/lib"
,
String8
(
result
).
string
());
#
else
#
else
EXPECT_STREQ
(
"/data/data/org.opencv.lib_v24_armv7a/lib"
,
String8
(
result
).
string
());
#
endif
#endif
#
endif
#endif
}
TEST
(
OpenCVEngineTest
,
GetPathFor2_4_2
)
...
...
platforms/android/service/engine/jni/Tests/PackageInfoTest.cpp
View file @
bd314bf9
...
...
@@ -34,6 +34,13 @@ TEST(PackageInfo, FullNameArmv7VFPv3)
EXPECT_STREQ
(
"org.opencv.lib_v23_armv7a"
,
name
.
c_str
());
}
TEST
(
PackageInfo
,
FullNameArmv7VFPv4
)
{
PackageInfo
info
(
2030300
,
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv4
);
string
name
=
info
.
GetFullName
();
EXPECT_STREQ
(
"org.opencv.lib_v23_armv7a"
,
name
.
c_str
());
}
TEST
(
PackageInfo
,
FullNameArmv7VFPv3Neon
)
{
PackageInfo
info
(
2030000
,
PLATFORM_UNKNOWN
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_NEON
);
...
...
@@ -74,30 +81,60 @@ TEST(PackageInfo, FullNameTegra3)
{
PackageInfo
info
(
2030000
,
PLATFORM_TEGRA3
,
ARCH_ARMv7
|
FEATURES_HAS_NEON
);
string
name
=
info
.
GetFullName
();
#ifdef __SUPPORT_TEGRA3
#ifdef __SUPPORT_TEGRA3
EXPECT_STREQ
(
"org.opencv.lib_v23_tegra3"
,
name
.
c_str
());
#else
#
ifdef __SUPPORT_ARMEABI_V7A_FEATURES
#else
#
ifdef __SUPPORT_ARMEABI_V7A_FEATURES
EXPECT_STREQ
(
"org.opencv.lib_v23_armv7a_neon"
,
name
.
c_str
());
#
else
#
else
EXPECT_STREQ
(
"org.opencv.lib_v23_armv7a"
,
name
.
c_str
());
#
endif
#endif
#
endif
#endif
}
TEST
(
PackageInfo
,
FullNameTegra4
)
{
PackageInfo
info
(
2040400
,
PLATFORM_TEGRA4
,
ARCH_ARMv7
|
FEATURES_HAS_NEON
);
string
name
=
info
.
GetFullName
();
#ifdef __SUPPORT_TEGRA3
#ifdef __SUPPORT_TEGRA3
EXPECT_STREQ
(
"org.opencv.lib_v24_tegra4"
,
name
.
c_str
());
#else
# ifdef __SUPPORT_ARMEABI_V7A_FEATURES
EXPECT_STREQ
(
"org.opencv.lib_v24_armv7a_neon"
,
name
.
c_str
());
# else
EXPECT_STREQ
(
"org.opencv.lib_v24_armv7a"
,
name
.
c_str
());
# endif
#endif
}
TEST
(
PackageInfo
,
FullNameTegra4i
)
{
PackageInfo
info
(
2040700
,
PLATFORM_TEGRA4i
,
ARCH_ARMv7
|
FEATURES_HAS_NEON
);
string
name
=
info
.
GetFullName
();
#ifdef __SUPPORT_TEGRA3
EXPECT_STREQ
(
"org.opencv.lib_v24_tegra4"
,
name
.
c_str
());
#else
#
ifdef __SUPPORT_ARMEABI_V7A_FEATURES
#else
#
ifdef __SUPPORT_ARMEABI_V7A_FEATURES
EXPECT_STREQ
(
"org.opencv.lib_v24_armv7a_neon"
,
name
.
c_str
());
#
else
#
else
EXPECT_STREQ
(
"org.opencv.lib_v24_armv7a"
,
name
.
c_str
());
#endif
#endif
# endif
#endif
}
TEST
(
PackageInfo
,
FullNameTegra5
)
{
PackageInfo
info
(
2040700
,
PLATFORM_TEGRA5
,
ARCH_ARMv7
|
FEATURES_HAS_NEON
);
string
name
=
info
.
GetFullName
();
#ifdef __SUPPORT_TEGRA3
EXPECT_STREQ
(
"org.opencv.lib_v24_tegra5"
,
name
.
c_str
());
#else
# ifdef __SUPPORT_ARMEABI_V7A_FEATURES
EXPECT_STREQ
(
"org.opencv.lib_v24_armv7a_neon"
,
name
.
c_str
());
# else
EXPECT_STREQ
(
"org.opencv.lib_v24_armv7a"
,
name
.
c_str
());
# endif
#endif
}
TEST
(
PackageInfo
,
FullNameX86SSE2
)
...
...
platforms/android/service/engine/jni/Tests/PackageManagmentTest.cpp
View file @
bd314bf9
...
...
@@ -105,8 +105,8 @@ TEST(PackageManager, GetPackagePathForTegra3)
TEST
(
PackageManager
,
GetPackagePathForTegra4
)
{
PackageManagerStub
pm
;
EXPECT_TRUE
(
pm
.
InstallVersion
(
2040400
,
PLATFORM_TEGRA4
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_NEON
));
string
path
=
pm
.
GetPackagePathByVersion
(
2040400
,
PLATFORM_TEGRA4
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_NEON
);
EXPECT_TRUE
(
pm
.
InstallVersion
(
2040400
,
PLATFORM_TEGRA4
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_
VFPv4
|
FEATURES_HAS_
NEON
));
string
path
=
pm
.
GetPackagePathByVersion
(
2040400
,
PLATFORM_TEGRA4
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_
VFPv4
|
FEATURES_HAS_
NEON
);
#ifdef __SUPPORT_TEGRA3
EXPECT_STREQ
(
"/data/data/org.opencv.lib_v24_tegra4/lib"
,
path
.
c_str
());
#else
...
...
@@ -118,6 +118,22 @@ TEST(PackageManager, GetPackagePathForTegra4)
#endif
}
TEST
(
PackageManager
,
GetPackagePathForTegra5
)
{
PackageManagerStub
pm
;
EXPECT_TRUE
(
pm
.
InstallVersion
(
2040400
,
PLATFORM_TEGRA5
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_VFPv4
|
FEATURES_HAS_NEON
));
string
path
=
pm
.
GetPackagePathByVersion
(
2040400
,
PLATFORM_TEGRA5
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_VFPv4
|
FEATURES_HAS_NEON
);
#ifdef __SUPPORT_TEGRA3
EXPECT_STREQ
(
"/data/data/org.opencv.lib_v24_tegra5/lib"
,
path
.
c_str
());
#else
#ifdef __SUPPORT_ARMEABI_V7A_FEATURES
EXPECT_STREQ
(
"/data/data/org.opencv.lib_v24_armv7a_neon/lib"
,
path
.
c_str
());
#else
EXPECT_STREQ
(
"/data/data/org.opencv.lib_v24_armv7a/lib"
,
path
.
c_str
());
#endif
#endif
}
#ifdef __SUPPORT_MIPS
TEST
(
PackageManager
,
GetPackagePathForMips
)
{
...
...
platforms/android/service/engine/src/org/opencv/engine/HardwareDetector.java
View file @
bd314bf9
...
...
@@ -19,8 +19,9 @@ public class HardwareDetector
// ARM specific features
public
static
final
int
FEATURES_HAS_VFPv3d16
=
0x01
;
public
static
final
int
FEATURES_HAS_VFPv3
=
0x02
;
public
static
final
int
FEATURES_HAS_NEON
=
0x04
;
public
static
final
int
FEATURES_HAS_NEON2
=
0x08
;
public
static
final
int
FEATURES_HAS_VFPv4
=
0x04
;
public
static
final
int
FEATURES_HAS_NEON
=
0x08
;
public
static
final
int
FEATURES_HAS_NEON2
=
0x16
;
// X86 specific features
public
static
final
int
FEATURES_HAS_SSE
=
0x01
;
...
...
platforms/android/service/engine/src/org/opencv/engine/manager/ManagerActivity.java
View file @
bd314bf9
...
...
@@ -111,10 +111,14 @@ public class ManagerActivity extends Activity
{
HardwarePlatformView
.
setText
(
"Tegra 4i"
);
}
else
else
if
(
HardwareDetector
.
PLATFORM_TEGRA4
==
Platfrom
)
{
HardwarePlatformView
.
setText
(
"Tegra 4"
);
}
else
{
HardwarePlatformView
.
setText
(
"Tegra 5"
);
}
}
else
{
...
...
@@ -478,7 +482,14 @@ public class ManagerActivity extends Activity
// TODO: update if package will be published
if
((
features
&
HardwareDetector
.
FEATURES_HAS_NEON
)
==
HardwareDetector
.
FEATURES_HAS_NEON
)
{
return
"with Neon"
;
if
((
features
&
HardwareDetector
.
FEATURES_HAS_VFPv4
)
==
HardwareDetector
.
FEATURES_HAS_VFPv4
)
{
return
"with Neon and VFPv4"
;
}
else
{
return
"with Neon"
;
}
}
else
if
((
features
&
HardwareDetector
.
FEATURES_HAS_VFPv3
)
==
HardwareDetector
.
FEATURES_HAS_VFPv3
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment