Builds libwvmdrmengine.so, which is loaded by the new MediaDrm APIs to support playback of Widevine/CENC protected content. Change-Id: I6f57dd37083dfd96c402cb9dd137c7d74edc8f1c
55 lines
960 B
C++
55 lines
960 B
C++
// Copyright 2013 Google Inc. All Rights Reserved.
|
|
//
|
|
// Lock class - provides a simple android specific mutex implementation
|
|
|
|
#include "lock.h"
|
|
#include "utils/Mutex.h"
|
|
|
|
namespace wvcdm {
|
|
|
|
class Lock::Impl {
|
|
public:
|
|
android::Mutex lock_;
|
|
};
|
|
|
|
Lock::Lock() : impl_(new Lock::Impl()) {
|
|
}
|
|
|
|
Lock::~Lock() {
|
|
delete impl_;
|
|
impl_ = NULL;
|
|
}
|
|
|
|
void Lock::Acquire() {
|
|
impl_->lock_.lock();
|
|
}
|
|
|
|
void Lock::Release() {
|
|
impl_->lock_.unlock();
|
|
}
|
|
|
|
bool Lock::Try() {
|
|
return (impl_->lock_.tryLock() == 0);
|
|
}
|
|
|
|
class AutoLock::Impl {
|
|
public:
|
|
android::Mutex::Autolock *autolock_;
|
|
};
|
|
|
|
AutoLock::AutoLock(Lock& lock) : impl_(new AutoLock::Impl()) {
|
|
impl_->autolock_ = new android::Mutex::Autolock(lock.impl_->lock_);
|
|
}
|
|
|
|
AutoLock::AutoLock(Lock* lock) : impl_(new AutoLock::Impl()) {
|
|
impl_->autolock_ = new android::Mutex::Autolock(lock->impl_->lock_);
|
|
}
|
|
|
|
AutoLock::~AutoLock() {
|
|
delete impl_->autolock_;
|
|
delete impl_;
|
|
impl_ = NULL;
|
|
}
|
|
|
|
}; // namespace wvcdm
|