blob: b2de306292dd1c4f81c7e4827ecb8e6720a72a7a [file] [log] [blame]
# Copyright 2015 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.
import("//third_party/openh264/openh264_args.gni")
# Config shared by all openh264 targets.
config("config") {
cflags = []
defines = []
# GCC and clang flags. MSVS (is_win && !is_clang) does not use cflags.
if (!is_win || is_clang) {
cflags += [
"-Wno-format",
"-Wno-header-hygiene",
"-Wno-unused-function",
"-Wno-unused-value",
]
}
# Platform-specific defines.
if (is_android) {
# Android NDK is necessary for its cpufeatures and this define is what
# OpenH264 code uses to check if it should be used.
defines += [ "ANDROID_NDK" ]
}
}
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",
]
include_dirs = [
"src/codec/api/svc",
"src/codec/common/inc",
"src/codec/common/src",
]
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [ "//build/config/compiler:no_chromium_code" ]
configs += [ ":config" ]
deps = []
if (is_android) {
deps += [
# Defines "android_get/setCpu..." functions. The original OpenH264 build
# files replaces these using macros for "wels_..." versions of the same
# functions. We do not have access to these and use the <cpu-features.h>
# ones instead.
"//third_party/android_tools:cpu_features",
]
}
}
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",
]
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [ "//build/config/compiler:no_chromium_code" ]
configs += [ ":config" ]
deps = [
":common",
]
}
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",
]
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [ "//build/config/compiler:no_chromium_code" ]
configs += [ ":config" ]
deps = [
":common",
":processing",
]
}