Commit 6c592254 authored by Andrey Kamaev's avatar Andrey Kamaev

Merge pull request #97 from asmorkalov/2.4

parents 734b0da0 e7e14b20
...@@ -46,7 +46,7 @@ There is a very base code snippet implementing the async initialization with Bas ...@@ -46,7 +46,7 @@ There is a very base code snippet implementing the async initialization with Bas
super.onResume(); super.onResume();
Log.i(TAG, "Trying to load OpenCV library"); Log.i(TAG, "Trying to load OpenCV library");
if (!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mOpenCVCallBack)) if (!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mOpenCVCallBack))
{ {
Log.e(TAG, "Cannot connect to OpenCV Manager"); Log.e(TAG, "Cannot connect to OpenCV Manager");
} }
......
...@@ -40,6 +40,10 @@ OpenCV version constants ...@@ -40,6 +40,10 @@ OpenCV version constants
OpenCV Library version 2.4.2 OpenCV Library version 2.4.2
.. data:: OPENCV_VERSION_2_4_3
OpenCV Library version 2.4.3
Other constatnts Other constatnts
---------------- ----------------
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.opencv.engine" package="org.opencv.engine"
android:versionCode="17" android:versionCode="18"
android:versionName="1.7" > android:versionName="1.8" >
<uses-sdk android:minSdkVersion="8" /> <uses-sdk android:minSdkVersion="8" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/> <uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
......
...@@ -60,9 +60,7 @@ status_t BnOpenCVEngine::onTransact(uint32_t code, const Parcel& data, android:: ...@@ -60,9 +60,7 @@ status_t BnOpenCVEngine::onTransact(uint32_t code, const Parcel& data, android::
int res = reply->writeInt32(static_cast<int32_t>(result)); int res = reply->writeInt32(static_cast<int32_t>(result));
LOGD("InstallVersion call to Binder finished with res %d", res); LOGD("InstallVersion call to Binder finished with res %d", res);
return res; return res;
} break; } break;
default: default:
{ {
LOGD("OpenCVEngine unknown request"); LOGD("OpenCVEngine unknown request");
......
...@@ -13,7 +13,7 @@ int GetCpuID() ...@@ -13,7 +13,7 @@ int GetCpuID()
map<string, string> cpu_info = GetCpuInfo(); map<string, string> cpu_info = GetCpuInfo();
map<string, string>::const_iterator it; map<string, string>::const_iterator it;
#if defined(__i386__) #if defined(__i386__)
LOGD("Using X86 HW detector"); LOGD("Using X86 HW detector");
result |= ARCH_X86; result |= ARCH_X86;
it = cpu_info.find("flags"); it = cpu_info.find("flags");
...@@ -34,11 +34,11 @@ int GetCpuID() ...@@ -34,11 +34,11 @@ int GetCpuID()
} }
} }
#elif defined(__mips) #elif defined(__mips)
#ifdef __SUPPORT_MIPS #ifdef __SUPPORT_MIPS
result |= ARCH_MIPS; result |= ARCH_MIPS;
#else #else
result = ARCH_UNKNOWN; result = ARCH_UNKNOWN;
#endif #endif
#else #else
LOGD("Using ARM HW detector"); LOGD("Using ARM HW detector");
it = cpu_info.find("Processor"); it = cpu_info.find("Processor");
...@@ -103,7 +103,7 @@ int GetCpuID() ...@@ -103,7 +103,7 @@ int GetCpuID()
} }
} }
} }
#endif #endif
return result; return result;
} }
...@@ -174,8 +174,8 @@ int DetectKnownPlatforms() ...@@ -174,8 +174,8 @@ int DetectKnownPlatforms()
// NOTE: Uncomment when all Tegras will be supported // NOTE: Uncomment when all Tegras will be supported
/*if (tegra_status > 0) /*if (tegra_status > 0)
{ * {
return PLATFORM_TEGRA + tegra_status - 1; * return PLATFORM_TEGRA + tegra_status - 1;
} }
else else
{ {
......
...@@ -23,6 +23,7 @@ std::set<std::string> OpenCVEngine::InitKnownOpenCVersions() ...@@ -23,6 +23,7 @@ std::set<std::string> OpenCVEngine::InitKnownOpenCVersions()
result.insert("240"); result.insert("240");
result.insert("241"); result.insert("241");
result.insert("242"); result.insert("242");
result.insert("243");
return result; return result;
} }
...@@ -172,24 +173,16 @@ bool OpenCVEngine::InstallVersion(android::String16 version) ...@@ -172,24 +173,16 @@ bool OpenCVEngine::InstallVersion(android::String16 version)
std::string norm_version; std::string norm_version;
bool result = false; bool result = false;
LOGD("OpenCVEngine::InstallVersion() begin");
norm_version = NormalizeVersionString(std_version); norm_version = NormalizeVersionString(std_version);
if (!norm_version.empty()) if (!norm_version.empty())
{
LOGD("OpenCVEngine::InstallVersion() begin");
if (!PackageManager->CheckVersionInstalled(norm_version, Platform, CpuID))
{ {
LOGD("PackageManager->InstallVersion call"); LOGD("PackageManager->InstallVersion call");
result = PackageManager->InstallVersion(norm_version, Platform, CpuID); result = PackageManager->InstallVersion(norm_version, Platform, CpuID);
} }
else else
{
LOGI("Package OpenCV of version %s is already installed. Skiped.", norm_version.c_str());
result = true;
}
}
else
{ {
LOGE("OpenCV version \"%s\" is not supported", norm_version.c_str()); LOGE("OpenCV version \"%s\" is not supported", norm_version.c_str());
} }
......
...@@ -52,7 +52,6 @@ bool ParseString(const string& src, string& key, string& value) ...@@ -52,7 +52,6 @@ bool ParseString(const string& src, string& key, string& value)
set<string> SplitString(const string& src, const char seporator) set<string> SplitString(const string& src, const char seporator)
{ {
set<string> result; set<string> result;
if (!src.empty()) if (!src.empty())
......
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
using namespace std; using namespace std;
JavaBasedPackageManager::JavaBasedPackageManager(JavaVM* JavaMashine, jobject MarketConnector): JavaBasedPackageManager::JavaBasedPackageManager(JavaVM* JavaMashine, jobject MarketConnector):
JavaContext(JavaMashine), JavaContext(JavaMashine),
JavaPackageManager(MarketConnector) JavaPackageManager(MarketConnector)
{ {
assert(JavaContext); assert(JavaContext);
assert(JavaPackageManager); assert(JavaPackageManager);
......
...@@ -67,4 +67,3 @@ JNIEXPORT void JNICALL Java_org_opencv_engine_BinderConnector_Final(JNIEnv *, jo ...@@ -67,4 +67,3 @@ JNIEXPORT void JNICALL Java_org_opencv_engine_BinderConnector_Final(JNIEnv *, jo
delete PackageManager; delete PackageManager;
PackageManager = NULL; PackageManager = NULL;
} }
...@@ -41,7 +41,8 @@ bool CommonPackageManager::CheckVersionInstalled(const std::string& version, int ...@@ -41,7 +41,8 @@ bool CommonPackageManager::CheckVersionInstalled(const std::string& version, int
if (!packages.empty()) if (!packages.empty())
{ {
result = (packages.end() != find(packages.begin(), packages.end(), target_package)); vector<PackageInfo>::const_iterator it = find(packages.begin(), packages.end(), target_package);
result = (it != packages.end());
} }
LOGD("CommonPackageManager::CheckVersionInstalled() end"); LOGD("CommonPackageManager::CheckVersionInstalled() end");
return result; return result;
......
...@@ -189,14 +189,14 @@ inline int SplitPlatfrom(const vector<string>& features) ...@@ -189,14 +189,14 @@ inline int SplitPlatfrom(const vector<string>& features)
* Example: armv7_neon, armv5_vfpv3 * Example: armv7_neon, armv5_vfpv3
*/ */
PackageInfo::PackageInfo(const string& version, int platform, int cpu_id, std::string install_path): PackageInfo::PackageInfo(const string& version, int platform, int cpu_id, std::string install_path):
Version(version), Version(version),
Platform(platform), Platform(platform),
CpuID(cpu_id), CpuID(cpu_id),
InstallPath("") InstallPath("")
{ {
#ifndef __SUPPORT_TEGRA3 #ifndef __SUPPORT_TEGRA3
Platform = PLATFORM_UNKNOWN; Platform = PLATFORM_UNKNOWN;
#endif #endif
FullName = BasePackageName + "_v" + Version.substr(0, Version.size()-1); FullName = BasePackageName + "_v" + Version.substr(0, Version.size()-1);
if (PLATFORM_UNKNOWN != Platform) if (PLATFORM_UNKNOWN != Platform)
{ {
...@@ -210,41 +210,41 @@ PackageInfo::PackageInfo(const string& version, int platform, int cpu_id, std::s ...@@ -210,41 +210,41 @@ PackageInfo::PackageInfo(const string& version, int platform, int cpu_id, std::s
{ {
LOGD("PackageInfo::PackageInfo: package arch x86"); LOGD("PackageInfo::PackageInfo: package arch x86");
FullName += string("_") + ARCH_X86_NAME; FullName += string("_") + ARCH_X86_NAME;
#ifdef __SUPPORT_INTEL_FEATURES #ifdef __SUPPORT_INTEL_FEATURES
string features = JoinIntelFeatures(CpuID); string features = JoinIntelFeatures(CpuID);
if (!features.empty()) if (!features.empty())
{ {
FullName += string("_") + features; FullName += string("_") + features;
} }
#endif #endif
} }
else if (ARCH_X64 & CpuID) else if (ARCH_X64 & CpuID)
{ {
LOGD("PackageInfo::PackageInfo: package arch x64"); LOGD("PackageInfo::PackageInfo: package arch x64");
#ifdef __SUPPORT_INTEL_x64 #ifdef __SUPPORT_INTEL_x64
FullName += string("_") + ARCH_X64_NAME; FullName += string("_") + ARCH_X64_NAME;
#else #else
FullName += string("_") + ARCH_X86_NAME; FullName += string("_") + ARCH_X86_NAME;
#endif #endif
#ifdef __SUPPORT_INTEL_FEATURES #ifdef __SUPPORT_INTEL_FEATURES
string features = JoinIntelFeatures(CpuID); string features = JoinIntelFeatures(CpuID);
if (!features.empty()) if (!features.empty())
{ {
FullName += string("_") + features; FullName += string("_") + features;
} }
#endif #endif
} }
else if (ARCH_ARMv5 & CpuID) else if (ARCH_ARMv5 & CpuID)
{ {
LOGD("PackageInfo::PackageInfo: package arch ARMv5"); LOGD("PackageInfo::PackageInfo: package arch ARMv5");
FullName += string("_") + ARCH_ARMv5_NAME; FullName += string("_") + ARCH_ARMv5_NAME;
#ifdef __SUPPORT_ARMEABI_FEATURES #ifdef __SUPPORT_ARMEABI_FEATURES
string features = JoinARMFeatures(CpuID); string features = JoinARMFeatures(CpuID);
if (!features.empty()) if (!features.empty())
{ {
FullName += string("_") + features; FullName += string("_") + features;
} }
#endif #endif
} }
else if (ARCH_ARMv6 & CpuID) else if (ARCH_ARMv6 & CpuID)
{ {
...@@ -252,46 +252,46 @@ PackageInfo::PackageInfo(const string& version, int platform, int cpu_id, std::s ...@@ -252,46 +252,46 @@ PackageInfo::PackageInfo(const string& version, int platform, int cpu_id, std::s
// NOTE: ARM v5 used instead ARM v6 // NOTE: ARM v5 used instead ARM v6
//FullName += string("_") + ARCH_ARMv6_NAME; //FullName += string("_") + ARCH_ARMv6_NAME;
FullName += string("_") + ARCH_ARMv5_NAME; FullName += string("_") + ARCH_ARMv5_NAME;
#ifdef __SUPPORT_ARMEABI_FEATURES #ifdef __SUPPORT_ARMEABI_FEATURES
string features = JoinARMFeatures(CpuID); string features = JoinARMFeatures(CpuID);
if (!features.empty()) if (!features.empty())
{ {
FullName += string("_") + features; FullName += string("_") + features;
} }
#endif #endif
} }
else if (ARCH_ARMv7 & CpuID) else if (ARCH_ARMv7 & CpuID)
{ {
LOGD("PackageInfo::PackageInfo: package arch ARMv7"); LOGD("PackageInfo::PackageInfo: package arch ARMv7");
FullName += string("_") + ARCH_ARMv7_NAME; FullName += string("_") + ARCH_ARMv7_NAME;
#ifdef __SUPPORT_ARMEABI_V7A_FEATURES #ifdef __SUPPORT_ARMEABI_V7A_FEATURES
string features = JoinARMFeatures(CpuID); string features = JoinARMFeatures(CpuID);
if (!features.empty()) if (!features.empty())
{ {
FullName += string("_") + features; FullName += string("_") + features;
} }
#endif #endif
} }
else if (ARCH_ARMv8 & CpuID) else if (ARCH_ARMv8 & CpuID)
{ {
LOGD("PackageInfo::PackageInfo: package arch ARMv8"); LOGD("PackageInfo::PackageInfo: package arch ARMv8");
#ifdef __SUPPORT_ARMEABI_V8 #ifdef __SUPPORT_ARMEABI_V8
FullName += string("_") + ARCH_ARMv8_NAME; FullName += string("_") + ARCH_ARMv8_NAME;
#else #else
FullName += string("_") + ARCH_ARMv7_NAME; FullName += string("_") + ARCH_ARMv7_NAME;
#endif #endif
//string features = JoinARMFeatures(CpuID); //string features = JoinARMFeatures(CpuID);
//if (!features.empty()) //if (!features.empty())
//{ //{
// FullName += string("_") + features; // FullName += string("_") + features;
//} //}
} }
#ifdef __SUPPORT_MIPS #ifdef __SUPPORT_MIPS
else if (ARCH_MIPS & CpuID) else if (ARCH_MIPS & CpuID)
{ {
FullName += string("_") + ARCH_MIPS_NAME; FullName += string("_") + ARCH_MIPS_NAME;
} }
#endif #endif
else else
{ {
LOGD("PackageInfo::PackageInfo: package arch unknown"); LOGD("PackageInfo::PackageInfo: package arch unknown");
...@@ -316,8 +316,8 @@ PackageInfo::PackageInfo(const string& version, int platform, int cpu_id, std::s ...@@ -316,8 +316,8 @@ PackageInfo::PackageInfo(const string& version, int platform, int cpu_id, std::s
} }
PackageInfo::PackageInfo(const string& fullname, const string& install_path, string package_version): PackageInfo::PackageInfo(const string& fullname, const string& install_path, string package_version):
FullName(fullname), FullName(fullname),
InstallPath(install_path) InstallPath(install_path)
{ {
LOGD("PackageInfo::PackageInfo(\"%s\", \"%s\", \"%s\")", fullname.c_str(), install_path.c_str(), package_version.c_str()); LOGD("PackageInfo::PackageInfo(\"%s\", \"%s\", \"%s\")", fullname.c_str(), install_path.c_str(), package_version.c_str());
...@@ -424,12 +424,12 @@ PackageInfo::PackageInfo(const string& fullname, const string& install_path, str ...@@ -424,12 +424,12 @@ PackageInfo::PackageInfo(const string& fullname, const string& install_path, str
{ {
CpuID = ARCH_X64 | SplitIntelFeatures(features); CpuID = ARCH_X64 | SplitIntelFeatures(features);
} }
#ifdef __SUPPORT_MIPS #ifdef __SUPPORT_MIPS
else if (ARCH_MIPS_NAME == features[2]) else if (ARCH_MIPS_NAME == features[2])
{ {
CpuID = ARCH_MIPS; CpuID = ARCH_MIPS;
} }
#endif #endif
else else
{ {
LOGD("It is not OpenCV library package for this platform"); LOGD("It is not OpenCV library package for this platform");
......
...@@ -126,7 +126,7 @@ TEST(OpenCVEngineTest, GetPathForExecHWNewVersion) ...@@ -126,7 +126,7 @@ TEST(OpenCVEngineTest, GetPathForExecHWNewVersion)
EXPECT_EQ(0, result.size()); EXPECT_EQ(0, result.size());
} }
#else #else // armeabi
TEST(OpenCVEngineTest, GetPathForExecHWExistVersion) TEST(OpenCVEngineTest, GetPathForExecHWExistVersion)
{ {
sp<IOpenCVEngine> Engine = InitConnect(); sp<IOpenCVEngine> Engine = InitConnect();
......
...@@ -118,7 +118,7 @@ class AsyncServiceHelper ...@@ -118,7 +118,7 @@ class AsyncServiceHelper
} }
else else
{ {
Log.d(TAG, "Wating current installation process"); Log.d(TAG, "Waiting current installation process");
InstallCallbackInterface WaitQuery = new InstallCallbackInterface() { InstallCallbackInterface WaitQuery = new InstallCallbackInterface() {
private LoaderCallbackInterface mUserAppCallback = Callback; private LoaderCallbackInterface mUserAppCallback = Callback;
public String getPackageName() public String getPackageName()
...@@ -268,18 +268,22 @@ class AsyncServiceHelper ...@@ -268,18 +268,22 @@ class AsyncServiceHelper
{ {
Log.d(TAG, "OpenCV package was not installed!"); Log.d(TAG, "OpenCV package was not installed!");
mStatus = LoaderCallbackInterface.MARKET_ERROR; mStatus = LoaderCallbackInterface.MARKET_ERROR;
Log.d(TAG, "Init finished with status " + mStatus);
Log.d(TAG, "Unbind from service");
mAppContext.unbindService(mServiceConnection);
Log.d(TAG, "Calling using callback");
mUserAppCallback.onManagerConnected(mStatus);
} }
} catch (RemoteException e) { } catch (RemoteException e) {
e.printStackTrace(); e.printStackTrace();
mStatus = LoaderCallbackInterface.INIT_FAILED; mStatus = LoaderCallbackInterface.INIT_FAILED;
}
Log.d(TAG, "Init finished with status " + mStatus); Log.d(TAG, "Init finished with status " + mStatus);
Log.d(TAG, "Unbind from service"); Log.d(TAG, "Unbind from service");
mAppContext.unbindService(mServiceConnection); mAppContext.unbindService(mServiceConnection);
Log.d(TAG, "Calling using callback"); Log.d(TAG, "Calling using callback");
mUserAppCallback.onManagerConnected(mStatus); mUserAppCallback.onManagerConnected(mStatus);
} }
}
}; };
mUserAppCallback.onPackageInstall(InstallCallbackInterface.INSTALLATION_PROGRESS, WaitQuery); mUserAppCallback.onPackageInstall(InstallCallbackInterface.INSTALLATION_PROGRESS, WaitQuery);
......
...@@ -28,7 +28,7 @@ public abstract class BaseLoaderCallback implements LoaderCallbackInterface { ...@@ -28,7 +28,7 @@ public abstract class BaseLoaderCallback implements LoaderCallbackInterface {
/** OpenCV loader can not start Google Play Market. **/ /** OpenCV loader can not start Google Play Market. **/
case LoaderCallbackInterface.MARKET_ERROR: case LoaderCallbackInterface.MARKET_ERROR:
{ {
Log.d(TAG, "Google Play service is not installed! You can get it here"); Log.e(TAG, "Package installation failed!");
AlertDialog MarketErrorMessage = new AlertDialog.Builder(mAppContext).create(); AlertDialog MarketErrorMessage = new AlertDialog.Builder(mAppContext).create();
MarketErrorMessage.setTitle("OpenCV Manager"); MarketErrorMessage.setTitle("OpenCV Manager");
MarketErrorMessage.setMessage("Package installation failed!"); MarketErrorMessage.setMessage("Package installation failed!");
......
...@@ -12,6 +12,11 @@ public class OpenCVLoader ...@@ -12,6 +12,11 @@ public class OpenCVLoader
*/ */
public static final String OPENCV_VERSION_2_4_2 = "2.4.2"; public static final String OPENCV_VERSION_2_4_2 = "2.4.2";
/**
* OpenCV Library version 2.4.3.
*/
public static final String OPENCV_VERSION_2_4_3 = "2.4.3";
/** /**
* Loads and initializes OpenCV library from current application package. Roughly, it's an analog of system.loadLibrary("opencv_java"). * Loads and initializes OpenCV library from current application package. Roughly, it's an analog of system.loadLibrary("opencv_java").
* @return Returns true is initialization of OpenCV was successful. * @return Returns true is initialization of OpenCV was successful.
......
...@@ -71,7 +71,7 @@ public class Puzzle15Activity extends Activity implements CvCameraViewListener, ...@@ -71,7 +71,7 @@ public class Puzzle15Activity extends Activity implements CvCameraViewListener,
public void onResume() public void onResume()
{ {
super.onResume(); super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mLoaderCallback); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
} }
public void onDestroy() { public void onDestroy() {
......
...@@ -86,7 +86,7 @@ public class ColorBlobDetectionActivity extends Activity implements OnTouchListe ...@@ -86,7 +86,7 @@ public class ColorBlobDetectionActivity extends Activity implements OnTouchListe
public void onResume() public void onResume()
{ {
super.onResume(); super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mLoaderCallback); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
} }
public void onDestroy() { public void onDestroy() {
......
...@@ -140,7 +140,7 @@ public class FdActivity extends Activity implements CvCameraViewListener { ...@@ -140,7 +140,7 @@ public class FdActivity extends Activity implements CvCameraViewListener {
public void onResume() public void onResume()
{ {
super.onResume(); super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mLoaderCallback); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
} }
public void onDestroy() { public void onDestroy() {
......
...@@ -121,7 +121,7 @@ public class ImageManipulationsActivity extends Activity implements CvCameraView ...@@ -121,7 +121,7 @@ public class ImageManipulationsActivity extends Activity implements CvCameraView
public void onResume() public void onResume()
{ {
super.onResume(); super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mLoaderCallback); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
} }
public void onDestroy() { public void onDestroy() {
......
...@@ -64,7 +64,7 @@ public class Sample1Java extends Activity implements CvCameraViewListener { ...@@ -64,7 +64,7 @@ public class Sample1Java extends Activity implements CvCameraViewListener {
public void onResume() public void onResume()
{ {
super.onResume(); super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mLoaderCallback); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
} }
public void onDestroy() { public void onDestroy() {
......
...@@ -83,7 +83,7 @@ public class Sample2NativeCamera extends Activity implements CvCameraViewListene ...@@ -83,7 +83,7 @@ public class Sample2NativeCamera extends Activity implements CvCameraViewListene
public void onResume() public void onResume()
{ {
super.onResume(); super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mLoaderCallback); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
} }
public void onDestroy() { public void onDestroy() {
......
...@@ -72,7 +72,7 @@ public class Sample3Native extends Activity implements CvCameraViewListener { ...@@ -72,7 +72,7 @@ public class Sample3Native extends Activity implements CvCameraViewListener {
public void onResume() public void onResume()
{ {
super.onResume(); super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mLoaderCallback); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
} }
public void onDestroy() { public void onDestroy() {
......
...@@ -98,7 +98,7 @@ public class Sample4Mixed extends Activity implements CvCameraViewListener { ...@@ -98,7 +98,7 @@ public class Sample4Mixed extends Activity implements CvCameraViewListener {
public void onResume() public void onResume()
{ {
super.onResume(); super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mLoaderCallback); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
} }
public void onDestroy() { public void onDestroy() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment