Added WebRTC library

This commit is contained in:
Daniel Wolf 2016-06-21 22:13:05 +02:00
parent 97f172282d
commit aec3dbae01
2583 changed files with 458678 additions and 6 deletions

16
lib/.gitignore vendored
View File

@ -1,7 +1,11 @@
# Excluding 80MB worth of voice information
/flite-1.4/lang/cmu_time_awb
/flite-1.4/lang/cmu_us_awb
/flite-1.4/lang/cmu_us_kal
/flite-1.4/lang/cmu_us_kal16
/flite-1.4/lang/cmu_us_rms
/flite-1.4/lang/cmu_us_slt
/flite-*/lang/cmu_time_awb
/flite-*/lang/cmu_us_awb
/flite-*/lang/cmu_us_kal
/flite-*/lang/cmu_us_kal16
/flite-*/lang/cmu_us_rms
/flite-*/lang/cmu_us_slt
# Excluding 45MB of superfluous data
/webrtc-*/webrtc/modules
/webrtc-*/data

View File

@ -0,0 +1,3 @@
# Defines the Chromium style for automatic reformatting.
# http://clang.llvm.org/docs/ClangFormatStyleOptions.html
BasedOnStyle: Chromium

158
lib/webrtc-8d2248ff/.gitignore vendored Normal file
View File

@ -0,0 +1,158 @@
*.DS_Store
*.Makefile
*.host.mk
*.ncb
*.ninja
*.props
*.pyc
*.rules
*.scons
*.sdf
*.sln
*.suo
*.target.mk
*.targets
*.user
*.vcproj
*.vcxproj
*.vcxproj.filters
*.vpj
*.vpw
*.vpwhistu
*.vtg
*.xcodeproj
*.xcworkspace
*_proto.xml
*_proto_cpp.xml
*~
.*.sw?
.classpath
.cproject
.gdb_history
.gdbinit
.landmines
.metadata
.project
.pydevproject
.settings
.sw?
/Makefile
/base
/build
/buildtools
/chromium/.gclient.tmp
/chromium/.gclient.tmp_entries
/chromium/.last_sync_chromium
/chromium/_bad_scm
/chromium/src
/gyp-mac-tool
/links
/links.db
/mojo
/out
/resources/**/*.aecdump
/resources/**/*.bin
/resources/**/*.byte
/resources/**/*.chn
/resources/**/*.dat
/resources/**/*.frames
/resources/**/*.gai
/resources/**/*.jpg
/resources/**/*.pcap
/resources/**/*.pcm
/resources/**/*.rtp
/resources/**/*.rtpdump
/resources/**/*.rx
/resources/**/*.wav
/resources/**/*.yuv
/resources/**/*.BIT*
/resources/**/*.INP
/resources/**/*.OUT*
/testing
/third_party/WebKit/Tools/Scripts
/third_party/android_platform
/third_party/android_tools
/third_party/appurify-python
/third_party/asan
/third_party/ashmem
/third_party/binutils
/third_party/boringssl
/third_party/BUILD.gn
/third_party/catapult
/third_party/clang_format
/third_party/class-dump
/third_party/colorama
/third_party/cygwin
/third_party/directxsdk
/third_party/drmemory
/third_party/expat
/third_party/ffmpeg
/third_party/gaeunit
/third_party/gflags/src
/third_party/google-visualization-python
/third_party/icu
/third_party/instrumented_libraries
/third_party/ijar
/third_party/jsoncpp
/third_party/jsr-305
/third_party/junit
/third_party/junit-jar
/third_party/libc++
/third_party/libc++-static
/third_party/libc++abi
/third_party/libFuzzer
/third_party/libjingle
/third_party/libjpeg
/third_party/libjpeg_turbo
/third_party/libsrtp
/third_party/libvpx
/third_party/libxml
/third_party/libyuv
/third_party/llvm
/third_party/llvm-build
/third_party/lss
/third_party/mockito
/third_party/modp_b64
/third_party/nss
/third_party/oauth2
/third_party/ocmock
/third_party/openh264
/third_party/openmax_dl
/third_party/opus
/third_party/proguard
/third_party/protobuf
/third_party/requests
/third_party/robolectric
/third_party/sqlite
/third_party/syzygy
/third_party/tcmalloc
/third_party/usrsctp
/third_party/valgrind
/third_party/WebKit
/third_party/winsdk_samples/src
/third_party/yasm
/third_party/zlib
/tools/android
/tools/clang
/tools/generate_library_loader
/tools/generate_stubs
/tools/gn
/tools/grit
/tools/gyp
/tools/isolate_driver.py
/tools/luci-go
/tools/mb
/tools/memory
/tools/protoc_wrapper
/tools/python
/tools/sanitizer_options
/tools/swarming_client
/tools/telemetry
/tools/tsan_suppressions
/tools/valgrind
/tools/vim
/tools/win
/tools/xdisplaycheck
/tools/whitespace.txt
/x86-generic_out/
/xcodebuild

52
lib/webrtc-8d2248ff/.gn Normal file
View File

@ -0,0 +1,52 @@
# Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
# The location of the build configuration file.
buildconfig = "//build/config/BUILDCONFIG.gn"
# The secondary source root is a parallel directory tree where
# GN build files are placed when they can not be placed directly
# in the source tree, e.g. for third party source trees.
secondary_source = "//build/secondary/"
# These are the targets to check headers for by default. The files in targets
# matching these patterns (see "gn help label_pattern" for format) will have
# their includes checked for proper dependencies when you run either
# "gn check" or "gn gen --check".
# TODO(kjellander): Keep adding paths to this list as work in webrtc:5589 is done.
check_targets = []
# These are the list of GN files that run exec_script. This whitelist exists
# to force additional review for new uses of exec_script, which is strongly
# discouraged except for gypi_to_gn calls.
exec_script_whitelist = [
"//build/config/BUILD.gn",
"//build/config/android/BUILD.gn",
"//build/config/android/config.gni",
"//build/config/android/internal_rules.gni",
"//build/config/android/rules.gni",
"//build/config/compiler/BUILD.gn",
"//build/config/gcc/gcc_version.gni",
"//build/config/ios/ios_sdk.gni",
"//build/config/linux/BUILD.gn",
"//build/config/linux/pkg_config.gni",
"//build/config/mac/mac_sdk.gni",
"//build/config/posix/BUILD.gn",
"//build/config/sysroot.gni",
"//build/config/win/visual_studio_version.gni",
"//build/gn_helpers.py",
"//build/gypi_to_gn.py",
"//build/toolchain/concurrent_links.gni",
"//build/toolchain/gcc_toolchain.gni",
"//build/toolchain/mac/BUILD.gn",
"//build/toolchain/win/BUILD.gn",
"//third_party/boringssl/BUILD.gn",
"//third_party/openh264/BUILD.gn",
"//third_party/opus/BUILD.gn",
"//webrtc/modules/video_render/BUILD.gn",
]

View File

