summaryrefslogtreecommitdiffstats
path: root/media/wmf-clearkey/WMFClearKeyOutputPolicy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'media/wmf-clearkey/WMFClearKeyOutputPolicy.cpp')
-rw-r--r--media/wmf-clearkey/WMFClearKeyOutputPolicy.cpp203
1 files changed, 203 insertions, 0 deletions
diff --git a/media/wmf-clearkey/WMFClearKeyOutputPolicy.cpp b/media/wmf-clearkey/WMFClearKeyOutputPolicy.cpp
new file mode 100644
index 0000000000..b992d931dd
--- /dev/null
+++ b/media/wmf-clearkey/WMFClearKeyOutputPolicy.cpp
@@ -0,0 +1,203 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "WMFClearKeyOutputPolicy.h"
+
+#include <mfapi.h>
+#include <mferror.h>
+
+#include "WMFClearKeyUtils.h"
+
+namespace mozilla {
+
+using Microsoft::WRL::ComPtr;
+using Microsoft::WRL::MakeAndInitialize;
+
+HRESULT WMFClearKeyOutputPolicy::RuntimeClassInitialize(
+ MFPOLICYMANAGER_ACTION aAction) {
+ ENTRY_LOG_ARGS("aAction=%d", aAction);
+ if (aAction != PEACTION_PLAY && aAction != PEACTION_EXTRACT &&
+ aAction != PEACTION_NO) {
+ return MF_E_UNEXPECTED;
+ }
+ return S_OK;
+}
+
+// IMFOutputPolicy
+STDMETHODIMP WMFClearKeyOutputPolicy::GenerateRequiredSchemas(
+ DWORD aAttributes, GUID aGuidOutputSubtype,
+ GUID* aGuidProtectionSchemasSupported,
+ DWORD aProtectionSchemasSupportedCount,
+ IMFCollection** aRequiredProtectionSchemas) {
+ ENTRY_LOG();
+ // We don't require an OTA (output trust authority) to enforce for testing.
+ // However, we still need to return an empty collection on success.
+ ComPtr<IMFCollection> collection;
+ RETURN_IF_FAILED(MFCreateCollection(&collection));
+ *aRequiredProtectionSchemas = collection.Detach();
+ return S_OK;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::GetOriginatorID(GUID* aGuidOriginatorId) {
+ ENTRY_LOG();
+ *aGuidOriginatorId = GUID_NULL;
+ return S_OK;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::GetMinimumGRLVersion(
+ DWORD* aMinimumGrlVersion) {
+ ENTRY_LOG();
+ *aMinimumGrlVersion = 0;
+ return S_OK;
+}
+
+// IMFAttributes inherited by IMFOutputPolicy
+STDMETHODIMP WMFClearKeyOutputPolicy::GetItem(REFGUID aGuidKey,
+ PROPVARIANT* aValue) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::GetItemType(REFGUID aGuidKey,
+ MF_ATTRIBUTE_TYPE* aType) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::CompareItem(REFGUID aGuidKey,
+ REFPROPVARIANT aValue,
+ BOOL* aResult) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::Compare(IMFAttributes* aAttributes,
+ MF_ATTRIBUTES_MATCH_TYPE aType,
+ BOOL* aResult) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::GetUINT32(REFGUID aGuidKey,
+ UINT32* aValue) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::GetUINT64(REFGUID aGuidKey,
+ UINT64* aValue) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::GetDouble(REFGUID aGuidKey,
+ double* aValue) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::GetGUID(REFGUID aGuidKey,
+ GUID* aGuidValue) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::GetStringLength(REFGUID aGuidKey,
+ UINT32* aPcchLength) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::GetString(REFGUID aGuidKey,
+ LPWSTR aPwszValue,
+ UINT32 aCchBufSize,
+ UINT32* aPcchLength) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::GetAllocatedString(REFGUID aGuidKey,
+ LPWSTR* aPpwszValue,
+ UINT32* aPcchLength) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::GetBlobSize(REFGUID aGuidKey,
+ UINT32* aPcbBlobSize) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::GetBlob(REFGUID aGuidKey, UINT8* pBuf,
+ UINT32 aCbBufSize,
+ UINT32* aPcbBlobSize) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::GetAllocatedBlob(REFGUID aGuidKey,
+ UINT8** aBuf,
+ UINT32* aPcbSize) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::GetUnknown(REFGUID aGuidKey, REFIID aRiid,
+ LPVOID* aPpv) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::SetItem(REFGUID aGuidKey,
+ REFPROPVARIANT aValue) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::DeleteItem(REFGUID aGuidKey) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::DeleteAllItems() { return E_NOTIMPL; }
+
+STDMETHODIMP WMFClearKeyOutputPolicy::SetUINT32(REFGUID aGuidKey,
+ UINT32 aValue) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::SetUINT64(REFGUID aGuidKey,
+ UINT64 aValue) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::SetDouble(REFGUID aGuidKey,
+ double aValue) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::SetGUID(REFGUID aGuidKey,
+ REFGUID aGuidValue) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::SetString(REFGUID aGuidKey,
+ LPCWSTR aWszValue) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::SetBlob(REFGUID aGuidKey,
+ const UINT8* aBuf,
+ UINT32 aCbBufSize) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::SetUnknown(REFGUID aGuidKey,
+ IUnknown* aUnknown) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::LockStore() { return E_NOTIMPL; }
+
+STDMETHODIMP WMFClearKeyOutputPolicy::UnlockStore() { return E_NOTIMPL; }
+
+STDMETHODIMP WMFClearKeyOutputPolicy::GetCount(UINT32* aPcItems) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::GetItemByIndex(UINT32 aIndex,
+ GUID* aGuidKey,
+ PROPVARIANT* aValue) {
+ return E_NOTIMPL;
+}
+
+STDMETHODIMP WMFClearKeyOutputPolicy::CopyAllItems(IMFAttributes* aDest) {
+ return E_NOTIMPL;
+}
+
+} // namespace mozilla