#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
// TODO: Do not forget to add Platrfom name to PackageInfo::PlatformNameMap
// in method PackageInfo::InitPlatformNameMap()
#define PLATFORM_UNKNOWN 0L
-#define PLATFORM_TEGRA 1L
-#define PLATFORM_TEGRA2 2L
-#define PLATFORM_TEGRA3 3L
-#define PLATFORM_TEGRA4 4L
+#define PLATFORM_TEGRA 1L
+#define PLATFORM_TEGRA2 2L
+#define PLATFORM_TEGRA3 3L
+#define PLATFORM_TEGRA4 4L
+#define PLATFORM_TEGRA4i 5L
+#define PLATFORM_TEGRA5 6L
int DetectKnownPlatforms();
int GetProcessorCount();
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_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;
}
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;
}
#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
{
public:
ServiceStarter()
{
- PackageManager = new PackageManagerStub();
- Engine = new OpenCVEngine(PackageManager);
+ PackageManager = new PackageManagerStub();
+ Engine = new OpenCVEngine(PackageManager);
- defaultServiceManager()->addService(IOpenCVEngine::descriptor, Engine);
- LOGI("OpenCVEngine native service started successfully");
- ProcessState::self()->startThreadPool();
+ defaultServiceManager()->addService(IOpenCVEngine::descriptor, Engine);
+ LOGI("OpenCVEngine native service started successfully");
+ ProcessState::self()->startThreadPool();
}
~ServiceStarter()
{
- delete PackageManager;
+ delete PackageManager;
}
PackageManagerStub* PackageManager;
do
{
- EngineService = ServiceManager->getService(IOpenCVEngine::descriptor);
- if (EngineService != 0) break;
- usleep(500000); // 0.5 s
+ EngineService = ServiceManager->getService(IOpenCVEngine::descriptor);
+ if (EngineService != 0) break;
+ usleep(500000); // 0.5 s
} while(true);
Engine = interface_cast<IOpenCVEngine>(EngineService);