@ -0,0 +1,51 @@
# Names should be added to this file like so:
# Name or Organization <email address>
Alexander Brauckmann <a.brauckmann@gmail.com>
Andrew MacDonald <andrew@webrtc.org>
Anil Kumar <an1kumar@gmail.com>
Ben Strong <bstrong@gmail.com>
Bob Withers <bwit@pobox.com>
Bridger Maxwell <bridgeyman@gmail.com>
Christophe Dumez <ch.dumez@samsung.com>
Cody Barnes <conceptgenesis@gmail.com>
Colin Plumb
Eric Rescorla, RTFM Inc. <ekr@rtfm.com>
Giji Gangadharan <giji.g@samsung.com>
Graham Yoakum <gyoakum@skobalt.com>
Jake Hilton <jakehilton@gmail.com>
James H. Brown <jbrown@burgoyne.com>
Jiawei Ou <jiawei.ou@gmail.com>
Jie Mao <maojie0924@gmail.com>
Luke Weber <luke.weber@gmail.com>
Manish Jethani <manish.jethani@gmail.com>
Martin Storsjo <martin@martin.st>
Matthias Liebig <matthias.gcode@gmail.com>
Pali Rohar
Paul Kapustin <pkapustin@gmail.com>
Rafael Lopez Diez <rafalopezdiez@gmail.com>
Ralph Giles <giles@ghostscript.com>
Riku Voipio <riku.voipio@linaro.org>
Robert Nagy <robert.nagy@gmail.com>
Ryan Yoakum <ryoakum@skobalt.com>
Sarah Thompson <sarah@telergy.com>
Saul Kravitz <Saul.Kravitz@celera.com>
Silviu Caragea <silviu.cpp@gmail.com>
Steve Reid <sreid@sea-to-sky.net>
Vicken Simonian <vsimon@gmail.com>
Victor Costan <costan@gmail.com>
&yet LLC
Agora IO
ARM Holdings
BroadSoft Inc.
Google Inc.
Intel Corporation
MIPS Technologies
Mozilla Foundation
Opera Software ASA
Sinch AB
struktur AG
Telenor Digital AS
Temasys Communications
Vonage Holdings Corp.

View File

@ -0,0 +1,14 @@
# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
# This file is copied and modified from Chromium (src/BUILD.gn).
group("root") {
deps = [
"//webrtc",
]
}

View File

@ -0,0 +1 @@
Refer to talk/COPYING.

94
lib/webrtc-8d2248ff/DEPS Normal file
View File

@ -0,0 +1,94 @@
# This file contains dependencies for WebRTC that are not shared with Chromium.
# If you wish to add a dependency that is present in Chromium's src/DEPS or a
# directory from the Chromium checkout, you should add it to setup_links.py
# instead.
vars = {
'extra_gyp_flag': '-Dextra_gyp_flag=0',
'chromium_git': 'https://chromium.googlesource.com',
'chromium_revision': '719d4716ed7e3188768d3b0ac6b988ae0a6320cb',
}
# NOTE: Use http rather than https; the latter can cause problems for users
# behind proxies.
deps = {
'src/third_party/gflags/src':
Var('chromium_git') + '/external/github.com/gflags/gflags@03bebcb065c83beff83d50ae025a55a4bf94dfca',
}
deps_os = {
'win': {
'src/third_party/winsdk_samples/src':
Var('chromium_git') + '/external/webrtc/deps/third_party/winsdk_samples_v71@e71b549167a665d7424d6f1dadfbff4b4aad1589',
},
}
hooks = [
{
# Check for legacy named top-level dir (named 'trunk').
'name': 'check_root_dir_name',
'pattern': '.',
'action': ['python','-c',
('import os,sys;'
'script = os.path.join("trunk","check_root_dir.py");'
'_ = os.system("%s %s" % (sys.executable,script)) '
'if os.path.exists(script) else 0')],
},
{
# Clone chromium and its deps.
'name': 'sync chromium',
'pattern': '.',
'action': ['python', '-u', 'src/sync_chromium.py',
'--target-revision', Var('chromium_revision')],
},
{
# Create links to shared dependencies in Chromium.
'name': 'setup_links',
'pattern': '.',
'action': ['python', 'src/setup_links.py'],
},
{
# This clobbers when necessary (based on get_landmines.py). It should be
# an early hook but it will need to be run after syncing Chromium and
# setting up the links, so the script actually exists.
'name': 'landmines',
'pattern': '.',
'action': [
'python',
'src/build/landmines.py',
'--landmine-scripts',
'src/webrtc/build/get_landmines.py',
'--src-dir',
'src',
],
},
{
# Pull sanitizer-instrumented third-party libraries if requested via
# GYP_DEFINES. This could be done as part of sync_chromium.py above
# but then we would need to run all the Chromium hooks each time,
# which will slow things down a lot.
'name': 'instrumented_libraries',
'pattern': '\\.sha1',
'action': ['python', 'src/third_party/instrumented_libraries/scripts/download_binaries.py'],
},
{
# Download test resources, i.e. video and audio files from Google Storage.
'pattern': '.',
'action': ['download_from_google_storage',
'--directory',
'--recursive',
'--num_threads=10',
'--no_auth',
'--quiet',
'--bucket', 'chromium-webrtc-resources',
'src/resources'],
},
{
# A change to a .gyp, .gypi, or to GYP itself should run the generator.
'name': 'gyp',
'pattern': '.',
'action': ['python', 'src/webrtc/build/gyp_webrtc.py',
Var('extra_gyp_flag')],
},
]

View File

@ -0,0 +1 @@
Refer to webrtc/LICENSE.

View File

@ -0,0 +1 @@
Refer to webrtc/LICENSE_THIRD_PARTY and talk/LICENSE_THIRD_PARTY.

View File

@ -0,0 +1,16 @@
henrika@webrtc.org
kwiberg@webrtc.org
mflodman@webrtc.org
niklas.enbom@webrtc.org
tina.legrand@webrtc.org
tommi@webrtc.org
per-file .gitignore=*
per-file .gn=kjellander@webrtc.org
per-file *.gyp=*
per-file AUTHORS=*
per-file BUILD.gn=kjellander@webrtc.org
per-file DEPS=*
per-file PRESUBMIT.py=kjellander@webrtc.org
per-file setup_links.py=*
per-file sync_chromium.py=kjellander@webrtc.org
per-file WATCHLISTS=*

View File

@ -0,0 +1 @@
Refer to src/PATENTS.

View File

