Widevine HIDL service added new v1.2 media APIs, update the service to support new APIs. Merged from http://go/wvgerrit/67083 Test: Netflix and Play Movies & TV (streaming and offline playback) Test: GTS WidevineH264PlaybackTests test e.g. ANDROID_BUILD_TOP= ./android-gts/toolsefed run gts -m GtsMediaTestCases --test com.google.android.media.gts.WidevineH264PlaybackTests#testL1With480P30 Test: Widevine unit tests bug: 117570686 Change-Id: I3a2091e7c62a0d2697ef97f983fd898aedfb4519
62 lines
1.5 KiB
C++
62 lines
1.5 KiB
C++
//
|
|
// Copyright 2018 Google LLC. All Rights Reserved. This file and proprietary
|
|
// source code may only be used and distributed under the Widevine Master
|
|
// License Agreement.
|
|
//
|
|
|
|
#ifndef WV_DRM_FACTORY_H_
|
|
#define WV_DRM_FACTORY_H_
|
|
|
|
#include <android/hardware/drm/1.1/IDrmFactory.h>
|
|
#include <android/hardware/drm/1.2/IDrmPlugin.h>
|
|
|
|
#include "WVGenericCryptoInterface.h"
|
|
#include "WVTypes.h"
|
|
|
|
namespace wvdrm {
|
|
namespace hardware {
|
|
namespace drm {
|
|
namespace V1_2 {
|
|
namespace widevine {
|
|
|
|
using ::android::hardware::drm::V1_1::IDrmFactory;
|
|
using ::android::hardware::drm::V1_2::IDrmPlugin;
|
|
using ::android::hardware::hidl_array;
|
|
using ::android::hardware::hidl_string;
|
|
using ::android::hardware::Return;
|
|
|
|
struct WVDrmFactory : public IDrmFactory {
|
|
WVDrmFactory() {}
|
|
virtual ~WVDrmFactory() {}
|
|
|
|
Return<bool> isCryptoSchemeSupported(const hidl_array<uint8_t, 16>& uuid)
|
|
override;
|
|
|
|
Return<bool> isContentTypeSupported(const hidl_string &mimeType)
|
|
override;
|
|
|
|
Return<void> createPlugin(
|
|
const hidl_array<uint8_t, 16>& uuid,
|
|
const hidl_string& appPackageName,
|
|
createPlugin_cb _hidl_cb) override;
|
|
|
|
private:
|
|
WVDRM_DISALLOW_COPY_AND_ASSIGN(WVDrmFactory);
|
|
|
|
static WVGenericCryptoInterface sOemCryptoInterface;
|
|
|
|
static bool areSpoidsEnabled();
|
|
|
|
friend class WVDrmFactoryTest_CalculatesSpoidUseCorrectly_Test;
|
|
};
|
|
|
|
extern "C" IDrmFactory* HIDL_FETCH_IDrmFactory(const char* name);
|
|
|
|
} // namespace widevine
|
|
} // namespace V1_2
|
|
} // namespace drm
|
|
} // namespace hardware
|
|
} // namespace wvdrm
|
|
|
|
#endif // WV_DRM_FACTORY_H_
|