Initial import of Widevine Common Encryption DRM engine

Builds libwvmdrmengine.so, which is loaded by the new
MediaDrm APIs to support playback of Widevine/CENC
protected content.

Change-Id: I6f57dd37083dfd96c402cb9dd137c7d74edc8f1c
This commit is contained in:
Jeff Tinker
2013-03-21 17:39:02 -07:00
parent 38334efbe7
commit 1a8aa0dd05
211 changed files with 51913 additions and 144 deletions

View File

@@ -1 +0,0 @@
Juce and Jerry to fill in.

View File

@@ -0,0 +1,16 @@
//
// Copyright 2013 Google Inc. All Rights Reserved.
//
#ifndef WV_CDM_SINGLETON_H_
#define WV_CDM_SINGLETON_H_
#include "wv_content_decryption_module.h"
namespace wvdrm {
wvcdm::WvContentDecryptionModule* getCDM();
} // namespace wvdrm
#endif // WV_CDM_SINGLETON_H_

View File

@@ -0,0 +1,16 @@
//
// Copyright 2013 Google Inc. All Rights Reserved.
//
#ifndef WV_CREATE_PLUGIN_FACTORIES_H_
#define WV_CREATE_PLUGIN_FACTORIES_H_
#include "media/drm/DrmAPI.h"
#include "media/hardware/CryptoAPI.h"
extern "C" {
android::DrmFactory* createDrmFactory();
android::CryptoFactory* createCryptoFactory();
}
#endif // WV_CREATE_PLUGIN_FACTORIES_H_

View File

@@ -0,0 +1,34 @@
//
// Copyright 2013 Google Inc. All Rights Reserved.
//
#ifndef WV_CRYPTO_FACTORY_H_
#define WV_CRYPTO_FACTORY_H_
#include "media/hardware/CryptoAPI.h"
#include "media/stagefright/foundation/ABase.h"
#include "utils/Errors.h"
namespace wvdrm {
class WVCryptoFactory : public android::CryptoFactory {
public:
WVCryptoFactory();
virtual ~WVCryptoFactory();
virtual bool isCryptoSchemeSupported(const uint8_t uuid[16]) const;
virtual android::status_t createPlugin(const uint8_t uuid[16],
const void* data, size_t size,
android::CryptoPlugin** plugin);
private:
DISALLOW_EVIL_CONSTRUCTORS(WVCryptoFactory);
void* mLegacyLibraryHandle;
android::CryptoFactory* mLegacyFactory;
};
} // namespace wvdrm
#endif // WV_CRYPTO_FACTORY_H_

View File

@@ -0,0 +1,30 @@
//
// Copyright 2013 Google Inc. All Rights Reserved.
//
#ifndef WV_DRM_FACTORY_H_
#define WV_DRM_FACTORY_H_
#include "media/drm/DrmAPI.h"
#include "media/stagefright/foundation/ABase.h"
#include "utils/Errors.h"
namespace wvdrm {
class WVDrmFactory : public android::DrmFactory {
public:
WVDrmFactory() {};
virtual ~WVDrmFactory() {};
virtual bool isCryptoSchemeSupported(const uint8_t uuid[16]);
virtual android::status_t createDrmPlugin(const uint8_t uuid[16],
android::DrmPlugin** plugin);
private:
DISALLOW_EVIL_CONSTRUCTORS(WVDrmFactory);
};
} // namespace wvdrm
#endif // WV_DRM_FACTORY_H_

View File

@@ -0,0 +1,16 @@
//
// Copyright 2013 Google Inc. All Rights Reserved.
//
#ifndef WV_UUID_H_
#define WV_UUID_H_
#include <stdint.h>
namespace wvdrm {
bool isWidevineUUID(const uint8_t uuid[16]);
} // namespace wvdrm
#endif // WV_UUID_H_