@ -0,0 +1,545 @@
# Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
import json
import os
import platform
import re
import subprocess
import sys
# Directories that will be scanned by cpplint by the presubmit script.
CPPLINT_DIRS = [
'webrtc/audio',
'webrtc/call',
'webrtc/common_video',
'webrtc/examples',
'webrtc/modules/bitrate_controller',
'webrtc/modules/congestion_controller',
'webrtc/modules/pacing',
'webrtc/modules/remote_bitrate_estimator',
'webrtc/modules/rtp_rtcp',
'webrtc/modules/video_coding',
'webrtc/modules/video_processing',
'webrtc/tools',
'webrtc/video',
]
# These filters will always be removed, even if the caller specifies a filter
# set, as they are problematic or broken in some way.
#
# Justifications for each filter:
# - build/c++11 : Rvalue ref checks are unreliable (false positives),
# include file and feature blacklists are
# google3-specific.
# - whitespace/operators: Same as above (doesn't seem sufficient to eliminate
# all move-related errors).
BLACKLIST_LINT_FILTERS = [
'-build/c++11',
'-whitespace/operators',
]
# List of directories of "supported" native APIs. That means changes to headers
# will be done in a compatible way following this scheme:
# 1. Non-breaking changes are made.
# 2. The old APIs as marked as deprecated (with comments).
# 3. Deprecation is announced to discuss-webrtc@googlegroups.com and
# webrtc-users@google.com (internal list).
# 4. (later) The deprecated APIs are removed.
NATIVE_API_DIRS = (
'webrtc',
'webrtc/api',
'webrtc/media',
'webrtc/modules/audio_device/include',
'webrtc/pc',
)
# These directories should not be used but are maintained only to avoid breaking
# some legacy downstream code.
LEGACY_API_DIRS = (
'talk/app/webrtc',
'webrtc/base',
'webrtc/common_audio/include',
'webrtc/modules/audio_coding/include',
'webrtc/modules/audio_conference_mixer/include',
'webrtc/modules/audio_processing/include',
'webrtc/modules/bitrate_controller/include',
'webrtc/modules/congestion_controller/include',
'webrtc/modules/include',
'webrtc/modules/remote_bitrate_estimator/include',
'webrtc/modules/rtp_rtcp/include',
'webrtc/modules/rtp_rtcp/source',
'webrtc/modules/utility/include',
'webrtc/modules/video_coding/codecs/h264/include',
'webrtc/modules/video_coding/codecs/i420/include',
'webrtc/modules/video_coding/codecs/vp8/include',
'webrtc/modules/video_coding/codecs/vp9/include',
'webrtc/modules/video_coding/include',
'webrtc/system_wrappers/include',
'webrtc/voice_engine/include',
)
API_DIRS = NATIVE_API_DIRS[:] + LEGACY_API_DIRS[:]
def _VerifyNativeApiHeadersListIsValid(input_api, output_api):
"""Ensures the list of native API header directories is up to date."""
non_existing_paths = []
native_api_full_paths = [
input_api.os_path.join(input_api.PresubmitLocalPath(),
*path.split('/')) for path in API_DIRS]
for path in native_api_full_paths:
if not os.path.isdir(path):
non_existing_paths.append(path)
if non_existing_paths:
return [output_api.PresubmitError(
'Directories to native API headers have changed which has made the '
'list in PRESUBMIT.py outdated.\nPlease update it to the current '
'location of our native APIs.',
non_existing_paths)]
return []
api_change_msg = """
You seem to be changing native API header files. Please make sure that you:
1. Make compatible changes that don't break existing clients.
2. Mark the old stuff as deprecated.
3. Create a timeline and plan for when the deprecated stuff will be
removed. (The amount of time we give users to change their code
should be informed by how much work it is for them. If they just
need to replace one name with another or something equally
simple, 1-2 weeks might be good; if they need to do serious work,
up to 3 months may be called for.)
4. Update/inform existing downstream code owners to stop using the
deprecated stuff. (Send announcements to
discuss-webrtc@googlegroups.com and webrtc-users@google.com.)
5. Remove the deprecated stuff, once the agreed-upon amount of time
has passed.
Related files:
"""
def _CheckNativeApiHeaderChanges(input_api, output_api):
"""Checks to remind proper changing of native APIs."""
files = []
for f in input_api.AffectedSourceFiles(input_api.FilterSourceFile):
if f.LocalPath().endswith('.h'):
for path in API_DIRS:
if os.path.dirname(f.LocalPath()) == path:
files.append(f)
if files:
return [output_api.PresubmitNotifyResult(api_change_msg, files)]
return []
def _CheckNoIOStreamInHeaders(input_api, output_api):
"""Checks to make sure no .h files include <iostream>."""
files = []
pattern = input_api.re.compile(r'^#include\s*<iostream>',
input_api.re.MULTILINE)
for f in input_api.AffectedSourceFiles(input_api.FilterSourceFile):
if not f.LocalPath().endswith('.h'):
continue
contents = input_api.ReadFile(f)
if pattern.search(contents):
files.append(f)
if len(files):
return [output_api.PresubmitError(
'Do not #include <iostream> in header files, since it inserts static ' +
'initialization into every file including the header. Instead, ' +
'#include <ostream>. See http://crbug.com/94794',
files)]
return []
def _CheckNoFRIEND_TEST(input_api, output_api):
"""Make sure that gtest's FRIEND_TEST() macro is not used, the
FRIEND_TEST_ALL_PREFIXES() macro from testsupport/gtest_prod_util.h should be
used instead since that allows for FLAKY_, FAILS_ and DISABLED_ prefixes."""
problems = []
file_filter = lambda f: f.LocalPath().endswith(('.cc', '.h'))
for f in input_api.AffectedFiles(file_filter=file_filter):
for line_num, line in f.ChangedContents():
if 'FRIEND_TEST(' in line:
problems.append(' %s:%d' % (f.LocalPath(), line_num))
if not problems:
return []
return [output_api.PresubmitPromptWarning('WebRTC\'s code should not use '
'gtest\'s FRIEND_TEST() macro. Include testsupport/gtest_prod_util.h and '
'use FRIEND_TEST_ALL_PREFIXES() instead.\n' + '\n'.join(problems))]
def _IsLintWhitelisted(whitelist_dirs, file_path):
""" Checks if a file is whitelisted for lint check."""
for path in whitelist_dirs:
if os.path.dirname(file_path).startswith(path):
return True
return False
def _CheckApprovedFilesLintClean(input_api, output_api,
source_file_filter=None):
"""Checks that all new or whitelisted .cc and .h files pass cpplint.py.
This check is based on _CheckChangeLintsClean in
depot_tools/presubmit_canned_checks.py but has less filters and only checks
added files."""
result = []
# Initialize cpplint.
import cpplint
# Access to a protected member _XX of a client class
# pylint: disable=W0212
cpplint._cpplint_state.ResetErrorCounts()
lint_filters = cpplint._Filters()
lint_filters.extend(BLACKLIST_LINT_FILTERS)
cpplint._SetFilters(','.join(lint_filters))
# Create a platform independent whitelist for the CPPLINT_DIRS.
whitelist_dirs = [input_api.os_path.join(*path.split('/'))
for path in CPPLINT_DIRS]
# Use the strictest verbosity level for cpplint.py (level 1) which is the
# default when running cpplint.py from command line.
# To make it possible to work with not-yet-converted code, we're only applying
# it to new (or moved/renamed) files and files listed in LINT_FOLDERS.
verbosity_level = 1
files = []
for f in input_api.AffectedSourceFiles(source_file_filter):
# Note that moved/renamed files also count as added.
if f.Action() == 'A' or _IsLintWhitelisted(whitelist_dirs, f.LocalPath()):
files.append(f.AbsoluteLocalPath())
for file_name in files:
cpplint.ProcessFile(file_name, verbosity_level)
if cpplint._cpplint_state.error_count > 0:
if input_api.is_committing:
# TODO(kjellander): Change back to PresubmitError below when we're
# confident with the lint settings.
res_type = output_api.PresubmitPromptWarning
else:
res_type = output_api.PresubmitPromptWarning
result = [res_type('Changelist failed cpplint.py check.')]
return result
def _CheckNoRtcBaseDeps(input_api, gyp_files, output_api):
pattern = input_api.re.compile(r"base.gyp:rtc_base\s*'")
violating_files = []
for f in gyp_files:
gyp_exceptions = (
'base_tests.gyp',
'desktop_capture.gypi',
'p2p.gyp',
'sdk.gyp',
'webrtc_test_common.gyp',
'webrtc_tests.gypi',
)
if f.LocalPath().endswith(gyp_exceptions):
continue
contents = input_api.ReadFile(f)
if pattern.search(contents):
violating_files.append(f)
if violating_files:
return [output_api.PresubmitError(
'Depending on rtc_base is not allowed. Change your dependency to '
'rtc_base_approved and possibly sanitize and move the desired source '
'file(s) to rtc_base_approved.\nChanged GYP files:',
items=violating_files)]
return []
def _CheckNoSourcesAboveGyp(input_api, gyp_files, output_api):
# Disallow referencing source files with paths above the GYP file location.
source_pattern = input_api.re.compile(r'\'sources\'.*?\[(.*?)\]',
re.MULTILINE | re.DOTALL)
file_pattern = input_api.re.compile(r"'((\.\./.*?)|(<\(webrtc_root\).*?))'")
violating_gyp_files = set()
violating_source_entries = []
for gyp_file in gyp_files:
if 'supplement.gypi' in gyp_file.LocalPath():
# Exclude supplement.gypi from this check, as the LSan and TSan
# suppression files are located in a different location.
continue
contents = input_api.ReadFile(gyp_file)
for source_block_match in source_pattern.finditer(contents):
# Find all source list entries starting with ../ in the source block
# (exclude overrides entries).
for file_list_match in file_pattern.finditer(source_block_match.group(1)):
source_file = file_list_match.group(1)
if 'overrides/' not in source_file:
violating_source_entries.append(source_file)
violating_gyp_files.add(gyp_file)
if violating_gyp_files:
return [output_api.PresubmitError(
'Referencing source files above the directory of the GYP file is not '
'allowed. Please introduce new GYP targets and/or GYP files in the '
'proper location instead.\n'
'Invalid source entries:\n'
'%s\n'
'Violating GYP files:' % '\n'.join(violating_source_entries),
items=violating_gyp_files)]
return []
def _CheckGypChanges(input_api, output_api):
source_file_filter = lambda x: input_api.FilterSourceFile(
x, white_list=(r'.+\.(gyp|gypi)$',))
gyp_files = []
for f in input_api.AffectedSourceFiles(source_file_filter):
if f.LocalPath().startswith('webrtc'):
gyp_files.append(f)
result = []
if gyp_files:
result.append(output_api.PresubmitNotifyResult(
'As you\'re changing GYP files: please make sure corresponding '
'BUILD.gn files are also updated.\nChanged GYP files:',
items=gyp_files))
result.extend(_CheckNoRtcBaseDeps(input_api, gyp_files, output_api))
result.extend(_CheckNoSourcesAboveGyp(input_api, gyp_files, output_api))
return result
def _CheckUnwantedDependencies(input_api, output_api):
"""Runs checkdeps on #include statements added in this
change. Breaking - rules is an error, breaking ! rules is a
warning.
"""
# Copied from Chromium's src/PRESUBMIT.py.
# We need to wait until we have an input_api object and use this
# roundabout construct to import checkdeps because this file is
# eval-ed and thus doesn't have __file__.
original_sys_path = sys.path
try:
checkdeps_path = input_api.os_path.join(input_api.PresubmitLocalPath(),
'buildtools', 'checkdeps')
if not os.path.exists(checkdeps_path):
return [output_api.PresubmitError(
'Cannot find checkdeps at %s\nHave you run "gclient sync" to '
'download Chromium and setup the symlinks?' % checkdeps_path)]
sys.path.append(checkdeps_path)
import checkdeps
from cpp_checker import CppChecker
from rules import Rule
finally:
# Restore sys.path to what it was before.
sys.path = original_sys_path
added_includes = []
for f in input_api.AffectedFiles():
if not CppChecker.IsCppFile(f.LocalPath()):
continue
changed_lines = [line for _, line in f.ChangedContents()]
added_includes.append([f.LocalPath(), changed_lines])
deps_checker = checkdeps.DepsChecker(input_api.PresubmitLocalPath())
error_descriptions = []
warning_descriptions = []
for path, rule_type, rule_description in deps_checker.CheckAddedCppIncludes(
added_includes):
description_with_path = '%s\n %s' % (path, rule_description)
if rule_type == Rule.DISALLOW:
error_descriptions.append(description_with_path)
else:
warning_descriptions.append(description_with_path)
results = []
if error_descriptions:
results.append(output_api.PresubmitError(
'You added one or more #includes that violate checkdeps rules.',
error_descriptions))
if warning_descriptions:
results.append(output_api.PresubmitPromptOrNotify(
'You added one or more #includes of files that are temporarily\n'
'allowed but being removed. Can you avoid introducing the\n'
'#include? See relevant DEPS file(s) for details and contacts.',
warning_descriptions))
return results
def _CheckJSONParseErrors(input_api, output_api):
"""Check that JSON files do not contain syntax errors."""
def FilterFile(affected_file):
return input_api.os_path.splitext(affected_file.LocalPath())[1] == '.json'
def GetJSONParseError(input_api, filename):
try:
contents = input_api.ReadFile(filename)
input_api.json.loads(contents)
except ValueError as e:
return e
return None
results = []
for affected_file in input_api.AffectedFiles(
file_filter=FilterFile, include_deletes=False):
parse_error = GetJSONParseError(input_api,
affected_file.AbsoluteLocalPath())
if parse_error:
results.append(output_api.PresubmitError('%s could not be parsed: %s' %
(affected_file.LocalPath(), parse_error)))
return results
def _RunPythonTests(input_api, output_api):
def join(*args):
return input_api.os_path.join(input_api.PresubmitLocalPath(), *args)
test_directories = [
join('tools', 'autoroller', 'unittests'),
join('webrtc', 'tools', 'py_event_log_analyzer'),
]
tests = []
for directory in test_directories:
tests.extend(
input_api.canned_checks.GetUnitTestsInDirectory(
input_api,
output_api,
directory,
whitelist=[r'.+_test\.py$']))
return input_api.RunTests(tests, parallel=True)
def _CommonChecks(input_api, output_api):
"""Checks common to both upload and commit."""
results = []
# Filter out files that are in objc or ios dirs from being cpplint-ed since
# they do not follow C++ lint rules.
black_list = input_api.DEFAULT_BLACK_LIST + (
r".*\bobjc[\\\/].*",
)
source_file_filter = lambda x: input_api.FilterSourceFile(x, None, black_list)
results.extend(_CheckApprovedFilesLintClean(
input_api, output_api, source_file_filter))
results.extend(input_api.canned_checks.RunPylint(input_api, output_api,
black_list=(r'^.*gviz_api\.py$',
r'^.*gaeunit\.py$',
# Embedded shell-script fakes out pylint.
r'^build[\\\/].*\.py$',
r'^buildtools[\\\/].*\.py$',
r'^chromium[\\\/].*\.py$',
r'^mojo.*[\\\/].*\.py$',
r'^out.*[\\\/].*\.py$',
r'^testing[\\\/].*\.py$',
r'^third_party[\\\/].*\.py$',
r'^tools[\\\/]clang[\\\/].*\.py$',
r'^tools[\\\/]generate_library_loader[\\\/].*\.py$',
r'^tools[\\\/]generate_stubs[\\\/].*\.py$',
r'^tools[\\\/]gn[\\\/].*\.py$',
r'^tools[\\\/]gyp[\\\/].*\.py$',
r'^tools[\\\/]isolate_driver.py$',
r'^tools[\\\/]mb[\\\/].*\.py$',
r'^tools[\\\/]protoc_wrapper[\\\/].*\.py$',
r'^tools[\\\/]python[\\\/].*\.py$',
r'^tools[\\\/]python_charts[\\\/]data[\\\/].*\.py$',
r'^tools[\\\/]refactoring[\\\/].*\.py$',
r'^tools[\\\/]swarming_client[\\\/].*\.py$',
r'^tools[\\\/]vim[\\\/].*\.py$',
# TODO(phoglund): should arguably be checked.
r'^tools[\\\/]valgrind-webrtc[\\\/].*\.py$',
r'^tools[\\\/]valgrind[\\\/].*\.py$',
r'^tools[\\\/]win[\\\/].*\.py$',
r'^xcodebuild.*[\\\/].*\.py$',),
disabled_warnings=['F0401', # Failed to import x
'E0611', # No package y in x
'W0232', # Class has no __init__ method
],
pylintrc='pylintrc'))
# WebRTC can't use the presubmit_canned_checks.PanProjectChecks function since
# we need to have different license checks in talk/ and webrtc/ directories.
# Instead, hand-picked checks are included below.
# .m and .mm files are ObjC files. For simplicity we will consider .h files in
# ObjC subdirectories ObjC headers.
objc_filter_list = (r'.+\.m$', r'.+\.mm$', r'.+objc\/.+\.h$')
# Skip long-lines check for DEPS, GN and GYP files.
build_file_filter_list = (r'.+\.gyp$', r'.+\.gypi$', r'.+\.gn$', r'.+\.gni$',
'DEPS')
eighty_char_sources = lambda x: input_api.FilterSourceFile(x,
black_list=build_file_filter_list + objc_filter_list)
hundred_char_sources = lambda x: input_api.FilterSourceFile(x,
white_list=objc_filter_list)
results.extend(input_api.canned_checks.CheckLongLines(
input_api, output_api, maxlen=80, source_file_filter=eighty_char_sources))
results.extend(input_api.canned_checks.CheckLongLines(
input_api, output_api, maxlen=100,
source_file_filter=hundred_char_sources))
results.extend(input_api.canned_checks.CheckChangeHasNoTabs(
input_api, output_api))
results.extend(input_api.canned_checks.CheckChangeHasNoStrayWhitespace(
input_api, output_api))
results.extend(input_api.canned_checks.CheckChangeTodoHasOwner(
input_api, output_api))
results.extend(_CheckNativeApiHeaderChanges(input_api, output_api))
results.extend(_CheckNoIOStreamInHeaders(input_api, output_api))
results.extend(_CheckNoFRIEND_TEST(input_api, output_api))
results.extend(_CheckGypChanges(input_api, output_api))
results.extend(_CheckUnwantedDependencies(input_api, output_api))
results.extend(_CheckJSONParseErrors(input_api, output_api))
results.extend(_RunPythonTests(input_api, output_api))
return results
def CheckChangeOnUpload(input_api, output_api):
results = []
results.extend(_CommonChecks(input_api, output_api))
results.extend(
input_api.canned_checks.CheckGNFormatted(input_api, output_api))
return results
def CheckChangeOnCommit(input_api, output_api):
results = []
results.extend(_CommonChecks(input_api, output_api))
results.extend(_VerifyNativeApiHeadersListIsValid(input_api, output_api))
results.extend(input_api.canned_checks.CheckOwners(input_api, output_api))
results.extend(input_api.canned_checks.CheckChangeWasUploaded(
input_api, output_api))
results.extend(input_api.canned_checks.CheckChangeHasDescription(
input_api, output_api))
results.extend(input_api.canned_checks.CheckChangeHasBugField(
input_api, output_api))
results.extend(input_api.canned_checks.CheckChangeHasTestField(
input_api, output_api))
results.extend(input_api.canned_checks.CheckTreeIsOpen(
input_api, output_api,
json_url='http://webrtc-status.appspot.com/current?format=json'))
return results
# pylint: disable=W0613
def GetPreferredTryMasters(project, change):
cq_config_path = os.path.join(
change.RepositoryRoot(), 'infra', 'config', 'cq.cfg')
# commit_queue.py below is a script in depot_tools directory, which has a
# 'builders' command to retrieve a list of CQ builders from the CQ config.
is_win = platform.system() == 'Windows'
masters = json.loads(subprocess.check_output(
['commit_queue', 'builders', cq_config_path], shell=is_win))
try_config = {}
for master in masters:
try_config.setdefault(master, {})
for builder in masters[master]:
if 'presubmit' in builder:
# Do not trigger presubmit builders, since they're likely to fail
# (e.g. OWNERS checks before finished code review), and we're running
# local presubmit anyway.
pass
else:
try_config[master][builder] = ['defaulttests']
return try_config

