| Index: third_party/libvpx_new/libvpx.gyp | 
| diff --git a/third_party/libvpx_new/libvpx.gyp b/third_party/libvpx_new/libvpx.gyp | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..16751610847133f3ae06943160887a51f6106cad | 
| --- /dev/null | 
| +++ b/third_party/libvpx_new/libvpx.gyp | 
| @@ -0,0 +1,291 @@ | 
| +# Copyright (c) 2012 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. | 
| +{ | 
| +  'variables': { | 
| +    'libvpx_build_vp9%': 1, | 
| +    'libvpx_source%': 'source/libvpx', | 
| +    # Disable LTO for neon targets | 
| +    # crbug.com/408997 | 
| +    'use_lto%': 0, | 
| +    'conditions': [ | 
| +      ['os_posix==1', { | 
| +        'asm_obj_extension': 'o', | 
| +      }], | 
| +      ['OS=="win"', { | 
| +        'asm_obj_extension': 'obj', | 
| +      }], | 
| + | 
| +      ['msan==1', { | 
| +        'target_arch_full': 'generic', | 
| +      }, { | 
| +        'conditions': [ | 
| +          ['(target_arch=="arm" or target_arch=="armv7") and arm_neon==1', { | 
| +            'target_arch_full': 'arm-neon', | 
| +          }, { | 
| +            'conditions': [ | 
| +              ['OS=="android" and ((target_arch=="arm" or target_arch=="armv7") and arm_neon==0)', { | 
| +                'target_arch_full': 'arm-neon-cpu-detect', | 
| +              }, { | 
| +               'target_arch_full': '<(target_arch)', | 
| +              }], | 
| +            ], | 
| +          }], | 
| +          ['target_arch=="arm64"', { | 
| +            'target_arch_full': 'arm64', | 
| +          }], | 
| +        ], | 
| +      }], | 
| + | 
| +      ['os_posix == 1 and OS != "mac"', { | 
| +        'OS_CATEGORY%': 'linux', | 
| +      }, { | 
| +        'OS_CATEGORY%': '<(OS)', | 
| +      }], | 
| +    ], | 
| + | 
| +    # Location of the intermediate output. | 
| +    'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx', | 
| +  }, | 
| +  'target_defaults': { | 
| +    'target_conditions': [ | 
| +      ['<(libvpx_build_vp9)==0', { | 
| +        'sources/': [ ['exclude', '(^|/)vp9/'], ], | 
| +      }], | 
| +    ], | 
| +    'variables': { | 
| +      'conditions': [ | 
| +        ['OS=="win" and buildtype=="Official"', { | 
| +          # Do not set to 'size', as it results in an error on win64. | 
| +          'optimize' :'speed', | 
| +        }], | 
| +      ], | 
| +      'clang_warning_flags': [ | 
| +        # libvpx heavily relies on implicit enum casting. | 
| +        '-Wno-conversion', | 
| +        # libvpx does `if ((a == b))` in some places. | 
| +        '-Wno-parentheses-equality', | 
| +        # libvpx has many static functions in header, which trigger this warning | 
| +        '-Wno-unused-function', | 
| +      ], | 
| +      'clang_warning_flags_unset': [ | 
| +        # libvpx does assert(!"foo"); in some places. | 
| +        '-Wstring-conversion', | 
| +      ], | 
| +    }, | 
| +  }, | 
| +  'conditions': [ | 
| +    ['target_arch=="ia32"', { | 
| +      'includes': ['libvpx_srcs_x86_intrinsics.gypi', ], | 
| +    }], | 
| +    ['target_arch=="x64" and msan==0', { | 
| +      'includes': ['libvpx_srcs_x86_64_intrinsics.gypi', ], | 
| +    }], | 
| +    [ '(target_arch=="arm" or target_arch=="armv7") and arm_neon==0 and OS=="android"', { | 
| +      # When building for targets which may not have NEON (but may!), include | 
| +      # support for neon and hide it behind Android cpu-features. | 
| +      'includes': ['libvpx_srcs_arm_neon_cpu_detect_intrinsics.gypi', ], | 
| +    }], | 
| +    [ '(target_arch != "arm" and target_arch != "armv7") and \ | 
| +       (target_arch != "mipsel" and target_arch != "mips64el")', { | 
| +      'targets': [ | 
| +        { | 
| +          # This libvpx target contains both encoder and decoder. | 
| +          # Encoder is configured to be realtime only. | 
| +          'target_name': 'libvpx_new', | 
| +          'type': 'static_library', | 
| +          'variables': { | 
| +            'yasm_output_path': '<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx', | 
| +            'OS_CATEGORY%': '<(OS_CATEGORY)', | 
| +            'yasm_flags': [ | 
| +              '-D', 'CHROMIUM', | 
| +              '-I', 'source/config/<(OS_CATEGORY)/<(target_arch_full)', | 
| +              '-I', 'source/config', | 
| +              '-I', '<(libvpx_source)', | 
| +            ], | 
| +            # yasm only gets the flags we define. It doesn't inherit any of the | 
| +            # really useful defines that come with a gcc invocation. In this | 
| +            # case, we rely on __ANDROID__ to set 'rand' to 'lrand48'. | 
| +            # Previously we used the builtin _rand but that's gone away. | 
| +            'conditions': [ | 
| +              ['OS=="android"', { | 
| +                'yasm_flags': [ | 
| +                  '-D', '__ANDROID__', | 
| +                ], | 
| +              }], | 
| +            ], | 
| +          }, | 
| +          'includes': [ | 
| +            '../yasm/yasm_compile.gypi' | 
| +          ], | 
| +          'include_dirs': [ | 
| +            'source/config/<(OS_CATEGORY)/<(target_arch_full)', | 
| +            'source/config', | 
| +            '<(libvpx_source)', | 
| +            '<(libvpx_source)/vp8/common', | 
| +            '<(libvpx_source)/vp8/decoder', | 
| +            '<(libvpx_source)/vp8/encoder', | 
| +            '<(shared_generated_dir)', # Provides vpx_rtcd.h. | 
| +          ], | 
| +          'direct_dependent_settings': { | 
| +            'include_dirs': [ | 
| +              '<(libvpx_source)', | 
| +            ], | 
| +          }, | 
| +          # VS2010 does not correctly incrementally link obj files generated | 
| +          # from asm files. This flag disables UseLibraryDependencyInputs to | 
| +          # avoid this problem. | 
| +          'msvs_2010_disable_uldi_when_referenced': 1, | 
| +          'conditions': [ | 
| +            ['target_arch=="ia32"', { | 
| +              'includes': [ | 
| +                'libvpx_srcs_x86.gypi', | 
| +              ], | 
| +              'dependencies': [ | 
| +                'libvpx_intrinsics_mmx', | 
| +                'libvpx_intrinsics_sse2', | 
| +                # Currently no sse3 intrinsic functions | 
| +                #'libvpx_intrinsics_sse3', | 
| +                'libvpx_intrinsics_ssse3', | 
| +                'libvpx_intrinsics_sse4_1', | 
| +                # Currently no avx intrinsic functions | 
| +                #'libvpx_intrinsics_avx', | 
| +                'libvpx_intrinsics_avx2', | 
| +              ], | 
| +            }], | 
| +            ['target_arch=="arm64"', { | 
| +              'includes': [ 'libvpx_srcs_arm64.gypi', ], | 
| +            }], | 
| +            ['target_arch=="x64"', { | 
| +              'conditions': [ | 
| +                ['msan==1', { | 
| +                  'includes': [ 'libvpx_srcs_generic.gypi', ], | 
| +                }, { | 
| +                  'includes': [ | 
| +                    'libvpx_srcs_x86_64.gypi', | 
| +                  ], | 
| +                  'dependencies': [ | 
| +                    'libvpx_intrinsics_mmx', | 
| +                    'libvpx_intrinsics_sse2', | 
| +                    # Currently no sse3 intrinsic functions | 
| +                    #'libvpx_intrinsics_sse3', | 
| +                    'libvpx_intrinsics_ssse3', | 
| +                    'libvpx_intrinsics_sse4_1', | 
| +                    # Currently no avx intrinsic functions | 
| +                    #'libvpx_intrinsics_avx', | 
| +                    'libvpx_intrinsics_avx2', | 
| +                  ], | 
| +                }], | 
| +              ], | 
| +            }], | 
| +          ], | 
| +        }, | 
| +      ], | 
| +    }, | 
| +    ], | 
| +    # 'libvpx' target for mipsel and mips64el builds. | 
| +    [ 'target_arch=="mipsel" or target_arch=="mips64el"', { | 
| +      'targets': [ | 
| +        { | 
| +          # This libvpx target contains both encoder and decoder. | 
| +          # Encoder is configured to be realtime only. | 
| +          'target_name': 'libvpx_new', | 
| +          'type': 'static_library', | 
| +          'variables': { | 
| +            'shared_generated_dir': | 
| +              '<(SHARED_INTERMEDIATE_DIR)/third_party/libvpx', | 
| +          }, | 
| +          'includes': [ | 
| +            'libvpx_srcs_mips.gypi', | 
| +          ], | 
| +          'include_dirs': [ | 
| +            'source/config/<(OS_CATEGORY)/<(target_arch_full)', | 
| +            'source/config', | 
| +            '<(libvpx_source)', | 
| +            '<(libvpx_source)/vp8/common', | 
| +            '<(libvpx_source)/vp8/decoder', | 
| +            '<(libvpx_source)/vp8/encoder', | 
| +          ], | 
| +          'direct_dependent_settings': { | 
| +            'include_dirs': [ | 
| +              '<(libvpx_source)', | 
| +            ], | 
| +          }, | 
| +          'sources': [ | 
| +            'source/config/<(OS_CATEGORY)/<(target_arch_full)/vpx_config.c', | 
| +          ], | 
| +        }, | 
| +      ], | 
| +    }, | 
| +    ], | 
| +    # 'libvpx' target for ARM builds. | 
| +    [ '(target_arch=="arm" or target_arch=="armv7") ', { | 
| +      'targets': [ | 
| +        { | 
| +          # This libvpx target contains both encoder and decoder. | 
| +          # Encoder is configured to be realtime only. | 
| +          'target_name': 'libvpx_new', | 
| +          'type': 'static_library', | 
| + | 
| +          'includes': [ 'ads2gas.gypi', ], | 
| + | 
| +          'xcode_settings': { | 
| +            'OTHER_CFLAGS': [ | 
| +              '-I<!(pwd)/source/config/<(OS_CATEGORY)/<(target_arch_full)', | 
| +              '-I<!(pwd)/source/config', | 
| +              '-I<(shared_generated_dir)', | 
| +            ], | 
| +          }, | 
| +          'include_dirs': [ | 
| +            'source/config/<(OS_CATEGORY)/<(target_arch_full)', | 
| +            'source/config', | 
| +            '<(libvpx_source)', | 
| +          ], | 
| +          'direct_dependent_settings': { | 
| +            'include_dirs': [ | 
| +              '<(libvpx_source)', | 
| +            ], | 
| +          }, | 
| +          'conditions': [ | 
| +            # Libvpx optimizations for ARMv6 or ARMv7 without NEON. | 
| +            ['arm_neon==0', { | 
| +              'conditions': [ | 
| +                ['OS=="android"', { | 
| +                  'includes': [ | 
| +                    'libvpx_srcs_arm_neon_cpu_detect.gypi', | 
| +                  ], | 
| +                  'dependencies': [ | 
| +                    'libvpx_intrinsics_neon', | 
| +		  ], | 
| +                }, { | 
| +                  'includes': [ | 
| +                    'libvpx_srcs_arm.gypi', | 
| +                  ], | 
| +                }], | 
| +              ], | 
| +            }], | 
| +            # Libvpx optimizations for ARMv7 with NEON. | 
| +            ['arm_neon==1', { | 
| +              'includes': [ | 
| +                'libvpx_srcs_arm_neon.gypi', | 
| +              ], | 
| +            }], | 
| +            ['OS == "android"', { | 
| +              'dependencies': [ | 
| +                '../../build/android/ndk.gyp:cpu_features', | 
| +              ], | 
| +            }], | 
| +            ['OS == "ios"', { | 
| +              'xcode_settings': { | 
| +                'OTHER_CFLAGS!': [ | 
| +                  # Breaks at least boolhuff_armv5te:token_high_bit_not_set_ev. | 
| +                  '-fstack-protector-all',  # Implies -fstack-protector | 
| +                ], | 
| +              }, | 
| +            }], | 
| +          ], | 
| +        }, | 
| +      ], | 
| +    }], | 
| +  ], | 
| +} | 
|  |