Added WebRTC library
This commit is contained in:
parent
97f172282d
commit
aec3dbae01
|
@ -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
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
# Defines the Chromium style for automatic reformatting.
|
||||
# http://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
||||
BasedOnStyle: Chromium
|
|
@ -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
|
|
@ -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",
|
||||
]
|
|
@ -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.
|
|
@ -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",
|
||||
]
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
Refer to talk/COPYING.
|
|
@ -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')],
|
||||
},
|
||||
]
|
||||
|
|
@ -0,0 +1 @@
|
|||
Refer to webrtc/LICENSE.
|
|
@ -0,0 +1 @@
|
|||
Refer to webrtc/LICENSE_THIRD_PARTY and talk/LICENSE_THIRD_PARTY.
|
|
@ -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=*
|
|
@ -0,0 +1 @@
|
|||
Refer to src/PATENTS.
|
|
@ -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
|
|
@ -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
|
|
@ -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'],
|
||||
},
|
||||
}
|
|
@ -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:*',
|
||||
],
|
||||
}],
|
||||
],
|
||||
}],
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
kjellander@webrtc.org
|
|
@ -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).
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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())
|
|
@ -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
|
|
@ -0,0 +1 @@
|
|||
kjellander@webrtc.org
|
|
@ -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.
|
||||
|
|
@ -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/
|
|
@ -0,0 +1 @@
|
|||
kjellander@webrtc.org
|
|
@ -0,0 +1,3 @@
|
|||
set noparent
|
||||
sergiyb@chromium.org
|
||||
kjellander@webrtc.org
|
|
@ -0,0 +1 @@
|
|||
This directory contains configuration files for infra services.
|
|
@ -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" }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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.
|
||||
*/
|
||||
|
|
@ -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=' '
|
|
@ -0,0 +1,2 @@
|
|||
*
|
||||
|
|
@ -0,0 +1 @@
|
|||
2a4617e3497d8faa2fdccfa8964da26499eb13d6
|
|
@ -0,0 +1 @@
|
|||
8ea680a570df53fba206b984f38d4762481322eb
|
|
@ -0,0 +1 @@
|
|||
44bb846907928e958531e805758767bf9353e03c
|
|
@ -0,0 +1 @@
|
|||
23780ea4c8893813787f7ab1dc7ab68075ad89c0
|
|
@ -0,0 +1 @@
|
|||
57bf2aaa27527d51085e040ccead4b99f160bb2f
|
|
@ -0,0 +1 @@
|
|||
fb7ad10e20f2de4334f8c122c8582f18b91f0552
|
|
@ -0,0 +1 @@
|
|||
730581035d5af832d1b05c8f3a623ec93863b3e3
|
|
@ -0,0 +1 @@
|
|||
c3dde10c32f12da58181ecaccb7aeaa515239233
|
|
@ -0,0 +1 @@
|
|||
80359cff72cbdc04a337a51c2fcc0c74890710b4
|
|
@ -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)
|
|
@ -0,0 +1 @@
|
|||
7fe50497b4fef1bbaca4bbb4f00c9f069ef63dc0
|
|
@ -0,0 +1 @@
|
|||
77b123a152911b538951cadbee45007f9d1a370c
|
|
@ -0,0 +1 @@
|
|||
21c8f8aaf9518a629d6c6def87fe6ea1305d5c91
|
|
@ -0,0 +1 @@
|
|||
8dd7585937f1f3b17666035a7aec5c0431d4b30b
|
|
@ -0,0 +1 @@
|
|||
89f191b706f8028e52ffd64525de1921eacd772a
|
|
@ -0,0 +1 @@
|
|||
009a3ee778767c2402b1d2c920bc2449265f5a2c
|
|
@ -0,0 +1 @@
|
|||
7e391aede4d688dea3d4f07651672e961ceec466
|
|
@ -0,0 +1 @@
|
|||
ee18ff27c88bf0c6ea392519cf4d68d9bdba1ec1
|
|
@ -0,0 +1 @@
|
|||
21c78516c2470667a75c7ed85fe37c53a3514456
|
|
@ -0,0 +1 @@
|
|||
18e211e4069e5a71ae15758b130c4d0357c4bcca
|
|
@ -0,0 +1 @@
|
|||
7743e75662876c604ba908643938e49cde3d880a
|
|
@ -0,0 +1 @@
|
|||
23d9b291e4ec773ee1d1a6d63e61ca634e95c793
|
|
@ -0,0 +1 @@
|
|||
300f82a1be0cade3651077dda6e84f23996e6110
|
|
@ -0,0 +1 @@
|
|||
10a52dc6d6f15242a1aa549205657f2834353673
|
|
@ -0,0 +1 @@
|
|||
61219028e15606a3adbbc61d393575ab36b4078b
|
|
@ -0,0 +1 @@
|
|||
ba0c6e93a5e6d351d95385699fb9a719b6a6d0cc
|
|
@ -0,0 +1 @@
|
|||
590c6fe033665d11fa70dbbbd3e7d8f0b8a616ce
|
|
@ -0,0 +1 @@
|
|||
3a5a28763e3ad5cd0f2833a90b685f4da97c2002
|
|
@ -0,0 +1 @@
|
|||
7cae05c6902812609fa23ac04037485503b0924d
|
|
@ -0,0 +1 @@
|
|||
b1ea860f0bfad3e86fedc43cd8752821e0d75a46
|
|
@ -0,0 +1 @@
|
|||
49402cfaa36be32320167a65c8e96f70548f5257
|
|
@ -0,0 +1 @@
|
|||
04155a7e186deb7524e3013476de3eaabd59a1f8
|
|
@ -0,0 +1 @@
|
|||
81cb7e547fad2894b5702fa571f9eb55ed6e1096
|
|
@ -0,0 +1 @@
|
|||
81cfcff6b0d70938fe74060ba0303504c31c6d7e
|
|
@ -0,0 +1 @@
|
|||
01278951e13675a3467782e1d2f18273c05eef50
|
|
@ -0,0 +1 @@
|
|||
5fcb4621ea0f50c3fc9a63e4720ff52631258437
|
|
@ -0,0 +1 @@
|
|||
35639dd1b73b678360897975a91a7c8af0be3644
|
|
@ -0,0 +1 @@
|
|||
c9d3d0b81262ffaba7d358ad534e6fcb27c00076
|
|
@ -0,0 +1 @@
|
|||
f46a3380c9285324e583965ef547fcaa1650f8b8
|
|
@ -0,0 +1 @@
|
|||
f625c14d134d69ad38b67295459406fc9947a705
|
|
@ -0,0 +1 @@
|
|||
c26083880cd227178917b4df230520dbfb9b9bb1
|
|
@ -0,0 +1 @@
|
|||
0eaaf21344b4b030d6c0fb6dcc419e7d3959a148
|
|
@ -0,0 +1 @@
|
|||
9781792dc39d7aada6418370246eef9f544ca47b
|
|
@ -0,0 +1 @@
|
|||
8b2bd11b591521178232aae598e6df0d001051c4
|
|
@ -0,0 +1 @@
|
|||
8a6c7ed696f9791f8cb5c5b061f07eb019affd49
|
|
@ -0,0 +1 @@
|
|||
7c01839f888fe6e10276e1819bd5207668345dcf
|
|
@ -0,0 +1 @@
|
|||
f7553df9abca91401715185d97d1d9c20a2ecb9b
|
|
@ -0,0 +1 @@
|
|||
0455d7042c64075e793285753a98f02268e6238b
|
|
@ -0,0 +1 @@
|
|||
941cc5d0bfccfd1d6bd68a1d882975202f22b6de
|
|
@ -0,0 +1 @@
|
|||
a16139b3750a13b62327e2a78ea008493a2b508b
|
|
@ -0,0 +1 @@
|
|||
6bf9272123656bc0561550a40734245709bbac10
|
|
@ -0,0 +1 @@
|
|||
6a2667c6c4b3794776af1dabacc3575791023168
|
|
@ -0,0 +1 @@
|
|||
620cf1f732c99003ff0e5d6ae3350c0a2ea2a9d7
|
|
@ -0,0 +1 @@
|
|||
8b53334fec495185a82a759104240b2c01e449b6
|
|
@ -0,0 +1 @@
|
|||
849f88896b1d00c2625c247e9e06a19d2ae0175c
|
|
@ -0,0 +1 @@
|
|||
6006efc8095f2aa4b30879ec37d5baad261f8ab0
|
|
@ -0,0 +1 @@
|
|||
892d292c1dcd3b5cee5c71d8fa5d21118fbfe3f7
|
|
@ -0,0 +1 @@
|
|||
7e5972e147a7d5e9817b09c8b6c5e93d307032aa
|
|
@ -0,0 +1 @@
|
|||
f143c04d4ab848e97f5bbb19f0799097a0d93c44
|
|
@ -0,0 +1 @@
|
|||
f812b1cfff98da276973e947b1ba177cd462f58a
|
|
@ -0,0 +1 @@
|
|||
69c679d06f275c1bb4a616dc626a9a893d9c11f9
|
|
@ -0,0 +1 @@
|
|||
6f543f892cd3740a3a1366a486a892766d1f0a79
|
|
@ -0,0 +1 @@
|
|||
ce229fea854fbce532fe430b5b5a8c9b5db65d94
|
|
@ -0,0 +1 @@
|
|||
db8cc13114cfe550fefa264ea70427e1fa4f9bba
|
|
@ -0,0 +1 @@
|
|||
7398e204d06b34fcd09533523ec418af9b5caf80
|
|
@ -0,0 +1 @@
|
|||
7d88683e3113fe8174a72800232023756eefce33
|
|
@ -0,0 +1 @@
|
|||
0a1ae77fb59833b6485903912ae57d9e5b08dba8
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue