Home | History | Annotate | Download | only in media
      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