Save recent Widevine CDM logs
Bug: 162255728 Test: cdm unit tests Change-Id: Ibc0daf374bedd8ac2a9a0515835e2775045962a7
This commit is contained in:
@@ -26,7 +26,9 @@
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <mutex>
|
||||
#include <string>
|
||||
|
||||
/*
|
||||
@@ -38,8 +40,20 @@
|
||||
|
||||
namespace wvcdm {
|
||||
|
||||
namespace {
|
||||
int64_t GetCurrentTimeMs() {
|
||||
struct timeval tv{};
|
||||
gettimeofday(&tv, NULL);
|
||||
auto msec1 = static_cast<int64_t>(tv.tv_sec) * 1000;
|
||||
auto msec2 = static_cast<int64_t>(tv.tv_usec) / 1000;
|
||||
return msec1 + msec2;
|
||||
}
|
||||
}
|
||||
|
||||
LogPriority g_cutoff = LOG_VERBOSE;
|
||||
|
||||
LogBuffer g_logbuf;
|
||||
|
||||
void InitLogging() {}
|
||||
|
||||
void Log(const char* file, const char* function, int line, LogPriority level,
|
||||
@@ -86,6 +100,22 @@ void Log(const char* file, const char* function, int line, LogPriority level,
|
||||
}
|
||||
|
||||
__android_log_write(prio, LOG_TAG, buf);
|
||||
if (level <= LOG_INFO) {
|
||||
g_logbuf.addLog({GetCurrentTimeMs(), level, buf});
|
||||
}
|
||||
}
|
||||
|
||||
void LogBuffer::addLog(const LogMessage& log) {
|
||||
std::unique_lock<std::mutex> lock(mutex_);
|
||||
buffer_.push_back(log);
|
||||
while (buffer_.size() > MAX_CAPACITY) {
|
||||
buffer_.pop_front();
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<LogMessage> LogBuffer::getLogs() {
|
||||
std::unique_lock<std::mutex> lock(mutex_);
|
||||
return {buffer_.begin(), buffer_.end()};
|
||||
}
|
||||
|
||||
} // namespace wvcdm
|
||||
|
||||
Reference in New Issue
Block a user