| Index: third_party/ffmpeg/ffmpeg.gyp | 
| diff --git a/third_party/ffmpeg/ffmpeg.gyp b/third_party/ffmpeg/ffmpeg.gyp | 
| index e490ca60698027e10f11fd48b2a77435899f6de6..9a2eb1e8fa7793e174917f23b2fe24dd2ca7d804 100755 | 
| --- a/third_party/ffmpeg/ffmpeg.gyp | 
| +++ b/third_party/ffmpeg/ffmpeg.gyp | 
| @@ -49,15 +49,20 @@ | 
| 'variables': { | 
| 'target_for_binaries': 'ffmpegsumo_nolink', | 
| 'ffmpeg_include_root': 'source/patched-ffmpeg-mt', | 
| +        'conditions': [ | 
| +          ['target_arch=="x64" or target_arch=="ia32"', { | 
| +            'ffmpeg_asm_lib': 1, | 
| +          }], | 
| +          ['target_arch=="arm"', { | 
| +            'ffmpeg_asm_lib': 0, | 
| +          }], | 
| +        ], | 
| }, | 
| 'targets': [ | 
| { | 
| 'target_name': 'ffmpegsumo', | 
| 'product_name': 'libffmpegsumo', | 
| 'type': 'shared_library', | 
| -          'dependencies': [ | 
| -            'make_ffmpeg_asm_lib', | 
| -          ], | 
| 'sources': [ | 
| 'source/patched-ffmpeg-mt/libavcodec/aac.c', | 
| 'source/patched-ffmpeg-mt/libavcodec/aac_ac3_parser.c', | 
| @@ -103,20 +108,6 @@ | 
| 'source/patched-ffmpeg-mt/libavcodec/vorbis_dec.c', | 
| 'source/patched-ffmpeg-mt/libavcodec/vp3.c', | 
| 'source/patched-ffmpeg-mt/libavcodec/vp3dsp.c', | 
| -            'source/patched-ffmpeg-mt/libavcodec/x86/cpuid.c', | 
| -            'source/patched-ffmpeg-mt/libavcodec/x86/dnxhd_mmx.c', | 
| -            'source/patched-ffmpeg-mt/libavcodec/x86/dsputil_mmx.c', | 
| -            'source/patched-ffmpeg-mt/libavcodec/x86/fdct_mmx.c', | 
| -            'source/patched-ffmpeg-mt/libavcodec/x86/fft_3dn.c', | 
| -            'source/patched-ffmpeg-mt/libavcodec/x86/fft_3dn2.c', | 
| -            'source/patched-ffmpeg-mt/libavcodec/x86/fft_sse.c', | 
| -            'source/patched-ffmpeg-mt/libavcodec/x86/idct_mmx_xvid.c', | 
| -            'source/patched-ffmpeg-mt/libavcodec/x86/idct_sse2_xvid.c', | 
| -            'source/patched-ffmpeg-mt/libavcodec/x86/motion_est_mmx.c', | 
| -            'source/patched-ffmpeg-mt/libavcodec/x86/mpegvideo_mmx.c', | 
| -            'source/patched-ffmpeg-mt/libavcodec/x86/simple_idct_mmx.c', | 
| -            'source/patched-ffmpeg-mt/libavcodec/x86/vp3dsp_mmx.c', | 
| -            'source/patched-ffmpeg-mt/libavcodec/x86/vp3dsp_sse2.c', | 
| 'source/patched-ffmpeg-mt/libavcodec/xiph.c', | 
| 'source/patched-ffmpeg-mt/libavformat/allformats.c', | 
| 'source/patched-ffmpeg-mt/libavformat/avio.c', | 
| @@ -188,6 +179,27 @@ | 
| 'source/patched-ffmpeg-mt/libavformat/mp3.c', | 
| ], | 
| }],  # ffmpeg_branding | 
| +            ['target_arch=="ia32" or target_arch=="x64"', { | 
| +              'dependencies': [ | 
| +                'make_ffmpeg_asm_lib', | 
| +              ], | 
| +              'sources': [ | 
| +                'source/patched-ffmpeg-mt/libavcodec/x86/cpuid.c', | 
| +                'source/patched-ffmpeg-mt/libavcodec/x86/dnxhd_mmx.c', | 
| +                'source/patched-ffmpeg-mt/libavcodec/x86/dsputil_mmx.c', | 
| +                'source/patched-ffmpeg-mt/libavcodec/x86/fdct_mmx.c', | 
| +                'source/patched-ffmpeg-mt/libavcodec/x86/fft_3dn.c', | 
| +                'source/patched-ffmpeg-mt/libavcodec/x86/fft_3dn2.c', | 
| +                'source/patched-ffmpeg-mt/libavcodec/x86/fft_sse.c', | 
| +                'source/patched-ffmpeg-mt/libavcodec/x86/idct_mmx_xvid.c', | 
| +                'source/patched-ffmpeg-mt/libavcodec/x86/idct_sse2_xvid.c', | 
| +                'source/patched-ffmpeg-mt/libavcodec/x86/motion_est_mmx.c', | 
| +                'source/patched-ffmpeg-mt/libavcodec/x86/mpegvideo_mmx.c', | 
| +                'source/patched-ffmpeg-mt/libavcodec/x86/simple_idct_mmx.c', | 
| +                'source/patched-ffmpeg-mt/libavcodec/x86/vp3dsp_mmx.c', | 
| +                'source/patched-ffmpeg-mt/libavcodec/x86/vp3dsp_sse2.c', | 
| +              ], | 
| +            }], | 
| ['target_arch=="x64"', { | 
| # x64 requires PIC for shared libraries. This is opposite | 
| # of ia32 where due to a slew of inline assembly using ebx, | 
| @@ -198,7 +210,30 @@ | 
| 'cflags': [ | 
| '-fPIC', | 
| ], | 
| -            }],  # target_arch | 
| +            }],  # target_arch=="x64" | 
| +            ['target_arch=="arm"', { | 
| +              'defines': [ | 
| +                'PIC', | 
| +              ], | 
| +              'cflags': [ | 
| +                '-fPIC', | 
| +                '-march=armv7-a', | 
| +                '-mtune=cortex-a8', | 
| +                '-mfpu=neon', | 
| +                '-mfloat-abi=softfp', | 
| +              ], | 
| +              'sources': [ | 
| +                'source/patched-ffmpeg-mt/libavcodec/arm/dsputil_arm.c', | 
| +                'source/patched-ffmpeg-mt/libavcodec/arm/dsputil_arm_s.S', | 
| +                'source/patched-ffmpeg-mt/libavcodec/arm/dsputil_vfp.S', | 
| +                'source/patched-ffmpeg-mt/libavcodec/arm/float_arm_vfp.c', | 
| +                'source/patched-ffmpeg-mt/libavcodec/arm/jrevdct_arm.S', | 
| +                'source/patched-ffmpeg-mt/libavcodec/arm/simple_idct_arm.S', | 
| +                'source/patched-ffmpeg-mt/libavcodec/arm/simple_idct_armv5te.S', | 
| +                'source/patched-ffmpeg-mt/libavcodec/arm/simple_idct_armv6.S', | 
| +                'source/patched-ffmpeg-mt/libavcodec/arm/simple_idct_neon.S', | 
| +              ], | 
| +            }],  # target_arch=="arm" | 
| ['OS=="linux" or OS=="freebsd"', { | 
| 'defines': [ | 
| '_ISOC99_SOURCE', | 
| @@ -222,13 +257,18 @@ | 
| '-L<(shared_generated_dir)', | 
| ], | 
| 'libraries': [ | 
| -                  # TODO(ajwong): When scons is dead, collapse this with the | 
| -                  # absolute path entry inside the OS="mac" conditional, and | 
| -                  # move it out of the conditionals block altogether. | 
| -                  '-l<(asm_library)', | 
| - | 
| '-lz', | 
| ], | 
| +                'conditions': [ | 
| +                  ['ffmpeg_asm_lib==1', { | 
| +                    'libraries': [ | 
| +                      # TODO(ajwong): When scons is dead, collapse this with the | 
| +                      # absolute path entry inside the OS="mac" conditional, and | 
| +                      # move it out of the conditionals block altogether. | 
| +                      '-l<(asm_library)', | 
| +                    ], | 
| +                  }], | 
| +                ], | 
| }, | 
| }],  # OS=="linux" or OS=="freebsd" | 
| ['OS=="mac"', { | 
| @@ -293,7 +333,7 @@ | 
| 'target_name': 'assemble_ffmpeg_asm', | 
| 'type': 'none', | 
| 'dependencies': [ | 
| -            '../yasm/yasm.gyp:yasm', | 
| +            '../yasm/yasm.gyp:yasm#host', | 
| ], | 
| 'sources': [ | 
| # The FFmpeg yasm files. | 
| @@ -325,6 +365,11 @@ | 
| ], | 
| }, | 
| }], | 
| +                    ['target_arch=="arm"', { | 
| +                      'variables': { | 
| +                        'yasm_flags': [], | 
| +                      }, | 
| +                    }], | 
| ], | 
| }], ['OS=="mac"', { | 
| 'variables': { | 
|  |