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"', { 9 # Android doesn't use ffmpeg. 10 'use_ffmpeg%': 0, 11 }, { # 'OS != "android"' 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 'conditions': [ 22 ['enable_pepper_cdms==1', { 23 'targets': [ 24 { 25 'target_name': 'clearkeycdm', 26 'type': 'none', 27 # TODO(tomfinegan): Simplify this by unconditionally including all the 28 # decoders, and changing clearkeycdm to select which decoder to use 29 # based on environment variables. 30 'conditions': [ 31 ['use_fake_video_decoder == 1' , { 32 'defines': ['CLEAR_KEY_CDM_USE_FAKE_VIDEO_DECODER'], 33 'sources': [ 34 'cdm/ppapi/external_clear_key/fake_cdm_video_decoder.cc', 35 'cdm/ppapi/external_clear_key/fake_cdm_video_decoder.h', 36 ], 37 }], 38 ['use_ffmpeg == 1' , { 39 'defines': ['CLEAR_KEY_CDM_USE_FFMPEG_DECODER'], 40 'dependencies': [ 41 '<(DEPTH)/third_party/ffmpeg/ffmpeg.gyp:ffmpeg', 42 ], 43 'sources': [ 44 'cdm/ppapi/external_clear_key/ffmpeg_cdm_audio_decoder.cc', 45 'cdm/ppapi/external_clear_key/ffmpeg_cdm_audio_decoder.h', 46 ], 47 }], 48 ['use_ffmpeg == 1 and use_fake_video_decoder == 0' , { 49 'sources': [ 50 'cdm/ppapi/external_clear_key/ffmpeg_cdm_video_decoder.cc', 51 'cdm/ppapi/external_clear_key/ffmpeg_cdm_video_decoder.h', 52 ], 53 }], 54 ['use_libvpx == 1 and use_fake_video_decoder == 0' , { 55 'defines': ['CLEAR_KEY_CDM_USE_LIBVPX_DECODER'], 56 'dependencies': [ 57 '<(DEPTH)/third_party/libvpx/libvpx.gyp:libvpx', 58 ], 59 'sources': [ 60 'cdm/ppapi/external_clear_key/libvpx_cdm_video_decoder.cc', 61 'cdm/ppapi/external_clear_key/libvpx_cdm_video_decoder.h', 62 ], 63 }], 64 ['os_posix == 1 and OS != "mac" and enable_pepper_cdms==1', { 65 'type': 'loadable_module', # Must be in PRODUCT_DIR for ASAN bot. 66 }], 67 ['(OS == "mac" or OS == "win") and enable_pepper_cdms==1', { 68 'type': 'shared_library', 69 }], 70 ['OS == "mac"', { 71 'xcode_settings': { 72 'DYLIB_INSTALL_NAME_BASE': '@loader_path', 73 }, 74 }] 75 ], 76 'defines': ['CDM_IMPLEMENTATION'], 77 'dependencies': [ 78 'media', 79 '../url/url.gyp:url_lib', 80 # Include the following for media::AudioBus. 81 'shared_memory_support', 82 '<(DEPTH)/base/base.gyp:base', 83 ], 84 'sources': [ 85 'cdm/ppapi/cdm_file_io_test.cc', 86 'cdm/ppapi/cdm_file_io_test.h', 87 'cdm/ppapi/external_clear_key/cdm_video_decoder.cc', 88 'cdm/ppapi/external_clear_key/cdm_video_decoder.h', 89 'cdm/ppapi/external_clear_key/clear_key_cdm.cc', 90 'cdm/ppapi/external_clear_key/clear_key_cdm.h', 91 'cdm/ppapi/external_clear_key/clear_key_cdm_common.h', 92 ], 93 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 94 'msvs_disabled_warnings': [ 4267, ], 95 }, 96 { 97 'target_name': 'clearkeycdmadapter', 98 'type': 'none', 99 # Check whether the plugin's origin URL is valid. 100 'defines': ['CHECK_DOCUMENT_URL'], 101 'dependencies': [ 102 '<(DEPTH)/ppapi/ppapi.gyp:ppapi_cpp', 103 'media_cdm_adapter.gyp:cdmadapter', 104 'clearkeycdm', 105 ], 106 'conditions': [ 107 ['os_posix == 1 and OS != "mac" and enable_pepper_cdms==1', { 108 # Because clearkeycdm has type 'loadable_module' (see comments), 109 # we must explicitly specify this dependency. 110 'libraries': [ 111 # Built by clearkeycdm. 112 '<(PRODUCT_DIR)/libclearkeycdm.so', 113 ], 114 }], 115 ], 116 }, 117 ], 118 }], 119 ], 120 } 121