View File

@ -0,0 +1,23 @@
**WebRTC is a free, open software project** that provides browsers and mobile
applications with Real-Time Communications (RTC) capabilities via simple APIs.
The WebRTC components have been optimized to best serve this purpose.
**Our mission:** To enable rich, high-quality RTC applications to be
developed for the browser, mobile platforms, and IoT devices, and allow them
all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera,
amongst others. This page is maintained by the Google Chrome team.
### Development
See http://www.webrtc.org/native-code/development for instructions on how to get
started developing with the native code.
### More info
* Official web site: http://www.webrtc.org
* Master source code repo: https://chromium.googlesource.com/external/webrtc
* Samples and reference apps: https://github.com/webrtc
* Mailing list: http://groups.google.com/group/discuss-webrtc
* Continuous build: http://build.chromium.org/p/client.webrtc

View File

@ -0,0 +1,188 @@
# Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
# Inspired by chromium.org:
# http://dev.chromium.org/developers/contributing-code/watchlists
{
'WATCHLIST_DEFINITIONS': {
'this_file': {
'filepath': '^WATCHLISTS$',
},
'all_webrtc': {
# NOTE: if you like this you might like webrtc-reviews@webrtc.org!
'filepath': '^webrtc/.*',
},
'root_files': {
# webrtc/build/ and non-recursive contents of ./ and webrtc/
'filepath': '^[^/]*$|^webrtc/[^/]*$|^webrtc/build/.*',
},
'documented_interfaces': {
'filepath': '^webrtc/[^/]*\.h$|'\
'webrtc/voice_engine/include/.*',
},
'build_files': {
'filepath': '\.gyp$|\.gypi$|Android\.mk$',
},
'java_files': {
'filepath': '\.java$|\.xml$',
},
'audio': {
'filepath': 'webrtc/audio/.*',
},
'call': {
'filepath': 'webrtc/call/.*',
},
'media': {
'filepath': 'webrtc/media/.*',
},
'video': {
'filepath': 'webrtc/video/.*',
},
'voice_engine': {
'filepath': 'webrtc/voice_engine/.*',
},
'common_audio': {
'filepath': 'webrtc/common_audio/.*',
},
'common_video': {
'filepath': 'webrtc/common_video/.*',
},
'video_capture': {
'filepath': 'webrtc/modules/video_capture/.*',
},
'video_render': {
'filepath': 'webrtc/modules/video_render/.*',
},
'audio_device': {
'filepath': 'webrtc/modules/audio_device/.*',
},
'audio_coding': {
'filepath': 'webrtc/modules/audio_coding/.*',
},
'neteq': {
'filepath': 'webrtc/modules/audio_coding/neteq/.*',
},
'audio_processing': {
'filepath': 'webrtc/modules/audio_processing/.*',
},
'video_coding': {
'filepath': 'webrtc/modules/video_coding/.*',
},
'video_processing': {
'filepath': 'webrtc/modules/video_processing/.*',
},
'bitrate_controller': {
'filepath': 'webrtc/modules/bitrate_controller/.*'
},
'remote_bitrate_estimator': {
'filepath': 'webrtc/modules/remote_bitrate_estimator/.*'
},
'pacing': {
'filepath': 'webrtc/modules/pacing/.*'
},
'rtp_rtcp': {
'filepath': 'webrtc/modules/rtp_rtcp/.*'
},
'system_wrappers': {
'filepath': 'webrtc/system_wrappers/.*',
},
},
'WATCHLISTS': {
'this_file': [''],
'all_webrtc': ['tterriberry@mozilla.com'],
'root_files': ['niklas.enbom@webrtc.org',
'peah@webrtc.org',
'qiang.lu@intel.com',
'yujie.mao@webrtc.org'],
'documented_interfaces': ['interface-changes@webrtc.org'],
'common_audio': ['aluebs@webrtc.org',
'andrew@webrtc.org',
'audio-team@agora.io',
'bjornv@webrtc.org',
'minyue@webrtc.org',
'peah@webrtc.org'],
'audio': ['solenberg@webrtc.org',
'tina.legrand@webrtc.org'],
'call': ['mflodman@webrtc.org',
'pbos@webrtc.org',
'solenberg@webrtc.org',
'stefan@webrtc.org'],
'media': ['solenberg@webrtc.org'],
'video': ['mflodman@webrtc.org',
'pbos@webrtc.org',
'perkj@webrtc.org',
'stefan@webrtc.org',
'video-team@agora.io',
'yujie.mao@webrtc.org',
'zhengzhonghou@agora.io'],
'voice_engine': ['andrew@webrtc.org',
'audio-team@agora.io',
'henrika@webrtc.org',
'henrik.lundin@webrtc.org',
'minyue@webrtc.org',
'peah@webrtc.org',
'solenberg@webrtc.org'],
'video_capture': ['mflodman@webrtc.org',
'perkj@webrtc.org',
'sdk-team@agora.io',
'zhengzhonghou@agora.io'],
'video_render': ['mflodman@webrtc.org',
'perkj@webrtc.org',
'sdk-team@agora.io',
'zhengzhonghou@agora.io'],
'audio_device': ['audio-team@agora.io',
'henrika@webrtc.org',
'peah@webrtc.org',
'sdk-team@agora.io'],
'audio_coding': ['audio-team@agora.io',
'henrik.lundin@webrtc.org',
'kwiberg@webrtc.org',
'minyue@webrtc.org',
'peah@webrtc.org',
'tina.legrand@webrtc.org'],
'neteq': ['audio-team@agora.io',
'henrik.lundin@webrtc.org',
'minyue@webrtc.org'],
'audio_processing': ['aluebs@webrtc.org',
'andrew@webrtc.org',
'audio-team@agora.io',
'bjornv@webrtc.org',
'henrik.lundin@webrtc.org',
'kwiberg@webrtc.org',
'minyue@webrtc.org',
'peah@webrtc.org',
'solenberg@webrtc.org'],
'video_coding': ['mflodman@webrtc.org',
'stefan@webrtc.org',
'video-team@agora.io',
'zhengzhonghou@agora.io'],
'video_processing': ['stefan@webrtc.org',
'video-team@agora.io',
'zhengzhonghou@agora.io'],
'bitrate_controller': ['mflodman@webrtc.org',
'stefan@webrtc.org',
'zhuangzesen@agora.io'],
'remote_bitrate_estimator': ['mflodman@webrtc.org',
'stefan@webrtc.org',
'zhuangzesen@agora.io'],
'pacing': ['mflodman@webrtc.org',
'stefan@webrtc.org',
'zhuangzesen@agora.io'],
'rtp_rtcp': ['mflodman@webrtc.org',
'stefan@webrtc.org',
'danilchap@webrtc.org',
'zhuangzesen@agora.io'],
'system_wrappers': ['fengyue@agora.io',
'henrika@webrtc.org',
'mflodman@webrtc.org',
'peah@webrtc.org',
'zhengzhonghou@agora.io'],
},
}

