diff options
Diffstat (limited to 'media/wmf-clearkey/WMFClearKeyOutputPolicy.cpp')
-rw-r--r-- | media/wmf-clearkey/WMFClearKeyOutputPolicy.cpp | 203 |
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 |