From 9b79f3e2c658bd0b3f36d7f211fe19317bd9d837 Mon Sep 17 00:00:00 2001 From: Chris Pearce Date: Mon, 29 May 2017 17:14:52 +1200 Subject: [PATCH] Bug 1381720 - Add content_decryption_module_ext.h. r=gerald Updates to Chromium revision 6e4c388c0117fe408b66fbede91081fb1018c5fe. Adds Verified Media Pipeline function definitions. MozReview-Commit-ID: 2H8mMNacQqR --HG-- extra : rebase_source : d544d6a0c6854ccc29da6ddcc11b4efc8f621036 --- dom/media/gmp/moz.build | 1 + .../content_decryption_module_ext.h | 64 +++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 dom/media/gmp/widevine-adapter/content_decryption_module_ext.h diff --git a/dom/media/gmp/moz.build b/dom/media/gmp/moz.build index b367254dcf95..2b678703597b 100644 --- a/dom/media/gmp/moz.build +++ b/dom/media/gmp/moz.build @@ -68,6 +68,7 @@ EXPORTS += [ 'GMPVideoPlaneImpl.h', 'widevine-adapter/content_decryption_module.h', 'widevine-adapter/content_decryption_module_export.h', + 'widevine-adapter/content_decryption_module_ext.h', ] UNIFIED_SOURCES += [ diff --git a/dom/media/gmp/widevine-adapter/content_decryption_module_ext.h b/dom/media/gmp/widevine-adapter/content_decryption_module_ext.h new file mode 100644 index 000000000000..5df8344e60a2 --- /dev/null +++ b/dom/media/gmp/widevine-adapter/content_decryption_module_ext.h @@ -0,0 +1,64 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CDM_CONTENT_DECRYPTION_MODULE_EXT_H_ +#define CDM_CONTENT_DECRYPTION_MODULE_EXT_H_ + +#if defined(_WIN32) +#include +#endif + +#include "content_decryption_module_export.h" + +#if defined(_MSC_VER) +typedef unsigned int uint32_t; +#else +#include +#endif + +namespace cdm { + +#if defined(_WIN32) +typedef wchar_t FilePathCharType; +typedef HANDLE PlatformFile; +const PlatformFile kInvalidPlatformFile = INVALID_HANDLE_VALUE; +#else +typedef char FilePathCharType; +typedef int PlatformFile; +const PlatformFile kInvalidPlatformFile = -1; +#endif // defined(_WIN32) + +struct HostFile { + HostFile(const FilePathCharType* file_path, + PlatformFile file, + PlatformFile sig_file) + : file_path(file_path), file(file), sig_file(sig_file) {} + + // File that is part of the host of the CDM. + const FilePathCharType* file_path = nullptr; + PlatformFile file = kInvalidPlatformFile; + + // Signature file for |file|. + PlatformFile sig_file = kInvalidPlatformFile; +}; + +} // namespace cdm + +extern "C" { + +// Functions in this file are dynamically retrieved by their versioned function +// names. Increment the version number for any backward incompatible API +// changes. + +// Verifies CDM host. All files in |host_files| are opened in read-only mode. +// +// Returns false and closes all files if there is an immediate failure. +// Otherwise returns true as soon as possible and processes the files +// asynchronously. All files MUST be closed by the CDM after this one-time +// processing is finished. +CDM_API bool VerifyCdmHost_0(const cdm::HostFile* host_files, + uint32_t num_files); +} + +#endif // CDM_CONTENT_DECRYPTION_MODULE_EXT_H_