View File

@ -0,0 +1,81 @@
# Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
{
'variables': {
'include_examples%': 1,
'include_tests%': 1,
},
'includes': [
'webrtc/build/common.gypi',
],
'targets': [
{
'target_name': 'All',
'type': 'none',
'dependencies': [
'webrtc/api/api.gyp:*',
'webrtc/base/base.gyp:*',
'webrtc/common.gyp:*',
'webrtc/common_audio/common_audio.gyp:*',
'webrtc/common_video/common_video.gyp:*',
'webrtc/media/media.gyp:*',
'webrtc/modules/modules.gyp:*',
'webrtc/p2p/p2p.gyp:*',
'webrtc/pc/pc.gyp:*',
'webrtc/system_wrappers/system_wrappers.gyp:*',
'webrtc/tools/tools.gyp:*',
'webrtc/voice_engine/voice_engine.gyp:*',
'webrtc/webrtc.gyp:*',
'<(webrtc_vp8_dir)/vp8.gyp:*',
'<(webrtc_vp9_dir)/vp9.gyp:*',
],
'conditions': [
['OS=="android" and build_with_chromium==0', {
'dependencies': [
'webrtc/api/api_java.gyp:*',
],
}],
['include_tests==1', {
'includes': [
'webrtc/webrtc_tests.gypi',
],
'dependencies': [
'webrtc/api/api_tests.gyp:*',
'webrtc/common_video/common_video_unittests.gyp:*',
'webrtc/system_wrappers/system_wrappers_tests.gyp:*',
'webrtc/test/metrics.gyp:*',
'webrtc/test/test.gyp:*',
],
}],
['include_examples==1', {
'dependencies': [
'webrtc/webrtc_examples.gyp:*',
],
}],
['(OS=="ios" or (OS=="mac" and mac_deployment_target=="10.7"))', {
'dependencies': [
'webrtc/sdk/sdk.gyp:*',
],
}],
['OS=="ios" or (OS=="mac" and target_arch!="ia32")', {
'dependencies': [
'talk/app/webrtc/legacy_objc_api.gyp:*',
],
'conditions': [
['include_tests==1', {
'dependencies': [
'talk/app/webrtc/legacy_objc_api_tests.gyp:*',
],
}],
],
}],
],
},
],
}

