mirror of
https://github.com/opencv/opencv.git
synced 2025-06-11 03:33:28 +08:00
Merge pull request #11074 from alalek:android_log_messages
This commit is contained in:
commit
fed22f2f5c
@ -11,6 +11,10 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
|
#ifdef __ANDROID__
|
||||||
|
# include <android/log.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace cv {
|
namespace cv {
|
||||||
namespace utils {
|
namespace utils {
|
||||||
namespace logging {
|
namespace logging {
|
||||||
@ -62,8 +66,7 @@ namespace internal {
|
|||||||
void writeLogMessage(LogLevel logLevel, const char* message)
|
void writeLogMessage(LogLevel logLevel, const char* message)
|
||||||
{
|
{
|
||||||
const int threadID = cv::utils::getThreadID();
|
const int threadID = cv::utils::getThreadID();
|
||||||
std::ostream* out = (logLevel <= LOG_LEVEL_WARNING) ? &std::cerr : &std::cout;
|
std::ostringstream ss;
|
||||||
std::stringstream ss;
|
|
||||||
switch (logLevel)
|
switch (logLevel)
|
||||||
{
|
{
|
||||||
case LOG_LEVEL_FATAL: ss << "[FATAL:" << threadID << "] " << message << std::endl; break;
|
case LOG_LEVEL_FATAL: ss << "[FATAL:" << threadID << "] " << message << std::endl; break;
|
||||||
@ -75,6 +78,22 @@ void writeLogMessage(LogLevel logLevel, const char* message)
|
|||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#ifdef __ANDROID__
|
||||||
|
int android_logLevel = ANDROID_LOG_INFO;
|
||||||
|
switch (logLevel)
|
||||||
|
{
|
||||||
|
case LOG_LEVEL_FATAL: android_logLevel = ANDROID_LOG_FATAL; break;
|
||||||
|
case LOG_LEVEL_ERROR: android_logLevel = ANDROID_LOG_ERROR; break;
|
||||||
|
case LOG_LEVEL_WARNING: android_logLevel = ANDROID_LOG_WARN; break;
|
||||||
|
case LOG_LEVEL_INFO: android_logLevel = ANDROID_LOG_INFO; break;
|
||||||
|
case LOG_LEVEL_DEBUG: android_logLevel = ANDROID_LOG_DEBUG; break;
|
||||||
|
case LOG_LEVEL_VERBOSE: android_logLevel = ANDROID_LOG_VERBOSE; break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
__android_log_print(android_logLevel, "OpenCV/" CV_VERSION, "%s", ss.str().c_str());
|
||||||
|
#endif
|
||||||
|
std::ostream* out = (logLevel <= LOG_LEVEL_WARNING) ? &std::cerr : &std::cout;
|
||||||
(*out) << ss.str();
|
(*out) << ss.str();
|
||||||
if (logLevel <= LOG_LEVEL_WARNING)
|
if (logLevel <= LOG_LEVEL_WARNING)
|
||||||
(*out) << std::flush;
|
(*out) << std::flush;
|
||||||
|
@ -47,6 +47,8 @@
|
|||||||
#include <opencv2/core/utils/configuration.private.hpp>
|
#include <opencv2/core/utils/configuration.private.hpp>
|
||||||
#include <opencv2/core/utils/trace.private.hpp>
|
#include <opencv2/core/utils/trace.private.hpp>
|
||||||
|
|
||||||
|
#include <opencv2/core/utils/logger.hpp>
|
||||||
|
|
||||||
namespace cv {
|
namespace cv {
|
||||||
|
|
||||||
static Mutex* __initialization_mutex = NULL;
|
static Mutex* __initialization_mutex = NULL;
|
||||||
@ -412,24 +414,24 @@ struct HWFeatures
|
|||||||
have[CV_CPU_FP16] = true;
|
have[CV_CPU_FP16] = true;
|
||||||
#elif defined __arm__ && defined __ANDROID__
|
#elif defined __arm__ && defined __ANDROID__
|
||||||
#if defined HAVE_CPUFEATURES
|
#if defined HAVE_CPUFEATURES
|
||||||
__android_log_print(ANDROID_LOG_INFO, "OpenCV", "calling android_getCpuFeatures() ...");
|
CV_LOG_INFO(NULL, "calling android_getCpuFeatures() ...");
|
||||||
uint64_t features = android_getCpuFeatures();
|
uint64_t features = android_getCpuFeatures();
|
||||||
__android_log_print(ANDROID_LOG_INFO, "OpenCV", "calling android_getCpuFeatures() ... Done (%llx)", features);
|
CV_LOG_INFO(NULL, cv::format("calling android_getCpuFeatures() ... Done (%llx)", (long long)features));
|
||||||
have[CV_CPU_NEON] = (features & ANDROID_CPU_ARM_FEATURE_NEON) != 0;
|
have[CV_CPU_NEON] = (features & ANDROID_CPU_ARM_FEATURE_NEON) != 0;
|
||||||
have[CV_CPU_FP16] = (features & ANDROID_CPU_ARM_FEATURE_VFP_FP16) != 0;
|
have[CV_CPU_FP16] = (features & ANDROID_CPU_ARM_FEATURE_VFP_FP16) != 0;
|
||||||
#else
|
#else
|
||||||
__android_log_print(ANDROID_LOG_INFO, "OpenCV", "cpufeatures library is not available for CPU detection");
|
CV_LOG_INFO(NULL, "cpufeatures library is not available for CPU detection");
|
||||||
#if CV_NEON
|
#if CV_NEON
|
||||||
__android_log_print(ANDROID_LOG_INFO, "OpenCV", "- NEON instructions is enabled via build flags");
|
CV_LOG_INFO(NULL, "- NEON instructions is enabled via build flags");
|
||||||
have[CV_CPU_NEON] = true;
|
have[CV_CPU_NEON] = true;
|
||||||
#else
|
#else
|
||||||
__android_log_print(ANDROID_LOG_INFO, "OpenCV", "- NEON instructions is NOT enabled via build flags");
|
CV_LOG_INFO(NULL, "- NEON instructions is NOT enabled via build flags");
|
||||||
#endif
|
#endif
|
||||||
#if CV_FP16
|
#if CV_FP16
|
||||||
__android_log_print(ANDROID_LOG_INFO, "OpenCV", "- FP16 instructions is enabled via build flags");
|
CV_LOG_INFO(NULL, "- FP16 instructions is enabled via build flags");
|
||||||
have[CV_CPU_FP16] = true;
|
have[CV_CPU_FP16] = true;
|
||||||
#else
|
#else
|
||||||
__android_log_print(ANDROID_LOG_INFO, "OpenCV", "- FP16 instructions is NOT enabled via build flags");
|
CV_LOG_INFO(NULL, "- FP16 instructions is NOT enabled via build flags");
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#elif defined __arm__
|
#elif defined __arm__
|
||||||
|
Loading…
Reference in New Issue
Block a user