Chromium Code Reviews| Index: third_party/openh264/BUILD.gn |
| diff --git a/third_party/openh264/BUILD.gn b/third_party/openh264/BUILD.gn |
| index b2de306292dd1c4f81c7e4827ecb8e6720a72a7a..9ee970a89108a56f1eb62fec9513d4876f120a1c 100644 |
| --- a/third_party/openh264/BUILD.gn |
| +++ b/third_party/openh264/BUILD.gn |
| @@ -3,6 +3,8 @@ |
| # found in the LICENSE file. |
| import("//third_party/openh264/openh264_args.gni") |
| +import("//third_party/openh264/openh264_sources.gni") |
| +import("//third_party/yasm/yasm_assemble.gni") |
| # Config shared by all openh264 targets. |
| config("config") { |
| @@ -27,64 +29,83 @@ config("config") { |
| } |
| } |
| -source_set("common") { |
| - sources = [ |
| - "src/codec/common/inc/WelsCircleQueue.h", |
| - "src/codec/common/inc/WelsList.h", |
| - "src/codec/common/inc/WelsLock.h", |
| - "src/codec/common/inc/WelsTask.h", |
| - "src/codec/common/inc/WelsTaskThread.h", |
| - "src/codec/common/inc/WelsThread.h", |
| - "src/codec/common/inc/WelsThreadLib.h", |
| - "src/codec/common/inc/WelsThreadPool.h", |
| - "src/codec/common/inc/copy_mb.h", |
| - "src/codec/common/inc/cpu.h", |
| - "src/codec/common/inc/cpu_core.h", |
| - "src/codec/common/inc/crt_util_safe_x.h", |
| - "src/codec/common/inc/deblocking_common.h", |
| - "src/codec/common/inc/expand_pic.h", |
| - "src/codec/common/inc/golomb_common.h", |
| - "src/codec/common/inc/intra_pred_common.h", |
| - "src/codec/common/inc/ls_defines.h", |
| - "src/codec/common/inc/macros.h", |
| - "src/codec/common/inc/mc.h", |
| - "src/codec/common/inc/measure_time.h", |
| - "src/codec/common/inc/memory_align.h", |
| - "src/codec/common/inc/sad_common.h", |
| - "src/codec/common/inc/typedefs.h", |
| - "src/codec/common/inc/utils.h", |
| - "src/codec/common/inc/version.h", |
| - "src/codec/common/inc/welsCodecTrace.h", |
| - "src/codec/common/inc/wels_common_defs.h", |
| - "src/codec/common/inc/wels_const_common.h", |
| - "src/codec/common/src/WelsTaskThread.cpp", |
| - "src/codec/common/src/WelsThread.cpp", |
| - "src/codec/common/src/WelsThreadLib.cpp", |
| - "src/codec/common/src/WelsThreadPool.cpp", |
| - "src/codec/common/src/common_tables.cpp", |
| - "src/codec/common/src/copy_mb.cpp", |
| - "src/codec/common/src/cpu.cpp", |
| - "src/codec/common/src/crt_util_safe_x.cpp", |
| - "src/codec/common/src/deblocking_common.cpp", |
| - "src/codec/common/src/expand_pic.cpp", |
| - "src/codec/common/src/intra_pred_common.cpp", |
| - "src/codec/common/src/mc.cpp", |
| - "src/codec/common/src/memory_align.cpp", |
| - "src/codec/common/src/sad_common.cpp", |
| - "src/codec/common/src/utils.cpp", |
| - "src/codec/common/src/welsCodecTrace.cpp", |
| - ] |
| +yasm_assemble("openh264_common_yasm") { |
| + include_dirs = openh264_common_include_dirs |
| + if (target_cpu == "x86" || target_cpu == "x64") { |
| + sources = openh264_common_sources_asm_x86 |
| + if (target_cpu == "x86") { |
| + defines = [ "X86_32" ] |
| + } else { # x64 |
| + if (target_os == "mac") { |
| + defines = [ |
| + "PREFIX", |
| + "UNIX64", |
| + ] |
| + } else { |
| + defines = [ "WIN64" ] |
| + } |
| + } |
| + } else { |
| + #TODO |
| + } |
| +} |
| - include_dirs = [ |
| - "src/codec/api/svc", |
| - "src/codec/common/inc", |
| - "src/codec/common/src", |
| - ] |
| +yasm_assemble("openh264_processing_yasm") { |
| + include_dirs = openh264_processing_include_dirs |
| + include_dirs += [ "./src/codec/common/x86" ] |
| + if (target_cpu == "x86" || target_cpu == "x64") { |
| + sources = openh264_processing_sources_asm_x86 |
| + if (target_cpu == "x86") { |
| + defines = [ "X86_32" ] |
| + } else { # x64 |
| + if (target_os == "mac") { |
|
kthelgason_chromium
2017/01/10 13:43:56
I believe it's conventional to use the helpers `is
|
| + defines = [ |
| + "PREFIX", |
| + "UNIX64", |
| + ] |
| + } else { |
| + defines = [ "WIN64" ] |
|
kthelgason_chromium
2017/01/10 13:43:56
Couldn't this also be linux or iOS simulator?
|
| + } |
| + } |
| + } else { |
| + #TODO |
| + } |
| +} |
| + |
| +yasm_assemble("openh264_encoder_yasm") { |
| + include_dirs = openh264_encoder_include_dirs |
| + include_dirs += [ "./src/codec/common/x86" ] |
| + if (target_cpu == "x86" || target_cpu == "x64") { |
| + sources = openh264_encoder_sources_asm_x86 |
| + if (target_cpu == "x86") { |
| + defines = [ "X86_32" ] |
| + } else { # x64 |
| + if (target_os == "mac") { |
| + defines = [ |
| + "PREFIX", |
| + "UNIX64", |
| + ] |
| + } else { |
| + defines = [ "WIN64" ] |
| + } |
| + } |
| + } else { |
| + #TODO |
| + } |
| +} |
| + |
| +source_set("common") { |
| + sources = openh264_common_sources |
| + include_dirs = openh264_common_include_dirs |
| configs -= [ "//build/config/compiler:chromium_code" ] |
| configs += [ "//build/config/compiler:no_chromium_code" ] |
| configs += [ ":config" ] |
| deps = [] |
| + if (target_cpu == "x86" || target_cpu == "x64") { |
| + defines = [ "X86_ASM" ] |
| + deps += [ ":openh264_common_yasm" ] |
| + } |
| if (is_android) { |
| deps += [ |
| # Defines "android_get/setCpu..." functions. The original OpenH264 build |
| @@ -97,60 +118,8 @@ source_set("common") { |
| } |
| source_set("processing") { |
| - sources = [ |
| - "src/codec/processing/interface/IWelsVP.h", |
| - "src/codec/processing/src/adaptivequantization/AdaptiveQuantization.cpp", |
| - "src/codec/processing/src/adaptivequantization/AdaptiveQuantization.h", |
| - "src/codec/processing/src/backgrounddetection/BackgroundDetection.cpp", |
| - "src/codec/processing/src/backgrounddetection/BackgroundDetection.h", |
| - "src/codec/processing/src/common/WelsFrameWork.cpp", |
| - "src/codec/processing/src/common/WelsFrameWork.h", |
| - "src/codec/processing/src/common/WelsFrameWorkEx.cpp", |
| - "src/codec/processing/src/common/common.h", |
| - "src/codec/processing/src/common/memory.cpp", |
| - "src/codec/processing/src/common/memory.h", |
| - "src/codec/processing/src/common/resource.h", |
| - "src/codec/processing/src/common/typedef.h", |
| - "src/codec/processing/src/common/util.h", |
| - "src/codec/processing/src/complexityanalysis/ComplexityAnalysis.cpp", |
| - "src/codec/processing/src/complexityanalysis/ComplexityAnalysis.h", |
| - "src/codec/processing/src/denoise/denoise.cpp", |
| - "src/codec/processing/src/denoise/denoise.h", |
| - "src/codec/processing/src/denoise/denoise_filter.cpp", |
| - "src/codec/processing/src/downsample/downsample.cpp", |
| - "src/codec/processing/src/downsample/downsample.h", |
| - "src/codec/processing/src/downsample/downsamplefuncs.cpp", |
| - "src/codec/processing/src/imagerotate/imagerotate.cpp", |
| - "src/codec/processing/src/imagerotate/imagerotate.h", |
| - "src/codec/processing/src/imagerotate/imagerotatefuncs.cpp", |
| - "src/codec/processing/src/scenechangedetection/SceneChangeDetection.cpp", |
| - "src/codec/processing/src/scenechangedetection/SceneChangeDetection.h", |
| - "src/codec/processing/src/scrolldetection/ScrollDetection.cpp", |
| - "src/codec/processing/src/scrolldetection/ScrollDetection.h", |
| - "src/codec/processing/src/scrolldetection/ScrollDetectionFuncs.cpp", |
| - "src/codec/processing/src/scrolldetection/ScrollDetectionFuncs.h", |
| - "src/codec/processing/src/vaacalc/vaacalcfuncs.cpp", |
| - "src/codec/processing/src/vaacalc/vaacalculation.cpp", |
| - "src/codec/processing/src/vaacalc/vaacalculation.h", |
| - ] |
| - |
| - include_dirs = [ |
| - "src/codec/api/svc", |
| - "src/codec/common/inc", |
| - "src/codec/common/src", |
| - "src/codec/processing/interface", |
| - "src/codec/processing/interface/", |
| - "src/codec/processing/src/adaptivequantization", |
| - "src/codec/processing/src/backgrounddetection", |
| - "src/codec/processing/src/common", |
| - "src/codec/processing/src/complexityanalysis", |
| - "src/codec/processing/src/denoise", |
| - "src/codec/processing/src/downsample", |
| - "src/codec/processing/src/imagerotate", |
| - "src/codec/processing/src/scenechangedetection", |
| - "src/codec/processing/src/scrolldetection", |
| - "src/codec/processing/src/vaacalc", |
| - ] |
| + sources = openh264_processing_sources |
| + include_dirs = openh264_processing_include_dirs |
| configs -= [ "//build/config/compiler:chromium_code" ] |
| configs += [ "//build/config/compiler:no_chromium_code" ] |
| @@ -158,106 +127,15 @@ source_set("processing") { |
| deps = [ |
| ":common", |
| ] |
| + if (target_cpu == "x86" || target_cpu == "x64") { |
| + defines = [ "X86_ASM" ] |
| + deps += [ ":openh264_processing_yasm" ] |
| + } |
| } |
| source_set("encoder") { |
| - sources = [ |
| - "src/codec/encoder/core/inc/as264_common.h", |
| - "src/codec/encoder/core/inc/au_set.h", |
| - "src/codec/encoder/core/inc/deblocking.h", |
| - "src/codec/encoder/core/inc/decode_mb_aux.h", |
| - "src/codec/encoder/core/inc/dq_map.h", |
| - "src/codec/encoder/core/inc/encode_mb_aux.h", |
| - "src/codec/encoder/core/inc/encoder.h", |
| - "src/codec/encoder/core/inc/encoder_context.h", |
| - "src/codec/encoder/core/inc/extern.h", |
| - "src/codec/encoder/core/inc/get_intra_predictor.h", |
| - "src/codec/encoder/core/inc/mb_cache.h", |
| - "src/codec/encoder/core/inc/md.h", |
| - "src/codec/encoder/core/inc/mt_defs.h", |
| - "src/codec/encoder/core/inc/mv_pred.h", |
| - "src/codec/encoder/core/inc/nal_encap.h", |
| - "src/codec/encoder/core/inc/param_svc.h", |
| - "src/codec/encoder/core/inc/parameter_sets.h", |
| - "src/codec/encoder/core/inc/paraset_strategy.h", |
| - "src/codec/encoder/core/inc/picture.h", |
| - "src/codec/encoder/core/inc/picture_handle.h", |
| - "src/codec/encoder/core/inc/rc.h", |
| - "src/codec/encoder/core/inc/ref_list_mgr_svc.h", |
| - "src/codec/encoder/core/inc/sample.h", |
| - "src/codec/encoder/core/inc/set_mb_syn_cabac.h", |
| - "src/codec/encoder/core/inc/set_mb_syn_cavlc.h", |
| - "src/codec/encoder/core/inc/slice.h", |
| - "src/codec/encoder/core/inc/slice_multi_threading.h", |
| - "src/codec/encoder/core/inc/stat.h", |
| - "src/codec/encoder/core/inc/svc_base_layer_md.h", |
| - "src/codec/encoder/core/inc/svc_enc_frame.h", |
| - "src/codec/encoder/core/inc/svc_enc_golomb.h", |
| - "src/codec/encoder/core/inc/svc_enc_macroblock.h", |
| - "src/codec/encoder/core/inc/svc_enc_slice_segment.h", |
| - "src/codec/encoder/core/inc/svc_encode_mb.h", |
| - "src/codec/encoder/core/inc/svc_encode_slice.h", |
| - "src/codec/encoder/core/inc/svc_mode_decision.h", |
| - "src/codec/encoder/core/inc/svc_motion_estimate.h", |
| - "src/codec/encoder/core/inc/svc_set_mb_syn.h", |
| - "src/codec/encoder/core/inc/svc_set_mb_syn_cavlc.h", |
| - "src/codec/encoder/core/inc/vlc_encoder.h", |
| - "src/codec/encoder/core/inc/wels_common_basis.h", |
| - "src/codec/encoder/core/inc/wels_const.h", |
| - "src/codec/encoder/core/inc/wels_func_ptr_def.h", |
| - "src/codec/encoder/core/inc/wels_preprocess.h", |
| - "src/codec/encoder/core/inc/wels_task_base.h", |
| - "src/codec/encoder/core/inc/wels_task_encoder.h", |
| - "src/codec/encoder/core/inc/wels_task_management.h", |
| - "src/codec/encoder/core/inc/wels_transpose_matrix.h", |
| - "src/codec/encoder/core/src/au_set.cpp", |
| - "src/codec/encoder/core/src/deblocking.cpp", |
| - "src/codec/encoder/core/src/decode_mb_aux.cpp", |
| - "src/codec/encoder/core/src/encode_mb_aux.cpp", |
| - "src/codec/encoder/core/src/encoder.cpp", |
| - "src/codec/encoder/core/src/encoder_data_tables.cpp", |
| - "src/codec/encoder/core/src/encoder_ext.cpp", |
| - "src/codec/encoder/core/src/get_intra_predictor.cpp", |
| - "src/codec/encoder/core/src/md.cpp", |
| - "src/codec/encoder/core/src/mv_pred.cpp", |
| - "src/codec/encoder/core/src/nal_encap.cpp", |
| - "src/codec/encoder/core/src/paraset_strategy.cpp", |
| - "src/codec/encoder/core/src/picture_handle.cpp", |
| - "src/codec/encoder/core/src/ratectl.cpp", |
| - "src/codec/encoder/core/src/ref_list_mgr_svc.cpp", |
| - "src/codec/encoder/core/src/sample.cpp", |
| - "src/codec/encoder/core/src/set_mb_syn_cabac.cpp", |
| - "src/codec/encoder/core/src/set_mb_syn_cavlc.cpp", |
| - "src/codec/encoder/core/src/slice_multi_threading.cpp", |
| - "src/codec/encoder/core/src/svc_base_layer_md.cpp", |
| - "src/codec/encoder/core/src/svc_enc_slice_segment.cpp", |
| - "src/codec/encoder/core/src/svc_encode_mb.cpp", |
| - "src/codec/encoder/core/src/svc_encode_slice.cpp", |
| - "src/codec/encoder/core/src/svc_mode_decision.cpp", |
| - "src/codec/encoder/core/src/svc_motion_estimate.cpp", |
| - "src/codec/encoder/core/src/svc_set_mb_syn_cabac.cpp", |
| - "src/codec/encoder/core/src/svc_set_mb_syn_cavlc.cpp", |
| - "src/codec/encoder/core/src/wels_preprocess.cpp", |
| - "src/codec/encoder/core/src/wels_task_base.cpp", |
| - "src/codec/encoder/core/src/wels_task_encoder.cpp", |
| - "src/codec/encoder/core/src/wels_task_management.cpp", |
| - "src/codec/encoder/plus/inc/welsEncoderExt.h", |
| - "src/codec/encoder/plus/src/welsEncoderExt.cpp", |
| - |
| - # Note: Purposefully excluded: 'src/codec/encoder/plus/src/DllEntry.cpp', |
| - # This file is not built by the OpenH264 original build files. |
| - ] |
| - |
| - include_dirs = [ |
| - "src/codec/api/svc", |
| - "src/codec/common/inc", |
| - "src/codec/common/src", |
| - "src/codec/encoder/core/inc", |
| - "src/codec/encoder/core/src", |
| - "src/codec/encoder/plus/inc", |
| - "src/codec/encoder/plus/src", |
| - "src/codec/processing/interface", |
| - ] |
| + sources = openh264_encoder_sources |
| + include_dirs = openh264_encoder_include_dirs |
| configs -= [ "//build/config/compiler:chromium_code" ] |
| configs += [ "//build/config/compiler:no_chromium_code" ] |
| @@ -266,4 +144,8 @@ source_set("encoder") { |
| ":common", |
| ":processing", |
| ] |
| + if (target_cpu == "x86" || target_cpu == "x64") { |
| + defines = [ "X86_ASM" ] |
| + deps += [ ":openh264_encoder_yasm" ] |
| + } |
| } |