View File

@ -0,0 +1 @@
kjellander@webrtc.org

View File

@ -0,0 +1,7 @@
# Build overrides in GN
This directory is used to allow us to customize variables that differ between
WebRTC being built as standalone and as a part of Chromium.
There's another build_overrides in Chromium that needs to contain the same
set of files with the same set of variables (but with different values).

View File

@ -0,0 +1,21 @@
# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
# See https://bugs.chromium.org/p/webrtc/issues/detail?id=5453.
# Some WebRTC targets require the 10.7 deployment version of the Mac SDK and a
# 10.11 min SDK but those targets are only used in non-Chromium builds. We can
# remove this when Chromium drops 10.6 support and also requires 10.7.
mac_sdk_min_build_override = "10.11"
mac_deployment_target_build_override = "10.7"
# Some non-Chromium builds don't support building java targets.
enable_java_templates = true
# Variable that can be used to support multiple build scenarios, like having
# Chromium specific targets in a client project's GN file etc.
build_with_chromium = false

View File

@ -0,0 +1,19 @@
# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
# Include support for registering main function in multi-process tests.
gtest_include_multiprocess = true
# Include support for platform-specific operations across unit tests.
gtest_include_platform_test = true
# Exclude support for testing Objective C code on OS X and iOS.
gtest_include_objc_support = true
# Exclude support for flushing coverage files on iOS.
gtest_include_ios_coverage = true

View File

@ -0,0 +1,27 @@
# Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
# This file contains overrides to GN variables that applies for the WebRTC
# standalone build (i.e. not in Chromium).
#
# Every variable here needs to be present in the corresponding file in
# build_overrides/ of Chromium.
# The build_with_chromium variable is now located in build.gni (now also used
# by BoringSSL).
import("//build_overrides/build.gni")
# Excluded in Chromium since its prerequisites don't require Pulse Audio.
rtc_include_pulse_audio = true
# Chromium uses its own IO handling, so the internal ADM is only built for
# standalone WebRTC.
rtc_include_internal_audio_device = true
# There's no point processing WebRTC standalone tests in a Chromium build.
rtc_include_tests = true

