本文整理汇总了C++中sp::DrmInitialization方法的典型用法代码示例。如果您正苦于以下问题:C++ sp::DrmInitialization方法的具体用法?C++ sp::DrmInitialization怎么用?C++ sp::DrmInitialization使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sp
的用法示例。
在下文中一共展示了sp::DrmInitialization方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: autoLock
WVMExtractor::WVMExtractor(const sp<DataSource> &source)
: mDataSource(source)
{
Mutex::Autolock autoLock(gWVMutex);
if (!getVendorLibHandle()) {
return;
}
typedef WVMLoadableExtractor *(*GetInstanceFunc)(sp<DataSource>);
GetInstanceFunc getInstanceFunc =
(GetInstanceFunc) dlsym(gVendorLibHandle,
"_ZN7android11GetInstanceENS_2spINS_10DataSourceEEE");
if (getInstanceFunc) {
if (source->DrmInitialization(
MEDIA_MIMETYPE_CONTAINER_WVM) != NULL) {
mImpl = (*getInstanceFunc)(source);
CHECK(mImpl != NULL);
setDrmFlag(true);
} else {
ALOGE("Drm manager failed to initialize.");
}
} else {
ALOGE("Failed to locate GetInstance in libwvm.so");
}
}
示例2: SniffDRM
bool SniffDRM(
const sp<DataSource> &source, String8 *mimeType, float *confidence,
sp<AMessage> *) {
sp<DecryptHandle> decryptHandle = source->DrmInitialization();
if (decryptHandle != NULL) {
if (decryptHandle->decryptApiType == DecryptApiType::CONTAINER_BASED) {
*mimeType = String8("drm+container_based+") + decryptHandle->mimeType;
*confidence = 10.0f;
} else if (decryptHandle->decryptApiType == DecryptApiType::ELEMENTARY_STREAM_BASED) {
*mimeType = String8("drm+es_based+") + decryptHandle->mimeType;
*confidence = 10.0f;
} else {
return false;
}
return true;
}
return false;
}