1# Copyright 2013 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5{ 6 'variables': { 7 'conditions': [ 8 ['OS == "android" or OS == "ios"', { 9 # Android and iOS don't use ffmpeg. 10 'use_ffmpeg%': 0, 11 }, { # 'OS != "android" and OS != "ios"' 12 'use_ffmpeg%': 1, 13 }], 14 ], 15 # Set |use_fake_video_decoder| to 1 to ignore input frames in |clearkeycdm|, 16 # and produce video frames filled with a solid color instead. 17 'use_fake_video_decoder%': 0, 18 # Set |use_libvpx| to 1 to use libvpx for VP8 decoding in |clearkeycdm|. 19 'use_libvpx%': 0, 20 }, 21 'targets': [ 22 { 23 'target_name': 'clearkeycdm', 24 'type': 'none', 25 # TODO(tomfinegan): Simplify this by unconditionally including all the 26 # decoders, and changing clearkeycdm to select which decoder to use 27 # based on environment variables. 28 'conditions': [ 29 ['use_fake_video_decoder == 1' , { 30 'defines': ['CLEAR_KEY_CDM_USE_FAKE_VIDEO_DECODER'], 31 'sources': [ 32 'cdm/ppapi/fake_cdm_video_decoder.cc', 33 'cdm/ppapi/fake_cdm_video_decoder.h', 34 ], 35 }], 36 ['use_ffmpeg == 1' , { 37 'defines': ['CLEAR_KEY_CDM_USE_FFMPEG_DECODER'], 38 'dependencies': [ 39 '<(DEPTH)/third_party/ffmpeg/ffmpeg.gyp:ffmpeg', 40 ], 41 'sources': [ 42 'cdm/ppapi/ffmpeg_cdm_audio_decoder.cc', 43 'cdm/ppapi/ffmpeg_cdm_audio_decoder.h', 44 ], 45 }], 46 ['use_ffmpeg == 1 and use_fake_video_decoder == 0' , { 47 'sources': [ 48 'cdm/ppapi/ffmpeg_cdm_video_decoder.cc', 49 'cdm/ppapi/ffmpeg_cdm_video_decoder.h', 50 ], 51 }], 52 ['use_libvpx == 1 and use_fake_video_decoder == 0' , { 53 'defines': ['CLEAR_KEY_CDM_USE_LIBVPX_DECODER'], 54 'dependencies': [ 55 '<(DEPTH)/third_party/libvpx/libvpx.gyp:libvpx', 56 ], 57 'sources': [ 58 'cdm/ppapi/libvpx_cdm_video_decoder.cc', 59 'cdm/ppapi/libvpx_cdm_video_decoder.h', 60 ], 61 }], 62 ['os_posix == 1 and OS != "mac" and enable_pepper_cdms==1', { 63 'type': 'loadable_module', # Must be in PRODUCT_DIR for ASAN bots. 64 }], 65 ['(OS == "mac" or OS == "win") and enable_pepper_cdms==1', { 66 'type': 'shared_library', 67 }], 68 ['OS == "mac"', { 69 'xcode_settings': { 70 'DYLIB_INSTALL_NAME_BASE': '@loader_path', 71 }, 72 }] 73 ], 74 'defines': ['CDM_IMPLEMENTATION'], 75 'dependencies': [ 76 'media', 77 # Include the following for media::AudioBus. 78 'shared_memory_support', 79 '<(DEPTH)/base/base.gyp:base', 80 ], 81 'sources': [ 82 'cdm/ppapi/cdm_video_decoder.cc', 83 'cdm/ppapi/cdm_video_decoder.h', 84 'cdm/ppapi/clear_key_cdm.cc', 85 'cdm/ppapi/clear_key_cdm.h', 86 ], 87 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 88 'msvs_disabled_warnings': [ 4267, ], 89 }, 90 { 91 'target_name': 'clearkeycdmadapter', 92 'type': 'none', 93 # Check whether the plugin's origin URL is valid. 94 'defines': ['CHECK_DOCUMENT_URL'], 95 'dependencies': [ 96 '<(DEPTH)/ppapi/ppapi.gyp:ppapi_cpp', 97 'clearkeycdm', 98 ], 99 'sources': [ 100 'cdm/ppapi/api/content_decryption_module.h', 101 'cdm/ppapi/cdm_wrapper.cc', 102 'cdm/ppapi/linked_ptr.h', 103 ], 104 'conditions': [ 105 ['os_posix == 1 and OS != "mac" and enable_pepper_cdms==1', { 106 'cflags': ['-fvisibility=hidden'], 107 'type': 'loadable_module', 108 # Allow the plugin wrapper to find the CDM in the same directory. 109 'ldflags': ['-Wl,-rpath=\$$ORIGIN'], 110 'libraries': [ 111 # Built by clearkeycdm. 112 '<(PRODUCT_DIR)/libclearkeycdm.so', 113 ], 114 }], 115 ['OS == "win" and enable_pepper_cdms==1', { 116 'type': 'shared_library', 117 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 118 'msvs_disabled_warnings': [ 4267, ], 119 }], 120 ['OS == "mac" and enable_pepper_cdms==1', { 121 'type': 'loadable_module', 122 'product_extension': 'plugin', 123 'xcode_settings': { 124 'OTHER_LDFLAGS': [ 125 # Not to strip important symbols by -Wl,-dead_strip. 126 '-Wl,-exported_symbol,_PPP_GetInterface', 127 '-Wl,-exported_symbol,_PPP_InitializeModule', 128 '-Wl,-exported_symbol,_PPP_ShutdownModule' 129 ], 130 'DYLIB_INSTALL_NAME_BASE': '@loader_path', 131 }, 132 }], 133 ], 134 } 135 ], 136} 137