View File

@ -0,0 +1,57 @@
#!/usr/bin/env python
# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
"""Checks for legacy root directory and instructs the user how to upgrade."""
import os
import sys
SOLUTION_ROOT_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)),
os.pardir)
MESSAGE = """\
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
A C T I O N R E Q I R E D
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
It looks like you have a legacy checkout where the solution's top-level
directory is named 'trunk'. From now on, it must be named 'src'.
What you need to do is to:
1. Edit your .gclient file and change the solution name from 'trunk' to 'src'
2. Rename your 'trunk' directory to 'src'
3. Re-run gclient sync (or gclient runhooks)"""
def main():
gclient_filename = os.path.join(SOLUTION_ROOT_DIR, '.gclient')
config_dict = {}
try:
with open(gclient_filename, 'rb') as gclient_file:
exec(gclient_file, config_dict)
for solution in config_dict.get('solutions', []):
if solution['name'] == 'trunk':
print MESSAGE
if solution.get('custom_vars', {}).get('root_dir'):
print ('4. Optional: Remove your "root_dir" entry from the '
'custom_vars dictionary of the solution.')
# Remove the gclient cache file to avoid an error on the next sync.
entries_file = os.path.join(SOLUTION_ROOT_DIR, '.gclient_entries')
if os.path.exists(entries_file):
os.unlink(entries_file)
return 1
return 0
except Exception as e:
print >> sys.stderr, "Error while parsing .gclient: ", e
return 1
if __name__ == '__main__':
sys.exit(main())

View File

@ -0,0 +1,23 @@
solutions = [{
'name': 'src',
'url': 'https://chromium.googlesource.com/chromium/src.git',
'deps_file': '.DEPS.git',
'managed': False,
'custom_deps': {
# Skip syncing some large dependencies WebRTC will never need.
'src/chrome/tools/test/reference_build/chrome_linux': None,
'src/chrome/tools/test/reference_build/chrome_mac': None,
'src/chrome/tools/test/reference_build/chrome_win': None,
'src/native_client': None,
'src/third_party/cld_2/src': None,
'src/third_party/hunspell_dictionaries': None,
'src/third_party/liblouis/src': None,
'src/third_party/pdfium': None,
'src/third_party/skia': None,
'src/third_party/trace-viewer': None,
'src/third_party/webrtc': None,
},
'safesync_url': ''
}]
cache_dir = None

View File

@ -0,0 +1 @@
kjellander@webrtc.org

View File

@ -0,0 +1,5 @@
This .gclient file is used to do download a copy of Chromium.
WebRTC uses the Chromium build toolchain and a number of shared
dependencies by creating symlinks to folders in this checkout,
using the ../setup_links.py script.

View File

@ -0,0 +1,10 @@
# This file is used by gcl to get repository specific information.
CODE_REVIEW_SERVER: codereview.webrtc.org
CC_LIST: webrtc-reviews@webrtc.org
VIEW_VC: https://chromium.googlesource.com/external/webrtc/+/
TRY_ON_UPLOAD: False
TRYSERVER_SVN_URL: svn://svn.chromium.org/chrome-try/try-webrtc
TRYSERVER_PROJECT: webrtc
TRYSERVER_ROOT: src
PROJECT: webrtc
PENDING_REF_PREFIX: refs/pending/

View File

@ -0,0 +1 @@
kjellander@webrtc.org

View File

@ -0,0 +1,3 @@
set noparent
sergiyb@chromium.org
kjellander@webrtc.org

View File

@ -0,0 +1 @@
This directory contains configuration files for infra services.

View File

@ -0,0 +1,78 @@
# Commit Queue configuration file. The documentation of the format can be found
# at http://luci-config.appspot.com/schemas/projects/refs:cq.cfg.
version: 1
cq_name: "webrtc"
cq_status_url: "https://chromium-cq-status.appspot.com"
commit_burst_delay: 60
max_commit_burst: 1
hide_ref_in_committed_msg: true
target_ref: "refs/pending/heads/master"
rietveld {
url: "https://codereview.webrtc.org"
}
verifiers {
reviewer_lgtm {
committer_list: "project-webrtc-committers"
}
tree_status {
tree_status_url: "https://webrtc-status.appspot.com"
}
try_job {
buckets {
name: "tryserver.webrtc"
builders { name: "android_dbg" }
builders { name: "android_rel" }
builders { name: "android_arm64_rel" }
builders { name: "android_clang_dbg" }
builders { name: "android_compile_mips_dbg" }
builders { name: "android_compile_x86_dbg" }
builders { name: "android_compile_x64_dbg" }
builders { name: "android_gn_dbg" }
builders { name: "android_gn_rel" }
builders { name: "ios_arm64_dbg" }
builders { name: "ios_arm64_rel" }
builders { name: "ios_dbg" }
builders { name: "ios_rel" }
builders { name: "ios32_sim_dbg" }
builders { name: "ios64_sim_dbg" }
builders { name: "ios64_gn_dbg" }
builders { name: "ios64_gn_rel" }
builders { name: "ios_api_framework" }
builders { name: "linux_asan" }
builders { name: "linux_baremetal" }
builders { name: "linux_compile_dbg" }
builders { name: "linux_gn_dbg" }
builders { name: "linux_gn_rel" }
builders { name: "linux_libfuzzer_rel" }
builders { name: "linux_msan" }
builders { name: "linux_rel" }
builders { name: "linux_tsan2" }
builders { name: "linux_ubsan" }
builders { name: "linux_ubsan_vptr" }
builders { name: "mac_asan" }
builders { name: "mac_baremetal" }
builders { name: "mac_compile_dbg" }
builders { name: "mac_rel" }
builders { name: "mac_gn_dbg" }
builders { name: "mac_gn_rel" }
builders { name: "presubmit" }
builders { name: "win_baremetal" }
builders { name: "win_clang_dbg" }
builders { name: "win_clang_rel" }
builders { name: "win_compile_dbg" }
builders { name: "win_drmemory_light" }
builders { name: "win_rel" }
builders { name: "win_x64_clang_dbg" }
builders { name: "win_x64_clang_rel" }
builders { name: "win_x64_gn_dbg" }
builders { name: "win_x64_gn_rel" }
builders { name: "win_x64_rel" }
}
}
}

View File

