15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef WIDEVINE_CDM_WIDEVINE_CDM_COMMON_H_
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define WIDEVINE_CDM_WIDEVINE_CDM_COMMON_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/files/file_path.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file defines constants common to all Widevine CDM versions.
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Widevine CDM version contains 4 components, e.g. 1.4.0.195.
13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const int kWidevineCdmVersionNumComponents = 4;
14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// "alpha" is a temporary name until a convention is defined.
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char kWidevineKeySystem[] = "com.widevine.alpha";
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kWidevineCdmDisplayName[] = "Widevine Content Decryption Module";
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Will be parsed as HTML.
20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kWidevineCdmDescription[] =
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    "Enables Widevine licenses for playback of HTML audio/video content.";
22424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
2390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#if defined(ENABLE_PEPPER_CDMS)
2490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)const char kWidevineCdmPluginMimeType[] = "application/x-ppapi-widevine-cdm";
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)const char kWidevineCdmPluginMimeTypeDescription[] =
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    "Widevine Content Decryption Module";
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// File name of the CDM on different platforms.
2990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)const char kWidevineCdmFileName[] =
30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if defined(OS_MACOSX)
317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch    "libwidevinecdm.dylib";
32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#elif defined(OS_WIN)
3390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    "widevinecdm.dll";
34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#else  // OS_LINUX, etc.
3590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    "libwidevinecdm.so";
36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif
37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// File name of the adapter on different platforms.
3990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)const char kWidevineCdmAdapterFileName[] =
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX)
4190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    "widevinecdmadapter.plugin";
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_WIN)
4390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    "widevinecdmadapter.dll";
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else  // OS_LINUX, etc.
4590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    "libwidevinecdmadapter.so";
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
4790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
481e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// The following strings are used to communicate supported codecs (from the
491e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// component manifest) via WebPluginInfo::WebPluginMimeType's additional params.
501e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)const char kCdmSupportedCodecsParamName[] = "codecs";
511e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)const char kCdmSupportedCodecsValueDelimiter = ',';
521e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)const char kCdmSupportedCodecVorbis[] = "vorbis";
531e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)const char kCdmSupportedCodecVp8[] = "vp8";
545c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuconst char kCdmSupportedCodecVp9[] = "vp9.0";
551e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#if defined(USE_PROPRIETARY_CODECS)
561e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)const char kCdmSupportedCodecAac[] = "aac";
571e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)const char kCdmSupportedCodecAvc1[] = "avc1";
581e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#endif  // defined(USE_PROPRIETARY_CODECS)
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#if defined(OS_MACOSX) || defined(OS_WIN)
61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// CDM is installed by the component installer instead of the Chrome installer.
62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define WIDEVINE_CDM_IS_COMPONENT
63424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#endif  // defined(OS_MACOSX) || defined(OS_WIN)
64424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#endif  // defined(ENABLE_PEPPER_CDMS)
65c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // WIDEVINE_CDM_WIDEVINE_CDM_COMMON_H_
67