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
901dc3b8
Commit
901dc3b8
authored
Nov 22, 2013
by
Roman Donchenko
Committed by
OpenCV Buildbot
Nov 22, 2013
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1854 from asmorkalov:android_engine_tegra4i5
parents
8a4f3570
bd314bf9
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
125 additions
and
38 deletions
+125
-38
HardwareDetector.cpp
...d/service/engine/jni/BinderComponent/HardwareDetector.cpp
+4
-0
HardwareDetector.h
...oid/service/engine/jni/BinderComponent/HardwareDetector.h
+7
-3
ProcReader.h
...s/android/service/engine/jni/BinderComponent/ProcReader.h
+2
-1
CommonPackageManager.cpp
...service/engine/jni/NativeService/CommonPackageManager.cpp
+10
-1
PackageInfo.cpp
.../android/service/engine/jni/NativeService/PackageInfo.cpp
+2
-0
PackageInfo.h
...ms/android/service/engine/jni/NativeService/PackageInfo.h
+2
-0
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
+12
-1
No files found.
platforms/android/service/engine/jni/BinderComponent/HardwareDetector.cpp
View file @
901dc3b8
...
...
@@ -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 @
901dc3b8
...
...
@@ -14,8 +14,10 @@
#define FEATURES_HAS_VFPv3d16 1L
#define FEATURES_HAS_VFPv3 2L
#define FEATURES_HAS_NEON 4L
#define FEATURES_HAS_NEON2 8L
#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
...
...
@@ -27,7 +29,9 @@
#define PLATFORM_TEGRA 1L
#define PLATFORM_TEGRA2 2L
#define PLATFORM_TEGRA3 3L
#define PLATFORM_TEGRA4 4L
#define PLATFORM_TEGRA4i 4L
#define PLATFORM_TEGRA4 5L
#define PLATFORM_TEGRA5 6L
int
DetectKnownPlatforms
();
int
GetProcessorCount
();
...
...
platforms/android/service/engine/jni/BinderComponent/ProcReader.h
View file @
901dc3b8
...
...
@@ -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 @
901dc3b8
...
...
@@ -187,17 +187,26 @@ 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_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_TEGRA4
,
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
));
result
.
push_back
(
std
::
pair
<
int
,
int
>
(
PLATFORM_TEGRA5
,
ARCH_ARMv7
|
FEATURES_HAS_VFPv3
|
FEATURES_HAS_VFPv4
|
FEATURES_HAS_NEON
));
return
result
;
}
...
...
platforms/android/service/engine/jni/NativeService/PackageInfo.cpp
View file @
901dc3b8
...
...
@@ -19,6 +19,8 @@ map<int, string> PackageInfo::InitPlatformNameMap()
result
[
PLATFORM_TEGRA2
]
=
PLATFORM_TEGRA2_NAME
;
result
[
PLATFORM_TEGRA3
]
=
PLATFORM_TEGRA3_NAME
;
result
[
PLATFORM_TEGRA4
]
=
PLATFORM_TEGRA4_NAME
;
result
[
PLATFORM_TEGRA4i
]
=
PLATFORM_TEGRA4_NAME
;
result
[
PLATFORM_TEGRA5
]
=
PLATFORM_TEGRA5_NAME
;
return
result
;
}
...
...
platforms/android/service/engine/jni/NativeService/PackageInfo.h
View file @
901dc3b8
...
...
@@ -21,10 +21,12 @@
#define FEATURES_HAS_SSSE3_NAME "ssse3"
#define FEATURES_HAS_GPU_NAME "gpu"
// TODO: Do not forget to update PackageInfo::InitPlatformNameMap() after constant changes
#define PLATFORM_TEGRA_NAME "tegra"
#define PLATFORM_TEGRA2_NAME "tegra2"
#define PLATFORM_TEGRA3_NAME "tegra3"
#define PLATFORM_TEGRA4_NAME "tegra4"
#define PLATFORM_TEGRA5_NAME "tegra5"
class
PackageInfo
{
...
...
platforms/android/service/engine/jni/Tests/OpenCVEngineTest.cpp
View file @
901dc3b8
...
...
@@ -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 @
901dc3b8
...
...
@@ -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 @
901dc3b8
...
...
@@ -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 @
901dc3b8
...
...
@@ -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 @
901dc3b8
...
...
@@ -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
{
...
...
@@ -477,9 +481,16 @@ public class ManagerActivity extends Activity
{
// TODO: update if package will be published
if
((
features
&
HardwareDetector
.
FEATURES_HAS_NEON
)
==
HardwareDetector
.
FEATURES_HAS_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
)
{
return
"with VFP v3"
;
...
...
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