@ -0,0 +1,10 @@
/*
* Copyright 2011 The WebRTC Project Authors. All rights reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/

View File

@ -0,0 +1,17 @@
[MESSAGES CONTROL]
# Disable the message, report, category or checker with the given id(s).
# TODO(kjellander): Reduce this list to as small as possible.
disable=I0010,I0011,bad-continuation,broad-except,duplicate-code,eval-used,exec-used,fixme,invalid-name,missing-docstring,no-init,no-member,too-few-public-methods,too-many-ancestors,too-many-arguments,too-many-branches,too-many-function-args,too-many-instance-attributes,too-many-lines,too-many-locals,too-many-public-methods,too-many-return-statements,too-many-statements
[REPORTS]
# Don't write out full reports, just messages.
reports=no
[FORMAT]
# We use two spaces for indents, instead of the usual four spaces or tab.
indent-string=' '

View File

@ -0,0 +1,2 @@
*

View File

@ -0,0 +1 @@
2a4617e3497d8faa2fdccfa8964da26499eb13d6

View File

@ -0,0 +1 @@
8ea680a570df53fba206b984f38d4762481322eb

View File

@ -0,0 +1 @@
44bb846907928e958531e805758767bf9353e03c

View File

@ -0,0 +1 @@
23780ea4c8893813787f7ab1dc7ab68075ad89c0

View File

@ -0,0 +1 @@
57bf2aaa27527d51085e040ccead4b99f160bb2f

View File

@ -0,0 +1 @@
fb7ad10e20f2de4334f8c122c8582f18b91f0552

View File

@ -0,0 +1 @@
730581035d5af832d1b05c8f3a623ec93863b3e3

View File

@ -0,0 +1 @@
c3dde10c32f12da58181ecaccb7aeaa515239233

View File

@ -0,0 +1 @@
80359cff72cbdc04a337a51c2fcc0c74890710b4

View File

@ -0,0 +1,18 @@
Test files for Audio Coding Module
testfile32kHz.pcm - mono speech file samples at 32 kHz
teststereo32kHz.pcm - stereo speech file samples at 32 kHz
Test and reference vectors to verify correct execution of PacketCable
iLBC Fixed Point Reference Code
Version 1.0.6
Format: all .INP and .OUT files contain 16 bit sampled data using the
Intel (PC) format. The .BIT files are stored in the appropriate byte
sequence (big-endian format).
*.INP - input files
*.BIT20 - bit stream files 20 ms mode
*.OUT20 - output files 20 ms mode (on a channel without packet loss)
*.BIT30 - bit stream files 30 ms mode
*.OUT30 - output files 30 ms mode (on a channel without packet loss)

View File

@ -0,0 +1 @@
7fe50497b4fef1bbaca4bbb4f00c9f069ef63dc0

View File

@ -0,0 +1 @@
77b123a152911b538951cadbee45007f9d1a370c

View File

@ -0,0 +1 @@
21c8f8aaf9518a629d6c6def87fe6ea1305d5c91

View File

@ -0,0 +1 @@
8dd7585937f1f3b17666035a7aec5c0431d4b30b

View File

@ -0,0 +1 @@
89f191b706f8028e52ffd64525de1921eacd772a

View File

@ -0,0 +1 @@
009a3ee778767c2402b1d2c920bc2449265f5a2c

View File

@ -0,0 +1 @@
7e391aede4d688dea3d4f07651672e961ceec466

View File

@ -0,0 +1 @@
ee18ff27c88bf0c6ea392519cf4d68d9bdba1ec1

View File

@ -0,0 +1 @@
21c78516c2470667a75c7ed85fe37c53a3514456

View File

@ -0,0 +1 @@
18e211e4069e5a71ae15758b130c4d0357c4bcca

View File

@ -0,0 +1 @@
7743e75662876c604ba908643938e49cde3d880a

View File

@ -0,0 +1 @@
23d9b291e4ec773ee1d1a6d63e61ca634e95c793

View File

@ -0,0 +1 @@
300f82a1be0cade3651077dda6e84f23996e6110

View File

@ -0,0 +1 @@
10a52dc6d6f15242a1aa549205657f2834353673

View File

@ -0,0 +1 @@
61219028e15606a3adbbc61d393575ab36b4078b

View File

@ -0,0 +1 @@
ba0c6e93a5e6d351d95385699fb9a719b6a6d0cc

View File

@ -0,0 +1 @@
590c6fe033665d11fa70dbbbd3e7d8f0b8a616ce

View File

@ -0,0 +1 @@
3a5a28763e3ad5cd0f2833a90b685f4da97c2002

View File

@ -0,0 +1 @@
7cae05c6902812609fa23ac04037485503b0924d

View File

@ -0,0 +1 @@
b1ea860f0bfad3e86fedc43cd8752821e0d75a46

View File

@ -0,0 +1 @@
49402cfaa36be32320167a65c8e96f70548f5257

View File

@ -0,0 +1 @@
04155a7e186deb7524e3013476de3eaabd59a1f8

View File

@ -0,0 +1 @@
81cb7e547fad2894b5702fa571f9eb55ed6e1096

View File

@ -0,0 +1 @@
81cfcff6b0d70938fe74060ba0303504c31c6d7e

View File

@ -0,0 +1 @@
01278951e13675a3467782e1d2f18273c05eef50

View File

@ -0,0 +1 @@
5fcb4621ea0f50c3fc9a63e4720ff52631258437

View File

@ -0,0 +1 @@
35639dd1b73b678360897975a91a7c8af0be3644

View File

@ -0,0 +1 @@
c9d3d0b81262ffaba7d358ad534e6fcb27c00076

View File

@ -0,0 +1 @@
f46a3380c9285324e583965ef547fcaa1650f8b8

View File

@ -0,0 +1 @@
f625c14d134d69ad38b67295459406fc9947a705

View File

@ -0,0 +1 @@
c26083880cd227178917b4df230520dbfb9b9bb1

View File

@ -0,0 +1 @@
0eaaf21344b4b030d6c0fb6dcc419e7d3959a148

View File

@ -0,0 +1 @@
9781792dc39d7aada6418370246eef9f544ca47b

View File

@ -0,0 +1 @@
8b2bd11b591521178232aae598e6df0d001051c4

View File

@ -0,0 +1 @@
8a6c7ed696f9791f8cb5c5b061f07eb019affd49

View File

@ -0,0 +1 @@
7c01839f888fe6e10276e1819bd5207668345dcf

View File

@ -0,0 +1 @@
f7553df9abca91401715185d97d1d9c20a2ecb9b

View File

@ -0,0 +1 @@
0455d7042c64075e793285753a98f02268e6238b

View File

@ -0,0 +1 @@
941cc5d0bfccfd1d6bd68a1d882975202f22b6de

View File

@ -0,0 +1 @@
a16139b3750a13b62327e2a78ea008493a2b508b

View File

@ -0,0 +1 @@
6bf9272123656bc0561550a40734245709bbac10

View File

@ -0,0 +1 @@
6a2667c6c4b3794776af1dabacc3575791023168

View File

@ -0,0 +1 @@
620cf1f732c99003ff0e5d6ae3350c0a2ea2a9d7

View File

@ -0,0 +1 @@
8b53334fec495185a82a759104240b2c01e449b6

View File

@ -0,0 +1 @@
849f88896b1d00c2625c247e9e06a19d2ae0175c

View File

@ -0,0 +1 @@
6006efc8095f2aa4b30879ec37d5baad261f8ab0

View File

@ -0,0 +1 @@
892d292c1dcd3b5cee5c71d8fa5d21118fbfe3f7

View File

@ -0,0 +1 @@
7e5972e147a7d5e9817b09c8b6c5e93d307032aa

View File

@ -0,0 +1 @@
f143c04d4ab848e97f5bbb19f0799097a0d93c44

View File

@ -0,0 +1 @@
f812b1cfff98da276973e947b1ba177cd462f58a

View File

@ -0,0 +1 @@
69c679d06f275c1bb4a616dc626a9a893d9c11f9

View File

@ -0,0 +1 @@
6f543f892cd3740a3a1366a486a892766d1f0a79

View File

@ -0,0 +1 @@
ce229fea854fbce532fe430b5b5a8c9b5db65d94

View File

@ -0,0 +1 @@
db8cc13114cfe550fefa264ea70427e1fa4f9bba

View File

@ -0,0 +1 @@
7398e204d06b34fcd09533523ec418af9b5caf80

View File

@ -0,0 +1 @@
7d88683e3113fe8174a72800232023756eefce33

View File

@ -0,0 +1 @@
0a1ae77fb59833b6485903912ae57d9e5b08dba8

Some files were not shown because too many files have changed in this diff Show More