GN: Implement video_engine, video_capture and video_render.
Also add more from common.gypi to webrtc.gni. These GN configs are based on GYP files in r6997. BUG=3441 TEST=Trybots and local compile using: gn gen out/Default --args="build_with_chromium=false" && ninja -C out/Default gn gen out/Default --args="build_with_chromium=false is_debug=true" && ninja -C out/Default Passed compile from a Chromium checkout with src/third_party/webrtc linked to the webrtc/ dir of a checkout with this patch applied. R=brettw@chromium.org, glaznev@webrtc.org, mflodman@webrtc.org Review URL: https://webrtc-codereview.appspot.com/18709004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6999 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
df9fef6638
commit
788f0581c7
@ -12,14 +12,6 @@ declare_args() {
|
|||||||
build_with_chromium = true
|
build_with_chromium = true
|
||||||
build_with_libjingle = true
|
build_with_libjingle = true
|
||||||
|
|
||||||
if (build_with_libjingle) {
|
|
||||||
include_tests = false
|
|
||||||
restrict_webrtc_logging = true
|
|
||||||
} else {
|
|
||||||
include_tests = true
|
|
||||||
restrict_webrtc_logging = false
|
|
||||||
}
|
|
||||||
|
|
||||||
# Adds video support to dependencies shared by voice and video engine.
|
# Adds video support to dependencies shared by voice and video engine.
|
||||||
# This should normally be enabled; the intended use is to disable only
|
# This should normally be enabled; the intended use is to disable only
|
||||||
# when building voice engine exclusively.
|
# when building voice engine exclusively.
|
||||||
@ -59,6 +51,41 @@ declare_args() {
|
|||||||
|
|
||||||
enable_android_opensl = true
|
enable_android_opensl = true
|
||||||
|
|
||||||
|
if (build_with_chromium) {
|
||||||
|
# Exclude pulse audio on Chromium since its prerequisites don't require
|
||||||
|
# pulse audio.
|
||||||
|
include_pulse_audio = false
|
||||||
|
|
||||||
|
# Exclude internal ADM since Chromium uses its own IO handling.
|
||||||
|
include_internal_audio_device = false
|
||||||
|
|
||||||
|
# Exclude internal VCM in Chromium build.
|
||||||
|
include_internal_video_capture = false
|
||||||
|
|
||||||
|
# Exclude internal video render module in Chromium build.
|
||||||
|
include_internal_video_render = false
|
||||||
|
} else {
|
||||||
|
# Settings for the standalone (not-in-Chromium) build.
|
||||||
|
|
||||||
|
# TODO(andrew): For now, disable the Chrome plugins, which causes a
|
||||||
|
# flood of chromium-style warnings. Investigate enabling them:
|
||||||
|
# http://code.google.com/p/webrtc/issues/detail?id=163
|
||||||
|
clang_use_chrome_plugins = false
|
||||||
|
|
||||||
|
include_pulse_audio = true
|
||||||
|
include_internal_audio_device = true
|
||||||
|
include_internal_video_capture = true
|
||||||
|
include_internal_video_render = true
|
||||||
|
}
|
||||||
|
|
||||||
|
if (build_with_libjingle) {
|
||||||
|
include_tests = false
|
||||||
|
restrict_webrtc_logging = true
|
||||||
|
} else {
|
||||||
|
include_tests = true
|
||||||
|
restrict_webrtc_logging = false
|
||||||
|
}
|
||||||
|
|
||||||
if (is_ios) {
|
if (is_ios) {
|
||||||
build_libjpeg = false
|
build_libjpeg = false
|
||||||
enable_protobuf = false
|
enable_protobuf = false
|
||||||
|
@ -8,6 +8,132 @@
|
|||||||
|
|
||||||
import("../../build/webrtc.gni")
|
import("../../build/webrtc.gni")
|
||||||
|
|
||||||
source_set("video_capture") {
|
config("video_capture_config") {
|
||||||
# TODO(glaznev): Implement.
|
if (is_ios) {
|
||||||
|
libs = [
|
||||||
|
"AVFoundation.framework",
|
||||||
|
"CoreMedia.framework",
|
||||||
|
"CoreVideo.framework",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
source_set("video_capture") {
|
||||||
|
sources = [
|
||||||
|
"device_info_impl.cc",
|
||||||
|
"device_info_impl.h",
|
||||||
|
"include/video_capture.h",
|
||||||
|
"include/video_capture_defines.h",
|
||||||
|
"include/video_capture_factory.h",
|
||||||
|
"video_capture_config.h",
|
||||||
|
"video_capture_delay.h",
|
||||||
|
"video_capture_factory.cc",
|
||||||
|
"video_capture_impl.cc",
|
||||||
|
"video_capture_impl.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
libs = []
|
||||||
|
deps = []
|
||||||
|
|
||||||
|
if (include_internal_video_capture) {
|
||||||
|
if (is_linux) {
|
||||||
|
sources += [
|
||||||
|
"linux/device_info_linux.cc",
|
||||||
|
"linux/device_info_linux.h",
|
||||||
|
"linux/video_capture_linux.cc",
|
||||||
|
"linux/video_capture_linux.h",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
if (is_mac) {
|
||||||
|
sources += [
|
||||||
|
"mac/qtkit/video_capture_qtkit.h",
|
||||||
|
"mac/qtkit/video_capture_qtkit.mm",
|
||||||
|
"mac/qtkit/video_capture_qtkit_info.h",
|
||||||
|
"mac/qtkit/video_capture_qtkit_info.mm",
|
||||||
|
"mac/qtkit/video_capture_qtkit_info_objc.h",
|
||||||
|
"mac/qtkit/video_capture_qtkit_info_objc.mm",
|
||||||
|
"mac/qtkit/video_capture_qtkit_objc.h",
|
||||||
|
"mac/qtkit/video_capture_qtkit_objc.mm",
|
||||||
|
"mac/qtkit/video_capture_qtkit_utility.h",
|
||||||
|
"mac/video_capture_mac.mm",
|
||||||
|
]
|
||||||
|
|
||||||
|
libs += [
|
||||||
|
"CoreVideo.framework",
|
||||||
|
"QTKit.framework",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
if (is_win) {
|
||||||
|
sources += [
|
||||||
|
"windows/device_info_ds.cc",
|
||||||
|
"windows/device_info_ds.h",
|
||||||
|
"windows/device_info_mf.cc",
|
||||||
|
"windows/device_info_mf.h",
|
||||||
|
"windows/help_functions_ds.cc",
|
||||||
|
"windows/help_functions_ds.h",
|
||||||
|
"windows/sink_filter_ds.cc",
|
||||||
|
"windows/sink_filter_ds.h",
|
||||||
|
"windows/video_capture_ds.cc",
|
||||||
|
"windows/video_capture_ds.h",
|
||||||
|
"windows/video_capture_factory_windows.cc",
|
||||||
|
"windows/video_capture_mf.cc",
|
||||||
|
"windows/video_capture_mf.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
libs += [ "Strmiids.lib" ]
|
||||||
|
deps += [ "//third_party/winsdk_samples"]
|
||||||
|
}
|
||||||
|
if (is_android) {
|
||||||
|
sources += [
|
||||||
|
"android/device_info_android.cc",
|
||||||
|
"android/device_info_android.h",
|
||||||
|
"android/video_capture_android.cc",
|
||||||
|
"android/video_capture_android.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
deps += [
|
||||||
|
"//third_party/icu:icuuc",
|
||||||
|
"//third_party/jsoncpp",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
if (is_ios) {
|
||||||
|
sources += [
|
||||||
|
"ios/device_info_ios.h",
|
||||||
|
"ios/device_info_ios.mm",
|
||||||
|
"ios/device_info_ios_objc.h",
|
||||||
|
"ios/device_info_ios_objc.mm",
|
||||||
|
"ios/rtc_video_capture_ios_objc.h",
|
||||||
|
"ios/rtc_video_capture_ios_objc.mm",
|
||||||
|
"ios/video_capture_ios.h",
|
||||||
|
"ios/video_capture_ios.mm",
|
||||||
|
]
|
||||||
|
|
||||||
|
cflags += [
|
||||||
|
"-fobjc-arc", # CLANG_ENABLE_OBJC_ARC = YES.
|
||||||
|
# To avoid warnings for deprecated videoMinFrameDuration and
|
||||||
|
# videoMaxFrameDuration properties in iOS 7.0.
|
||||||
|
# See webrtc:3705 for more details.
|
||||||
|
"-Wno-deprecated-declarations",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
sources += [
|
||||||
|
"external/device_info_external.cc",
|
||||||
|
"external/video_capture_external.cc",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
all_dependent_configs = [ ":video_capture_config"]
|
||||||
|
|
||||||
|
if (is_clang) {
|
||||||
|
# Suppress warnings from Chrome's Clang plugins.
|
||||||
|
# See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
|
||||||
|
configs -= [ "//build/config/clang:find_bad_constructs" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
deps += [
|
||||||
|
"../../common_video",
|
||||||
|
"../../system_wrappers",
|
||||||
|
"../utility",
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,136 @@
|
|||||||
|
|
||||||
import("../../build/webrtc.gni")
|
import("../../build/webrtc.gni")
|
||||||
|
|
||||||
source_set("video_render") {
|
config("video_render_config") {
|
||||||
# TODO(wuchengli): Implement.
|
if (is_ios) {
|
||||||
|
libs = [
|
||||||
|
"OpenGLES.framework",
|
||||||
|
"QuartzCore.framework",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
source_set("video_render") {
|
||||||
|
sources = [
|
||||||
|
"external/video_render_external_impl.cc",
|
||||||
|
"external/video_render_external_impl.h",
|
||||||
|
"i_video_render.h",
|
||||||
|
"include/video_render.h",
|
||||||
|
"include/video_render_defines.h",
|
||||||
|
"incoming_video_stream.cc",
|
||||||
|
"incoming_video_stream.h",
|
||||||
|
"video_render_frames.cc",
|
||||||
|
"video_render_frames.h",
|
||||||
|
"video_render_impl.cc",
|
||||||
|
"video_render_impl.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
libs = []
|
||||||
|
deps = []
|
||||||
|
|
||||||
|
if (include_internal_video_render) {
|
||||||
|
defines += [ "WEBRTC_INCLUDE_INTERNAL_VIDEO_RENDER" ]
|
||||||
|
|
||||||
|
if (is_linux) {
|
||||||
|
sources += [
|
||||||
|
"linux/video_render_linux_impl.cc",
|
||||||
|
"linux/video_render_linux_impl.h",
|
||||||
|
"linux/video_x11_channel.cc",
|
||||||
|
"linux/video_x11_channel.h",
|
||||||
|
"linux/video_x11_render.cc",
|
||||||
|
"linux/video_x11_render.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
libs += [ "Xext" ]
|
||||||
|
}
|
||||||
|
if (is_mac) {
|
||||||
|
sources += [
|
||||||
|
"mac/cocoa_full_screen_window.h",
|
||||||
|
"mac/cocoa_full_screen_window.mm",
|
||||||
|
"mac/cocoa_render_view.h",
|
||||||
|
"mac/cocoa_render_view.mm",
|
||||||
|
"mac/video_render_agl.cc",
|
||||||
|
"mac/video_render_agl.h",
|
||||||
|
"mac/video_render_mac_carbon_impl.cc",
|
||||||
|
"mac/video_render_mac_carbon_impl.h",
|
||||||
|
"mac/video_render_mac_cocoa_impl.h",
|
||||||
|
"mac/video_render_mac_cocoa_impl.mm",
|
||||||
|
"mac/video_render_nsopengl.h",
|
||||||
|
"mac/video_render_nsopengl.mm",
|
||||||
|
]
|
||||||
|
|
||||||
|
libs += [
|
||||||
|
"CoreVideo.framework",
|
||||||
|
"QTKit.framework",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
if (is_win) {
|
||||||
|
sources += [
|
||||||
|
"windows/i_video_render_win.h",
|
||||||
|
"windows/video_render_direct3d9.cc",
|
||||||
|
"windows/video_render_direct3d9.h",
|
||||||
|
"windows/video_render_windows_impl.cc",
|
||||||
|
"windows/video_render_windows_impl.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
directxsdk_exists =
|
||||||
|
(exec_script("//build/dir_exists.py",
|
||||||
|
[ rebase_path("//third_party/directxsdk/files",
|
||||||
|
root_build_dir) ],
|
||||||
|
"trim string") == "True")
|
||||||
|
if (directxsdk_exists) {
|
||||||
|
directxsdk_path = "//third_party/directxsdk/files"
|
||||||
|
} else {
|
||||||
|
directxsdk_path = getenv("DXSDK_DIR")
|
||||||
|
}
|
||||||
|
include_dirs = [ directxsdk_path + "/Include" ]
|
||||||
|
|
||||||
|
}
|
||||||
|
if (is_android) {
|
||||||
|
sources += [
|
||||||
|
"android/video_render_android_impl.cc",
|
||||||
|
"android/video_render_android_impl.h",
|
||||||
|
"android/video_render_android_native_opengl2.cc",
|
||||||
|
"android/video_render_android_native_opengl2.h",
|
||||||
|
"android/video_render_android_surface_view.cc",
|
||||||
|
"android/video_render_android_surface_view.h",
|
||||||
|
"android/video_render_opengles20.cc",
|
||||||
|
"android/video_render_opengles20.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
libs += [ "GLESv2" ]
|
||||||
|
}
|
||||||
|
if (is_ios) {
|
||||||
|
sources += [
|
||||||
|
"ios/open_gles20.h",
|
||||||
|
"ios/open_gles20.mm",
|
||||||
|
"ios/video_render_ios_channel.h",
|
||||||
|
"ios/video_render_ios_channel.mm",
|
||||||
|
"ios/video_render_ios_gles20.h",
|
||||||
|
"ios/video_render_ios_gles20.mm",
|
||||||
|
"ios/video_render_ios_impl.h",
|
||||||
|
"ios/video_render_ios_impl.mm",
|
||||||
|
"ios/video_render_ios_view.h",
|
||||||
|
"ios/video_render_ios_view.mm",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
all_dependent_configs = [ ":video_render_config"]
|
||||||
|
|
||||||
|
if (is_ios) {
|
||||||
|
cflags += [ "-fobjc-arc" ] # CLANG_ENABLE_OBJC_ARC = YES.
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_clang) {
|
||||||
|
# Suppress warnings from Chrome's Clang plugins.
|
||||||
|
# See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
|
||||||
|
configs -= [ "//build/config/clang:find_bad_constructs" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
deps += [
|
||||||
|
"../../common_video",
|
||||||
|
"../../system_wrappers",
|
||||||
|
"../utility",
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,28 @@
|
|||||||
import("../build/webrtc.gni")
|
import("../build/webrtc.gni")
|
||||||
|
|
||||||
source_set("video") {
|
source_set("video") {
|
||||||
# TODO(pbos): Implement when video_engine_core is done.
|
sources = [
|
||||||
|
"call.cc",
|
||||||
|
"encoded_frame_callback_adapter.cc",
|
||||||
|
"encoded_frame_callback_adapter.h",
|
||||||
|
"receive_statistics_proxy.cc",
|
||||||
|
"receive_statistics_proxy.h",
|
||||||
|
"send_statistics_proxy.cc",
|
||||||
|
"send_statistics_proxy.h",
|
||||||
|
"transport_adapter.cc",
|
||||||
|
"transport_adapter.h",
|
||||||
|
"video_receive_stream.cc",
|
||||||
|
"video_receive_stream.h",
|
||||||
|
"video_send_stream.cc",
|
||||||
|
"video_send_stream.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
if (is_clang) {
|
||||||
|
# Suppress warnings from Chrome's Clang plugins.
|
||||||
|
# See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
|
||||||
|
configs -= [ "//build/config/clang:find_bad_constructs" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
deps = [ "../video_engine:video_engine_core" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,5 +13,102 @@ source_set("video_engine") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
source_set("video_engine_core") {
|
source_set("video_engine_core") {
|
||||||
# TODO(pbos): Implement.
|
sources = [
|
||||||
|
"include/vie_base.h",
|
||||||
|
"include/vie_capture.h",
|
||||||
|
"include/vie_codec.h",
|
||||||
|
"include/vie_errors.h",
|
||||||
|
"include/vie_external_codec.h",
|
||||||
|
"include/vie_image_process.h",
|
||||||
|
"include/vie_network.h",
|
||||||
|
"include/vie_render.h",
|
||||||
|
"include/vie_rtp_rtcp.h",
|
||||||
|
"call_stats.cc",
|
||||||
|
"call_stats.h",
|
||||||
|
"encoder_state_feedback.cc",
|
||||||
|
"encoder_state_feedback.h",
|
||||||
|
"overuse_frame_detector.cc",
|
||||||
|
"overuse_frame_detector.h",
|
||||||
|
"stream_synchronization.cc",
|
||||||
|
"stream_synchronization.h",
|
||||||
|
"vie_base_impl.cc",
|
||||||
|
"vie_base_impl.h",
|
||||||
|
"vie_capture_impl.cc",
|
||||||
|
"vie_capture_impl.h",
|
||||||
|
"vie_capturer.cc",
|
||||||
|
"vie_capturer.h",
|
||||||
|
"vie_channel.cc",
|
||||||
|
"vie_channel_group.cc",
|
||||||
|
"vie_channel_group.h",
|
||||||
|
"vie_channel.h",
|
||||||
|
"vie_channel_manager.cc",
|
||||||
|
"vie_channel_manager.h",
|
||||||
|
"vie_codec_impl.cc",
|
||||||
|
"vie_codec_impl.h",
|
||||||
|
"vie_defines.h",
|
||||||
|
"vie_encoder.cc",
|
||||||
|
"vie_encoder.h",
|
||||||
|
"vie_external_codec_impl.cc",
|
||||||
|
"vie_external_codec_impl.h",
|
||||||
|
"vie_file_image.cc",
|
||||||
|
"vie_file_image.h",
|
||||||
|
"vie_frame_provider_base.cc",
|
||||||
|
"vie_frame_provider_base.h",
|
||||||
|
"vie_image_process_impl.cc",
|
||||||
|
"vie_image_process_impl.h",
|
||||||
|
"vie_impl.cc",
|
||||||
|
"vie_impl.h",
|
||||||
|
"vie_input_manager.cc",
|
||||||
|
"vie_input_manager.h",
|
||||||
|
"vie_manager_base.cc",
|
||||||
|
"vie_manager_base.h",
|
||||||
|
"vie_network_impl.cc",
|
||||||
|
"vie_network_impl.h",
|
||||||
|
"vie_receiver.cc",
|
||||||
|
"vie_receiver.h",
|
||||||
|
"vie_ref_count.cc",
|
||||||
|
"vie_ref_count.h",
|
||||||
|
"vie_remb.cc",
|
||||||
|
"vie_remb.h",
|
||||||
|
"vie_renderer.cc",
|
||||||
|
"vie_renderer.h",
|
||||||
|
"vie_render_impl.cc",
|
||||||
|
"vie_render_impl.h",
|
||||||
|
"vie_render_manager.cc",
|
||||||
|
"vie_render_manager.h",
|
||||||
|
"vie_rtp_rtcp_impl.cc",
|
||||||
|
"vie_rtp_rtcp_impl.h",
|
||||||
|
"vie_sender.cc",
|
||||||
|
"vie_sender.h",
|
||||||
|
"vie_shared_data.cc",
|
||||||
|
"vie_shared_data.h",
|
||||||
|
"vie_sync_module.cc",
|
||||||
|
"vie_sync_module.h",
|
||||||
|
]
|
||||||
|
|
||||||
|
if (is_clang) {
|
||||||
|
# Suppress warnings from Chrome's Clang plugins.
|
||||||
|
# See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
|
||||||
|
configs -= [ "//build/config/clang:find_bad_constructs" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_win) {
|
||||||
|
cflags = [
|
||||||
|
# TODO(jschuh): Bug 1348: fix size_t to int truncations.
|
||||||
|
"/wd4267", # size_t to int truncation.
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"../common_video",
|
||||||
|
"../modules/bitrate_controller",
|
||||||
|
"../modules/rtp_rtcp",
|
||||||
|
"../modules/utility",
|
||||||
|
"../modules/video_capture",
|
||||||
|
"../modules/video_coding",
|
||||||
|
"../modules/video_processing",
|
||||||
|
"../modules/video_render",
|
||||||
|
"../voice_engine",
|
||||||
|
"../system_wrappers",
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user