gitextract_hfbrqaaj/ ├── .gitattributes ├── .gitignore ├── .idea/ │ ├── codeStyles/ │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── google-java-format.xml │ └── jarRepositories.xml ├── .travis.yml ├── LICENSE ├── README.md ├── build.gradle ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── mediasoup-client/ │ ├── .clang-format │ ├── .gitignore │ ├── CMakeLists.txt │ ├── build.gradle │ ├── deps/ │ │ ├── libmediasoupclient/ │ │ │ ├── .clang-format │ │ │ ├── .clang-tidy │ │ │ ├── .github/ │ │ │ │ └── FUNDING.yml │ │ │ ├── .gitignore │ │ │ ├── .npmrc │ │ │ ├── CHANGELOG.md │ │ │ ├── CMakeLists.txt │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── TODO.md │ │ │ ├── deps/ │ │ │ │ ├── catch/ │ │ │ │ │ ├── .conan/ │ │ │ │ │ │ ├── build.py │ │ │ │ │ │ └── test_package/ │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ ├── conanfile.py │ │ │ │ │ │ └── test_package.cpp │ │ │ │ │ ├── .gitattributes │ │ │ │ │ ├── .github/ │ │ │ │ │ │ ├── FUNDING.yml │ │ │ │ │ │ ├── ISSUE_TEMPLATE/ │ │ │ │ │ │ │ ├── bug_report.md │ │ │ │ │ │ │ └── feature_request.md │ │ │ │ │ │ └── pull_request_template.md │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .travis.yml │ │ │ │ │ ├── CMake/ │ │ │ │ │ │ ├── Catch2Config.cmake.in │ │ │ │ │ │ ├── FindGcov.cmake │ │ │ │ │ │ ├── FindLcov.cmake │ │ │ │ │ │ ├── Findcodecov.cmake │ │ │ │ │ │ ├── MiscFunctions.cmake │ │ │ │ │ │ ├── catch2.pc.in │ │ │ │ │ │ └── llvm-cov-wrapper │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── CODE_OF_CONDUCT.md │ │ │ │ │ ├── LICENSE.txt │ │ │ │ │ ├── README.md │ │ │ │ │ ├── appveyor.yml │ │ │ │ │ ├── codecov.yml │ │ │ │ │ ├── conanfile.py │ │ │ │ │ ├── contrib/ │ │ │ │ │ │ ├── Catch.cmake │ │ │ │ │ │ ├── CatchAddTests.cmake │ │ │ │ │ │ ├── ParseAndAddCatchTests.cmake │ │ │ │ │ │ ├── gdbinit │ │ │ │ │ │ └── lldbinit │ │ │ │ │ ├── docs/ │ │ │ │ │ │ ├── Readme.md │ │ │ │ │ │ ├── assertions.md │ │ │ │ │ │ ├── benchmarks.md │ │ │ │ │ │ ├── ci-and-misc.md │ │ │ │ │ │ ├── cmake-integration.md │ │ │ │ │ │ ├── command-line.md │ │ │ │ │ │ ├── commercial-users.md │ │ │ │ │ │ ├── configuration.md │ │ │ │ │ │ ├── contributing.md │ │ │ │ │ │ ├── deprecations.md │ │ │ │ │ │ ├── event-listeners.md │ │ │ │ │ │ ├── generators.md │ │ │ │ │ │ ├── limitations.md │ │ │ │ │ │ ├── list-of-examples.md │ │ │ │ │ │ ├── logging.md │ │ │ │ │ │ ├── matchers.md │ │ │ │ │ │ ├── opensource-users.md │ │ │ │ │ │ ├── other-macros.md │ │ │ │ │ │ ├── own-main.md │ │ │ │ │ │ ├── release-notes.md │ │ │ │ │ │ ├── release-process.md │ │ │ │ │ │ ├── reporters.md │ │ │ │ │ │ ├── slow-compiles.md │ │ │ │ │ │ ├── test-cases-and-sections.md │ │ │ │ │ │ ├── test-fixtures.md │ │ │ │ │ │ ├── tostring.md │ │ │ │ │ │ ├── tutorial.md │ │ │ │ │ │ └── why-catch.md │ │ │ │ │ ├── examples/ │ │ │ │ │ │ ├── 000-CatchMain.cpp │ │ │ │ │ │ ├── 010-TestCase.cpp │ │ │ │ │ │ ├── 020-TestCase-1.cpp │ │ │ │ │ │ ├── 020-TestCase-2.cpp │ │ │ │ │ │ ├── 030-Asn-Require-Check.cpp │ │ │ │ │ │ ├── 100-Fix-Section.cpp │ │ │ │ │ │ ├── 110-Fix-ClassFixture.cpp │ │ │ │ │ │ ├── 120-Bdd-ScenarioGivenWhenThen.cpp │ │ │ │ │ │ ├── 200-Rpt-CatchMain.cpp │ │ │ │ │ │ ├── 207-Rpt-TeamCityReporter.cpp │ │ │ │ │ │ ├── 210-Evt-EventListeners.cpp │ │ │ │ │ │ ├── 231-Cfg-OutputStreams.cpp │ │ │ │ │ │ ├── 300-Gen-OwnGenerator.cpp │ │ │ │ │ │ ├── 301-Gen-MapTypeConversion.cpp │ │ │ │ │ │ ├── 310-Gen-VariablesInGenerators.cpp │ │ │ │ │ │ ├── 311-Gen-CustomCapture.cpp │ │ │ │ │ │ └── CMakeLists.txt │ │ │ │ │ ├── include/ │ │ │ │ │ │ ├── catch.hpp │ │ │ │ │ │ ├── catch_with_main.hpp │ │ │ │ │ │ ├── external/ │ │ │ │ │ │ │ └── clara.hpp │ │ │ │ │ │ ├── internal/ │ │ │ │ │ │ │ ├── benchmark/ │ │ │ │ │ │ │ │ ├── catch_benchmark.hpp │ │ │ │ │ │ │ │ ├── catch_benchmarking_all.hpp │ │ │ │ │ │ │ │ ├── catch_chronometer.hpp │ │ │ │ │ │ │ │ ├── catch_clock.hpp │ │ │ │ │ │ │ │ ├── catch_constructor.hpp │ │ │ │ │ │ │ │ ├── catch_environment.hpp │ │ │ │ │ │ │ │ ├── catch_estimate.hpp │ │ │ │ │ │ │ │ ├── catch_execution_plan.hpp │ │ │ │ │ │ │ │ ├── catch_optimizer.hpp │ │ │ │ │ │ │ │ ├── catch_outlier_classification.hpp │ │ │ │ │ │ │ │ ├── catch_sample_analysis.hpp │ │ │ │ │ │ │ │ └── detail/ │ │ │ │ │ │ │ │ ├── catch_analyse.hpp │ │ │ │ │ │ │ │ ├── catch_benchmark_function.hpp │ │ │ │ │ │ │ │ ├── catch_complete_invoke.hpp │ │ │ │ │ │ │ │ ├── catch_estimate_clock.hpp │ │ │ │ │ │ │ │ ├── catch_measure.hpp │ │ │ │ │ │ │ │ ├── catch_repeat.hpp │ │ │ │ │ │ │ │ ├── catch_run_for_at_least.hpp │ │ │ │ │ │ │ │ ├── catch_stats.cpp │ │ │ │ │ │ │ │ ├── catch_stats.hpp │ │ │ │ │ │ │ │ └── catch_timing.hpp │ │ │ │ │ │ │ ├── catch_approx.cpp │ │ │ │ │ │ │ ├── catch_approx.h │ │ │ │ │ │ │ ├── catch_assertionhandler.cpp │ │ │ │ │ │ │ ├── catch_assertionhandler.h │ │ │ │ │ │ │ ├── catch_assertioninfo.h │ │ │ │ │ │ │ ├── catch_assertionresult.cpp │ │ │ │ │ │ │ ├── catch_assertionresult.h │ │ │ │ │ │ │ ├── catch_capture.hpp │ │ │ │ │ │ │ ├── catch_capture_matchers.cpp │ │ │ │ │ │ │ ├── catch_capture_matchers.h │ │ │ │ │ │ │ ├── catch_clara.h │ │ │ │ │ │ │ ├── catch_commandline.cpp │ │ │ │ │ │ │ ├── catch_commandline.h │ │ │ │ │ │ │ ├── catch_common.cpp │ │ │ │ │ │ │ ├── catch_common.h │ │ │ │ │ │ │ ├── catch_compiler_capabilities.h │ │ │ │ │ │ │ ├── catch_config.cpp │ │ │ │ │ │ │ ├── catch_config.hpp │ │ │ │ │ │ │ ├── catch_console_colour.cpp │ │ │ │ │ │ │ ├── catch_console_colour.h │ │ │ │ │ │ │ ├── catch_context.cpp │ │ │ │ │ │ │ ├── catch_context.h │ │ │ │ │ │ │ ├── catch_debug_console.cpp │ │ │ │ │ │ │ ├── catch_debug_console.h │ │ │ │ │ │ │ ├── catch_debugger.cpp │ │ │ │ │ │ │ ├── catch_debugger.h │ │ │ │ │ │ │ ├── catch_decomposer.cpp │ │ │ │ │ │ │ ├── catch_decomposer.h │ │ │ │ │ │ │ ├── catch_default_main.hpp │ │ │ │ │ │ │ ├── catch_enforce.cpp │ │ │ │ │ │ │ ├── catch_enforce.h │ │ │ │ │ │ │ ├── catch_enum_values_registry.cpp │ │ │ │ │ │ │ ├── catch_enum_values_registry.h │ │ │ │ │ │ │ ├── catch_errno_guard.cpp │ │ │ │ │ │ │ ├── catch_errno_guard.h │ │ │ │ │ │ │ ├── catch_exception_translator_registry.cpp │ │ │ │ │ │ │ ├── catch_exception_translator_registry.h │ │ │ │ │ │ │ ├── catch_external_interfaces.h │ │ │ │ │ │ │ ├── catch_fatal_condition.cpp │ │ │ │ │ │ │ ├── catch_fatal_condition.h │ │ │ │ │ │ │ ├── catch_generators.cpp │ │ │ │ │ │ │ ├── catch_generators.hpp │ │ │ │ │ │ │ ├── catch_generators_generic.hpp │ │ │ │ │ │ │ ├── catch_generators_specific.hpp │ │ │ │ │ │ │ ├── catch_impl.hpp │ │ │ │ │ │ │ ├── catch_interfaces_capture.cpp │ │ │ │ │ │ │ ├── catch_interfaces_capture.h │ │ │ │ │ │ │ ├── catch_interfaces_config.cpp │ │ │ │ │ │ │ ├── catch_interfaces_config.h │ │ │ │ │ │ │ ├── catch_interfaces_enum_values_registry.h │ │ │ │ │ │ │ ├── catch_interfaces_exception.cpp │ │ │ │ │ │ │ ├── catch_interfaces_exception.h │ │ │ │ │ │ │ ├── catch_interfaces_generatortracker.h │ │ │ │ │ │ │ ├── catch_interfaces_registry_hub.cpp │ │ │ │ │ │ │ ├── catch_interfaces_registry_hub.h │ │ │ │ │ │ │ ├── catch_interfaces_reporter.cpp │ │ │ │ │ │ │ ├── catch_interfaces_reporter.h │ │ │ │ │ │ │ ├── catch_interfaces_runner.cpp │ │ │ │ │ │ │ ├── catch_interfaces_runner.h │ │ │ │ │ │ │ ├── catch_interfaces_tag_alias_registry.h │ │ │ │ │ │ │ ├── catch_interfaces_testcase.cpp │ │ │ │ │ │ │ ├── catch_interfaces_testcase.h │ │ │ │ │ │ │ ├── catch_leak_detector.cpp │ │ │ │ │ │ │ ├── catch_leak_detector.h │ │ │ │ │ │ │ ├── catch_list.cpp │ │ │ │ │ │ │ ├── catch_list.h │ │ │ │ │ │ │ ├── catch_matchers.cpp │ │ │ │ │ │ │ ├── catch_matchers.h │ │ │ │ │ │ │ ├── catch_matchers_exception.cpp │ │ │ │ │ │ │ ├── catch_matchers_exception.hpp │ │ │ │ │ │ │ ├── catch_matchers_floating.cpp │ │ │ │ │ │ │ ├── catch_matchers_floating.h │ │ │ │ │ │ │ ├── catch_matchers_generic.cpp │ │ │ │ │ │ │ ├── catch_matchers_generic.hpp │ │ │ │ │ │ │ ├── catch_matchers_string.cpp │ │ │ │ │ │ │ ├── catch_matchers_string.h │ │ │ │ │ │ │ ├── catch_matchers_vector.h │ │ │ │ │ │ │ ├── catch_message.cpp │ │ │ │ │ │ │ ├── catch_message.h │ │ │ │ │ │ │ ├── catch_meta.hpp │ │ │ │ │ │ │ ├── catch_objc.hpp │ │ │ │ │ │ │ ├── catch_objc_arc.hpp │ │ │ │ │ │ │ ├── catch_option.hpp │ │ │ │ │ │ │ ├── catch_output_redirect.cpp │ │ │ │ │ │ │ ├── catch_output_redirect.h │ │ │ │ │ │ │ ├── catch_platform.h │ │ │ │ │ │ │ ├── catch_polyfills.cpp │ │ │ │ │ │ │ ├── catch_polyfills.hpp │ │ │ │ │ │ │ ├── catch_preprocessor.hpp │ │ │ │ │ │ │ ├── catch_random_number_generator.cpp │ │ │ │ │ │ │ ├── catch_random_number_generator.h │ │ │ │ │ │ │ ├── catch_reenable_warnings.h │ │ │ │ │ │ │ ├── catch_registry_hub.cpp │ │ │ │ │ │ │ ├── catch_reporter_registrars.hpp │ │ │ │ │ │ │ ├── catch_reporter_registry.cpp │ │ │ │ │ │ │ ├── catch_reporter_registry.h │ │ │ │ │ │ │ ├── catch_result_type.cpp │ │ │ │ │ │ │ ├── catch_result_type.h │ │ │ │ │ │ │ ├── catch_run_context.cpp │ │ │ │ │ │ │ ├── catch_run_context.h │ │ │ │ │ │ │ ├── catch_section.cpp │ │ │ │ │ │ │ ├── catch_section.h │ │ │ │ │ │ │ ├── catch_section_info.cpp │ │ │ │ │ │ │ ├── catch_section_info.h │ │ │ │ │ │ │ ├── catch_session.cpp │ │ │ │ │ │ │ ├── catch_session.h │ │ │ │ │ │ │ ├── catch_singletons.cpp │ │ │ │ │ │ │ ├── catch_singletons.hpp │ │ │ │ │ │ │ ├── catch_startup_exception_registry.cpp │ │ │ │ │ │ │ ├── catch_startup_exception_registry.h │ │ │ │ │ │ │ ├── catch_stream.cpp │ │ │ │ │ │ │ ├── catch_stream.h │ │ │ │ │ │ │ ├── catch_string_manip.cpp │ │ │ │ │ │ │ ├── catch_string_manip.h │ │ │ │ │ │ │ ├── catch_stringref.cpp │ │ │ │ │ │ │ ├── catch_stringref.h │ │ │ │ │ │ │ ├── catch_suppress_warnings.h │ │ │ │ │ │ │ ├── catch_tag_alias.cpp │ │ │ │ │ │ │ ├── catch_tag_alias.h │ │ │ │ │ │ │ ├── catch_tag_alias_autoregistrar.cpp │ │ │ │ │ │ │ ├── catch_tag_alias_autoregistrar.h │ │ │ │ │ │ │ ├── catch_tag_alias_registry.cpp │ │ │ │ │ │ │ ├── catch_tag_alias_registry.h │ │ │ │ │ │ │ ├── catch_test_case_info.cpp │ │ │ │ │ │ │ ├── catch_test_case_info.h │ │ │ │ │ │ │ ├── catch_test_case_registry_impl.cpp │ │ │ │ │ │ │ ├── catch_test_case_registry_impl.h │ │ │ │ │ │ │ ├── catch_test_case_tracker.cpp │ │ │ │ │ │ │ ├── catch_test_case_tracker.h │ │ │ │ │ │ │ ├── catch_test_registry.cpp │ │ │ │ │ │ │ ├── catch_test_registry.h │ │ │ │ │ │ │ ├── catch_test_spec.cpp │ │ │ │ │ │ │ ├── catch_test_spec.h │ │ │ │ │ │ │ ├── catch_test_spec_parser.cpp │ │ │ │ │ │ │ ├── catch_test_spec_parser.h │ │ │ │ │ │ │ ├── catch_text.h │ │ │ │ │ │ │ ├── catch_timer.cpp │ │ │ │ │ │ │ ├── catch_timer.h │ │ │ │ │ │ │ ├── catch_to_string.hpp │ │ │ │ │ │ │ ├── catch_tostring.cpp │ │ │ │ │ │ │ ├── catch_tostring.h │ │ │ │ │ │ │ ├── catch_totals.cpp │ │ │ │ │ │ │ ├── catch_totals.h │ │ │ │ │ │ │ ├── catch_uncaught_exceptions.cpp │ │ │ │ │ │ │ ├── catch_uncaught_exceptions.h │ │ │ │ │ │ │ ├── catch_user_interfaces.h │ │ │ │ │ │ │ ├── catch_version.cpp │ │ │ │ │ │ │ ├── catch_version.h │ │ │ │ │ │ │ ├── catch_wildcard_pattern.cpp │ │ │ │ │ │ │ ├── catch_wildcard_pattern.h │ │ │ │ │ │ │ ├── catch_windows_h_proxy.h │ │ │ │ │ │ │ ├── catch_xmlwriter.cpp │ │ │ │ │ │ │ └── catch_xmlwriter.h │ │ │ │ │ │ └── reporters/ │ │ │ │ │ │ ├── catch_reporter_automake.hpp │ │ │ │ │ │ ├── catch_reporter_bases.cpp │ │ │ │ │ │ ├── catch_reporter_bases.hpp │ │ │ │ │ │ ├── catch_reporter_compact.cpp │ │ │ │ │ │ ├── catch_reporter_compact.h │ │ │ │ │ │ ├── catch_reporter_console.cpp │ │ │ │ │ │ ├── catch_reporter_console.h │ │ │ │ │ │ ├── catch_reporter_junit.cpp │ │ │ │ │ │ ├── catch_reporter_junit.h │ │ │ │ │ │ ├── catch_reporter_listening.cpp │ │ │ │ │ │ ├── catch_reporter_listening.h │ │ │ │ │ │ ├── catch_reporter_sonarqube.hpp │ │ │ │ │ │ ├── catch_reporter_tap.hpp │ │ │ │ │ │ ├── catch_reporter_teamcity.hpp │ │ │ │ │ │ ├── catch_reporter_xml.cpp │ │ │ │ │ │ └── catch_reporter_xml.h │ │ │ │ │ ├── misc/ │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ ├── appveyorBuildConfigurationScript.bat │ │ │ │ │ │ ├── appveyorMergeCoverageScript.py │ │ │ │ │ │ ├── appveyorTestRunScript.bat │ │ │ │ │ │ ├── coverage-helper.cpp │ │ │ │ │ │ └── installOpenCppCoverage.ps1 │ │ │ │ │ ├── projects/ │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ ├── ExtraTests/ │ │ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ │ │ ├── ToDo.txt │ │ │ │ │ │ │ ├── X01-PrefixedMacros.cpp │ │ │ │ │ │ │ ├── X02-DisabledMacros.cpp │ │ │ │ │ │ │ ├── X03-DisabledExceptions-DefaultHandler.cpp │ │ │ │ │ │ │ ├── X04-DisabledExceptions-CustomHandler.cpp │ │ │ │ │ │ │ ├── X10-FallbackStringifier.cpp │ │ │ │ │ │ │ ├── X11-DisableStringification.cpp │ │ │ │ │ │ │ ├── X20-BenchmarkingMacros.cpp │ │ │ │ │ │ │ └── X90-WindowsHeaderInclusion.cpp │ │ │ │ │ │ ├── SelfTest/ │ │ │ │ │ │ │ ├── Baselines/ │ │ │ │ │ │ │ │ ├── automake.std.approved.txt │ │ │ │ │ │ │ │ ├── compact.sw.approved.txt │ │ │ │ │ │ │ │ ├── console.std.approved.txt │ │ │ │ │ │ │ │ ├── console.sw.approved.txt │ │ │ │ │ │ │ │ ├── console.swa4.approved.txt │ │ │ │ │ │ │ │ ├── junit.sw.approved.txt │ │ │ │ │ │ │ │ ├── sonarqube.sw.approved.txt │ │ │ │ │ │ │ │ └── xml.sw.approved.txt │ │ │ │ │ │ │ ├── CompileTimePerfTests/ │ │ │ │ │ │ │ │ ├── 10.tests.cpp │ │ │ │ │ │ │ │ ├── 100.tests.cpp │ │ │ │ │ │ │ │ └── All.tests.cpp │ │ │ │ │ │ │ ├── IntrospectiveTests/ │ │ │ │ │ │ │ │ ├── CmdLine.tests.cpp │ │ │ │ │ │ │ │ ├── Details.tests.cpp │ │ │ │ │ │ │ │ ├── GeneratorsImpl.tests.cpp │ │ │ │ │ │ │ │ ├── InternalBenchmark.tests.cpp │ │ │ │ │ │ │ │ ├── PartTracker.tests.cpp │ │ │ │ │ │ │ │ ├── RandomNumberGeneration.tests.cpp │ │ │ │ │ │ │ │ ├── String.tests.cpp │ │ │ │ │ │ │ │ ├── StringManip.tests.cpp │ │ │ │ │ │ │ │ ├── Tag.tests.cpp │ │ │ │ │ │ │ │ ├── ToString.tests.cpp │ │ │ │ │ │ │ │ └── Xml.tests.cpp │ │ │ │ │ │ │ ├── Misc/ │ │ │ │ │ │ │ │ ├── invalid-test-names.input │ │ │ │ │ │ │ │ ├── plain-old-tests.input │ │ │ │ │ │ │ │ └── special-characters-in-file.input │ │ │ │ │ │ │ ├── SurrogateCpps/ │ │ │ │ │ │ │ │ ├── catch_console_colour.cpp │ │ │ │ │ │ │ │ ├── catch_debugger.cpp │ │ │ │ │ │ │ │ ├── catch_interfaces_reporter.cpp │ │ │ │ │ │ │ │ ├── catch_option.cpp │ │ │ │ │ │ │ │ ├── catch_stream.cpp │ │ │ │ │ │ │ │ ├── catch_test_case_tracker.cpp │ │ │ │ │ │ │ │ ├── catch_test_spec.cpp │ │ │ │ │ │ │ │ └── catch_xmlwriter.cpp │ │ │ │ │ │ │ ├── TestMain.cpp │ │ │ │ │ │ │ ├── UsageTests/ │ │ │ │ │ │ │ │ ├── Approx.tests.cpp │ │ │ │ │ │ │ │ ├── BDD.tests.cpp │ │ │ │ │ │ │ │ ├── Benchmark.tests.cpp │ │ │ │ │ │ │ │ ├── Class.tests.cpp │ │ │ │ │ │ │ │ ├── Compilation.tests.cpp │ │ │ │ │ │ │ │ ├── Condition.tests.cpp │ │ │ │ │ │ │ │ ├── Decomposition.tests.cpp │ │ │ │ │ │ │ │ ├── EnumToString.tests.cpp │ │ │ │ │ │ │ │ ├── Exception.tests.cpp │ │ │ │ │ │ │ │ ├── Generators.tests.cpp │ │ │ │ │ │ │ │ ├── Matchers.tests.cpp │ │ │ │ │ │ │ │ ├── Message.tests.cpp │ │ │ │ │ │ │ │ ├── Misc.tests.cpp │ │ │ │ │ │ │ │ ├── ToStringByte.tests.cpp │ │ │ │ │ │ │ │ ├── ToStringChrono.tests.cpp │ │ │ │ │ │ │ │ ├── ToStringGeneral.tests.cpp │ │ │ │ │ │ │ │ ├── ToStringOptional.tests.cpp │ │ │ │ │ │ │ │ ├── ToStringPair.tests.cpp │ │ │ │ │ │ │ │ ├── ToStringTuple.tests.cpp │ │ │ │ │ │ │ │ ├── ToStringVariant.tests.cpp │ │ │ │ │ │ │ │ ├── ToStringVector.tests.cpp │ │ │ │ │ │ │ │ ├── ToStringWhich.tests.cpp │ │ │ │ │ │ │ │ ├── Tricky.tests.cpp │ │ │ │ │ │ │ │ └── VariadicMacros.tests.cpp │ │ │ │ │ │ │ └── WarnAboutNoTests.cmake │ │ │ │ │ │ └── XCode/ │ │ │ │ │ │ └── OCTest/ │ │ │ │ │ │ ├── OCTest/ │ │ │ │ │ │ │ ├── CatchOCTestCase.h │ │ │ │ │ │ │ ├── CatchOCTestCase.mm │ │ │ │ │ │ │ ├── Main.mm │ │ │ │ │ │ │ ├── OCTest.1 │ │ │ │ │ │ │ ├── OCTest.mm │ │ │ │ │ │ │ ├── TestObj.h │ │ │ │ │ │ │ └── TestObj.m │ │ │ │ │ │ ├── OCTest.xcodeproj/ │ │ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ │ │ └── project.xcworkspace/ │ │ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ │ │ └── catch_objc_impl.mm │ │ │ │ │ ├── scripts/ │ │ │ │ │ │ ├── approvalTests.py │ │ │ │ │ │ ├── approve.py │ │ │ │ │ │ ├── benchmarkCompile.py │ │ │ │ │ │ ├── benchmarkRunner.py │ │ │ │ │ │ ├── developBuild.py │ │ │ │ │ │ ├── embed.py │ │ │ │ │ │ ├── embedClara.py │ │ │ │ │ │ ├── extractFeaturesFromReleaseNotes.py │ │ │ │ │ │ ├── fixWhitespace.py │ │ │ │ │ │ ├── generateSingleHeader.py │ │ │ │ │ │ ├── majorRelease.py │ │ │ │ │ │ ├── minorRelease.py │ │ │ │ │ │ ├── patchRelease.py │ │ │ │ │ │ ├── releaseCommon.py │ │ │ │ │ │ ├── releaseNotes.py │ │ │ │ │ │ ├── scriptCommon.py │ │ │ │ │ │ ├── updateDocumentToC.py │ │ │ │ │ │ └── updateWandbox.py │ │ │ │ │ ├── single_include/ │ │ │ │ │ │ └── catch2/ │ │ │ │ │ │ ├── catch.hpp │ │ │ │ │ │ ├── catch_reporter_automake.hpp │ │ │ │ │ │ ├── catch_reporter_sonarqube.hpp │ │ │ │ │ │ ├── catch_reporter_tap.hpp │ │ │ │ │ │ └── catch_reporter_teamcity.hpp │ │ │ │ │ └── third_party/ │ │ │ │ │ └── clara.hpp │ │ │ │ └── libsdptransform/ │ │ │ │ ├── .gitignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── doc/ │ │ │ │ │ ├── Grammar.md │ │ │ │ │ └── index.md │ │ │ │ ├── include/ │ │ │ │ │ ├── json.hpp │ │ │ │ │ └── sdptransform.hpp │ │ │ │ ├── readme-helper/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ └── readme.cpp │ │ │ │ ├── scripts/ │ │ │ │ │ ├── generate-readme-code.sh │ │ │ │ │ ├── get-dep.sh │ │ │ │ │ └── test.sh │ │ │ │ ├── src/ │ │ │ │ │ ├── grammar.cpp │ │ │ │ │ ├── parser.cpp │ │ │ │ │ └── writer.cpp │ │ │ │ └── test/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── data/ │ │ │ │ │ ├── aes67.sdp │ │ │ │ │ ├── alac.sdp │ │ │ │ │ ├── extmap-encrypt.sdp │ │ │ │ │ ├── hacky.sdp │ │ │ │ │ ├── icelite.sdp │ │ │ │ │ ├── invalid.sdp │ │ │ │ │ ├── jsep.sdp │ │ │ │ │ ├── jssip.sdp │ │ │ │ │ ├── multicastttl.sdp │ │ │ │ │ ├── normal.sdp │ │ │ │ │ ├── onvif.sdp │ │ │ │ │ ├── simulcast.sdp │ │ │ │ │ ├── ssrc.sdp │ │ │ │ │ ├── st2022-6.sdp │ │ │ │ │ └── st2110-20.sdp │ │ │ │ ├── include/ │ │ │ │ │ ├── catch.hpp │ │ │ │ │ └── helpers.hpp │ │ │ │ ├── parse.test.cpp │ │ │ │ └── tests.cpp │ │ │ ├── gulpfile.js │ │ │ ├── include/ │ │ │ │ ├── Consumer.hpp │ │ │ │ ├── DataConsumer.hpp │ │ │ │ ├── DataProducer.hpp │ │ │ │ ├── Device.hpp │ │ │ │ ├── Handler.hpp │ │ │ │ ├── Logger.hpp │ │ │ │ ├── MediaSoupClientErrors.hpp │ │ │ │ ├── PeerConnection.hpp │ │ │ │ ├── Producer.hpp │ │ │ │ ├── Transport.hpp │ │ │ │ ├── Utils.hpp │ │ │ │ ├── mediasoupclient.hpp │ │ │ │ ├── ortc.hpp │ │ │ │ ├── scalabilityMode.hpp │ │ │ │ ├── sdp/ │ │ │ │ │ ├── MediaSection.hpp │ │ │ │ │ ├── RemoteSdp.hpp │ │ │ │ │ └── Utils.hpp │ │ │ │ └── version.hpp │ │ │ ├── package.json │ │ │ ├── scripts/ │ │ │ │ ├── clang-tidy.py │ │ │ │ ├── get-dep.sh │ │ │ │ ├── test.sh │ │ │ │ └── tidy.sh │ │ │ ├── src/ │ │ │ │ ├── Consumer.cpp │ │ │ │ ├── DataConsumer.cpp │ │ │ │ ├── DataProducer.cpp │ │ │ │ ├── Device.cpp │ │ │ │ ├── Handler.cpp │ │ │ │ ├── Logger.cpp │ │ │ │ ├── PeerConnection.cpp │ │ │ │ ├── Producer.cpp │ │ │ │ ├── Transport.cpp │ │ │ │ ├── mediasoupclient.cpp │ │ │ │ ├── ortc.cpp │ │ │ │ ├── scalabilityMode.cpp │ │ │ │ └── sdp/ │ │ │ │ ├── MediaSection.cpp │ │ │ │ ├── RemoteSdp.cpp │ │ │ │ └── Utils.cpp │ │ │ ├── test/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── Info.plist │ │ │ │ ├── data/ │ │ │ │ │ ├── audio_video.sdp │ │ │ │ │ ├── jssip.sdp │ │ │ │ │ └── webrtc.sdp │ │ │ │ ├── deps/ │ │ │ │ │ └── libwebrtc/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ └── pc/ │ │ │ │ │ └── test/ │ │ │ │ │ ├── fake_audio_capture_module.cc │ │ │ │ │ └── fake_audio_capture_module.h │ │ │ │ ├── include/ │ │ │ │ │ ├── FakeTransportListener.hpp │ │ │ │ │ ├── MediaStreamTrackFactory.hpp │ │ │ │ │ ├── fakeParameters.hpp │ │ │ │ │ └── helpers.hpp │ │ │ │ └── src/ │ │ │ │ ├── Device.test.cpp │ │ │ │ ├── Handler.test.cpp │ │ │ │ ├── MediaStreamTrackFactory.cpp │ │ │ │ ├── PeerConnection.test.cpp │ │ │ │ ├── RemoteSdp.test.cpp │ │ │ │ ├── SdpUtils.test.cpp │ │ │ │ ├── fakeParameters.cpp │ │ │ │ ├── mediasoupclient.test.cpp │ │ │ │ ├── ortc.test.cpp │ │ │ │ ├── scalabilityMode.test.cpp │ │ │ │ └── tests.cpp │ │ │ └── version.hpp.in │ │ └── webrtc/ │ │ ├── lib/ │ │ │ ├── .gitattributes │ │ │ ├── README.md │ │ │ ├── arm64-v8a/ │ │ │ │ └── libwebrtc.a │ │ │ ├── armeabi-v7a/ │ │ │ │ └── libwebrtc.a │ │ │ ├── libwebrtc.jar │ │ │ ├── x86/ │ │ │ │ └── libwebrtc.a │ │ │ └── x86_64/ │ │ │ └── libwebrtc.a │ │ └── src/ │ │ ├── .clang-format │ │ ├── .git-blame-ignore-revs │ │ ├── .gitignore │ │ ├── .gn │ │ ├── .vpython │ │ ├── AUTHORS │ │ ├── BUILD.gn │ │ ├── CODE_OF_CONDUCT.md │ │ ├── DEPS │ │ ├── DIR_METADATA │ │ ├── ENG_REVIEW_OWNERS │ │ ├── LICENSE │ │ ├── OWNERS │ │ ├── PATENTS │ │ ├── PRESUBMIT.py │ │ ├── README.chromium │ │ ├── README.md │ │ ├── WATCHLISTS │ │ ├── api/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── OWNERS │ │ │ ├── README.md │ │ │ ├── adaptation/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── resource.cc │ │ │ │ └── resource.h │ │ │ ├── array_view.h │ │ │ ├── array_view_unittest.cc │ │ │ ├── async_dns_resolver.h │ │ │ ├── async_resolver_factory.h │ │ │ ├── audio/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── OWNERS │ │ │ │ ├── audio_frame.cc │ │ │ │ ├── audio_frame.h │ │ │ │ ├── audio_frame_processor.h │ │ │ │ ├── audio_mixer.h │ │ │ │ ├── channel_layout.cc │ │ │ │ ├── channel_layout.h │ │ │ │ ├── echo_canceller3_config.cc │ │ │ │ ├── echo_canceller3_config.h │ │ │ │ ├── echo_canceller3_config_json.cc │ │ │ │ ├── echo_canceller3_config_json.h │ │ │ │ ├── echo_canceller3_factory.cc │ │ │ │ ├── echo_canceller3_factory.h │ │ │ │ ├── echo_control.h │ │ │ │ ├── echo_detector_creator.cc │ │ │ │ ├── echo_detector_creator.h │ │ │ │ └── test/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── audio_frame_unittest.cc │ │ │ │ ├── echo_canceller3_config_json_unittest.cc │ │ │ │ └── echo_canceller3_config_unittest.cc │ │ │ ├── audio_codecs/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── L16/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── audio_decoder_L16.cc │ │ │ │ │ ├── audio_decoder_L16.h │ │ │ │ │ ├── audio_encoder_L16.cc │ │ │ │ │ └── audio_encoder_L16.h │ │ │ │ ├── OWNERS │ │ │ │ ├── audio_codec_pair_id.cc │ │ │ │ ├── audio_codec_pair_id.h │ │ │ │ ├── audio_decoder.cc │ │ │ │ ├── audio_decoder.h │ │ │ │ ├── audio_decoder_factory.h │ │ │ │ ├── audio_decoder_factory_template.h │ │ │ │ ├── audio_encoder.cc │ │ │ │ ├── audio_encoder.h │ │ │ │ ├── audio_encoder_factory.h │ │ │ │ ├── audio_encoder_factory_template.h │ │ │ │ ├── audio_format.cc │ │ │ │ ├── audio_format.h │ │ │ │ ├── builtin_audio_decoder_factory.cc │ │ │ │ ├── builtin_audio_decoder_factory.h │ │ │ │ ├── builtin_audio_encoder_factory.cc │ │ │ │ ├── builtin_audio_encoder_factory.h │ │ │ │ ├── g711/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── audio_decoder_g711.cc │ │ │ │ │ ├── audio_decoder_g711.h │ │ │ │ │ ├── audio_encoder_g711.cc │ │ │ │ │ └── audio_encoder_g711.h │ │ │ │ ├── g722/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── audio_decoder_g722.cc │ │ │ │ │ ├── audio_decoder_g722.h │ │ │ │ │ ├── audio_encoder_g722.cc │ │ │ │ │ ├── audio_encoder_g722.h │ │ │ │ │ └── audio_encoder_g722_config.h │ │ │ │ ├── ilbc/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── audio_decoder_ilbc.cc │ │ │ │ │ ├── audio_decoder_ilbc.h │ │ │ │ │ ├── audio_encoder_ilbc.cc │ │ │ │ │ ├── audio_encoder_ilbc.h │ │ │ │ │ └── audio_encoder_ilbc_config.h │ │ │ │ ├── isac/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── audio_decoder_isac.h │ │ │ │ │ ├── audio_decoder_isac_fix.cc │ │ │ │ │ ├── audio_decoder_isac_fix.h │ │ │ │ │ ├── audio_decoder_isac_float.cc │ │ │ │ │ ├── audio_decoder_isac_float.h │ │ │ │ │ ├── audio_encoder_isac.h │ │ │ │ │ ├── audio_encoder_isac_fix.cc │ │ │ │ │ ├── audio_encoder_isac_fix.h │ │ │ │ │ ├── audio_encoder_isac_float.cc │ │ │ │ │ └── audio_encoder_isac_float.h │ │ │ │ ├── opus/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── audio_decoder_multi_channel_opus.cc │ │ │ │ │ ├── audio_decoder_multi_channel_opus.h │ │ │ │ │ ├── audio_decoder_multi_channel_opus_config.h │ │ │ │ │ ├── audio_decoder_opus.cc │ │ │ │ │ ├── audio_decoder_opus.h │ │ │ │ │ ├── audio_encoder_multi_channel_opus.cc │ │ │ │ │ ├── audio_encoder_multi_channel_opus.h │ │ │ │ │ ├── audio_encoder_multi_channel_opus_config.cc │ │ │ │ │ ├── audio_encoder_multi_channel_opus_config.h │ │ │ │ │ ├── audio_encoder_opus.cc │ │ │ │ │ ├── audio_encoder_opus.h │ │ │ │ │ ├── audio_encoder_opus_config.cc │ │ │ │ │ └── audio_encoder_opus_config.h │ │ │ │ ├── opus_audio_decoder_factory.cc │ │ │ │ ├── opus_audio_decoder_factory.h │ │ │ │ ├── opus_audio_encoder_factory.cc │ │ │ │ ├── opus_audio_encoder_factory.h │ │ │ │ └── test/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── audio_decoder_factory_template_unittest.cc │ │ │ │ └── audio_encoder_factory_template_unittest.cc │ │ │ ├── audio_options.cc │ │ │ ├── audio_options.h │ │ │ ├── call/ │ │ │ │ ├── audio_sink.h │ │ │ │ ├── bitrate_allocation.h │ │ │ │ ├── call_factory_interface.h │ │ │ │ ├── transport.cc │ │ │ │ └── transport.h │ │ │ ├── candidate.cc │ │ │ ├── candidate.h │ │ │ ├── create_peerconnection_factory.cc │ │ │ ├── create_peerconnection_factory.h │ │ │ ├── crypto/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── crypto_options.cc │ │ │ │ ├── crypto_options.h │ │ │ │ ├── frame_decryptor_interface.h │ │ │ │ └── frame_encryptor_interface.h │ │ │ ├── crypto_params.h │ │ │ ├── data_channel_interface.cc │ │ │ ├── data_channel_interface.h │ │ │ ├── dtls_transport_interface.cc │ │ │ ├── dtls_transport_interface.h │ │ │ ├── dtmf_sender_interface.h │ │ │ ├── fec_controller.h │ │ │ ├── fec_controller_override.h │ │ │ ├── frame_transformer_interface.h │ │ │ ├── function_view.h │ │ │ ├── function_view_unittest.cc │ │ │ ├── g3doc/ │ │ │ │ ├── index.md │ │ │ │ └── threading_design.md │ │ │ ├── ice_transport_factory.cc │ │ │ ├── ice_transport_factory.h │ │ │ ├── ice_transport_interface.h │ │ │ ├── jsep.cc │ │ │ ├── jsep.h │ │ │ ├── jsep_ice_candidate.cc │ │ │ ├── jsep_ice_candidate.h │ │ │ ├── jsep_session_description.h │ │ │ ├── media_stream_interface.cc │ │ │ ├── media_stream_interface.h │ │ │ ├── media_stream_track.h │ │ │ ├── media_types.cc │ │ │ ├── media_types.h │ │ │ ├── neteq/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── custom_neteq_factory.cc │ │ │ │ ├── custom_neteq_factory.h │ │ │ │ ├── default_neteq_controller_factory.cc │ │ │ │ ├── default_neteq_controller_factory.h │ │ │ │ ├── neteq.cc │ │ │ │ ├── neteq.h │ │ │ │ ├── neteq_controller.h │ │ │ │ ├── neteq_controller_factory.h │ │ │ │ ├── neteq_factory.h │ │ │ │ ├── tick_timer.cc │ │ │ │ ├── tick_timer.h │ │ │ │ └── tick_timer_unittest.cc │ │ │ ├── network_state_predictor.h │ │ │ ├── notifier.h │ │ │ ├── numerics/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── samples_stats_counter.cc │ │ │ │ ├── samples_stats_counter.h │ │ │ │ └── samples_stats_counter_unittest.cc │ │ │ ├── packet_socket_factory.h │ │ │ ├── peer_connection_interface.cc │ │ │ ├── peer_connection_interface.h │ │ │ ├── priority.h │ │ │ ├── ref_counted_base.h │ │ │ ├── rtc_error.cc │ │ │ ├── rtc_error.h │ │ │ ├── rtc_error_unittest.cc │ │ │ ├── rtc_event_log/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── rtc_event.cc │ │ │ │ ├── rtc_event.h │ │ │ │ ├── rtc_event_log.cc │ │ │ │ ├── rtc_event_log.h │ │ │ │ ├── rtc_event_log_factory.cc │ │ │ │ ├── rtc_event_log_factory.h │ │ │ │ └── rtc_event_log_factory_interface.h │ │ │ ├── rtc_event_log_output.h │ │ │ ├── rtc_event_log_output_file.cc │ │ │ ├── rtc_event_log_output_file.h │ │ │ ├── rtc_event_log_output_file_unittest.cc │ │ │ ├── rtp_headers.cc │ │ │ ├── rtp_headers.h │ │ │ ├── rtp_packet_info.cc │ │ │ ├── rtp_packet_info.h │ │ │ ├── rtp_packet_info_unittest.cc │ │ │ ├── rtp_packet_infos.h │ │ │ ├── rtp_packet_infos_unittest.cc │ │ │ ├── rtp_parameters.cc │ │ │ ├── rtp_parameters.h │ │ │ ├── rtp_parameters_unittest.cc │ │ │ ├── rtp_receiver_interface.cc │ │ │ ├── rtp_receiver_interface.h │ │ │ ├── rtp_sender_interface.cc │ │ │ ├── rtp_sender_interface.h │ │ │ ├── rtp_transceiver_direction.h │ │ │ ├── rtp_transceiver_interface.cc │ │ │ ├── rtp_transceiver_interface.h │ │ │ ├── scoped_refptr.h │ │ │ ├── scoped_refptr_unittest.cc │ │ │ ├── sctp_transport_interface.cc │ │ │ ├── sctp_transport_interface.h │ │ │ ├── sequence_checker.h │ │ │ ├── sequence_checker_unittest.cc │ │ │ ├── set_local_description_observer_interface.h │ │ │ ├── set_remote_description_observer_interface.h │ │ │ ├── stats/ │ │ │ │ ├── OWNERS │ │ │ │ ├── rtc_stats.h │ │ │ │ ├── rtc_stats_collector_callback.h │ │ │ │ ├── rtc_stats_report.h │ │ │ │ └── rtcstats_objects.h │ │ │ ├── stats_types.cc │ │ │ ├── stats_types.h │ │ │ ├── task_queue/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── default_task_queue_factory.h │ │ │ │ ├── default_task_queue_factory_gcd.cc │ │ │ │ ├── default_task_queue_factory_libevent.cc │ │ │ │ ├── default_task_queue_factory_stdlib.cc │ │ │ │ ├── default_task_queue_factory_unittest.cc │ │ │ │ ├── default_task_queue_factory_win.cc │ │ │ │ ├── queued_task.h │ │ │ │ ├── task_queue_base.cc │ │ │ │ ├── task_queue_base.h │ │ │ │ ├── task_queue_factory.h │ │ │ │ ├── task_queue_test.cc │ │ │ │ └── task_queue_test.h │ │ │ ├── test/ │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── audio_quality_analyzer_interface.h │ │ │ │ ├── audioproc_float.cc │ │ │ │ ├── audioproc_float.h │ │ │ │ ├── compile_all_headers.cc │ │ │ │ ├── create_frame_generator.cc │ │ │ │ ├── create_frame_generator.h │ │ │ │ ├── create_network_emulation_manager.cc │ │ │ │ ├── create_network_emulation_manager.h │ │ │ │ ├── create_peer_connection_quality_test_frame_generator.cc │ │ │ │ ├── create_peer_connection_quality_test_frame_generator.h │ │ │ │ ├── create_peerconnection_quality_test_fixture.cc │ │ │ │ ├── create_peerconnection_quality_test_fixture.h │ │ │ │ ├── create_simulcast_test_fixture.cc │ │ │ │ ├── create_simulcast_test_fixture.h │ │ │ │ ├── create_time_controller.cc │ │ │ │ ├── create_time_controller.h │ │ │ │ ├── create_time_controller_unittest.cc │ │ │ │ ├── create_video_quality_test_fixture.cc │ │ │ │ ├── create_video_quality_test_fixture.h │ │ │ │ ├── create_videocodec_test_fixture.cc │ │ │ │ ├── create_videocodec_test_fixture.h │ │ │ │ ├── dummy_peer_connection.h │ │ │ │ ├── fake_frame_decryptor.cc │ │ │ │ ├── fake_frame_decryptor.h │ │ │ │ ├── fake_frame_encryptor.cc │ │ │ │ ├── fake_frame_encryptor.h │ │ │ │ ├── frame_generator_interface.cc │ │ │ │ ├── frame_generator_interface.h │ │ │ │ ├── mock_async_dns_resolver.h │ │ │ │ ├── mock_audio_mixer.h │ │ │ │ ├── mock_audio_sink.h │ │ │ │ ├── mock_data_channel.h │ │ │ │ ├── mock_fec_controller_override.h │ │ │ │ ├── mock_frame_decryptor.h │ │ │ │ ├── mock_frame_encryptor.h │ │ │ │ ├── mock_media_stream_interface.h │ │ │ │ ├── mock_peer_connection_factory_interface.h │ │ │ │ ├── mock_peerconnectioninterface.h │ │ │ │ ├── mock_rtp_transceiver.h │ │ │ │ ├── mock_rtpreceiver.h │ │ │ │ ├── mock_rtpsender.h │ │ │ │ ├── mock_transformable_video_frame.h │ │ │ │ ├── mock_video_bitrate_allocator.h │ │ │ │ ├── mock_video_bitrate_allocator_factory.h │ │ │ │ ├── mock_video_decoder.h │ │ │ │ ├── mock_video_decoder_factory.h │ │ │ │ ├── mock_video_encoder.h │ │ │ │ ├── mock_video_encoder_factory.h │ │ │ │ ├── mock_video_track.h │ │ │ │ ├── neteq_simulator.cc │ │ │ │ ├── neteq_simulator.h │ │ │ │ ├── neteq_simulator_factory.cc │ │ │ │ ├── neteq_simulator_factory.h │ │ │ │ ├── network_emulation/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── DEPS │ │ │ │ │ ├── create_cross_traffic.cc │ │ │ │ │ ├── create_cross_traffic.h │ │ │ │ │ ├── cross_traffic.h │ │ │ │ │ ├── network_emulation_interfaces.cc │ │ │ │ │ └── network_emulation_interfaces.h │ │ │ │ ├── network_emulation_manager.cc │ │ │ │ ├── network_emulation_manager.h │ │ │ │ ├── peerconnection_quality_test_fixture.h │ │ │ │ ├── simulated_network.h │ │ │ │ ├── simulcast_test_fixture.h │ │ │ │ ├── stats_observer_interface.h │ │ │ │ ├── test_dependency_factory.cc │ │ │ │ ├── test_dependency_factory.h │ │ │ │ ├── time_controller.cc │ │ │ │ ├── time_controller.h │ │ │ │ ├── track_id_stream_info_map.h │ │ │ │ ├── video/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── function_video_decoder_factory.h │ │ │ │ │ └── function_video_encoder_factory.h │ │ │ │ ├── video_quality_analyzer_interface.h │ │ │ │ ├── video_quality_test_fixture.h │ │ │ │ ├── videocodec_test_fixture.h │ │ │ │ ├── videocodec_test_stats.cc │ │ │ │ └── videocodec_test_stats.h │ │ │ ├── transport/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── bitrate_settings.cc │ │ │ │ ├── bitrate_settings.h │ │ │ │ ├── data_channel_transport_interface.h │ │ │ │ ├── enums.h │ │ │ │ ├── field_trial_based_config.cc │ │ │ │ ├── field_trial_based_config.h │ │ │ │ ├── goog_cc_factory.cc │ │ │ │ ├── goog_cc_factory.h │ │ │ │ ├── network_control.h │ │ │ │ ├── network_types.cc │ │ │ │ ├── network_types.h │ │ │ │ ├── rtp/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── dependency_descriptor.cc │ │ │ │ │ ├── dependency_descriptor.h │ │ │ │ │ └── rtp_source.h │ │ │ │ ├── sctp_transport_factory_interface.h │ │ │ │ ├── stun.cc │ │ │ │ ├── stun.h │ │ │ │ ├── stun_unittest.cc │ │ │ │ ├── test/ │ │ │ │ │ ├── create_feedback_generator.cc │ │ │ │ │ ├── create_feedback_generator.h │ │ │ │ │ ├── feedback_generator_interface.h │ │ │ │ │ └── mock_network_control.h │ │ │ │ └── webrtc_key_value_config.h │ │ │ ├── turn_customizer.h │ │ │ ├── uma_metrics.h │ │ │ ├── units/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── OWNERS │ │ │ │ ├── data_rate.cc │ │ │ │ ├── data_rate.h │ │ │ │ ├── data_rate_unittest.cc │ │ │ │ ├── data_size.cc │ │ │ │ ├── data_size.h │ │ │ │ ├── data_size_unittest.cc │ │ │ │ ├── frequency.cc │ │ │ │ ├── frequency.h │ │ │ │ ├── frequency_unittest.cc │ │ │ │ ├── time_delta.cc │ │ │ │ ├── time_delta.h │ │ │ │ ├── time_delta_unittest.cc │ │ │ │ ├── timestamp.cc │ │ │ │ ├── timestamp.h │ │ │ │ └── timestamp_unittest.cc │ │ │ ├── video/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── builtin_video_bitrate_allocator_factory.cc │ │ │ │ ├── builtin_video_bitrate_allocator_factory.h │ │ │ │ ├── color_space.cc │ │ │ │ ├── color_space.h │ │ │ │ ├── encoded_frame.cc │ │ │ │ ├── encoded_frame.h │ │ │ │ ├── encoded_image.cc │ │ │ │ ├── encoded_image.h │ │ │ │ ├── hdr_metadata.cc │ │ │ │ ├── hdr_metadata.h │ │ │ │ ├── i010_buffer.cc │ │ │ │ ├── i010_buffer.h │ │ │ │ ├── i420_buffer.cc │ │ │ │ ├── i420_buffer.h │ │ │ │ ├── nv12_buffer.cc │ │ │ │ ├── nv12_buffer.h │ │ │ │ ├── recordable_encoded_frame.h │ │ │ │ ├── render_resolution.h │ │ │ │ ├── rtp_video_frame_assembler.cc │ │ │ │ ├── rtp_video_frame_assembler.h │ │ │ │ ├── rtp_video_frame_assembler_unittests.cc │ │ │ │ ├── test/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── color_space_unittest.cc │ │ │ │ │ ├── mock_recordable_encoded_frame.h │ │ │ │ │ ├── nv12_buffer_unittest.cc │ │ │ │ │ ├── video_adaptation_counters_unittest.cc │ │ │ │ │ └── video_bitrate_allocation_unittest.cc │ │ │ │ ├── video_adaptation_counters.cc │ │ │ │ ├── video_adaptation_counters.h │ │ │ │ ├── video_adaptation_reason.h │ │ │ │ ├── video_bitrate_allocation.cc │ │ │ │ ├── video_bitrate_allocation.h │ │ │ │ ├── video_bitrate_allocator.cc │ │ │ │ ├── video_bitrate_allocator.h │ │ │ │ ├── video_bitrate_allocator_factory.h │ │ │ │ ├── video_codec_constants.h │ │ │ │ ├── video_codec_type.h │ │ │ │ ├── video_content_type.cc │ │ │ │ ├── video_content_type.h │ │ │ │ ├── video_frame.cc │ │ │ │ ├── video_frame.h │ │ │ │ ├── video_frame_buffer.cc │ │ │ │ ├── video_frame_buffer.h │ │ │ │ ├── video_frame_metadata.cc │ │ │ │ ├── video_frame_metadata.h │ │ │ │ ├── video_frame_metadata_unittest.cc │ │ │ │ ├── video_frame_type.h │ │ │ │ ├── video_layers_allocation.h │ │ │ │ ├── video_rotation.h │ │ │ │ ├── video_sink_interface.h │ │ │ │ ├── video_source_interface.cc │ │ │ │ ├── video_source_interface.h │ │ │ │ ├── video_stream_decoder.h │ │ │ │ ├── video_stream_decoder_create.cc │ │ │ │ ├── video_stream_decoder_create.h │ │ │ │ ├── video_stream_decoder_create_unittest.cc │ │ │ │ ├── video_stream_encoder_interface.h │ │ │ │ ├── video_stream_encoder_observer.h │ │ │ │ ├── video_stream_encoder_settings.h │ │ │ │ ├── video_timing.cc │ │ │ │ └── video_timing.h │ │ │ ├── video_codecs/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── OWNERS │ │ │ │ ├── bitstream_parser.h │ │ │ │ ├── builtin_video_decoder_factory.cc │ │ │ │ ├── builtin_video_decoder_factory.h │ │ │ │ ├── builtin_video_encoder_factory.cc │ │ │ │ ├── builtin_video_encoder_factory.h │ │ │ │ ├── h264_profile_level_id.cc │ │ │ │ ├── h264_profile_level_id.h │ │ │ │ ├── sdp_video_format.cc │ │ │ │ ├── sdp_video_format.h │ │ │ │ ├── spatial_layer.cc │ │ │ │ ├── spatial_layer.h │ │ │ │ ├── test/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── builtin_video_encoder_factory_unittest.cc │ │ │ │ │ ├── h264_profile_level_id_unittest.cc │ │ │ │ │ ├── sdp_video_format_unittest.cc │ │ │ │ │ ├── video_decoder_software_fallback_wrapper_unittest.cc │ │ │ │ │ └── video_encoder_software_fallback_wrapper_unittest.cc │ │ │ │ ├── video_codec.cc │ │ │ │ ├── video_codec.h │ │ │ │ ├── video_decoder.cc │ │ │ │ ├── video_decoder.h │ │ │ │ ├── video_decoder_factory.h │ │ │ │ ├── video_decoder_software_fallback_wrapper.cc │ │ │ │ ├── video_decoder_software_fallback_wrapper.h │ │ │ │ ├── video_encoder.cc │ │ │ │ ├── video_encoder.h │ │ │ │ ├── video_encoder_config.cc │ │ │ │ ├── video_encoder_config.h │ │ │ │ ├── video_encoder_factory.h │ │ │ │ ├── video_encoder_software_fallback_wrapper.cc │ │ │ │ ├── video_encoder_software_fallback_wrapper.h │ │ │ │ ├── vp8_frame_buffer_controller.h │ │ │ │ ├── vp8_frame_config.cc │ │ │ │ ├── vp8_frame_config.h │ │ │ │ ├── vp8_temporal_layers.cc │ │ │ │ ├── vp8_temporal_layers.h │ │ │ │ ├── vp8_temporal_layers_factory.cc │ │ │ │ ├── vp8_temporal_layers_factory.h │ │ │ │ ├── vp9_profile.cc │ │ │ │ └── vp9_profile.h │ │ │ ├── video_track_source_proxy_factory.h │ │ │ └── voip/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── test/ │ │ │ │ ├── compile_all_headers.cc │ │ │ │ ├── mock_voip_engine.h │ │ │ │ └── voip_engine_factory_unittest.cc │ │ │ ├── voip_base.h │ │ │ ├── voip_codec.h │ │ │ ├── voip_dtmf.h │ │ │ ├── voip_engine.h │ │ │ ├── voip_engine_factory.cc │ │ │ ├── voip_engine_factory.h │ │ │ ├── voip_network.h │ │ │ ├── voip_statistics.h │ │ │ └── voip_volume_control.h │ │ ├── audio/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── OWNERS │ │ │ ├── audio_level.cc │ │ │ ├── audio_level.h │ │ │ ├── audio_receive_stream.cc │ │ │ ├── audio_receive_stream.h │ │ │ ├── audio_receive_stream_unittest.cc │ │ │ ├── audio_send_stream.cc │ │ │ ├── audio_send_stream.h │ │ │ ├── audio_send_stream_tests.cc │ │ │ ├── audio_send_stream_unittest.cc │ │ │ ├── audio_state.cc │ │ │ ├── audio_state.h │ │ │ ├── audio_state_unittest.cc │ │ │ ├── audio_transport_impl.cc │ │ │ ├── audio_transport_impl.h │ │ │ ├── channel_receive.cc │ │ │ ├── channel_receive.h │ │ │ ├── channel_receive_frame_transformer_delegate.cc │ │ │ ├── channel_receive_frame_transformer_delegate.h │ │ │ ├── channel_receive_frame_transformer_delegate_unittest.cc │ │ │ ├── channel_send.cc │ │ │ ├── channel_send.h │ │ │ ├── channel_send_frame_transformer_delegate.cc │ │ │ ├── channel_send_frame_transformer_delegate.h │ │ │ ├── channel_send_frame_transformer_delegate_unittest.cc │ │ │ ├── conversion.h │ │ │ ├── mock_voe_channel_proxy.h │ │ │ ├── null_audio_poller.cc │ │ │ ├── null_audio_poller.h │ │ │ ├── remix_resample.cc │ │ │ ├── remix_resample.h │ │ │ ├── remix_resample_unittest.cc │ │ │ ├── test/ │ │ │ │ ├── audio_bwe_integration_test.cc │ │ │ │ ├── audio_bwe_integration_test.h │ │ │ │ ├── audio_end_to_end_test.cc │ │ │ │ ├── audio_end_to_end_test.h │ │ │ │ ├── audio_stats_test.cc │ │ │ │ ├── low_bandwidth_audio_test.cc │ │ │ │ ├── low_bandwidth_audio_test.py │ │ │ │ ├── low_bandwidth_audio_test_flags.cc │ │ │ │ ├── nack_test.cc │ │ │ │ ├── pc_low_bandwidth_audio_test.cc │ │ │ │ └── unittests/ │ │ │ │ └── low_bandwidth_audio_test_test.py │ │ │ ├── utility/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── audio_frame_operations.cc │ │ │ │ ├── audio_frame_operations.h │ │ │ │ ├── audio_frame_operations_unittest.cc │ │ │ │ ├── channel_mixer.cc │ │ │ │ ├── channel_mixer.h │ │ │ │ ├── channel_mixer_unittest.cc │ │ │ │ ├── channel_mixing_matrix.cc │ │ │ │ ├── channel_mixing_matrix.h │ │ │ │ └── channel_mixing_matrix_unittest.cc │ │ │ └── voip/ │ │ │ ├── BUILD.gn │ │ │ ├── audio_channel.cc │ │ │ ├── audio_channel.h │ │ │ ├── audio_egress.cc │ │ │ ├── audio_egress.h │ │ │ ├── audio_ingress.cc │ │ │ ├── audio_ingress.h │ │ │ ├── test/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── audio_channel_unittest.cc │ │ │ │ ├── audio_egress_unittest.cc │ │ │ │ ├── audio_ingress_unittest.cc │ │ │ │ ├── mock_task_queue.h │ │ │ │ └── voip_core_unittest.cc │ │ │ ├── voip_core.cc │ │ │ └── voip_core.h │ │ ├── build_overrides/ │ │ │ ├── OWNERS │ │ │ ├── README.md │ │ │ ├── build.gni │ │ │ └── gtest.gni │ │ ├── call/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── OWNERS │ │ │ ├── adaptation/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── OWNERS │ │ │ │ ├── adaptation_constraint.cc │ │ │ │ ├── adaptation_constraint.h │ │ │ │ ├── broadcast_resource_listener.cc │ │ │ │ ├── broadcast_resource_listener.h │ │ │ │ ├── broadcast_resource_listener_unittest.cc │ │ │ │ ├── degradation_preference_provider.cc │ │ │ │ ├── degradation_preference_provider.h │ │ │ │ ├── encoder_settings.cc │ │ │ │ ├── encoder_settings.h │ │ │ │ ├── resource_adaptation_processor.cc │ │ │ │ ├── resource_adaptation_processor.h │ │ │ │ ├── resource_adaptation_processor_interface.cc │ │ │ │ ├── resource_adaptation_processor_interface.h │ │ │ │ ├── resource_adaptation_processor_unittest.cc │ │ │ │ ├── resource_unittest.cc │ │ │ │ ├── test/ │ │ │ │ │ ├── fake_adaptation_constraint.cc │ │ │ │ │ ├── fake_adaptation_constraint.h │ │ │ │ │ ├── fake_frame_rate_provider.cc │ │ │ │ │ ├── fake_frame_rate_provider.h │ │ │ │ │ ├── fake_resource.cc │ │ │ │ │ ├── fake_resource.h │ │ │ │ │ ├── fake_video_stream_input_state_provider.cc │ │ │ │ │ ├── fake_video_stream_input_state_provider.h │ │ │ │ │ └── mock_resource_listener.h │ │ │ │ ├── video_source_restrictions.cc │ │ │ │ ├── video_source_restrictions.h │ │ │ │ ├── video_source_restrictions_unittest.cc │ │ │ │ ├── video_stream_adapter.cc │ │ │ │ ├── video_stream_adapter.h │ │ │ │ ├── video_stream_adapter_unittest.cc │ │ │ │ ├── video_stream_input_state.cc │ │ │ │ ├── video_stream_input_state.h │ │ │ │ ├── video_stream_input_state_provider.cc │ │ │ │ ├── video_stream_input_state_provider.h │ │ │ │ └── video_stream_input_state_provider_unittest.cc │ │ │ ├── audio_receive_stream.cc │ │ │ ├── audio_receive_stream.h │ │ │ ├── audio_send_stream.cc │ │ │ ├── audio_send_stream.h │ │ │ ├── audio_sender.h │ │ │ ├── audio_state.cc │ │ │ ├── audio_state.h │ │ │ ├── bitrate_allocator.cc │ │ │ ├── bitrate_allocator.h │ │ │ ├── bitrate_allocator_unittest.cc │ │ │ ├── bitrate_estimator_tests.cc │ │ │ ├── call.cc │ │ │ ├── call.h │ │ │ ├── call_config.cc │ │ │ ├── call_config.h │ │ │ ├── call_factory.cc │ │ │ ├── call_factory.h │ │ │ ├── call_perf_tests.cc │ │ │ ├── call_unittest.cc │ │ │ ├── degraded_call.cc │ │ │ ├── degraded_call.h │ │ │ ├── fake_network_pipe.cc │ │ │ ├── fake_network_pipe.h │ │ │ ├── fake_network_pipe_unittest.cc │ │ │ ├── flexfec_receive_stream.cc │ │ │ ├── flexfec_receive_stream.h │ │ │ ├── flexfec_receive_stream_impl.cc │ │ │ ├── flexfec_receive_stream_impl.h │ │ │ ├── flexfec_receive_stream_unittest.cc │ │ │ ├── packet_receiver.h │ │ │ ├── rampup_tests.cc │ │ │ ├── rampup_tests.h │ │ │ ├── receive_stream.h │ │ │ ├── receive_time_calculator.cc │ │ │ ├── receive_time_calculator.h │ │ │ ├── receive_time_calculator_unittest.cc │ │ │ ├── rtp_bitrate_configurator.cc │ │ │ ├── rtp_bitrate_configurator.h │ │ │ ├── rtp_bitrate_configurator_unittest.cc │ │ │ ├── rtp_config.cc │ │ │ ├── rtp_config.h │ │ │ ├── rtp_demuxer.cc │ │ │ ├── rtp_demuxer.h │ │ │ ├── rtp_demuxer_unittest.cc │ │ │ ├── rtp_packet_sink_interface.h │ │ │ ├── rtp_payload_params.cc │ │ │ ├── rtp_payload_params.h │ │ │ ├── rtp_payload_params_unittest.cc │ │ │ ├── rtp_stream_receiver_controller.cc │ │ │ ├── rtp_stream_receiver_controller.h │ │ │ ├── rtp_stream_receiver_controller_interface.h │ │ │ ├── rtp_transport_config.h │ │ │ ├── rtp_transport_controller_send.cc │ │ │ ├── rtp_transport_controller_send.h │ │ │ ├── rtp_transport_controller_send_factory.h │ │ │ ├── rtp_transport_controller_send_factory_interface.h │ │ │ ├── rtp_transport_controller_send_interface.h │ │ │ ├── rtp_video_sender.cc │ │ │ ├── rtp_video_sender.h │ │ │ ├── rtp_video_sender_interface.h │ │ │ ├── rtp_video_sender_unittest.cc │ │ │ ├── rtx_receive_stream.cc │ │ │ ├── rtx_receive_stream.h │ │ │ ├── rtx_receive_stream_unittest.cc │ │ │ ├── simulated_network.cc │ │ │ ├── simulated_network.h │ │ │ ├── simulated_network_unittest.cc │ │ │ ├── simulated_packet_receiver.h │ │ │ ├── syncable.cc │ │ │ ├── syncable.h │ │ │ ├── test/ │ │ │ │ ├── mock_audio_send_stream.h │ │ │ │ ├── mock_bitrate_allocator.h │ │ │ │ ├── mock_rtp_packet_sink_interface.h │ │ │ │ └── mock_rtp_transport_controller_send.h │ │ │ ├── version.cc │ │ │ ├── version.h │ │ │ ├── video_receive_stream.cc │ │ │ ├── video_receive_stream.h │ │ │ ├── video_send_stream.cc │ │ │ └── video_send_stream.h │ │ ├── codereview.settings │ │ ├── common_audio/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── OWNERS │ │ │ ├── audio_converter.cc │ │ │ ├── audio_converter.h │ │ │ ├── audio_converter_unittest.cc │ │ │ ├── audio_util.cc │ │ │ ├── audio_util_unittest.cc │ │ │ ├── channel_buffer.cc │ │ │ ├── channel_buffer.h │ │ │ ├── channel_buffer_unittest.cc │ │ │ ├── fir_filter.h │ │ │ ├── fir_filter_avx2.cc │ │ │ ├── fir_filter_avx2.h │ │ │ ├── fir_filter_c.cc │ │ │ ├── fir_filter_c.h │ │ │ ├── fir_filter_factory.cc │ │ │ ├── fir_filter_factory.h │ │ │ ├── fir_filter_neon.cc │ │ │ ├── fir_filter_neon.h │ │ │ ├── fir_filter_sse.cc │ │ │ ├── fir_filter_sse.h │ │ │ ├── fir_filter_unittest.cc │ │ │ ├── include/ │ │ │ │ └── audio_util.h │ │ │ ├── mocks/ │ │ │ │ └── mock_smoothing_filter.h │ │ │ ├── real_fourier.cc │ │ │ ├── real_fourier.h │ │ │ ├── real_fourier_ooura.cc │ │ │ ├── real_fourier_ooura.h │ │ │ ├── real_fourier_unittest.cc │ │ │ ├── resampler/ │ │ │ │ ├── include/ │ │ │ │ │ ├── push_resampler.h │ │ │ │ │ └── resampler.h │ │ │ │ ├── push_resampler.cc │ │ │ │ ├── push_resampler_unittest.cc │ │ │ │ ├── push_sinc_resampler.cc │ │ │ │ ├── push_sinc_resampler.h │ │ │ │ ├── push_sinc_resampler_unittest.cc │ │ │ │ ├── resampler.cc │ │ │ │ ├── resampler_unittest.cc │ │ │ │ ├── sinc_resampler.cc │ │ │ │ ├── sinc_resampler.h │ │ │ │ ├── sinc_resampler_avx2.cc │ │ │ │ ├── sinc_resampler_neon.cc │ │ │ │ ├── sinc_resampler_sse.cc │ │ │ │ ├── sinc_resampler_unittest.cc │ │ │ │ ├── sinusoidal_linear_chirp_source.cc │ │ │ │ └── sinusoidal_linear_chirp_source.h │ │ │ ├── ring_buffer.c │ │ │ ├── ring_buffer.h │ │ │ ├── ring_buffer_unittest.cc │ │ │ ├── signal_processing/ │ │ │ │ ├── auto_corr_to_refl_coef.c │ │ │ │ ├── auto_correlation.c │ │ │ │ ├── complex_bit_reverse.c │ │ │ │ ├── complex_bit_reverse_arm.S │ │ │ │ ├── complex_bit_reverse_mips.c │ │ │ │ ├── complex_fft.c │ │ │ │ ├── complex_fft_mips.c │ │ │ │ ├── complex_fft_tables.h │ │ │ │ ├── copy_set_operations.c │ │ │ │ ├── cross_correlation.c │ │ │ │ ├── cross_correlation_mips.c │ │ │ │ ├── cross_correlation_neon.c │ │ │ │ ├── division_operations.c │ │ │ │ ├── dot_product_with_scale.cc │ │ │ │ ├── dot_product_with_scale.h │ │ │ │ ├── downsample_fast.c │ │ │ │ ├── downsample_fast_mips.c │ │ │ │ ├── downsample_fast_neon.c │ │ │ │ ├── energy.c │ │ │ │ ├── filter_ar.c │ │ │ │ ├── filter_ar_fast_q12.c │ │ │ │ ├── filter_ar_fast_q12_armv7.S │ │ │ │ ├── filter_ar_fast_q12_mips.c │ │ │ │ ├── filter_ma_fast_q12.c │ │ │ │ ├── get_hanning_window.c │ │ │ │ ├── get_scaling_square.c │ │ │ │ ├── ilbc_specific_functions.c │ │ │ │ ├── include/ │ │ │ │ │ ├── real_fft.h │ │ │ │ │ ├── signal_processing_library.h │ │ │ │ │ ├── spl_inl.h │ │ │ │ │ ├── spl_inl_armv7.h │ │ │ │ │ └── spl_inl_mips.h │ │ │ │ ├── levinson_durbin.c │ │ │ │ ├── lpc_to_refl_coef.c │ │ │ │ ├── min_max_operations.c │ │ │ │ ├── min_max_operations_mips.c │ │ │ │ ├── min_max_operations_neon.c │ │ │ │ ├── randomization_functions.c │ │ │ │ ├── real_fft.c │ │ │ │ ├── real_fft_unittest.cc │ │ │ │ ├── refl_coef_to_lpc.c │ │ │ │ ├── resample.c │ │ │ │ ├── resample_48khz.c │ │ │ │ ├── resample_by_2.c │ │ │ │ ├── resample_by_2_internal.c │ │ │ │ ├── resample_by_2_internal.h │ │ │ │ ├── resample_by_2_mips.c │ │ │ │ ├── resample_fractional.c │ │ │ │ ├── signal_processing_unittest.cc │ │ │ │ ├── spl_init.c │ │ │ │ ├── spl_inl.c │ │ │ │ ├── spl_sqrt.c │ │ │ │ ├── splitting_filter.c │ │ │ │ ├── sqrt_of_one_minus_x_squared.c │ │ │ │ ├── vector_scaling_operations.c │ │ │ │ └── vector_scaling_operations_mips.c │ │ │ ├── smoothing_filter.cc │ │ │ ├── smoothing_filter.h │ │ │ ├── smoothing_filter_unittest.cc │ │ │ ├── third_party/ │ │ │ │ ├── ooura/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.chromium │ │ │ │ │ ├── fft_size_128/ │ │ │ │ │ │ ├── ooura_fft.cc │ │ │ │ │ │ ├── ooura_fft.h │ │ │ │ │ │ ├── ooura_fft_mips.cc │ │ │ │ │ │ ├── ooura_fft_neon.cc │ │ │ │ │ │ ├── ooura_fft_sse2.cc │ │ │ │ │ │ ├── ooura_fft_tables_common.h │ │ │ │ │ │ └── ooura_fft_tables_neon_sse2.h │ │ │ │ │ └── fft_size_256/ │ │ │ │ │ ├── fft4g.cc │ │ │ │ │ └── fft4g.h │ │ │ │ └── spl_sqrt_floor/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── LICENSE │ │ │ │ ├── README.chromium │ │ │ │ ├── spl_sqrt_floor.c │ │ │ │ ├── spl_sqrt_floor.h │ │ │ │ ├── spl_sqrt_floor_arm.S │ │ │ │ └── spl_sqrt_floor_mips.c │ │ │ ├── vad/ │ │ │ │ ├── include/ │ │ │ │ │ ├── vad.h │ │ │ │ │ └── webrtc_vad.h │ │ │ │ ├── mock/ │ │ │ │ │ └── mock_vad.h │ │ │ │ ├── vad.cc │ │ │ │ ├── vad_core.c │ │ │ │ ├── vad_core.h │ │ │ │ ├── vad_core_unittest.cc │ │ │ │ ├── vad_filterbank.c │ │ │ │ ├── vad_filterbank.h │ │ │ │ ├── vad_filterbank_unittest.cc │ │ │ │ ├── vad_gmm.c │ │ │ │ ├── vad_gmm.h │ │ │ │ ├── vad_gmm_unittest.cc │ │ │ │ ├── vad_sp.c │ │ │ │ ├── vad_sp.h │ │ │ │ ├── vad_sp_unittest.cc │ │ │ │ ├── vad_unittest.cc │ │ │ │ ├── vad_unittest.h │ │ │ │ └── webrtc_vad.c │ │ │ ├── wav_file.cc │ │ │ ├── wav_file.h │ │ │ ├── wav_file_unittest.cc │ │ │ ├── wav_header.cc │ │ │ ├── wav_header.h │ │ │ ├── wav_header_unittest.cc │ │ │ ├── window_generator.cc │ │ │ ├── window_generator.h │ │ │ └── window_generator_unittest.cc │ │ ├── common_video/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── OWNERS │ │ │ ├── bitrate_adjuster.cc │ │ │ ├── bitrate_adjuster_unittest.cc │ │ │ ├── frame_counts.h │ │ │ ├── frame_rate_estimator.cc │ │ │ ├── frame_rate_estimator.h │ │ │ ├── frame_rate_estimator_unittest.cc │ │ │ ├── generic_frame_descriptor/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── OWNERS │ │ │ │ ├── generic_frame_info.cc │ │ │ │ └── generic_frame_info.h │ │ │ ├── h264/ │ │ │ │ ├── OWNERS │ │ │ │ ├── h264_bitstream_parser.cc │ │ │ │ ├── h264_bitstream_parser.h │ │ │ │ ├── h264_bitstream_parser_unittest.cc │ │ │ │ ├── h264_common.cc │ │ │ │ ├── h264_common.h │ │ │ │ ├── pps_parser.cc │ │ │ │ ├── pps_parser.h │ │ │ │ ├── pps_parser_unittest.cc │ │ │ │ ├── sps_parser.cc │ │ │ │ ├── sps_parser.h │ │ │ │ ├── sps_parser_unittest.cc │ │ │ │ ├── sps_vui_rewriter.cc │ │ │ │ ├── sps_vui_rewriter.h │ │ │ │ └── sps_vui_rewriter_unittest.cc │ │ │ ├── include/ │ │ │ │ ├── bitrate_adjuster.h │ │ │ │ ├── incoming_video_stream.h │ │ │ │ ├── quality_limitation_reason.h │ │ │ │ ├── video_frame_buffer.h │ │ │ │ └── video_frame_buffer_pool.h │ │ │ ├── incoming_video_stream.cc │ │ │ ├── libyuv/ │ │ │ │ ├── include/ │ │ │ │ │ └── webrtc_libyuv.h │ │ │ │ ├── libyuv_unittest.cc │ │ │ │ └── webrtc_libyuv.cc │ │ │ ├── test/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── utilities.cc │ │ │ │ └── utilities.h │ │ │ ├── video_frame_buffer.cc │ │ │ ├── video_frame_buffer_pool.cc │ │ │ ├── video_frame_buffer_pool_unittest.cc │ │ │ ├── video_frame_unittest.cc │ │ │ ├── video_render_frames.cc │ │ │ └── video_render_frames.h │ │ ├── data/ │ │ │ ├── audio_processing/ │ │ │ │ ├── OWNERS │ │ │ │ └── android/ │ │ │ │ ├── output_data_fixed.pb │ │ │ │ └── output_data_float.pb │ │ │ └── voice_engine/ │ │ │ ├── audio_long16big_endian.pcm │ │ │ ├── audio_long16noise.pcm │ │ │ ├── audio_long8.pcm │ │ │ ├── audio_short16.pcm │ │ │ └── stereo_rtp_files/ │ │ │ ├── HRTF_pcm16wb.rtp │ │ │ ├── HRTF_pcm16wb_jitter.rtp │ │ │ ├── README.txt │ │ │ ├── hrtf_g722_1C_48.rtp │ │ │ ├── hrtf_g722_1C_48_jitterT2.rtp │ │ │ ├── stereo_g729.rtp │ │ │ ├── stereo_g729_jitter.rtp │ │ │ ├── stereo_pcm16wb.rtp │ │ │ ├── stereo_pcm16wb_jitter.rtp │ │ │ ├── stereo_pcmu.rtp │ │ │ ├── stereo_pcmu_jitter.rtp │ │ │ ├── stereo_pcmu_vad.rtp │ │ │ ├── stereo_pcmu_vad_jitter.rtp │ │ │ └── toggling_stereo_g729_pt18_pt125.rtp │ │ ├── docs/ │ │ │ ├── OWNERS │ │ │ ├── bug-reporting.md │ │ │ ├── faq.md │ │ │ ├── native-code/ │ │ │ │ ├── android/ │ │ │ │ │ └── index.md │ │ │ │ ├── development/ │ │ │ │ │ ├── index.md │ │ │ │ │ └── prerequisite-sw/ │ │ │ │ │ └── index.md │ │ │ │ ├── index.md │ │ │ │ ├── ios/ │ │ │ │ │ └── index.md │ │ │ │ ├── logging.md │ │ │ │ └── rtp-hdrext/ │ │ │ │ ├── abs-capture-time/ │ │ │ │ │ └── README.md │ │ │ │ ├── abs-send-time/ │ │ │ │ │ └── README.md │ │ │ │ ├── color-space/ │ │ │ │ │ └── README.md │ │ │ │ ├── inband-cn/ │ │ │ │ │ └── README.md │ │ │ │ ├── index.md │ │ │ │ ├── playout-delay/ │ │ │ │ │ └── README.md │ │ │ │ ├── transport-wide-cc-02/ │ │ │ │ │ └── README.md │ │ │ │ ├── video-content-type/ │ │ │ │ │ └── README.md │ │ │ │ ├── video-frame-tracking-id/ │ │ │ │ │ └── README.md │ │ │ │ ├── video-layers-allocation00/ │ │ │ │ │ └── README.md │ │ │ │ └── video-timing/ │ │ │ │ └── README.md │ │ │ └── release-notes.md │ │ ├── examples/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── OWNERS │ │ │ ├── aarproject/ │ │ │ │ ├── .gitignore │ │ │ │ ├── .idea/ │ │ │ │ │ ├── encodings.xml │ │ │ │ │ ├── gradle.xml │ │ │ │ │ ├── misc.xml │ │ │ │ │ ├── modules.xml │ │ │ │ │ └── runConfigurations.xml │ │ │ │ ├── OWNERS │ │ │ │ ├── app/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── proguard-rules.pro │ │ │ │ ├── build.gradle │ │ │ │ ├── gradle.properties │ │ │ │ └── settings.gradle │ │ │ ├── androidapp/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── OWNERS │ │ │ │ ├── README │ │ │ │ ├── ant.properties │ │ │ │ ├── build.xml │ │ │ │ ├── project.properties │ │ │ │ ├── res/ │ │ │ │ │ ├── layout/ │ │ │ │ │ │ ├── activity_call.xml │ │ │ │ │ │ ├── activity_connect.xml │ │ │ │ │ │ ├── fragment_call.xml │ │ │ │ │ │ └── fragment_hud.xml │ │ │ │ │ ├── menu/ │ │ │ │ │ │ └── connect_menu.xml │ │ │ │ │ ├── values/ │ │ │ │ │ │ ├── arrays.xml │ │ │ │ │ │ └── strings.xml │ │ │ │ │ ├── values-v17/ │ │ │ │ │ │ └── styles.xml │ │ │ │ │ ├── values-v21/ │ │ │ │ │ │ └── styles.xml │ │ │ │ │ └── xml/ │ │ │ │ │ └── preferences.xml │ │ │ │ ├── src/ │ │ │ │ │ └── org/ │ │ │ │ │ └── appspot/ │ │ │ │ │ └── apprtc/ │ │ │ │ │ ├── AppRTCAudioManager.java │ │ │ │ │ ├── AppRTCBluetoothManager.java │ │ │ │ │ ├── AppRTCClient.java │ │ │ │ │ ├── AppRTCProximitySensor.java │ │ │ │ │ ├── CallActivity.java │ │ │ │ │ ├── CallFragment.java │ │ │ │ │ ├── CaptureQualityController.java │ │ │ │ │ ├── ConnectActivity.java │ │ │ │ │ ├── CpuMonitor.java │ │ │ │ │ ├── DirectRTCClient.java │ │ │ │ │ ├── HudFragment.java │ │ │ │ │ ├── PeerConnectionClient.java │ │ │ │ │ ├── RecordedAudioToFileController.java │ │ │ │ │ ├── RoomParametersFetcher.java │ │ │ │ │ ├── RtcEventLog.java │ │ │ │ │ ├── SettingsActivity.java │ │ │ │ │ ├── SettingsFragment.java │ │ │ │ │ ├── TCPChannelClient.java │ │ │ │ │ ├── UnhandledExceptionHandler.java │ │ │ │ │ ├── WebSocketChannelClient.java │ │ │ │ │ ├── WebSocketRTCClient.java │ │ │ │ │ └── util/ │ │ │ │ │ ├── AppRTCUtils.java │ │ │ │ │ └── AsyncHttpURLConnection.java │ │ │ │ ├── start_loopback_stubbed_camera_saved_video_out.py │ │ │ │ └── third_party/ │ │ │ │ └── autobanh/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── LICENSE │ │ │ │ ├── LICENSE.md │ │ │ │ ├── NOTICE │ │ │ │ └── lib/ │ │ │ │ └── autobanh.jar │ │ │ ├── androidjunit/ │ │ │ │ ├── OWNERS │ │ │ │ ├── README │ │ │ │ └── src/ │ │ │ │ └── org/ │ │ │ │ └── appspot/ │ │ │ │ └── apprtc/ │ │ │ │ ├── BluetoothManagerTest.java │ │ │ │ ├── DirectRTCClientTest.java │ │ │ │ └── TCPChannelClientTest.java │ │ │ ├── androidnativeapi/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── java/ │ │ │ │ │ └── org/ │ │ │ │ │ └── webrtc/ │ │ │ │ │ └── examples/ │ │ │ │ │ └── androidnativeapi/ │ │ │ │ │ ├── CallClient.java │ │ │ │ │ └── MainActivity.java │ │ │ │ ├── jni/ │ │ │ │ │ ├── android_call_client.cc │ │ │ │ │ ├── android_call_client.h │ │ │ │ │ └── onload.cc │ │ │ │ └── res/ │ │ │ │ ├── layout/ │ │ │ │ │ └── activity_main.xml │ │ │ │ └── values/ │ │ │ │ └── strings.xml │ │ │ ├── androidtests/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── OWNERS │ │ │ │ ├── README │ │ │ │ ├── ant.properties │ │ │ │ ├── build.xml │ │ │ │ ├── gradle_project_test.py │ │ │ │ ├── project.properties │ │ │ │ ├── src/ │ │ │ │ │ └── org/ │ │ │ │ │ └── appspot/ │ │ │ │ │ └── apprtc/ │ │ │ │ │ └── test/ │ │ │ │ │ └── PeerConnectionClientTest.java │ │ │ │ └── third_party/ │ │ │ │ ├── .gitignore │ │ │ │ └── README.webrtc │ │ │ ├── androidvoip/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── java/ │ │ │ │ │ └── org/ │ │ │ │ │ └── webrtc/ │ │ │ │ │ └── examples/ │ │ │ │ │ └── androidvoip/ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ ├── OnVoipClientTaskCompleted.java │ │ │ │ │ └── VoipClient.java │ │ │ │ ├── jni/ │ │ │ │ │ ├── android_voip_client.cc │ │ │ │ │ ├── android_voip_client.h │ │ │ │ │ └── onload.cc │ │ │ │ └── res/ │ │ │ │ ├── layout/ │ │ │ │ │ └── activity_main.xml │ │ │ │ └── values/ │ │ │ │ ├── colors.xml │ │ │ │ └── strings.xml │ │ │ ├── objc/ │ │ │ │ ├── AppRTCMobile/ │ │ │ │ │ ├── ARDAppClient+Internal.h │ │ │ │ │ ├── ARDAppClient.h │ │ │ │ │ ├── ARDAppClient.m │ │ │ │ │ ├── ARDAppEngineClient.h │ │ │ │ │ ├── ARDAppEngineClient.m │ │ │ │ │ ├── ARDCaptureController.h │ │ │ │ │ ├── ARDCaptureController.m │ │ │ │ │ ├── ARDExternalSampleCapturer.h │ │ │ │ │ ├── ARDExternalSampleCapturer.m │ │ │ │ │ ├── ARDJoinResponse+Internal.h │ │ │ │ │ ├── ARDJoinResponse.h │ │ │ │ │ ├── ARDJoinResponse.m │ │ │ │ │ ├── ARDMessageResponse+Internal.h │ │ │ │ │ ├── ARDMessageResponse.h │ │ │ │ │ ├── ARDMessageResponse.m │ │ │ │ │ ├── ARDRoomServerClient.h │ │ │ │ │ ├── ARDSettingsModel+Private.h │ │ │ │ │ ├── ARDSettingsModel.h │ │ │ │ │ ├── ARDSettingsModel.m │ │ │ │ │ ├── ARDSettingsStore.h │ │ │ │ │ ├── ARDSettingsStore.m │ │ │ │ │ ├── ARDSignalingChannel.h │ │ │ │ │ ├── ARDSignalingMessage.h │ │ │ │ │ ├── ARDSignalingMessage.m │ │ │ │ │ ├── ARDStatsBuilder.h │ │ │ │ │ ├── ARDStatsBuilder.m │ │ │ │ │ ├── ARDTURNClient+Internal.h │ │ │ │ │ ├── ARDTURNClient.h │ │ │ │ │ ├── ARDTURNClient.m │ │ │ │ │ ├── ARDWebSocketChannel.h │ │ │ │ │ ├── ARDWebSocketChannel.m │ │ │ │ │ ├── RTCIceCandidate+JSON.h │ │ │ │ │ ├── RTCIceCandidate+JSON.m │ │ │ │ │ ├── RTCIceServer+JSON.h │ │ │ │ │ ├── RTCIceServer+JSON.m │ │ │ │ │ ├── RTCSessionDescription+JSON.h │ │ │ │ │ ├── RTCSessionDescription+JSON.m │ │ │ │ │ ├── common/ │ │ │ │ │ │ ├── ARDUtilities.h │ │ │ │ │ │ └── ARDUtilities.m │ │ │ │ │ ├── ios/ │ │ │ │ │ │ ├── ARDAppDelegate.h │ │ │ │ │ │ ├── ARDAppDelegate.m │ │ │ │ │ │ ├── ARDFileCaptureController.h │ │ │ │ │ │ ├── ARDFileCaptureController.m │ │ │ │ │ │ ├── ARDMainView.h │ │ │ │ │ │ ├── ARDMainView.m │ │ │ │ │ │ ├── ARDMainViewController.h │ │ │ │ │ │ ├── ARDMainViewController.m │ │ │ │ │ │ ├── ARDSettingsViewController.h │ │ │ │ │ │ ├── ARDSettingsViewController.m │ │ │ │ │ │ ├── ARDStatsView.h │ │ │ │ │ │ ├── ARDStatsView.m │ │ │ │ │ │ ├── ARDVideoCallView.h │ │ │ │ │ │ ├── ARDVideoCallView.m │ │ │ │ │ │ ├── ARDVideoCallViewController.h │ │ │ │ │ │ ├── ARDVideoCallViewController.m │ │ │ │ │ │ ├── Info.plist │ │ │ │ │ │ ├── RTCVideoCodecInfo+HumanReadable.h │ │ │ │ │ │ ├── RTCVideoCodecInfo+HumanReadable.m │ │ │ │ │ │ ├── UIImage+ARDUtilities.h │ │ │ │ │ │ ├── UIImage+ARDUtilities.m │ │ │ │ │ │ ├── broadcast_extension/ │ │ │ │ │ │ │ ├── ARDBroadcastSampleHandler.h │ │ │ │ │ │ │ ├── ARDBroadcastSampleHandler.m │ │ │ │ │ │ │ ├── ARDBroadcastSetupViewController.h │ │ │ │ │ │ │ ├── ARDBroadcastSetupViewController.m │ │ │ │ │ │ │ ├── BroadcastSetupUIInfo.plist │ │ │ │ │ │ │ └── BroadcastUploadInfo.plist │ │ │ │ │ │ └── main.m │ │ │ │ │ ├── mac/ │ │ │ │ │ │ ├── APPRTCAppDelegate.h │ │ │ │ │ │ ├── APPRTCAppDelegate.m │ │ │ │ │ │ ├── APPRTCViewController.h │ │ │ │ │ │ ├── APPRTCViewController.m │ │ │ │ │ │ ├── Info.plist │ │ │ │ │ │ └── main.m │ │ │ │ │ ├── tests/ │ │ │ │ │ │ ├── ARDAppClient_xctest.mm │ │ │ │ │ │ ├── ARDFileCaptureController_xctest.mm │ │ │ │ │ │ ├── ARDSettingsModel_xctest.mm │ │ │ │ │ │ └── main.mm │ │ │ │ │ └── third_party/ │ │ │ │ │ └── SocketRocket/ │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── SRWebSocket.h │ │ │ │ │ └── SRWebSocket.m │ │ │ │ └── README │ │ │ ├── objcnativeapi/ │ │ │ │ ├── Info.plist │ │ │ │ └── objc/ │ │ │ │ ├── NADAppDelegate.h │ │ │ │ ├── NADAppDelegate.m │ │ │ │ ├── NADViewController.h │ │ │ │ ├── NADViewController.mm │ │ │ │ ├── main.m │ │ │ │ ├── objc_call_client.h │ │ │ │ └── objc_call_client.mm │ │ │ ├── peerconnection/ │ │ │ │ ├── OWNERS │ │ │ │ ├── client/ │ │ │ │ │ ├── conductor.cc │ │ │ │ │ ├── conductor.h │ │ │ │ │ ├── defaults.cc │ │ │ │ │ ├── defaults.h │ │ │ │ │ ├── flag_defs.h │ │ │ │ │ ├── linux/ │ │ │ │ │ │ ├── main.cc │ │ │ │ │ │ ├── main_wnd.cc │ │ │ │ │ │ └── main_wnd.h │ │ │ │ │ ├── main.cc │ │ │ │ │ ├── main_wnd.cc │ │ │ │ │ ├── main_wnd.h │ │ │ │ │ ├── peer_connection_client.cc │ │ │ │ │ └── peer_connection_client.h │ │ │ │ └── server/ │ │ │ │ ├── data_socket.cc │ │ │ │ ├── data_socket.h │ │ │ │ ├── main.cc │ │ │ │ ├── peer_channel.cc │ │ │ │ ├── peer_channel.h │ │ │ │ ├── server_test.html │ │ │ │ ├── utils.cc │ │ │ │ └── utils.h │ │ │ ├── stunprober/ │ │ │ │ └── main.cc │ │ │ ├── stunserver/ │ │ │ │ └── stunserver_main.cc │ │ │ ├── turnserver/ │ │ │ │ ├── read_auth_file.cc │ │ │ │ ├── read_auth_file.h │ │ │ │ ├── read_auth_file_unittest.cc │ │ │ │ └── turnserver_main.cc │ │ │ └── unityplugin/ │ │ │ ├── ANDROID_INSTRUCTION │ │ │ ├── DEPS │ │ │ ├── README │ │ │ ├── class_reference_holder.cc │ │ │ ├── class_reference_holder.h │ │ │ ├── java/ │ │ │ │ └── src/ │ │ │ │ └── org/ │ │ │ │ └── webrtc/ │ │ │ │ └── UnityUtility.java │ │ │ ├── jni_onload.cc │ │ │ ├── simple_peer_connection.cc │ │ │ ├── simple_peer_connection.h │ │ │ ├── unity_plugin_apis.cc │ │ │ ├── unity_plugin_apis.h │ │ │ ├── video_observer.cc │ │ │ └── video_observer.h │ │ ├── g3doc/ │ │ │ ├── OWNERS │ │ │ ├── abseil-in-webrtc.md │ │ │ ├── become_a_committer.md │ │ │ ├── g3doc.lua │ │ │ ├── how_to_write_documentation.md │ │ │ ├── implementation_basics.md │ │ │ ├── index.md │ │ │ ├── sitemap.md │ │ │ ├── style-guide/ │ │ │ │ ├── OWNERS │ │ │ │ └── h-cc-pairs.md │ │ │ ├── style-guide.md │ │ │ └── supported-platforms-and-compilers.md │ │ ├── g3doc.lua │ │ ├── license_template.txt │ │ ├── logging/ │ │ │ ├── BUILD.gn │ │ │ ├── OWNERS │ │ │ ├── g3doc/ │ │ │ │ └── rtc_event_log.md │ │ │ └── rtc_event_log/ │ │ │ ├── DEPS │ │ │ ├── encoder/ │ │ │ │ ├── blob_encoding.cc │ │ │ │ ├── blob_encoding.h │ │ │ │ ├── blob_encoding_unittest.cc │ │ │ │ ├── delta_encoding.cc │ │ │ │ ├── delta_encoding.h │ │ │ │ ├── delta_encoding_unittest.cc │ │ │ │ ├── rtc_event_log_encoder.h │ │ │ │ ├── rtc_event_log_encoder_common.cc │ │ │ │ ├── rtc_event_log_encoder_common.h │ │ │ │ ├── rtc_event_log_encoder_common_unittest.cc │ │ │ │ ├── rtc_event_log_encoder_legacy.cc │ │ │ │ ├── rtc_event_log_encoder_legacy.h │ │ │ │ ├── rtc_event_log_encoder_new_format.cc │ │ │ │ ├── rtc_event_log_encoder_new_format.h │ │ │ │ ├── rtc_event_log_encoder_unittest.cc │ │ │ │ ├── var_int.cc │ │ │ │ └── var_int.h │ │ │ ├── events/ │ │ │ │ ├── rtc_event_alr_state.cc │ │ │ │ ├── rtc_event_alr_state.h │ │ │ │ ├── rtc_event_audio_network_adaptation.cc │ │ │ │ ├── rtc_event_audio_network_adaptation.h │ │ │ │ ├── rtc_event_audio_playout.cc │ │ │ │ ├── rtc_event_audio_playout.h │ │ │ │ ├── rtc_event_audio_receive_stream_config.cc │ │ │ │ ├── rtc_event_audio_receive_stream_config.h │ │ │ │ ├── rtc_event_audio_send_stream_config.cc │ │ │ │ ├── rtc_event_audio_send_stream_config.h │ │ │ │ ├── rtc_event_bwe_update_delay_based.cc │ │ │ │ ├── rtc_event_bwe_update_delay_based.h │ │ │ │ ├── rtc_event_bwe_update_loss_based.cc │ │ │ │ ├── rtc_event_bwe_update_loss_based.h │ │ │ │ ├── rtc_event_dtls_transport_state.cc │ │ │ │ ├── rtc_event_dtls_transport_state.h │ │ │ │ ├── rtc_event_dtls_writable_state.cc │ │ │ │ ├── rtc_event_dtls_writable_state.h │ │ │ │ ├── rtc_event_frame_decoded.cc │ │ │ │ ├── rtc_event_frame_decoded.h │ │ │ │ ├── rtc_event_generic_ack_received.cc │ │ │ │ ├── rtc_event_generic_ack_received.h │ │ │ │ ├── rtc_event_generic_packet_received.cc │ │ │ │ ├── rtc_event_generic_packet_received.h │ │ │ │ ├── rtc_event_generic_packet_sent.cc │ │ │ │ ├── rtc_event_generic_packet_sent.h │ │ │ │ ├── rtc_event_ice_candidate_pair.cc │ │ │ │ ├── rtc_event_ice_candidate_pair.h │ │ │ │ ├── rtc_event_ice_candidate_pair_config.cc │ │ │ │ ├── rtc_event_ice_candidate_pair_config.h │ │ │ │ ├── rtc_event_probe_cluster_created.cc │ │ │ │ ├── rtc_event_probe_cluster_created.h │ │ │ │ ├── rtc_event_probe_result_failure.cc │ │ │ │ ├── rtc_event_probe_result_failure.h │ │ │ │ ├── rtc_event_probe_result_success.cc │ │ │ │ ├── rtc_event_probe_result_success.h │ │ │ │ ├── rtc_event_remote_estimate.h │ │ │ │ ├── rtc_event_route_change.cc │ │ │ │ ├── rtc_event_route_change.h │ │ │ │ ├── rtc_event_rtcp_packet_incoming.cc │ │ │ │ ├── rtc_event_rtcp_packet_incoming.h │ │ │ │ ├── rtc_event_rtcp_packet_outgoing.cc │ │ │ │ ├── rtc_event_rtcp_packet_outgoing.h │ │ │ │ ├── rtc_event_rtp_packet_incoming.cc │ │ │ │ ├── rtc_event_rtp_packet_incoming.h │ │ │ │ ├── rtc_event_rtp_packet_outgoing.cc │ │ │ │ ├── rtc_event_rtp_packet_outgoing.h │ │ │ │ ├── rtc_event_video_receive_stream_config.cc │ │ │ │ ├── rtc_event_video_receive_stream_config.h │ │ │ │ ├── rtc_event_video_send_stream_config.cc │ │ │ │ └── rtc_event_video_send_stream_config.h │ │ │ ├── fake_rtc_event_log.cc │ │ │ ├── fake_rtc_event_log.h │ │ │ ├── fake_rtc_event_log_factory.cc │ │ │ ├── fake_rtc_event_log_factory.h │ │ │ ├── ice_logger.cc │ │ │ ├── ice_logger.h │ │ │ ├── logged_events.cc │ │ │ ├── logged_events.h │ │ │ ├── mock/ │ │ │ │ ├── mock_rtc_event_log.cc │ │ │ │ └── mock_rtc_event_log.h │ │ │ ├── output/ │ │ │ │ └── rtc_event_log_output_file.h │ │ │ ├── rtc_event_log.proto │ │ │ ├── rtc_event_log2.proto │ │ │ ├── rtc_event_log2rtp_dump.cc │ │ │ ├── rtc_event_log_impl.cc │ │ │ ├── rtc_event_log_impl.h │ │ │ ├── rtc_event_log_parser.cc │ │ │ ├── rtc_event_log_parser.h │ │ │ ├── rtc_event_log_unittest.cc │ │ │ ├── rtc_event_log_unittest_helper.cc │ │ │ ├── rtc_event_log_unittest_helper.h │ │ │ ├── rtc_event_processor.cc │ │ │ ├── rtc_event_processor.h │ │ │ ├── rtc_event_processor_unittest.cc │ │ │ ├── rtc_stream_config.cc │ │ │ └── rtc_stream_config.h │ │ ├── media/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── OWNERS │ │ │ ├── base/ │ │ │ │ ├── adapted_video_track_source.cc │ │ │ │ ├── adapted_video_track_source.h │ │ │ │ ├── audio_source.h │ │ │ │ ├── codec.cc │ │ │ │ ├── codec.h │ │ │ │ ├── codec_unittest.cc │ │ │ │ ├── delayable.h │ │ │ │ ├── fake_frame_source.cc │ │ │ │ ├── fake_frame_source.h │ │ │ │ ├── fake_media_engine.cc │ │ │ │ ├── fake_media_engine.h │ │ │ │ ├── fake_network_interface.h │ │ │ │ ├── fake_rtp.cc │ │ │ │ ├── fake_rtp.h │ │ │ │ ├── fake_video_renderer.cc │ │ │ │ ├── fake_video_renderer.h │ │ │ │ ├── h264_profile_level_id.cc │ │ │ │ ├── h264_profile_level_id.h │ │ │ │ ├── media_channel.cc │ │ │ │ ├── media_channel.h │ │ │ │ ├── media_config.h │ │ │ │ ├── media_constants.cc │ │ │ │ ├── media_constants.h │ │ │ │ ├── media_engine.cc │ │ │ │ ├── media_engine.h │ │ │ │ ├── media_engine_unittest.cc │ │ │ │ ├── rid_description.cc │ │ │ │ ├── rid_description.h │ │ │ │ ├── rtp_utils.cc │ │ │ │ ├── rtp_utils.h │ │ │ │ ├── rtp_utils_unittest.cc │ │ │ │ ├── sdp_video_format_utils.cc │ │ │ │ ├── sdp_video_format_utils.h │ │ │ │ ├── sdp_video_format_utils_unittest.cc │ │ │ │ ├── stream_params.cc │ │ │ │ ├── stream_params.h │ │ │ │ ├── stream_params_unittest.cc │ │ │ │ ├── test_utils.cc │ │ │ │ ├── test_utils.h │ │ │ │ ├── turn_utils.cc │ │ │ │ ├── turn_utils.h │ │ │ │ ├── turn_utils_unittest.cc │ │ │ │ ├── video_adapter.cc │ │ │ │ ├── video_adapter.h │ │ │ │ ├── video_adapter_unittest.cc │ │ │ │ ├── video_broadcaster.cc │ │ │ │ ├── video_broadcaster.h │ │ │ │ ├── video_broadcaster_unittest.cc │ │ │ │ ├── video_common.cc │ │ │ │ ├── video_common.h │ │ │ │ ├── video_common_unittest.cc │ │ │ │ ├── video_source_base.cc │ │ │ │ ├── video_source_base.h │ │ │ │ └── vp9_profile.h │ │ │ ├── engine/ │ │ │ │ ├── adm_helpers.cc │ │ │ │ ├── adm_helpers.h │ │ │ │ ├── encoder_simulcast_proxy.cc │ │ │ │ ├── encoder_simulcast_proxy.h │ │ │ │ ├── encoder_simulcast_proxy_unittest.cc │ │ │ │ ├── fake_video_codec_factory.cc │ │ │ │ ├── fake_video_codec_factory.h │ │ │ │ ├── fake_webrtc_call.cc │ │ │ │ ├── fake_webrtc_call.h │ │ │ │ ├── fake_webrtc_video_engine.cc │ │ │ │ ├── fake_webrtc_video_engine.h │ │ │ │ ├── internal_decoder_factory.cc │ │ │ │ ├── internal_decoder_factory.h │ │ │ │ ├── internal_decoder_factory_unittest.cc │ │ │ │ ├── internal_encoder_factory.cc │ │ │ │ ├── internal_encoder_factory.h │ │ │ │ ├── multiplex_codec_factory.cc │ │ │ │ ├── multiplex_codec_factory.h │ │ │ │ ├── multiplex_codec_factory_unittest.cc │ │ │ │ ├── null_webrtc_video_engine.h │ │ │ │ ├── null_webrtc_video_engine_unittest.cc │ │ │ │ ├── payload_type_mapper.cc │ │ │ │ ├── payload_type_mapper.h │ │ │ │ ├── payload_type_mapper_unittest.cc │ │ │ │ ├── simulcast.cc │ │ │ │ ├── simulcast.h │ │ │ │ ├── simulcast_encoder_adapter.cc │ │ │ │ ├── simulcast_encoder_adapter.h │ │ │ │ ├── simulcast_encoder_adapter_unittest.cc │ │ │ │ ├── simulcast_unittest.cc │ │ │ │ ├── unhandled_packets_buffer.cc │ │ │ │ ├── unhandled_packets_buffer.h │ │ │ │ ├── unhandled_packets_buffer_unittest.cc │ │ │ │ ├── webrtc_media_engine.cc │ │ │ │ ├── webrtc_media_engine.h │ │ │ │ ├── webrtc_media_engine_defaults.cc │ │ │ │ ├── webrtc_media_engine_defaults.h │ │ │ │ ├── webrtc_media_engine_unittest.cc │ │ │ │ ├── webrtc_video_engine.cc │ │ │ │ ├── webrtc_video_engine.h │ │ │ │ ├── webrtc_video_engine_unittest.cc │ │ │ │ ├── webrtc_voice_engine.cc │ │ │ │ ├── webrtc_voice_engine.h │ │ │ │ └── webrtc_voice_engine_unittest.cc │ │ │ └── sctp/ │ │ │ ├── OWNERS │ │ │ ├── dcsctp_transport.cc │ │ │ ├── dcsctp_transport.h │ │ │ ├── sctp_transport_factory.cc │ │ │ ├── sctp_transport_factory.h │ │ │ ├── sctp_transport_internal.h │ │ │ ├── usrsctp_transport.cc │ │ │ ├── usrsctp_transport.h │ │ │ ├── usrsctp_transport_reliability_unittest.cc │ │ │ └── usrsctp_transport_unittest.cc │ │ ├── modules/ │ │ │ ├── BUILD.gn │ │ │ ├── async_audio_processing/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── async_audio_processing.cc │ │ │ │ └── async_audio_processing.h │ │ │ ├── audio_coding/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── acm2/ │ │ │ │ │ ├── acm_receive_test.cc │ │ │ │ │ ├── acm_receive_test.h │ │ │ │ │ ├── acm_receiver.cc │ │ │ │ │ ├── acm_receiver.h │ │ │ │ │ ├── acm_receiver_unittest.cc │ │ │ │ │ ├── acm_remixing.cc │ │ │ │ │ ├── acm_remixing.h │ │ │ │ │ ├── acm_remixing_unittest.cc │ │ │ │ │ ├── acm_resampler.cc │ │ │ │ │ ├── acm_resampler.h │ │ │ │ │ ├── acm_send_test.cc │ │ │ │ │ ├── acm_send_test.h │ │ │ │ │ ├── audio_coding_module.cc │ │ │ │ │ ├── audio_coding_module_unittest.cc │ │ │ │ │ ├── call_statistics.cc │ │ │ │ │ ├── call_statistics.h │ │ │ │ │ └── call_statistics_unittest.cc │ │ │ │ ├── audio_coding.gni │ │ │ │ ├── audio_network_adaptor/ │ │ │ │ │ ├── audio_network_adaptor_config.cc │ │ │ │ │ ├── audio_network_adaptor_impl.cc │ │ │ │ │ ├── audio_network_adaptor_impl.h │ │ │ │ │ ├── audio_network_adaptor_impl_unittest.cc │ │ │ │ │ ├── bitrate_controller.cc │ │ │ │ │ ├── bitrate_controller.h │ │ │ │ │ ├── bitrate_controller_unittest.cc │ │ │ │ │ ├── channel_controller.cc │ │ │ │ │ ├── channel_controller.h │ │ │ │ │ ├── channel_controller_unittest.cc │ │ │ │ │ ├── config.proto │ │ │ │ │ ├── controller.cc │ │ │ │ │ ├── controller.h │ │ │ │ │ ├── controller_manager.cc │ │ │ │ │ ├── controller_manager.h │ │ │ │ │ ├── controller_manager_unittest.cc │ │ │ │ │ ├── debug_dump.proto │ │ │ │ │ ├── debug_dump_writer.cc │ │ │ │ │ ├── debug_dump_writer.h │ │ │ │ │ ├── dtx_controller.cc │ │ │ │ │ ├── dtx_controller.h │ │ │ │ │ ├── dtx_controller_unittest.cc │ │ │ │ │ ├── event_log_writer.cc │ │ │ │ │ ├── event_log_writer.h │ │ │ │ │ ├── event_log_writer_unittest.cc │ │ │ │ │ ├── fec_controller_plr_based.cc │ │ │ │ │ ├── fec_controller_plr_based.h │ │ │ │ │ ├── fec_controller_plr_based_unittest.cc │ │ │ │ │ ├── frame_length_controller.cc │ │ │ │ │ ├── frame_length_controller.h │ │ │ │ │ ├── frame_length_controller_unittest.cc │ │ │ │ │ ├── frame_length_controller_v2.cc │ │ │ │ │ ├── frame_length_controller_v2.h │ │ │ │ │ ├── frame_length_controller_v2_unittest.cc │ │ │ │ │ ├── include/ │ │ │ │ │ │ ├── audio_network_adaptor.h │ │ │ │ │ │ └── audio_network_adaptor_config.h │ │ │ │ │ ├── mock/ │ │ │ │ │ │ ├── mock_audio_network_adaptor.h │ │ │ │ │ │ ├── mock_controller.h │ │ │ │ │ │ ├── mock_controller_manager.h │ │ │ │ │ │ └── mock_debug_dump_writer.h │ │ │ │ │ ├── parse_ana_dump.py │ │ │ │ │ └── util/ │ │ │ │ │ ├── threshold_curve.h │ │ │ │ │ └── threshold_curve_unittest.cc │ │ │ │ ├── codecs/ │ │ │ │ │ ├── audio_decoder.h │ │ │ │ │ ├── audio_encoder.h │ │ │ │ │ ├── builtin_audio_decoder_factory_unittest.cc │ │ │ │ │ ├── builtin_audio_encoder_factory_unittest.cc │ │ │ │ │ ├── cng/ │ │ │ │ │ │ ├── audio_encoder_cng.cc │ │ │ │ │ │ ├── audio_encoder_cng.h │ │ │ │ │ │ ├── audio_encoder_cng_unittest.cc │ │ │ │ │ │ ├── cng_unittest.cc │ │ │ │ │ │ ├── webrtc_cng.cc │ │ │ │ │ │ └── webrtc_cng.h │ │ │ │ │ ├── g711/ │ │ │ │ │ │ ├── audio_decoder_pcm.cc │ │ │ │ │ │ ├── audio_decoder_pcm.h │ │ │ │ │ │ ├── audio_encoder_pcm.cc │ │ │ │ │ │ ├── audio_encoder_pcm.h │ │ │ │ │ │ ├── g711_interface.c │ │ │ │ │ │ ├── g711_interface.h │ │ │ │ │ │ └── test/ │ │ │ │ │ │ └── testG711.cc │ │ │ │ │ ├── g722/ │ │ │ │ │ │ ├── audio_decoder_g722.cc │ │ │ │ │ │ ├── audio_decoder_g722.h │ │ │ │ │ │ ├── audio_encoder_g722.cc │ │ │ │ │ │ ├── audio_encoder_g722.h │ │ │ │ │ │ ├── g722_interface.c │ │ │ │ │ │ ├── g722_interface.h │ │ │ │ │ │ └── test/ │ │ │ │ │ │ └── testG722.cc │ │ │ │ │ ├── ilbc/ │ │ │ │ │ │ ├── abs_quant.c │ │ │ │ │ │ ├── abs_quant.h │ │ │ │ │ │ ├── abs_quant_loop.c │ │ │ │ │ │ ├── abs_quant_loop.h │ │ │ │ │ │ ├── audio_decoder_ilbc.cc │ │ │ │ │ │ ├── audio_decoder_ilbc.h │ │ │ │ │ │ ├── audio_encoder_ilbc.cc │ │ │ │ │ │ ├── audio_encoder_ilbc.h │ │ │ │ │ │ ├── augmented_cb_corr.c │ │ │ │ │ │ ├── augmented_cb_corr.h │ │ │ │ │ │ ├── bw_expand.c │ │ │ │ │ │ ├── bw_expand.h │ │ │ │ │ │ ├── cb_construct.c │ │ │ │ │ │ ├── cb_construct.h │ │ │ │ │ │ ├── cb_mem_energy.c │ │ │ │ │ │ ├── cb_mem_energy.h │ │ │ │ │ │ ├── cb_mem_energy_augmentation.c │ │ │ │ │ │ ├── cb_mem_energy_augmentation.h │ │ │ │ │ │ ├── cb_mem_energy_calc.c │ │ │ │ │ │ ├── cb_mem_energy_calc.h │ │ │ │ │ │ ├── cb_search.c │ │ │ │ │ │ ├── cb_search.h │ │ │ │ │ │ ├── cb_search_core.c │ │ │ │ │ │ ├── cb_search_core.h │ │ │ │ │ │ ├── cb_update_best_index.c │ │ │ │ │ │ ├── cb_update_best_index.h │ │ │ │ │ │ ├── chebyshev.c │ │ │ │ │ │ ├── chebyshev.h │ │ │ │ │ │ ├── comp_corr.c │ │ │ │ │ │ ├── comp_corr.h │ │ │ │ │ │ ├── complexityMeasures.m │ │ │ │ │ │ ├── constants.c │ │ │ │ │ │ ├── constants.h │ │ │ │ │ │ ├── create_augmented_vec.c │ │ │ │ │ │ ├── create_augmented_vec.h │ │ │ │ │ │ ├── decode.c │ │ │ │ │ │ ├── decode.h │ │ │ │ │ │ ├── decode_residual.c │ │ │ │ │ │ ├── decode_residual.h │ │ │ │ │ │ ├── decoder_interpolate_lsf.c │ │ │ │ │ │ ├── decoder_interpolate_lsf.h │ │ │ │ │ │ ├── defines.h │ │ │ │ │ │ ├── do_plc.c │ │ │ │ │ │ ├── do_plc.h │ │ │ │ │ │ ├── encode.c │ │ │ │ │ │ ├── encode.h │ │ │ │ │ │ ├── energy_inverse.c │ │ │ │ │ │ ├── energy_inverse.h │ │ │ │ │ │ ├── enh_upsample.c │ │ │ │ │ │ ├── enh_upsample.h │ │ │ │ │ │ ├── enhancer.c │ │ │ │ │ │ ├── enhancer.h │ │ │ │ │ │ ├── enhancer_interface.c │ │ │ │ │ │ ├── enhancer_interface.h │ │ │ │ │ │ ├── filtered_cb_vecs.c │ │ │ │ │ │ ├── filtered_cb_vecs.h │ │ │ │ │ │ ├── frame_classify.c │ │ │ │ │ │ ├── frame_classify.h │ │ │ │ │ │ ├── gain_dequant.c │ │ │ │ │ │ ├── gain_dequant.h │ │ │ │ │ │ ├── gain_quant.c │ │ │ │ │ │ ├── gain_quant.h │ │ │ │ │ │ ├── get_cd_vec.c │ │ │ │ │ │ ├── get_cd_vec.h │ │ │ │ │ │ ├── get_lsp_poly.c │ │ │ │ │ │ ├── get_lsp_poly.h │ │ │ │ │ │ ├── get_sync_seq.c │ │ │ │ │ │ ├── get_sync_seq.h │ │ │ │ │ │ ├── hp_input.c │ │ │ │ │ │ ├── hp_input.h │ │ │ │ │ │ ├── hp_output.c │ │ │ │ │ │ ├── hp_output.h │ │ │ │ │ │ ├── ilbc.c │ │ │ │ │ │ ├── ilbc.h │ │ │ │ │ │ ├── ilbc_unittest.cc │ │ │ │ │ │ ├── index_conv_dec.c │ │ │ │ │ │ ├── index_conv_dec.h │ │ │ │ │ │ ├── index_conv_enc.c │ │ │ │ │ │ ├── index_conv_enc.h │ │ │ │ │ │ ├── init_decode.c │ │ │ │ │ │ ├── init_decode.h │ │ │ │ │ │ ├── init_encode.c │ │ │ │ │ │ ├── init_encode.h │ │ │ │ │ │ ├── interpolate.c │ │ │ │ │ │ ├── interpolate.h │ │ │ │ │ │ ├── interpolate_samples.c │ │ │ │ │ │ ├── interpolate_samples.h │ │ │ │ │ │ ├── lpc_encode.c │ │ │ │ │ │ ├── lpc_encode.h │ │ │ │ │ │ ├── lsf_check.c │ │ │ │ │ │ ├── lsf_check.h │ │ │ │ │ │ ├── lsf_interpolate_to_poly_dec.c │ │ │ │ │ │ ├── lsf_interpolate_to_poly_dec.h │ │ │ │ │ │ ├── lsf_interpolate_to_poly_enc.c │ │ │ │ │ │ ├── lsf_interpolate_to_poly_enc.h │ │ │ │ │ │ ├── lsf_to_lsp.c │ │ │ │ │ │ ├── lsf_to_lsp.h │ │ │ │ │ │ ├── lsf_to_poly.c │ │ │ │ │ │ ├── lsf_to_poly.h │ │ │ │ │ │ ├── lsp_to_lsf.c │ │ │ │ │ │ ├── lsp_to_lsf.h │ │ │ │ │ │ ├── my_corr.c │ │ │ │ │ │ ├── my_corr.h │ │ │ │ │ │ ├── nearest_neighbor.c │ │ │ │ │ │ ├── nearest_neighbor.h │ │ │ │ │ │ ├── pack_bits.c │ │ │ │ │ │ ├── pack_bits.h │ │ │ │ │ │ ├── poly_to_lsf.c │ │ │ │ │ │ ├── poly_to_lsf.h │ │ │ │ │ │ ├── poly_to_lsp.c │ │ │ │ │ │ ├── poly_to_lsp.h │ │ │ │ │ │ ├── refiner.c │ │ │ │ │ │ ├── refiner.h │ │ │ │ │ │ ├── simple_interpolate_lsf.c │ │ │ │ │ │ ├── simple_interpolate_lsf.h │ │ │ │ │ │ ├── simple_lpc_analysis.c │ │ │ │ │ │ ├── simple_lpc_analysis.h │ │ │ │ │ │ ├── simple_lsf_dequant.c │ │ │ │ │ │ ├── simple_lsf_dequant.h │ │ │ │ │ │ ├── simple_lsf_quant.c │ │ │ │ │ │ ├── simple_lsf_quant.h │ │ │ │ │ │ ├── smooth.c │ │ │ │ │ │ ├── smooth.h │ │ │ │ │ │ ├── smooth_out_data.c │ │ │ │ │ │ ├── smooth_out_data.h │ │ │ │ │ │ ├── sort_sq.c │ │ │ │ │ │ ├── sort_sq.h │ │ │ │ │ │ ├── split_vq.c │ │ │ │ │ │ ├── split_vq.h │ │ │ │ │ │ ├── state_construct.c │ │ │ │ │ │ ├── state_construct.h │ │ │ │ │ │ ├── state_search.c │ │ │ │ │ │ ├── state_search.h │ │ │ │ │ │ ├── swap_bytes.c │ │ │ │ │ │ ├── swap_bytes.h │ │ │ │ │ │ ├── test/ │ │ │ │ │ │ │ ├── empty.cc │ │ │ │ │ │ │ ├── iLBC_test.c │ │ │ │ │ │ │ ├── iLBC_testLib.c │ │ │ │ │ │ │ └── iLBC_testprogram.c │ │ │ │ │ │ ├── unpack_bits.c │ │ │ │ │ │ ├── unpack_bits.h │ │ │ │ │ │ ├── vq3.c │ │ │ │ │ │ ├── vq3.h │ │ │ │ │ │ ├── vq4.c │ │ │ │ │ │ ├── vq4.h │ │ │ │ │ │ ├── window32_w32.c │ │ │ │ │ │ ├── window32_w32.h │ │ │ │ │ │ ├── xcorr_coef.c │ │ │ │ │ │ └── xcorr_coef.h │ │ │ │ │ ├── isac/ │ │ │ │ │ │ ├── audio_decoder_isac_t.h │ │ │ │ │ │ ├── audio_decoder_isac_t_impl.h │ │ │ │ │ │ ├── audio_encoder_isac_t.h │ │ │ │ │ │ ├── audio_encoder_isac_t_impl.h │ │ │ │ │ │ ├── bandwidth_info.h │ │ │ │ │ │ ├── empty.cc │ │ │ │ │ │ ├── fix/ │ │ │ │ │ │ │ ├── include/ │ │ │ │ │ │ │ │ ├── audio_decoder_isacfix.h │ │ │ │ │ │ │ │ ├── audio_encoder_isacfix.h │ │ │ │ │ │ │ │ └── isacfix.h │ │ │ │ │ │ │ ├── source/ │ │ │ │ │ │ │ │ ├── arith_routines.c │ │ │ │ │ │ │ │ ├── arith_routines_hist.c │ │ │ │ │ │ │ │ ├── arith_routines_logist.c │ │ │ │ │ │ │ │ ├── arith_routins.h │ │ │ │ │ │ │ │ ├── audio_decoder_isacfix.cc │ │ │ │ │ │ │ │ ├── audio_encoder_isacfix.cc │ │ │ │ │ │ │ │ ├── bandwidth_estimator.c │ │ │ │ │ │ │ │ ├── bandwidth_estimator.h │ │ │ │ │ │ │ │ ├── codec.h │ │ │ │ │ │ │ │ ├── decode.c │ │ │ │ │ │ │ │ ├── decode_bwe.c │ │ │ │ │ │ │ │ ├── decode_plc.c │ │ │ │ │ │ │ │ ├── encode.c │ │ │ │ │ │ │ │ ├── entropy_coding.c │ │ │ │ │ │ │ │ ├── entropy_coding.h │ │ │ │ │ │ │ │ ├── entropy_coding_mips.c │ │ │ │ │ │ │ │ ├── entropy_coding_neon.c │ │ │ │ │ │ │ │ ├── fft.c │ │ │ │ │ │ │ │ ├── fft.h │ │ │ │ │ │ │ │ ├── filterbank_internal.h │ │ │ │ │ │ │ │ ├── filterbank_tables.c │ │ │ │ │ │ │ │ ├── filterbank_tables.h │ │ │ │ │ │ │ │ ├── filterbanks.c │ │ │ │ │ │ │ │ ├── filterbanks_mips.c │ │ │ │ │ │ │ │ ├── filterbanks_neon.c │ │ │ │ │ │ │ │ ├── filterbanks_unittest.cc │ │ │ │ │ │ │ │ ├── filters.c │ │ │ │ │ │ │ │ ├── filters_mips.c │ │ │ │ │ │ │ │ ├── filters_neon.c │ │ │ │ │ │ │ │ ├── filters_unittest.cc │ │ │ │ │ │ │ │ ├── initialize.c │ │ │ │ │ │ │ │ ├── isac_fix_type.h │ │ │ │ │ │ │ │ ├── isacfix.c │ │ │ │ │ │ │ │ ├── lattice.c │ │ │ │ │ │ │ │ ├── lattice_armv7.S │ │ │ │ │ │ │ │ ├── lattice_c.c │ │ │ │ │ │ │ │ ├── lattice_mips.c │ │ │ │ │ │ │ │ ├── lattice_neon.c │ │ │ │ │ │ │ │ ├── lpc_masking_model.c │ │ │ │ │ │ │ │ ├── lpc_masking_model.h │ │ │ │ │ │ │ │ ├── lpc_masking_model_mips.c │ │ │ │ │ │ │ │ ├── lpc_masking_model_unittest.cc │ │ │ │ │ │ │ │ ├── lpc_tables.c │ │ │ │ │ │ │ │ ├── lpc_tables.h │ │ │ │ │ │ │ │ ├── pitch_estimator.c │ │ │ │ │ │ │ │ ├── pitch_estimator.h │ │ │ │ │ │ │ │ ├── pitch_estimator_c.c │ │ │ │ │ │ │ │ ├── pitch_estimator_mips.c │ │ │ │ │ │ │ │ ├── pitch_filter.c │ │ │ │ │ │ │ │ ├── pitch_filter_armv6.S │ │ │ │ │ │ │ │ ├── pitch_filter_c.c │ │ │ │ │ │ │ │ ├── pitch_filter_mips.c │ │ │ │ │ │ │ │ ├── pitch_gain_tables.c │ │ │ │ │ │ │ │ ├── pitch_gain_tables.h │ │ │ │ │ │ │ │ ├── pitch_lag_tables.c │ │ │ │ │ │ │ │ ├── pitch_lag_tables.h │ │ │ │ │ │ │ │ ├── settings.h │ │ │ │ │ │ │ │ ├── spectrum_ar_model_tables.c │ │ │ │ │ │ │ │ ├── spectrum_ar_model_tables.h │ │ │ │ │ │ │ │ ├── structs.h │ │ │ │ │ │ │ │ ├── transform.c │ │ │ │ │ │ │ │ ├── transform_mips.c │ │ │ │ │ │ │ │ ├── transform_neon.c │ │ │ │ │ │ │ │ ├── transform_tables.c │ │ │ │ │ │ │ │ └── transform_unittest.cc │ │ │ │ │ │ │ └── test/ │ │ │ │ │ │ │ ├── isac_speed_test.cc │ │ │ │ │ │ │ └── kenny.cc │ │ │ │ │ │ ├── isac_webrtc_api_test.cc │ │ │ │ │ │ └── main/ │ │ │ │ │ │ ├── include/ │ │ │ │ │ │ │ ├── audio_decoder_isac.h │ │ │ │ │ │ │ ├── audio_encoder_isac.h │ │ │ │ │ │ │ └── isac.h │ │ │ │ │ │ ├── source/ │ │ │ │ │ │ │ ├── arith_routines.c │ │ │ │ │ │ │ ├── arith_routines.h │ │ │ │ │ │ │ ├── arith_routines_hist.c │ │ │ │ │ │ │ ├── arith_routines_logist.c │ │ │ │ │ │ │ ├── audio_decoder_isac.cc │ │ │ │ │ │ │ ├── audio_encoder_isac.cc │ │ │ │ │ │ │ ├── audio_encoder_isac_unittest.cc │ │ │ │ │ │ │ ├── bandwidth_estimator.c │ │ │ │ │ │ │ ├── bandwidth_estimator.h │ │ │ │ │ │ │ ├── codec.h │ │ │ │ │ │ │ ├── crc.c │ │ │ │ │ │ │ ├── crc.h │ │ │ │ │ │ │ ├── decode.c │ │ │ │ │ │ │ ├── decode_bwe.c │ │ │ │ │ │ │ ├── encode.c │ │ │ │ │ │ │ ├── encode_lpc_swb.c │ │ │ │ │ │ │ ├── encode_lpc_swb.h │ │ │ │ │ │ │ ├── entropy_coding.c │ │ │ │ │ │ │ ├── entropy_coding.h │ │ │ │ │ │ │ ├── filter_functions.c │ │ │ │ │ │ │ ├── filter_functions.h │ │ │ │ │ │ │ ├── filterbanks.c │ │ │ │ │ │ │ ├── intialize.c │ │ │ │ │ │ │ ├── isac.c │ │ │ │ │ │ │ ├── isac_float_type.h │ │ │ │ │ │ │ ├── isac_unittest.cc │ │ │ │ │ │ │ ├── isac_vad.c │ │ │ │ │ │ │ ├── isac_vad.h │ │ │ │ │ │ │ ├── lattice.c │ │ │ │ │ │ │ ├── lpc_analysis.c │ │ │ │ │ │ │ ├── lpc_analysis.h │ │ │ │ │ │ │ ├── lpc_gain_swb_tables.c │ │ │ │ │ │ │ ├── lpc_gain_swb_tables.h │ │ │ │ │ │ │ ├── lpc_shape_swb12_tables.c │ │ │ │ │ │ │ ├── lpc_shape_swb12_tables.h │ │ │ │ │ │ │ ├── lpc_shape_swb16_tables.c │ │ │ │ │ │ │ ├── lpc_shape_swb16_tables.h │ │ │ │ │ │ │ ├── lpc_tables.c │ │ │ │ │ │ │ ├── lpc_tables.h │ │ │ │ │ │ │ ├── os_specific_inline.h │ │ │ │ │ │ │ ├── pitch_estimator.c │ │ │ │ │ │ │ ├── pitch_estimator.h │ │ │ │ │ │ │ ├── pitch_filter.c │ │ │ │ │ │ │ ├── pitch_filter.h │ │ │ │ │ │ │ ├── pitch_gain_tables.c │ │ │ │ │ │ │ ├── pitch_gain_tables.h │ │ │ │ │ │ │ ├── pitch_lag_tables.c │ │ │ │ │ │ │ ├── pitch_lag_tables.h │ │ │ │ │ │ │ ├── settings.h │ │ │ │ │ │ │ ├── spectrum_ar_model_tables.c │ │ │ │ │ │ │ ├── spectrum_ar_model_tables.h │ │ │ │ │ │ │ ├── structs.h │ │ │ │ │ │ │ └── transform.c │ │ │ │ │ │ ├── test/ │ │ │ │ │ │ │ ├── ReleaseTest-API/ │ │ │ │ │ │ │ │ └── ReleaseTest-API.cc │ │ │ │ │ │ │ ├── SwitchingSampRate/ │ │ │ │ │ │ │ │ └── SwitchingSampRate.cc │ │ │ │ │ │ │ └── simpleKenny.c │ │ │ │ │ │ └── util/ │ │ │ │ │ │ ├── utility.c │ │ │ │ │ │ └── utility.h │ │ │ │ │ ├── legacy_encoded_audio_frame.cc │ │ │ │ │ ├── legacy_encoded_audio_frame.h │ │ │ │ │ ├── legacy_encoded_audio_frame_unittest.cc │ │ │ │ │ ├── opus/ │ │ │ │ │ │ ├── audio_coder_opus_common.cc │ │ │ │ │ │ ├── audio_coder_opus_common.h │ │ │ │ │ │ ├── audio_decoder_multi_channel_opus_impl.cc │ │ │ │ │ │ ├── audio_decoder_multi_channel_opus_impl.h │ │ │ │ │ │ ├── audio_decoder_multi_channel_opus_unittest.cc │ │ │ │ │ │ ├── audio_decoder_opus.cc │ │ │ │ │ │ ├── audio_decoder_opus.h │ │ │ │ │ │ ├── audio_encoder_multi_channel_opus_impl.cc │ │ │ │ │ │ ├── audio_encoder_multi_channel_opus_impl.h │ │ │ │ │ │ ├── audio_encoder_multi_channel_opus_unittest.cc │ │ │ │ │ │ ├── audio_encoder_opus.cc │ │ │ │ │ │ ├── audio_encoder_opus.h │ │ │ │ │ │ ├── audio_encoder_opus_unittest.cc │ │ │ │ │ │ ├── opus_bandwidth_unittest.cc │ │ │ │ │ │ ├── opus_complexity_unittest.cc │ │ │ │ │ │ ├── opus_fec_test.cc │ │ │ │ │ │ ├── opus_inst.h │ │ │ │ │ │ ├── opus_interface.cc │ │ │ │ │ │ ├── opus_interface.h │ │ │ │ │ │ ├── opus_speed_test.cc │ │ │ │ │ │ ├── opus_unittest.cc │ │ │ │ │ │ └── test/ │ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ │ ├── audio_ring_buffer.cc │ │ │ │ │ │ ├── audio_ring_buffer.h │ │ │ │ │ │ ├── audio_ring_buffer_unittest.cc │ │ │ │ │ │ ├── blocker.cc │ │ │ │ │ │ ├── blocker.h │ │ │ │ │ │ ├── blocker_unittest.cc │ │ │ │ │ │ ├── lapped_transform.cc │ │ │ │ │ │ ├── lapped_transform.h │ │ │ │ │ │ └── lapped_transform_unittest.cc │ │ │ │ │ ├── pcm16b/ │ │ │ │ │ │ ├── audio_decoder_pcm16b.cc │ │ │ │ │ │ ├── audio_decoder_pcm16b.h │ │ │ │ │ │ ├── audio_encoder_pcm16b.cc │ │ │ │ │ │ ├── audio_encoder_pcm16b.h │ │ │ │ │ │ ├── pcm16b.c │ │ │ │ │ │ ├── pcm16b.h │ │ │ │ │ │ ├── pcm16b_common.cc │ │ │ │ │ │ └── pcm16b_common.h │ │ │ │ │ ├── red/ │ │ │ │ │ │ ├── audio_encoder_copy_red.cc │ │ │ │ │ │ ├── audio_encoder_copy_red.h │ │ │ │ │ │ └── audio_encoder_copy_red_unittest.cc │ │ │ │ │ └── tools/ │ │ │ │ │ ├── audio_codec_speed_test.cc │ │ │ │ │ └── audio_codec_speed_test.h │ │ │ │ ├── g3doc/ │ │ │ │ │ └── index.md │ │ │ │ ├── include/ │ │ │ │ │ ├── audio_coding_module.h │ │ │ │ │ └── audio_coding_module_typedefs.h │ │ │ │ ├── neteq/ │ │ │ │ │ ├── accelerate.cc │ │ │ │ │ ├── accelerate.h │ │ │ │ │ ├── audio_decoder_unittest.cc │ │ │ │ │ ├── audio_multi_vector.cc │ │ │ │ │ ├── audio_multi_vector.h │ │ │ │ │ ├── audio_multi_vector_unittest.cc │ │ │ │ │ ├── audio_vector.cc │ │ │ │ │ ├── audio_vector.h │ │ │ │ │ ├── audio_vector_unittest.cc │ │ │ │ │ ├── background_noise.cc │ │ │ │ │ ├── background_noise.h │ │ │ │ │ ├── background_noise_unittest.cc │ │ │ │ │ ├── buffer_level_filter.cc │ │ │ │ │ ├── buffer_level_filter.h │ │ │ │ │ ├── buffer_level_filter_unittest.cc │ │ │ │ │ ├── comfort_noise.cc │ │ │ │ │ ├── comfort_noise.h │ │ │ │ │ ├── comfort_noise_unittest.cc │ │ │ │ │ ├── cross_correlation.cc │ │ │ │ │ ├── cross_correlation.h │ │ │ │ │ ├── decision_logic.cc │ │ │ │ │ ├── decision_logic.h │ │ │ │ │ ├── decision_logic_unittest.cc │ │ │ │ │ ├── decoder_database.cc │ │ │ │ │ ├── decoder_database.h │ │ │ │ │ ├── decoder_database_unittest.cc │ │ │ │ │ ├── default_neteq_factory.cc │ │ │ │ │ ├── default_neteq_factory.h │ │ │ │ │ ├── delay_manager.cc │ │ │ │ │ ├── delay_manager.h │ │ │ │ │ ├── delay_manager_unittest.cc │ │ │ │ │ ├── dsp_helper.cc │ │ │ │ │ ├── dsp_helper.h │ │ │ │ │ ├── dsp_helper_unittest.cc │ │ │ │ │ ├── dtmf_buffer.cc │ │ │ │ │ ├── dtmf_buffer.h │ │ │ │ │ ├── dtmf_buffer_unittest.cc │ │ │ │ │ ├── dtmf_tone_generator.cc │ │ │ │ │ ├── dtmf_tone_generator.h │ │ │ │ │ ├── dtmf_tone_generator_unittest.cc │ │ │ │ │ ├── expand.cc │ │ │ │ │ ├── expand.h │ │ │ │ │ ├── expand_uma_logger.cc │ │ │ │ │ ├── expand_uma_logger.h │ │ │ │ │ ├── expand_unittest.cc │ │ │ │ │ ├── g3doc/ │ │ │ │ │ │ └── index.md │ │ │ │ │ ├── histogram.cc │ │ │ │ │ ├── histogram.h │ │ │ │ │ ├── histogram_unittest.cc │ │ │ │ │ ├── merge.cc │ │ │ │ │ ├── merge.h │ │ │ │ │ ├── merge_unittest.cc │ │ │ │ │ ├── mock/ │ │ │ │ │ │ ├── mock_buffer_level_filter.h │ │ │ │ │ │ ├── mock_decoder_database.h │ │ │ │ │ │ ├── mock_delay_manager.h │ │ │ │ │ │ ├── mock_dtmf_buffer.h │ │ │ │ │ │ ├── mock_dtmf_tone_generator.h │ │ │ │ │ │ ├── mock_expand.h │ │ │ │ │ │ ├── mock_histogram.h │ │ │ │ │ │ ├── mock_neteq_controller.h │ │ │ │ │ │ ├── mock_packet_buffer.h │ │ │ │ │ │ ├── mock_red_payload_splitter.h │ │ │ │ │ │ └── mock_statistics_calculator.h │ │ │ │ │ ├── nack_tracker.cc │ │ │ │ │ ├── nack_tracker.h │ │ │ │ │ ├── nack_tracker_unittest.cc │ │ │ │ │ ├── neteq_decoder_plc_unittest.cc │ │ │ │ │ ├── neteq_impl.cc │ │ │ │ │ ├── neteq_impl.h │ │ │ │ │ ├── neteq_impl_unittest.cc │ │ │ │ │ ├── neteq_network_stats_unittest.cc │ │ │ │ │ ├── neteq_stereo_unittest.cc │ │ │ │ │ ├── neteq_unittest.cc │ │ │ │ │ ├── neteq_unittest.proto │ │ │ │ │ ├── normal.cc │ │ │ │ │ ├── normal.h │ │ │ │ │ ├── normal_unittest.cc │ │ │ │ │ ├── packet.cc │ │ │ │ │ ├── packet.h │ │ │ │ │ ├── packet_buffer.cc │ │ │ │ │ ├── packet_buffer.h │ │ │ │ │ ├── packet_buffer_unittest.cc │ │ │ │ │ ├── post_decode_vad.cc │ │ │ │ │ ├── post_decode_vad.h │ │ │ │ │ ├── post_decode_vad_unittest.cc │ │ │ │ │ ├── preemptive_expand.cc │ │ │ │ │ ├── preemptive_expand.h │ │ │ │ │ ├── random_vector.cc │ │ │ │ │ ├── random_vector.h │ │ │ │ │ ├── random_vector_unittest.cc │ │ │ │ │ ├── red_payload_splitter.cc │ │ │ │ │ ├── red_payload_splitter.h │ │ │ │ │ ├── red_payload_splitter_unittest.cc │ │ │ │ │ ├── statistics_calculator.cc │ │ │ │ │ ├── statistics_calculator.h │ │ │ │ │ ├── statistics_calculator_unittest.cc │ │ │ │ │ ├── sync_buffer.cc │ │ │ │ │ ├── sync_buffer.h │ │ │ │ │ ├── sync_buffer_unittest.cc │ │ │ │ │ ├── test/ │ │ │ │ │ │ ├── delay_tool/ │ │ │ │ │ │ │ ├── parse_delay_file.m │ │ │ │ │ │ │ └── plot_neteq_delay.m │ │ │ │ │ │ ├── neteq_decoding_test.cc │ │ │ │ │ │ ├── neteq_decoding_test.h │ │ │ │ │ │ ├── neteq_ilbc_quality_test.cc │ │ │ │ │ │ ├── neteq_isac_quality_test.cc │ │ │ │ │ │ ├── neteq_opus_quality_test.cc │ │ │ │ │ │ ├── neteq_pcm16b_quality_test.cc │ │ │ │ │ │ ├── neteq_pcmu_quality_test.cc │ │ │ │ │ │ ├── neteq_performance_unittest.cc │ │ │ │ │ │ ├── neteq_speed_test.cc │ │ │ │ │ │ ├── result_sink.cc │ │ │ │ │ │ └── result_sink.h │ │ │ │ │ ├── time_stretch.cc │ │ │ │ │ ├── time_stretch.h │ │ │ │ │ ├── time_stretch_unittest.cc │ │ │ │ │ ├── timestamp_scaler.cc │ │ │ │ │ ├── timestamp_scaler.h │ │ │ │ │ ├── timestamp_scaler_unittest.cc │ │ │ │ │ └── tools/ │ │ │ │ │ ├── DEPS │ │ │ │ │ ├── README.md │ │ │ │ │ ├── audio_checksum.h │ │ │ │ │ ├── audio_loop.cc │ │ │ │ │ ├── audio_loop.h │ │ │ │ │ ├── audio_sink.cc │ │ │ │ │ ├── audio_sink.h │ │ │ │ │ ├── constant_pcm_packet_source.cc │ │ │ │ │ ├── constant_pcm_packet_source.h │ │ │ │ │ ├── encode_neteq_input.cc │ │ │ │ │ ├── encode_neteq_input.h │ │ │ │ │ ├── fake_decode_from_file.cc │ │ │ │ │ ├── fake_decode_from_file.h │ │ │ │ │ ├── initial_packet_inserter_neteq_input.cc │ │ │ │ │ ├── initial_packet_inserter_neteq_input.h │ │ │ │ │ ├── input_audio_file.cc │ │ │ │ │ ├── input_audio_file.h │ │ │ │ │ ├── input_audio_file_unittest.cc │ │ │ │ │ ├── neteq_delay_analyzer.cc │ │ │ │ │ ├── neteq_delay_analyzer.h │ │ │ │ │ ├── neteq_event_log_input.cc │ │ │ │ │ ├── neteq_event_log_input.h │ │ │ │ │ ├── neteq_input.cc │ │ │ │ │ ├── neteq_input.h │ │ │ │ │ ├── neteq_packet_source_input.cc │ │ │ │ │ ├── neteq_packet_source_input.h │ │ │ │ │ ├── neteq_performance_test.cc │ │ │ │ │ ├── neteq_performance_test.h │ │ │ │ │ ├── neteq_quality_test.cc │ │ │ │ │ ├── neteq_quality_test.h │ │ │ │ │ ├── neteq_replacement_input.cc │ │ │ │ │ ├── neteq_replacement_input.h │ │ │ │ │ ├── neteq_rtpplay.cc │ │ │ │ │ ├── neteq_rtpplay_test.sh │ │ │ │ │ ├── neteq_stats_getter.cc │ │ │ │ │ ├── neteq_stats_getter.h │ │ │ │ │ ├── neteq_stats_plotter.cc │ │ │ │ │ ├── neteq_stats_plotter.h │ │ │ │ │ ├── neteq_test.cc │ │ │ │ │ ├── neteq_test.h │ │ │ │ │ ├── neteq_test_factory.cc │ │ │ │ │ ├── neteq_test_factory.h │ │ │ │ │ ├── output_audio_file.h │ │ │ │ │ ├── output_wav_file.h │ │ │ │ │ ├── packet.cc │ │ │ │ │ ├── packet.h │ │ │ │ │ ├── packet_source.cc │ │ │ │ │ ├── packet_source.h │ │ │ │ │ ├── packet_unittest.cc │ │ │ │ │ ├── resample_input_audio_file.cc │ │ │ │ │ ├── resample_input_audio_file.h │ │ │ │ │ ├── rtc_event_log_source.cc │ │ │ │ │ ├── rtc_event_log_source.h │ │ │ │ │ ├── rtp_analyze.cc │ │ │ │ │ ├── rtp_encode.cc │ │ │ │ │ ├── rtp_file_source.cc │ │ │ │ │ ├── rtp_file_source.h │ │ │ │ │ ├── rtp_generator.cc │ │ │ │ │ ├── rtp_generator.h │ │ │ │ │ ├── rtp_jitter.cc │ │ │ │ │ └── rtpcat.cc │ │ │ │ └── test/ │ │ │ │ ├── Channel.cc │ │ │ │ ├── Channel.h │ │ │ │ ├── EncodeDecodeTest.cc │ │ │ │ ├── EncodeDecodeTest.h │ │ │ │ ├── PCMFile.cc │ │ │ │ ├── PCMFile.h │ │ │ │ ├── PacketLossTest.cc │ │ │ │ ├── PacketLossTest.h │ │ │ │ ├── RTPFile.cc │ │ │ │ ├── RTPFile.h │ │ │ │ ├── TestAllCodecs.cc │ │ │ │ ├── TestAllCodecs.h │ │ │ │ ├── TestRedFec.cc │ │ │ │ ├── TestRedFec.h │ │ │ │ ├── TestStereo.cc │ │ │ │ ├── TestStereo.h │ │ │ │ ├── TestVADDTX.cc │ │ │ │ ├── TestVADDTX.h │ │ │ │ ├── Tester.cc │ │ │ │ ├── TwoWayCommunication.cc │ │ │ │ ├── TwoWayCommunication.h │ │ │ │ ├── iSACTest.cc │ │ │ │ ├── iSACTest.h │ │ │ │ ├── opus_test.cc │ │ │ │ ├── opus_test.h │ │ │ │ └── target_delay_unittest.cc │ │ │ ├── audio_device/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── android/ │ │ │ │ │ ├── aaudio_player.cc │ │ │ │ │ ├── aaudio_player.h │ │ │ │ │ ├── aaudio_recorder.cc │ │ │ │ │ ├── aaudio_recorder.h │ │ │ │ │ ├── aaudio_wrapper.cc │ │ │ │ │ ├── aaudio_wrapper.h │ │ │ │ │ ├── audio_common.h │ │ │ │ │ ├── audio_device_template.h │ │ │ │ │ ├── audio_device_unittest.cc │ │ │ │ │ ├── audio_manager.cc │ │ │ │ │ ├── audio_manager.h │ │ │ │ │ ├── audio_manager_unittest.cc │ │ │ │ │ ├── audio_record_jni.cc │ │ │ │ │ ├── audio_record_jni.h │ │ │ │ │ ├── audio_track_jni.cc │ │ │ │ │ ├── audio_track_jni.h │ │ │ │ │ ├── build_info.cc │ │ │ │ │ ├── build_info.h │ │ │ │ │ ├── ensure_initialized.cc │ │ │ │ │ ├── ensure_initialized.h │ │ │ │ │ ├── java/ │ │ │ │ │ │ └── src/ │ │ │ │ │ │ └── org/ │ │ │ │ │ │ └── webrtc/ │ │ │ │ │ │ └── voiceengine/ │ │ │ │ │ │ ├── BuildInfo.java │ │ │ │ │ │ ├── WebRtcAudioEffects.java │ │ │ │ │ │ ├── WebRtcAudioManager.java │ │ │ │ │ │ ├── WebRtcAudioRecord.java │ │ │ │ │ │ ├── WebRtcAudioTrack.java │ │ │ │ │ │ └── WebRtcAudioUtils.java │ │ │ │ │ ├── opensles_common.cc │ │ │ │ │ ├── opensles_common.h │ │ │ │ │ ├── opensles_player.cc │ │ │ │ │ ├── opensles_player.h │ │ │ │ │ ├── opensles_recorder.cc │ │ │ │ │ └── opensles_recorder.h │ │ │ │ ├── audio_device_buffer.cc │ │ │ │ ├── audio_device_buffer.h │ │ │ │ ├── audio_device_config.h │ │ │ │ ├── audio_device_data_observer.cc │ │ │ │ ├── audio_device_generic.cc │ │ │ │ ├── audio_device_generic.h │ │ │ │ ├── audio_device_impl.cc │ │ │ │ ├── audio_device_impl.h │ │ │ │ ├── audio_device_name.cc │ │ │ │ ├── audio_device_name.h │ │ │ │ ├── audio_device_unittest.cc │ │ │ │ ├── dummy/ │ │ │ │ │ ├── audio_device_dummy.cc │ │ │ │ │ ├── audio_device_dummy.h │ │ │ │ │ ├── file_audio_device.cc │ │ │ │ │ ├── file_audio_device.h │ │ │ │ │ ├── file_audio_device_factory.cc │ │ │ │ │ └── file_audio_device_factory.h │ │ │ │ ├── fine_audio_buffer.cc │ │ │ │ ├── fine_audio_buffer.h │ │ │ │ ├── fine_audio_buffer_unittest.cc │ │ │ │ ├── g3doc/ │ │ │ │ │ └── audio_device_module.md │ │ │ │ ├── include/ │ │ │ │ │ ├── audio_device.h │ │ │ │ │ ├── audio_device_data_observer.h │ │ │ │ │ ├── audio_device_default.h │ │ │ │ │ ├── audio_device_defines.h │ │ │ │ │ ├── audio_device_factory.cc │ │ │ │ │ ├── audio_device_factory.h │ │ │ │ │ ├── fake_audio_device.h │ │ │ │ │ ├── mock_audio_device.h │ │ │ │ │ ├── mock_audio_transport.h │ │ │ │ │ ├── test_audio_device.cc │ │ │ │ │ ├── test_audio_device.h │ │ │ │ │ └── test_audio_device_unittest.cc │ │ │ │ ├── linux/ │ │ │ │ │ ├── alsasymboltable_linux.cc │ │ │ │ │ ├── alsasymboltable_linux.h │ │ │ │ │ ├── audio_device_alsa_linux.cc │ │ │ │ │ ├── audio_device_alsa_linux.h │ │ │ │ │ ├── audio_device_pulse_linux.cc │ │ │ │ │ ├── audio_device_pulse_linux.h │ │ │ │ │ ├── audio_mixer_manager_alsa_linux.cc │ │ │ │ │ ├── audio_mixer_manager_alsa_linux.h │ │ │ │ │ ├── audio_mixer_manager_pulse_linux.cc │ │ │ │ │ ├── audio_mixer_manager_pulse_linux.h │ │ │ │ │ ├── latebindingsymboltable_linux.cc │ │ │ │ │ ├── latebindingsymboltable_linux.h │ │ │ │ │ ├── pulseaudiosymboltable_linux.cc │ │ │ │ │ └── pulseaudiosymboltable_linux.h │ │ │ │ ├── mac/ │ │ │ │ │ ├── audio_device_mac.cc │ │ │ │ │ ├── audio_device_mac.h │ │ │ │ │ ├── audio_mixer_manager_mac.cc │ │ │ │ │ └── audio_mixer_manager_mac.h │ │ │ │ ├── mock_audio_device_buffer.h │ │ │ │ └── win/ │ │ │ │ ├── audio_device_core_win.cc │ │ │ │ ├── audio_device_core_win.h │ │ │ │ ├── audio_device_module_win.cc │ │ │ │ ├── audio_device_module_win.h │ │ │ │ ├── core_audio_base_win.cc │ │ │ │ ├── core_audio_base_win.h │ │ │ │ ├── core_audio_input_win.cc │ │ │ │ ├── core_audio_input_win.h │ │ │ │ ├── core_audio_output_win.cc │ │ │ │ ├── core_audio_output_win.h │ │ │ │ ├── core_audio_utility_win.cc │ │ │ │ ├── core_audio_utility_win.h │ │ │ │ └── core_audio_utility_win_unittest.cc │ │ │ ├── audio_mixer/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── audio_frame_manipulator.cc │ │ │ │ ├── audio_frame_manipulator.h │ │ │ │ ├── audio_frame_manipulator_unittest.cc │ │ │ │ ├── audio_mixer_impl.cc │ │ │ │ ├── audio_mixer_impl.h │ │ │ │ ├── audio_mixer_impl_unittest.cc │ │ │ │ ├── audio_mixer_test.cc │ │ │ │ ├── default_output_rate_calculator.cc │ │ │ │ ├── default_output_rate_calculator.h │ │ │ │ ├── frame_combiner.cc │ │ │ │ ├── frame_combiner.h │ │ │ │ ├── frame_combiner_unittest.cc │ │ │ │ ├── g3doc/ │ │ │ │ │ └── index.md │ │ │ │ ├── gain_change_calculator.cc │ │ │ │ ├── gain_change_calculator.h │ │ │ │ ├── output_rate_calculator.h │ │ │ │ ├── sine_wave_generator.cc │ │ │ │ └── sine_wave_generator.h │ │ │ ├── audio_processing/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── aec3/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── adaptive_fir_filter.cc │ │ │ │ │ ├── adaptive_fir_filter.h │ │ │ │ │ ├── adaptive_fir_filter_avx2.cc │ │ │ │ │ ├── adaptive_fir_filter_erl.cc │ │ │ │ │ ├── adaptive_fir_filter_erl.h │ │ │ │ │ ├── adaptive_fir_filter_erl_avx2.cc │ │ │ │ │ ├── adaptive_fir_filter_erl_unittest.cc │ │ │ │ │ ├── adaptive_fir_filter_unittest.cc │ │ │ │ │ ├── aec3_common.cc │ │ │ │ │ ├── aec3_common.h │ │ │ │ │ ├── aec3_fft.cc │ │ │ │ │ ├── aec3_fft.h │ │ │ │ │ ├── aec3_fft_unittest.cc │ │ │ │ │ ├── aec_state.cc │ │ │ │ │ ├── aec_state.h │ │ │ │ │ ├── aec_state_unittest.cc │ │ │ │ │ ├── alignment_mixer.cc │ │ │ │ │ ├── alignment_mixer.h │ │ │ │ │ ├── alignment_mixer_unittest.cc │ │ │ │ │ ├── api_call_jitter_metrics.cc │ │ │ │ │ ├── api_call_jitter_metrics.h │ │ │ │ │ ├── api_call_jitter_metrics_unittest.cc │ │ │ │ │ ├── block_buffer.cc │ │ │ │ │ ├── block_buffer.h │ │ │ │ │ ├── block_delay_buffer.cc │ │ │ │ │ ├── block_delay_buffer.h │ │ │ │ │ ├── block_delay_buffer_unittest.cc │ │ │ │ │ ├── block_framer.cc │ │ │ │ │ ├── block_framer.h │ │ │ │ │ ├── block_framer_unittest.cc │ │ │ │ │ ├── block_processor.cc │ │ │ │ │ ├── block_processor.h │ │ │ │ │ ├── block_processor_metrics.cc │ │ │ │ │ ├── block_processor_metrics.h │ │ │ │ │ ├── block_processor_metrics_unittest.cc │ │ │ │ │ ├── block_processor_unittest.cc │ │ │ │ │ ├── clockdrift_detector.cc │ │ │ │ │ ├── clockdrift_detector.h │ │ │ │ │ ├── clockdrift_detector_unittest.cc │ │ │ │ │ ├── coarse_filter_update_gain.cc │ │ │ │ │ ├── coarse_filter_update_gain.h │ │ │ │ │ ├── coarse_filter_update_gain_unittest.cc │ │ │ │ │ ├── comfort_noise_generator.cc │ │ │ │ │ ├── comfort_noise_generator.h │ │ │ │ │ ├── comfort_noise_generator_unittest.cc │ │ │ │ │ ├── decimator.cc │ │ │ │ │ ├── decimator.h │ │ │ │ │ ├── decimator_unittest.cc │ │ │ │ │ ├── delay_estimate.h │ │ │ │ │ ├── dominant_nearend_detector.cc │ │ │ │ │ ├── dominant_nearend_detector.h │ │ │ │ │ ├── downsampled_render_buffer.cc │ │ │ │ │ ├── downsampled_render_buffer.h │ │ │ │ │ ├── echo_audibility.cc │ │ │ │ │ ├── echo_audibility.h │ │ │ │ │ ├── echo_canceller3.cc │ │ │ │ │ ├── echo_canceller3.h │ │ │ │ │ ├── echo_canceller3_unittest.cc │ │ │ │ │ ├── echo_path_delay_estimator.cc │ │ │ │ │ ├── echo_path_delay_estimator.h │ │ │ │ │ ├── echo_path_delay_estimator_unittest.cc │ │ │ │ │ ├── echo_path_variability.cc │ │ │ │ │ ├── echo_path_variability.h │ │ │ │ │ ├── echo_path_variability_unittest.cc │ │ │ │ │ ├── echo_remover.cc │ │ │ │ │ ├── echo_remover.h │ │ │ │ │ ├── echo_remover_metrics.cc │ │ │ │ │ ├── echo_remover_metrics.h │ │ │ │ │ ├── echo_remover_metrics_unittest.cc │ │ │ │ │ ├── echo_remover_unittest.cc │ │ │ │ │ ├── erl_estimator.cc │ │ │ │ │ ├── erl_estimator.h │ │ │ │ │ ├── erl_estimator_unittest.cc │ │ │ │ │ ├── erle_estimator.cc │ │ │ │ │ ├── erle_estimator.h │ │ │ │ │ ├── erle_estimator_unittest.cc │ │ │ │ │ ├── fft_buffer.cc │ │ │ │ │ ├── fft_buffer.h │ │ │ │ │ ├── fft_data.h │ │ │ │ │ ├── fft_data_avx2.cc │ │ │ │ │ ├── fft_data_unittest.cc │ │ │ │ │ ├── filter_analyzer.cc │ │ │ │ │ ├── filter_analyzer.h │ │ │ │ │ ├── filter_analyzer_unittest.cc │ │ │ │ │ ├── frame_blocker.cc │ │ │ │ │ ├── frame_blocker.h │ │ │ │ │ ├── frame_blocker_unittest.cc │ │ │ │ │ ├── fullband_erle_estimator.cc │ │ │ │ │ ├── fullband_erle_estimator.h │ │ │ │ │ ├── matched_filter.cc │ │ │ │ │ ├── matched_filter.h │ │ │ │ │ ├── matched_filter_avx2.cc │ │ │ │ │ ├── matched_filter_lag_aggregator.cc │ │ │ │ │ ├── matched_filter_lag_aggregator.h │ │ │ │ │ ├── matched_filter_lag_aggregator_unittest.cc │ │ │ │ │ ├── matched_filter_unittest.cc │ │ │ │ │ ├── mock/ │ │ │ │ │ │ ├── mock_block_processor.cc │ │ │ │ │ │ ├── mock_block_processor.h │ │ │ │ │ │ ├── mock_echo_remover.cc │ │ │ │ │ │ ├── mock_echo_remover.h │ │ │ │ │ │ ├── mock_render_delay_buffer.cc │ │ │ │ │ │ ├── mock_render_delay_buffer.h │ │ │ │ │ │ ├── mock_render_delay_controller.cc │ │ │ │ │ │ └── mock_render_delay_controller.h │ │ │ │ │ ├── moving_average.cc │ │ │ │ │ ├── moving_average.h │ │ │ │ │ ├── moving_average_unittest.cc │ │ │ │ │ ├── nearend_detector.h │ │ │ │ │ ├── refined_filter_update_gain.cc │ │ │ │ │ ├── refined_filter_update_gain.h │ │ │ │ │ ├── refined_filter_update_gain_unittest.cc │ │ │ │ │ ├── render_buffer.cc │ │ │ │ │ ├── render_buffer.h │ │ │ │ │ ├── render_buffer_unittest.cc │ │ │ │ │ ├── render_delay_buffer.cc │ │ │ │ │ ├── render_delay_buffer.h │ │ │ │ │ ├── render_delay_buffer_unittest.cc │ │ │ │ │ ├── render_delay_controller.cc │ │ │ │ │ ├── render_delay_controller.h │ │ │ │ │ ├── render_delay_controller_metrics.cc │ │ │ │ │ ├── render_delay_controller_metrics.h │ │ │ │ │ ├── render_delay_controller_metrics_unittest.cc │ │ │ │ │ ├── render_delay_controller_unittest.cc │ │ │ │ │ ├── render_signal_analyzer.cc │ │ │ │ │ ├── render_signal_analyzer.h │ │ │ │ │ ├── render_signal_analyzer_unittest.cc │ │ │ │ │ ├── residual_echo_estimator.cc │ │ │ │ │ ├── residual_echo_estimator.h │ │ │ │ │ ├── residual_echo_estimator_unittest.cc │ │ │ │ │ ├── reverb_decay_estimator.cc │ │ │ │ │ ├── reverb_decay_estimator.h │ │ │ │ │ ├── reverb_frequency_response.cc │ │ │ │ │ ├── reverb_frequency_response.h │ │ │ │ │ ├── reverb_model.cc │ │ │ │ │ ├── reverb_model.h │ │ │ │ │ ├── reverb_model_estimator.cc │ │ │ │ │ ├── reverb_model_estimator.h │ │ │ │ │ ├── reverb_model_estimator_unittest.cc │ │ │ │ │ ├── signal_dependent_erle_estimator.cc │ │ │ │ │ ├── signal_dependent_erle_estimator.h │ │ │ │ │ ├── signal_dependent_erle_estimator_unittest.cc │ │ │ │ │ ├── spectrum_buffer.cc │ │ │ │ │ ├── spectrum_buffer.h │ │ │ │ │ ├── stationarity_estimator.cc │ │ │ │ │ ├── stationarity_estimator.h │ │ │ │ │ ├── subband_erle_estimator.cc │ │ │ │ │ ├── subband_erle_estimator.h │ │ │ │ │ ├── subband_nearend_detector.cc │ │ │ │ │ ├── subband_nearend_detector.h │ │ │ │ │ ├── subtractor.cc │ │ │ │ │ ├── subtractor.h │ │ │ │ │ ├── subtractor_output.cc │ │ │ │ │ ├── subtractor_output.h │ │ │ │ │ ├── subtractor_output_analyzer.cc │ │ │ │ │ ├── subtractor_output_analyzer.h │ │ │ │ │ ├── subtractor_unittest.cc │ │ │ │ │ ├── suppression_filter.cc │ │ │ │ │ ├── suppression_filter.h │ │ │ │ │ ├── suppression_filter_unittest.cc │ │ │ │ │ ├── suppression_gain.cc │ │ │ │ │ ├── suppression_gain.h │ │ │ │ │ ├── suppression_gain_unittest.cc │ │ │ │ │ ├── transparent_mode.cc │ │ │ │ │ ├── transparent_mode.h │ │ │ │ │ ├── vector_math.h │ │ │ │ │ ├── vector_math_avx2.cc │ │ │ │ │ └── vector_math_unittest.cc │ │ │ │ ├── aec_dump/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── aec_dump_factory.h │ │ │ │ │ ├── aec_dump_impl.cc │ │ │ │ │ ├── aec_dump_impl.h │ │ │ │ │ ├── aec_dump_integration_test.cc │ │ │ │ │ ├── aec_dump_unittest.cc │ │ │ │ │ ├── capture_stream_info.cc │ │ │ │ │ ├── capture_stream_info.h │ │ │ │ │ ├── mock_aec_dump.cc │ │ │ │ │ ├── mock_aec_dump.h │ │ │ │ │ ├── null_aec_dump_factory.cc │ │ │ │ │ ├── write_to_file_task.cc │ │ │ │ │ └── write_to_file_task.h │ │ │ │ ├── aecm/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── aecm_core.cc │ │ │ │ │ ├── aecm_core.h │ │ │ │ │ ├── aecm_core_c.cc │ │ │ │ │ ├── aecm_core_mips.cc │ │ │ │ │ ├── aecm_core_neon.cc │ │ │ │ │ ├── aecm_defines.h │ │ │ │ │ ├── echo_control_mobile.cc │ │ │ │ │ └── echo_control_mobile.h │ │ │ │ ├── agc/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── agc.cc │ │ │ │ │ ├── agc.h │ │ │ │ │ ├── agc_manager_direct.cc │ │ │ │ │ ├── agc_manager_direct.h │ │ │ │ │ ├── agc_manager_direct_unittest.cc │ │ │ │ │ ├── clipping_predictor.cc │ │ │ │ │ ├── clipping_predictor.h │ │ │ │ │ ├── clipping_predictor_evaluator.cc │ │ │ │ │ ├── clipping_predictor_evaluator.h │ │ │ │ │ ├── clipping_predictor_evaluator_unittest.cc │ │ │ │ │ ├── clipping_predictor_level_buffer.cc │ │ │ │ │ ├── clipping_predictor_level_buffer.h │ │ │ │ │ ├── clipping_predictor_level_buffer_unittest.cc │ │ │ │ │ ├── clipping_predictor_unittest.cc │ │ │ │ │ ├── gain_control.h │ │ │ │ │ ├── gain_map_internal.h │ │ │ │ │ ├── legacy/ │ │ │ │ │ │ ├── analog_agc.cc │ │ │ │ │ │ ├── analog_agc.h │ │ │ │ │ │ ├── digital_agc.cc │ │ │ │ │ │ ├── digital_agc.h │ │ │ │ │ │ └── gain_control.h │ │ │ │ │ ├── loudness_histogram.cc │ │ │ │ │ ├── loudness_histogram.h │ │ │ │ │ ├── loudness_histogram_unittest.cc │ │ │ │ │ ├── mock_agc.h │ │ │ │ │ ├── utility.cc │ │ │ │ │ └── utility.h │ │ │ │ ├── agc2/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── adaptive_agc.cc │ │ │ │ │ ├── adaptive_agc.h │ │ │ │ │ ├── adaptive_digital_gain_applier.cc │ │ │ │ │ ├── adaptive_digital_gain_applier.h │ │ │ │ │ ├── adaptive_digital_gain_applier_unittest.cc │ │ │ │ │ ├── adaptive_mode_level_estimator.cc │ │ │ │ │ ├── adaptive_mode_level_estimator.h │ │ │ │ │ ├── adaptive_mode_level_estimator_unittest.cc │ │ │ │ │ ├── agc2_common.h │ │ │ │ │ ├── agc2_testing_common.cc │ │ │ │ │ ├── agc2_testing_common.h │ │ │ │ │ ├── agc2_testing_common_unittest.cc │ │ │ │ │ ├── biquad_filter.cc │ │ │ │ │ ├── biquad_filter.h │ │ │ │ │ ├── biquad_filter_unittest.cc │ │ │ │ │ ├── compute_interpolated_gain_curve.cc │ │ │ │ │ ├── compute_interpolated_gain_curve.h │ │ │ │ │ ├── cpu_features.cc │ │ │ │ │ ├── cpu_features.h │ │ │ │ │ ├── down_sampler.cc │ │ │ │ │ ├── down_sampler.h │ │ │ │ │ ├── fixed_digital_level_estimator.cc │ │ │ │ │ ├── fixed_digital_level_estimator.h │ │ │ │ │ ├── fixed_digital_level_estimator_unittest.cc │ │ │ │ │ ├── gain_applier.cc │ │ │ │ │ ├── gain_applier.h │ │ │ │ │ ├── gain_applier_unittest.cc │ │ │ │ │ ├── interpolated_gain_curve.cc │ │ │ │ │ ├── interpolated_gain_curve.h │ │ │ │ │ ├── interpolated_gain_curve_unittest.cc │ │ │ │ │ ├── limiter.cc │ │ │ │ │ ├── limiter.h │ │ │ │ │ ├── limiter_db_gain_curve.cc │ │ │ │ │ ├── limiter_db_gain_curve.h │ │ │ │ │ ├── limiter_db_gain_curve_unittest.cc │ │ │ │ │ ├── limiter_unittest.cc │ │ │ │ │ ├── noise_level_estimator.cc │ │ │ │ │ ├── noise_level_estimator.h │ │ │ │ │ ├── noise_level_estimator_unittest.cc │ │ │ │ │ ├── noise_spectrum_estimator.cc │ │ │ │ │ ├── noise_spectrum_estimator.h │ │ │ │ │ ├── rnn_vad/ │ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ │ ├── DEPS │ │ │ │ │ │ ├── auto_correlation.cc │ │ │ │ │ │ ├── auto_correlation.h │ │ │ │ │ │ ├── auto_correlation_unittest.cc │ │ │ │ │ │ ├── common.h │ │ │ │ │ │ ├── features_extraction.cc │ │ │ │ │ │ ├── features_extraction.h │ │ │ │ │ │ ├── features_extraction_unittest.cc │ │ │ │ │ │ ├── lp_residual.cc │ │ │ │ │ │ ├── lp_residual.h │ │ │ │ │ │ ├── lp_residual_unittest.cc │ │ │ │ │ │ ├── pitch_search.cc │ │ │ │ │ │ ├── pitch_search.h │ │ │ │ │ │ ├── pitch_search_internal.cc │ │ │ │ │ │ ├── pitch_search_internal.h │ │ │ │ │ │ ├── pitch_search_internal_unittest.cc │ │ │ │ │ │ ├── pitch_search_unittest.cc │ │ │ │ │ │ ├── ring_buffer.h │ │ │ │ │ │ ├── ring_buffer_unittest.cc │ │ │ │ │ │ ├── rnn.cc │ │ │ │ │ │ ├── rnn.h │ │ │ │ │ │ ├── rnn_fc.cc │ │ │ │ │ │ ├── rnn_fc.h │ │ │ │ │ │ ├── rnn_fc_unittest.cc │ │ │ │ │ │ ├── rnn_gru.cc │ │ │ │ │ │ ├── rnn_gru.h │ │ │ │ │ │ ├── rnn_gru_unittest.cc │ │ │ │ │ │ ├── rnn_unittest.cc │ │ │ │ │ │ ├── rnn_vad_tool.cc │ │ │ │ │ │ ├── rnn_vad_unittest.cc │ │ │ │ │ │ ├── sequence_buffer.h │ │ │ │ │ │ ├── sequence_buffer_unittest.cc │ │ │ │ │ │ ├── spectral_features.cc │ │ │ │ │ │ ├── spectral_features.h │ │ │ │ │ │ ├── spectral_features_internal.cc │ │ │ │ │ │ ├── spectral_features_internal.h │ │ │ │ │ │ ├── spectral_features_internal_unittest.cc │ │ │ │ │ │ ├── spectral_features_unittest.cc │ │ │ │ │ │ ├── symmetric_matrix_buffer.h │ │ │ │ │ │ ├── symmetric_matrix_buffer_unittest.cc │ │ │ │ │ │ ├── test_utils.cc │ │ │ │ │ │ ├── test_utils.h │ │ │ │ │ │ ├── vector_math.h │ │ │ │ │ │ ├── vector_math_avx2.cc │ │ │ │ │ │ └── vector_math_unittest.cc │ │ │ │ │ ├── saturation_protector.cc │ │ │ │ │ ├── saturation_protector.h │ │ │ │ │ ├── saturation_protector_buffer.cc │ │ │ │ │ ├── saturation_protector_buffer.h │ │ │ │ │ ├── saturation_protector_buffer_unittest.cc │ │ │ │ │ ├── saturation_protector_unittest.cc │ │ │ │ │ ├── signal_classifier.cc │ │ │ │ │ ├── signal_classifier.h │ │ │ │ │ ├── signal_classifier_unittest.cc │ │ │ │ │ ├── vad_with_level.cc │ │ │ │ │ ├── vad_with_level.h │ │ │ │ │ ├── vad_with_level_unittest.cc │ │ │ │ │ ├── vector_float_frame.cc │ │ │ │ │ └── vector_float_frame.h │ │ │ │ ├── audio_buffer.cc │ │ │ │ ├── audio_buffer.h │ │ │ │ ├── audio_buffer_unittest.cc │ │ │ │ ├── audio_frame_view_unittest.cc │ │ │ │ ├── audio_processing_builder_impl.cc │ │ │ │ ├── audio_processing_impl.cc │ │ │ │ ├── audio_processing_impl.h │ │ │ │ ├── audio_processing_impl_locking_unittest.cc │ │ │ │ ├── audio_processing_impl_unittest.cc │ │ │ │ ├── audio_processing_performance_unittest.cc │ │ │ │ ├── audio_processing_unittest.cc │ │ │ │ ├── capture_levels_adjuster/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── audio_samples_scaler.cc │ │ │ │ │ ├── audio_samples_scaler.h │ │ │ │ │ ├── audio_samples_scaler_unittest.cc │ │ │ │ │ ├── capture_levels_adjuster.cc │ │ │ │ │ ├── capture_levels_adjuster.h │ │ │ │ │ └── capture_levels_adjuster_unittest.cc │ │ │ │ ├── common.h │ │ │ │ ├── config_unittest.cc │ │ │ │ ├── debug.proto │ │ │ │ ├── echo_control_mobile_bit_exact_unittest.cc │ │ │ │ ├── echo_control_mobile_impl.cc │ │ │ │ ├── echo_control_mobile_impl.h │ │ │ │ ├── echo_control_mobile_unittest.cc │ │ │ │ ├── echo_detector/ │ │ │ │ │ ├── circular_buffer.cc │ │ │ │ │ ├── circular_buffer.h │ │ │ │ │ ├── circular_buffer_unittest.cc │ │ │ │ │ ├── mean_variance_estimator.cc │ │ │ │ │ ├── mean_variance_estimator.h │ │ │ │ │ ├── mean_variance_estimator_unittest.cc │ │ │ │ │ ├── moving_max.cc │ │ │ │ │ ├── moving_max.h │ │ │ │ │ ├── moving_max_unittest.cc │ │ │ │ │ ├── normalized_covariance_estimator.cc │ │ │ │ │ ├── normalized_covariance_estimator.h │ │ │ │ │ └── normalized_covariance_estimator_unittest.cc │ │ │ │ ├── g3doc/ │ │ │ │ │ └── audio_processing_module.md │ │ │ │ ├── gain_control_impl.cc │ │ │ │ ├── gain_control_impl.h │ │ │ │ ├── gain_control_unittest.cc │ │ │ │ ├── gain_controller2.cc │ │ │ │ ├── gain_controller2.h │ │ │ │ ├── gain_controller2_unittest.cc │ │ │ │ ├── high_pass_filter.cc │ │ │ │ ├── high_pass_filter.h │ │ │ │ ├── high_pass_filter_unittest.cc │ │ │ │ ├── include/ │ │ │ │ │ ├── aec_dump.cc │ │ │ │ │ ├── aec_dump.h │ │ │ │ │ ├── audio_frame_proxies.cc │ │ │ │ │ ├── audio_frame_proxies.h │ │ │ │ │ ├── audio_frame_view.h │ │ │ │ │ ├── audio_processing.cc │ │ │ │ │ ├── audio_processing.h │ │ │ │ │ ├── audio_processing_statistics.cc │ │ │ │ │ ├── audio_processing_statistics.h │ │ │ │ │ ├── config.cc │ │ │ │ │ ├── config.h │ │ │ │ │ └── mock_audio_processing.h │ │ │ │ ├── level_estimator.cc │ │ │ │ ├── level_estimator.h │ │ │ │ ├── level_estimator_unittest.cc │ │ │ │ ├── logging/ │ │ │ │ │ ├── apm_data_dumper.cc │ │ │ │ │ └── apm_data_dumper.h │ │ │ │ ├── ns/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── fast_math.cc │ │ │ │ │ ├── fast_math.h │ │ │ │ │ ├── histograms.cc │ │ │ │ │ ├── histograms.h │ │ │ │ │ ├── noise_estimator.cc │ │ │ │ │ ├── noise_estimator.h │ │ │ │ │ ├── noise_suppressor.cc │ │ │ │ │ ├── noise_suppressor.h │ │ │ │ │ ├── noise_suppressor_unittest.cc │ │ │ │ │ ├── ns_common.h │ │ │ │ │ ├── ns_config.h │ │ │ │ │ ├── ns_fft.cc │ │ │ │ │ ├── ns_fft.h │ │ │ │ │ ├── prior_signal_model.cc │ │ │ │ │ ├── prior_signal_model.h │ │ │ │ │ ├── prior_signal_model_estimator.cc │ │ │ │ │ ├── prior_signal_model_estimator.h │ │ │ │ │ ├── quantile_noise_estimator.cc │ │ │ │ │ ├── quantile_noise_estimator.h │ │ │ │ │ ├── signal_model.cc │ │ │ │ │ ├── signal_model.h │ │ │ │ │ ├── signal_model_estimator.cc │ │ │ │ │ ├── signal_model_estimator.h │ │ │ │ │ ├── speech_probability_estimator.cc │ │ │ │ │ ├── speech_probability_estimator.h │ │ │ │ │ ├── suppression_params.cc │ │ │ │ │ ├── suppression_params.h │ │ │ │ │ ├── wiener_filter.cc │ │ │ │ │ └── wiener_filter.h │ │ │ │ ├── optionally_built_submodule_creators.cc │ │ │ │ ├── optionally_built_submodule_creators.h │ │ │ │ ├── render_queue_item_verifier.h │ │ │ │ ├── residual_echo_detector.cc │ │ │ │ ├── residual_echo_detector.h │ │ │ │ ├── residual_echo_detector_unittest.cc │ │ │ │ ├── rms_level.cc │ │ │ │ ├── rms_level.h │ │ │ │ ├── rms_level_unittest.cc │ │ │ │ ├── splitting_filter.cc │ │ │ │ ├── splitting_filter.h │ │ │ │ ├── splitting_filter_unittest.cc │ │ │ │ ├── test/ │ │ │ │ │ ├── aec_dump_based_simulator.cc │ │ │ │ │ ├── aec_dump_based_simulator.h │ │ │ │ │ ├── android/ │ │ │ │ │ │ └── apmtest/ │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ ├── default.properties │ │ │ │ │ │ ├── jni/ │ │ │ │ │ │ │ └── main.c │ │ │ │ │ │ └── res/ │ │ │ │ │ │ └── values/ │ │ │ │ │ │ └── strings.xml │ │ │ │ │ ├── api_call_statistics.cc │ │ │ │ │ ├── api_call_statistics.h │ │ │ │ │ ├── apmtest.m │ │ │ │ │ ├── audio_buffer_tools.cc │ │ │ │ │ ├── audio_buffer_tools.h │ │ │ │ │ ├── audio_processing_builder_for_testing.cc │ │ │ │ │ ├── audio_processing_builder_for_testing.h │ │ │ │ │ ├── audio_processing_simulator.cc │ │ │ │ │ ├── audio_processing_simulator.h │ │ │ │ │ ├── audioproc_float_impl.cc │ │ │ │ │ ├── audioproc_float_impl.h │ │ │ │ │ ├── bitexactness_tools.cc │ │ │ │ │ ├── bitexactness_tools.h │ │ │ │ │ ├── conversational_speech/ │ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ │ ├── OWNERS │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── config.cc │ │ │ │ │ │ ├── config.h │ │ │ │ │ │ ├── generator.cc │ │ │ │ │ │ ├── generator_unittest.cc │ │ │ │ │ │ ├── mock_wavreader.cc │ │ │ │ │ │ ├── mock_wavreader.h │ │ │ │ │ │ ├── mock_wavreader_factory.cc │ │ │ │ │ │ ├── mock_wavreader_factory.h │ │ │ │ │ │ ├── multiend_call.cc │ │ │ │ │ │ ├── multiend_call.h │ │ │ │ │ │ ├── simulator.cc │ │ │ │ │ │ ├── simulator.h │ │ │ │ │ │ ├── timing.cc │ │ │ │ │ │ ├── timing.h │ │ │ │ │ │ ├── wavreader_abstract_factory.h │ │ │ │ │ │ ├── wavreader_factory.cc │ │ │ │ │ │ ├── wavreader_factory.h │ │ │ │ │ │ └── wavreader_interface.h │ │ │ │ │ ├── debug_dump_replayer.cc │ │ │ │ │ ├── debug_dump_replayer.h │ │ │ │ │ ├── debug_dump_test.cc │ │ │ │ │ ├── echo_canceller_test_tools.cc │ │ │ │ │ ├── echo_canceller_test_tools.h │ │ │ │ │ ├── echo_canceller_test_tools_unittest.cc │ │ │ │ │ ├── echo_control_mock.h │ │ │ │ │ ├── fake_recording_device.cc │ │ │ │ │ ├── fake_recording_device.h │ │ │ │ │ ├── fake_recording_device_unittest.cc │ │ │ │ │ ├── performance_timer.cc │ │ │ │ │ ├── performance_timer.h │ │ │ │ │ ├── protobuf_utils.cc │ │ │ │ │ ├── protobuf_utils.h │ │ │ │ │ ├── py_quality_assessment/ │ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ │ ├── OWNERS │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── apm_configs/ │ │ │ │ │ │ │ └── default.json │ │ │ │ │ │ ├── apm_quality_assessment.py │ │ │ │ │ │ ├── apm_quality_assessment.sh │ │ │ │ │ │ ├── apm_quality_assessment_boxplot.py │ │ │ │ │ │ ├── apm_quality_assessment_export.py │ │ │ │ │ │ ├── apm_quality_assessment_gencfgs.py │ │ │ │ │ │ ├── apm_quality_assessment_optimize.py │ │ │ │ │ │ ├── apm_quality_assessment_unittest.py │ │ │ │ │ │ ├── output/ │ │ │ │ │ │ │ └── README.md │ │ │ │ │ │ └── quality_assessment/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── annotations.py │ │ │ │ │ │ ├── annotations_unittest.py │ │ │ │ │ │ ├── apm_configs/ │ │ │ │ │ │ │ └── default.json │ │ │ │ │ │ ├── apm_vad.cc │ │ │ │ │ │ ├── audioproc_wrapper.py │ │ │ │ │ │ ├── collect_data.py │ │ │ │ │ │ ├── data_access.py │ │ │ │ │ │ ├── echo_path_simulation.py │ │ │ │ │ │ ├── echo_path_simulation_factory.py │ │ │ │ │ │ ├── echo_path_simulation_unittest.py │ │ │ │ │ │ ├── eval_scores.py │ │ │ │ │ │ ├── eval_scores_factory.py │ │ │ │ │ │ ├── eval_scores_unittest.py │ │ │ │ │ │ ├── evaluation.py │ │ │ │ │ │ ├── exceptions.py │ │ │ │ │ │ ├── export.py │ │ │ │ │ │ ├── export_unittest.py │ │ │ │ │ │ ├── external_vad.py │ │ │ │ │ │ ├── fake_external_vad.py │ │ │ │ │ │ ├── fake_polqa.cc │ │ │ │ │ │ ├── input_mixer.py │ │ │ │ │ │ ├── input_mixer_unittest.py │ │ │ │ │ │ ├── input_signal_creator.py │ │ │ │ │ │ ├── results.css │ │ │ │ │ │ ├── results.js │ │ │ │ │ │ ├── signal_processing.py │ │ │ │ │ │ ├── signal_processing_unittest.py │ │ │ │ │ │ ├── simulation.py │ │ │ │ │ │ ├── simulation_unittest.py │ │ │ │ │ │ ├── sound_level.cc │ │ │ │ │ │ ├── test_data_generation.py │ │ │ │ │ │ ├── test_data_generation_factory.py │ │ │ │ │ │ ├── test_data_generation_unittest.py │ │ │ │ │ │ └── vad.cc │ │ │ │ │ ├── runtime_setting_util.cc │ │ │ │ │ ├── runtime_setting_util.h │ │ │ │ │ ├── simulator_buffers.cc │ │ │ │ │ ├── simulator_buffers.h │ │ │ │ │ ├── test_utils.cc │ │ │ │ │ ├── test_utils.h │ │ │ │ │ ├── unittest.proto │ │ │ │ │ ├── wav_based_simulator.cc │ │ │ │ │ └── wav_based_simulator.h │ │ │ │ ├── three_band_filter_bank.cc │ │ │ │ ├── three_band_filter_bank.h │ │ │ │ ├── transient/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── click_annotate.cc │ │ │ │ │ ├── common.h │ │ │ │ │ ├── daubechies_8_wavelet_coeffs.h │ │ │ │ │ ├── dyadic_decimator.h │ │ │ │ │ ├── dyadic_decimator_unittest.cc │ │ │ │ │ ├── file_utils.cc │ │ │ │ │ ├── file_utils.h │ │ │ │ │ ├── file_utils_unittest.cc │ │ │ │ │ ├── moving_moments.cc │ │ │ │ │ ├── moving_moments.h │ │ │ │ │ ├── moving_moments_unittest.cc │ │ │ │ │ ├── test/ │ │ │ │ │ │ ├── plotDetection.m │ │ │ │ │ │ ├── readDetection.m │ │ │ │ │ │ └── readPCM.m │ │ │ │ │ ├── transient_detector.cc │ │ │ │ │ ├── transient_detector.h │ │ │ │ │ ├── transient_detector_unittest.cc │ │ │ │ │ ├── transient_suppression_test.cc │ │ │ │ │ ├── transient_suppressor.h │ │ │ │ │ ├── transient_suppressor_impl.cc │ │ │ │ │ ├── transient_suppressor_impl.h │ │ │ │ │ ├── transient_suppressor_unittest.cc │ │ │ │ │ ├── windows_private.h │ │ │ │ │ ├── wpd_node.cc │ │ │ │ │ ├── wpd_node.h │ │ │ │ │ ├── wpd_node_unittest.cc │ │ │ │ │ ├── wpd_tree.cc │ │ │ │ │ ├── wpd_tree.h │ │ │ │ │ └── wpd_tree_unittest.cc │ │ │ │ ├── typing_detection.cc │ │ │ │ ├── typing_detection.h │ │ │ │ ├── utility/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── DEPS │ │ │ │ │ ├── cascaded_biquad_filter.cc │ │ │ │ │ ├── cascaded_biquad_filter.h │ │ │ │ │ ├── cascaded_biquad_filter_unittest.cc │ │ │ │ │ ├── delay_estimator.cc │ │ │ │ │ ├── delay_estimator.h │ │ │ │ │ ├── delay_estimator_internal.h │ │ │ │ │ ├── delay_estimator_unittest.cc │ │ │ │ │ ├── delay_estimator_wrapper.cc │ │ │ │ │ ├── delay_estimator_wrapper.h │ │ │ │ │ ├── pffft_wrapper.cc │ │ │ │ │ ├── pffft_wrapper.h │ │ │ │ │ └── pffft_wrapper_unittest.cc │ │ │ │ ├── vad/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── common.h │ │ │ │ │ ├── gmm.cc │ │ │ │ │ ├── gmm.h │ │ │ │ │ ├── gmm_unittest.cc │ │ │ │ │ ├── noise_gmm_tables.h │ │ │ │ │ ├── pitch_based_vad.cc │ │ │ │ │ ├── pitch_based_vad.h │ │ │ │ │ ├── pitch_based_vad_unittest.cc │ │ │ │ │ ├── pitch_internal.cc │ │ │ │ │ ├── pitch_internal.h │ │ │ │ │ ├── pitch_internal_unittest.cc │ │ │ │ │ ├── pole_zero_filter.cc │ │ │ │ │ ├── pole_zero_filter.h │ │ │ │ │ ├── pole_zero_filter_unittest.cc │ │ │ │ │ ├── standalone_vad.cc │ │ │ │ │ ├── standalone_vad.h │ │ │ │ │ ├── standalone_vad_unittest.cc │ │ │ │ │ ├── vad_audio_proc.cc │ │ │ │ │ ├── vad_audio_proc.h │ │ │ │ │ ├── vad_audio_proc_internal.h │ │ │ │ │ ├── vad_audio_proc_unittest.cc │ │ │ │ │ ├── vad_circular_buffer.cc │ │ │ │ │ ├── vad_circular_buffer.h │ │ │ │ │ ├── vad_circular_buffer_unittest.cc │ │ │ │ │ ├── voice_activity_detector.cc │ │ │ │ │ ├── voice_activity_detector.h │ │ │ │ │ ├── voice_activity_detector_unittest.cc │ │ │ │ │ └── voice_gmm_tables.h │ │ │ │ ├── voice_detection.cc │ │ │ │ ├── voice_detection.h │ │ │ │ └── voice_detection_unittest.cc │ │ │ ├── congestion_controller/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── goog_cc/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── acknowledged_bitrate_estimator.cc │ │ │ │ │ ├── acknowledged_bitrate_estimator.h │ │ │ │ │ ├── acknowledged_bitrate_estimator_interface.cc │ │ │ │ │ ├── acknowledged_bitrate_estimator_interface.h │ │ │ │ │ ├── acknowledged_bitrate_estimator_unittest.cc │ │ │ │ │ ├── alr_detector.cc │ │ │ │ │ ├── alr_detector.h │ │ │ │ │ ├── alr_detector_unittest.cc │ │ │ │ │ ├── bitrate_estimator.cc │ │ │ │ │ ├── bitrate_estimator.h │ │ │ │ │ ├── congestion_window_pushback_controller.cc │ │ │ │ │ ├── congestion_window_pushback_controller.h │ │ │ │ │ ├── congestion_window_pushback_controller_unittest.cc │ │ │ │ │ ├── delay_based_bwe.cc │ │ │ │ │ ├── delay_based_bwe.h │ │ │ │ │ ├── delay_based_bwe_unittest.cc │ │ │ │ │ ├── delay_based_bwe_unittest_helper.cc │ │ │ │ │ ├── delay_based_bwe_unittest_helper.h │ │ │ │ │ ├── delay_increase_detector_interface.h │ │ │ │ │ ├── goog_cc_network_control.cc │ │ │ │ │ ├── goog_cc_network_control.h │ │ │ │ │ ├── goog_cc_network_control_unittest.cc │ │ │ │ │ ├── inter_arrival_delta.cc │ │ │ │ │ ├── inter_arrival_delta.h │ │ │ │ │ ├── link_capacity_estimator.cc │ │ │ │ │ ├── link_capacity_estimator.h │ │ │ │ │ ├── loss_based_bandwidth_estimation.cc │ │ │ │ │ ├── loss_based_bandwidth_estimation.h │ │ │ │ │ ├── loss_based_bwe_v2.cc │ │ │ │ │ ├── loss_based_bwe_v2.h │ │ │ │ │ ├── loss_based_bwe_v2_test.cc │ │ │ │ │ ├── probe_bitrate_estimator.cc │ │ │ │ │ ├── probe_bitrate_estimator.h │ │ │ │ │ ├── probe_bitrate_estimator_unittest.cc │ │ │ │ │ ├── probe_controller.cc │ │ │ │ │ ├── probe_controller.h │ │ │ │ │ ├── probe_controller_unittest.cc │ │ │ │ │ ├── robust_throughput_estimator.cc │ │ │ │ │ ├── robust_throughput_estimator.h │ │ │ │ │ ├── robust_throughput_estimator_unittest.cc │ │ │ │ │ ├── send_side_bandwidth_estimation.cc │ │ │ │ │ ├── send_side_bandwidth_estimation.h │ │ │ │ │ ├── send_side_bandwidth_estimation_unittest.cc │ │ │ │ │ ├── test/ │ │ │ │ │ │ ├── goog_cc_printer.cc │ │ │ │ │ │ └── goog_cc_printer.h │ │ │ │ │ ├── trendline_estimator.cc │ │ │ │ │ ├── trendline_estimator.h │ │ │ │ │ └── trendline_estimator_unittest.cc │ │ │ │ ├── include/ │ │ │ │ │ └── receive_side_congestion_controller.h │ │ │ │ ├── pcc/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── bitrate_controller.cc │ │ │ │ │ ├── bitrate_controller.h │ │ │ │ │ ├── bitrate_controller_unittest.cc │ │ │ │ │ ├── monitor_interval.cc │ │ │ │ │ ├── monitor_interval.h │ │ │ │ │ ├── monitor_interval_unittest.cc │ │ │ │ │ ├── pcc_factory.cc │ │ │ │ │ ├── pcc_factory.h │ │ │ │ │ ├── pcc_network_controller.cc │ │ │ │ │ ├── pcc_network_controller.h │ │ │ │ │ ├── pcc_network_controller_unittest.cc │ │ │ │ │ ├── rtt_tracker.cc │ │ │ │ │ ├── rtt_tracker.h │ │ │ │ │ ├── rtt_tracker_unittest.cc │ │ │ │ │ ├── utility_function.cc │ │ │ │ │ ├── utility_function.h │ │ │ │ │ └── utility_function_unittest.cc │ │ │ │ ├── receive_side_congestion_controller.cc │ │ │ │ ├── receive_side_congestion_controller_unittest.cc │ │ │ │ ├── remb_throttler.cc │ │ │ │ ├── remb_throttler.h │ │ │ │ ├── remb_throttler_unittest.cc │ │ │ │ └── rtp/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── control_handler.cc │ │ │ │ ├── control_handler.h │ │ │ │ ├── transport_feedback_adapter.cc │ │ │ │ ├── transport_feedback_adapter.h │ │ │ │ ├── transport_feedback_adapter_unittest.cc │ │ │ │ ├── transport_feedback_demuxer.cc │ │ │ │ ├── transport_feedback_demuxer.h │ │ │ │ └── transport_feedback_demuxer_unittest.cc │ │ │ ├── desktop_capture/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── blank_detector_desktop_capturer_wrapper.cc │ │ │ │ ├── blank_detector_desktop_capturer_wrapper.h │ │ │ │ ├── blank_detector_desktop_capturer_wrapper_unittest.cc │ │ │ │ ├── cropped_desktop_frame.cc │ │ │ │ ├── cropped_desktop_frame.h │ │ │ │ ├── cropped_desktop_frame_unittest.cc │ │ │ │ ├── cropping_window_capturer.cc │ │ │ │ ├── cropping_window_capturer.h │ │ │ │ ├── cropping_window_capturer_win.cc │ │ │ │ ├── desktop_and_cursor_composer.cc │ │ │ │ ├── desktop_and_cursor_composer.h │ │ │ │ ├── desktop_and_cursor_composer_unittest.cc │ │ │ │ ├── desktop_capture_metrics_helper.cc │ │ │ │ ├── desktop_capture_metrics_helper.h │ │ │ │ ├── desktop_capture_options.cc │ │ │ │ ├── desktop_capture_options.h │ │ │ │ ├── desktop_capture_types.h │ │ │ │ ├── desktop_capturer.cc │ │ │ │ ├── desktop_capturer.h │ │ │ │ ├── desktop_capturer_differ_wrapper.cc │ │ │ │ ├── desktop_capturer_differ_wrapper.h │ │ │ │ ├── desktop_capturer_differ_wrapper_unittest.cc │ │ │ │ ├── desktop_capturer_wrapper.cc │ │ │ │ ├── desktop_capturer_wrapper.h │ │ │ │ ├── desktop_frame.cc │ │ │ │ ├── desktop_frame.h │ │ │ │ ├── desktop_frame_generator.cc │ │ │ │ ├── desktop_frame_generator.h │ │ │ │ ├── desktop_frame_rotation.cc │ │ │ │ ├── desktop_frame_rotation.h │ │ │ │ ├── desktop_frame_rotation_unittest.cc │ │ │ │ ├── desktop_frame_unittest.cc │ │ │ │ ├── desktop_frame_win.cc │ │ │ │ ├── desktop_frame_win.h │ │ │ │ ├── desktop_geometry.cc │ │ │ │ ├── desktop_geometry.h │ │ │ │ ├── desktop_geometry_unittest.cc │ │ │ │ ├── desktop_region.cc │ │ │ │ ├── desktop_region.h │ │ │ │ ├── desktop_region_unittest.cc │ │ │ │ ├── differ_block.cc │ │ │ │ ├── differ_block.h │ │ │ │ ├── differ_block_unittest.cc │ │ │ │ ├── differ_vector_sse2.cc │ │ │ │ ├── differ_vector_sse2.h │ │ │ │ ├── fake_desktop_capturer.cc │ │ │ │ ├── fake_desktop_capturer.h │ │ │ │ ├── fallback_desktop_capturer_wrapper.cc │ │ │ │ ├── fallback_desktop_capturer_wrapper.h │ │ │ │ ├── fallback_desktop_capturer_wrapper_unittest.cc │ │ │ │ ├── full_screen_application_handler.cc │ │ │ │ ├── full_screen_application_handler.h │ │ │ │ ├── full_screen_window_detector.cc │ │ │ │ ├── full_screen_window_detector.h │ │ │ │ ├── linux/ │ │ │ │ │ ├── base_capturer_pipewire.cc │ │ │ │ │ ├── base_capturer_pipewire.h │ │ │ │ │ ├── mouse_cursor_monitor_x11.cc │ │ │ │ │ ├── mouse_cursor_monitor_x11.h │ │ │ │ │ ├── pipewire02.sigs │ │ │ │ │ ├── pipewire03.sigs │ │ │ │ │ ├── pipewire_stub_header.fragment │ │ │ │ │ ├── screen_capturer_x11.cc │ │ │ │ │ ├── screen_capturer_x11.h │ │ │ │ │ ├── shared_x_display.cc │ │ │ │ │ ├── shared_x_display.h │ │ │ │ │ ├── window_capturer_x11.cc │ │ │ │ │ ├── window_capturer_x11.h │ │ │ │ │ ├── window_finder_x11.cc │ │ │ │ │ ├── window_finder_x11.h │ │ │ │ │ ├── window_list_utils.cc │ │ │ │ │ ├── window_list_utils.h │ │ │ │ │ ├── x_atom_cache.cc │ │ │ │ │ ├── x_atom_cache.h │ │ │ │ │ ├── x_error_trap.cc │ │ │ │ │ ├── x_error_trap.h │ │ │ │ │ ├── x_server_pixel_buffer.cc │ │ │ │ │ ├── x_server_pixel_buffer.h │ │ │ │ │ ├── x_window_property.cc │ │ │ │ │ └── x_window_property.h │ │ │ │ ├── mac/ │ │ │ │ │ ├── desktop_configuration.h │ │ │ │ │ ├── desktop_configuration.mm │ │ │ │ │ ├── desktop_configuration_monitor.cc │ │ │ │ │ ├── desktop_configuration_monitor.h │ │ │ │ │ ├── desktop_frame_cgimage.h │ │ │ │ │ ├── desktop_frame_cgimage.mm │ │ │ │ │ ├── desktop_frame_iosurface.h │ │ │ │ │ ├── desktop_frame_iosurface.mm │ │ │ │ │ ├── desktop_frame_provider.h │ │ │ │ │ ├── desktop_frame_provider.mm │ │ │ │ │ ├── full_screen_mac_application_handler.cc │ │ │ │ │ ├── full_screen_mac_application_handler.h │ │ │ │ │ ├── screen_capturer_mac.h │ │ │ │ │ ├── screen_capturer_mac.mm │ │ │ │ │ ├── window_list_utils.cc │ │ │ │ │ └── window_list_utils.h │ │ │ │ ├── mock_desktop_capturer_callback.cc │ │ │ │ ├── mock_desktop_capturer_callback.h │ │ │ │ ├── mouse_cursor.cc │ │ │ │ ├── mouse_cursor.h │ │ │ │ ├── mouse_cursor_monitor.h │ │ │ │ ├── mouse_cursor_monitor_linux.cc │ │ │ │ ├── mouse_cursor_monitor_mac.mm │ │ │ │ ├── mouse_cursor_monitor_null.cc │ │ │ │ ├── mouse_cursor_monitor_unittest.cc │ │ │ │ ├── mouse_cursor_monitor_win.cc │ │ │ │ ├── resolution_tracker.cc │ │ │ │ ├── resolution_tracker.h │ │ │ │ ├── rgba_color.cc │ │ │ │ ├── rgba_color.h │ │ │ │ ├── rgba_color_unittest.cc │ │ │ │ ├── screen_capture_frame_queue.h │ │ │ │ ├── screen_capturer_darwin.mm │ │ │ │ ├── screen_capturer_helper.cc │ │ │ │ ├── screen_capturer_helper.h │ │ │ │ ├── screen_capturer_helper_unittest.cc │ │ │ │ ├── screen_capturer_integration_test.cc │ │ │ │ ├── screen_capturer_linux.cc │ │ │ │ ├── screen_capturer_mac_unittest.cc │ │ │ │ ├── screen_capturer_null.cc │ │ │ │ ├── screen_capturer_unittest.cc │ │ │ │ ├── screen_capturer_win.cc │ │ │ │ ├── screen_drawer.cc │ │ │ │ ├── screen_drawer.h │ │ │ │ ├── screen_drawer_linux.cc │ │ │ │ ├── screen_drawer_lock_posix.cc │ │ │ │ ├── screen_drawer_lock_posix.h │ │ │ │ ├── screen_drawer_mac.cc │ │ │ │ ├── screen_drawer_unittest.cc │ │ │ │ ├── screen_drawer_win.cc │ │ │ │ ├── shared_desktop_frame.cc │ │ │ │ ├── shared_desktop_frame.h │ │ │ │ ├── shared_memory.cc │ │ │ │ ├── shared_memory.h │ │ │ │ ├── test_utils.cc │ │ │ │ ├── test_utils.h │ │ │ │ ├── test_utils_unittest.cc │ │ │ │ ├── win/ │ │ │ │ │ ├── cursor.cc │ │ │ │ │ ├── cursor.h │ │ │ │ │ ├── cursor_test_data/ │ │ │ │ │ │ ├── 1_24bpp.cur │ │ │ │ │ │ ├── 1_32bpp.cur │ │ │ │ │ │ ├── 1_8bpp.cur │ │ │ │ │ │ ├── 2_1bpp.cur │ │ │ │ │ │ ├── 2_32bpp.cur │ │ │ │ │ │ ├── 3_32bpp.cur │ │ │ │ │ │ └── 3_4bpp.cur │ │ │ │ │ ├── cursor_unittest.cc │ │ │ │ │ ├── cursor_unittest_resources.h │ │ │ │ │ ├── cursor_unittest_resources.rc │ │ │ │ │ ├── d3d_device.cc │ │ │ │ │ ├── d3d_device.h │ │ │ │ │ ├── desktop.cc │ │ │ │ │ ├── desktop.h │ │ │ │ │ ├── desktop_capture_utils.cc │ │ │ │ │ ├── desktop_capture_utils.h │ │ │ │ │ ├── display_configuration_monitor.cc │ │ │ │ │ ├── display_configuration_monitor.h │ │ │ │ │ ├── dxgi_adapter_duplicator.cc │ │ │ │ │ ├── dxgi_adapter_duplicator.h │ │ │ │ │ ├── dxgi_context.cc │ │ │ │ │ ├── dxgi_context.h │ │ │ │ │ ├── dxgi_duplicator_controller.cc │ │ │ │ │ ├── dxgi_duplicator_controller.h │ │ │ │ │ ├── dxgi_frame.cc │ │ │ │ │ ├── dxgi_frame.h │ │ │ │ │ ├── dxgi_output_duplicator.cc │ │ │ │ │ ├── dxgi_output_duplicator.h │ │ │ │ │ ├── dxgi_texture.cc │ │ │ │ │ ├── dxgi_texture.h │ │ │ │ │ ├── dxgi_texture_mapping.cc │ │ │ │ │ ├── dxgi_texture_mapping.h │ │ │ │ │ ├── dxgi_texture_staging.cc │ │ │ │ │ ├── dxgi_texture_staging.h │ │ │ │ │ ├── full_screen_win_application_handler.cc │ │ │ │ │ ├── full_screen_win_application_handler.h │ │ │ │ │ ├── scoped_gdi_object.h │ │ │ │ │ ├── scoped_thread_desktop.cc │ │ │ │ │ ├── scoped_thread_desktop.h │ │ │ │ │ ├── screen_capture_utils.cc │ │ │ │ │ ├── screen_capture_utils.h │ │ │ │ │ ├── screen_capture_utils_unittest.cc │ │ │ │ │ ├── screen_capturer_win_directx.cc │ │ │ │ │ ├── screen_capturer_win_directx.h │ │ │ │ │ ├── screen_capturer_win_directx_unittest.cc │ │ │ │ │ ├── screen_capturer_win_gdi.cc │ │ │ │ │ ├── screen_capturer_win_gdi.h │ │ │ │ │ ├── screen_capturer_win_magnifier.cc │ │ │ │ │ ├── screen_capturer_win_magnifier.h │ │ │ │ │ ├── selected_window_context.cc │ │ │ │ │ ├── selected_window_context.h │ │ │ │ │ ├── test_support/ │ │ │ │ │ │ ├── test_window.cc │ │ │ │ │ │ └── test_window.h │ │ │ │ │ ├── wgc_capture_session.cc │ │ │ │ │ ├── wgc_capture_session.h │ │ │ │ │ ├── wgc_capture_source.cc │ │ │ │ │ ├── wgc_capture_source.h │ │ │ │ │ ├── wgc_capture_source_unittest.cc │ │ │ │ │ ├── wgc_capturer_win.cc │ │ │ │ │ ├── wgc_capturer_win.h │ │ │ │ │ ├── wgc_capturer_win_unittest.cc │ │ │ │ │ ├── wgc_desktop_frame.cc │ │ │ │ │ ├── wgc_desktop_frame.h │ │ │ │ │ ├── window_capture_utils.cc │ │ │ │ │ ├── window_capture_utils.h │ │ │ │ │ ├── window_capture_utils_unittest.cc │ │ │ │ │ ├── window_capturer_win_gdi.cc │ │ │ │ │ └── window_capturer_win_gdi.h │ │ │ │ ├── window_capturer_linux.cc │ │ │ │ ├── window_capturer_mac.mm │ │ │ │ ├── window_capturer_null.cc │ │ │ │ ├── window_capturer_unittest.cc │ │ │ │ ├── window_capturer_win.cc │ │ │ │ ├── window_finder.cc │ │ │ │ ├── window_finder.h │ │ │ │ ├── window_finder_mac.h │ │ │ │ ├── window_finder_mac.mm │ │ │ │ ├── window_finder_unittest.cc │ │ │ │ ├── window_finder_win.cc │ │ │ │ └── window_finder_win.h │ │ │ ├── include/ │ │ │ │ ├── module.h │ │ │ │ ├── module_common_types.h │ │ │ │ ├── module_common_types_public.h │ │ │ │ └── module_fec_types.h │ │ │ ├── module_common_types_unittest.cc │ │ │ ├── pacing/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── bitrate_prober.cc │ │ │ │ ├── bitrate_prober.h │ │ │ │ ├── bitrate_prober_unittest.cc │ │ │ │ ├── g3doc/ │ │ │ │ │ └── index.md │ │ │ │ ├── interval_budget.cc │ │ │ │ ├── interval_budget.h │ │ │ │ ├── interval_budget_unittest.cc │ │ │ │ ├── paced_sender.cc │ │ │ │ ├── paced_sender.h │ │ │ │ ├── paced_sender_unittest.cc │ │ │ │ ├── pacing_controller.cc │ │ │ │ ├── pacing_controller.h │ │ │ │ ├── pacing_controller_unittest.cc │ │ │ │ ├── packet_router.cc │ │ │ │ ├── packet_router.h │ │ │ │ ├── packet_router_unittest.cc │ │ │ │ ├── round_robin_packet_queue.cc │ │ │ │ ├── round_robin_packet_queue.h │ │ │ │ ├── rtp_packet_pacer.h │ │ │ │ ├── task_queue_paced_sender.cc │ │ │ │ ├── task_queue_paced_sender.h │ │ │ │ └── task_queue_paced_sender_unittest.cc │ │ │ ├── remote_bitrate_estimator/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── aimd_rate_control.cc │ │ │ │ ├── aimd_rate_control.h │ │ │ │ ├── aimd_rate_control_unittest.cc │ │ │ │ ├── bwe_defines.cc │ │ │ │ ├── include/ │ │ │ │ │ ├── bwe_defines.h │ │ │ │ │ └── remote_bitrate_estimator.h │ │ │ │ ├── inter_arrival.cc │ │ │ │ ├── inter_arrival.h │ │ │ │ ├── inter_arrival_unittest.cc │ │ │ │ ├── overuse_detector.cc │ │ │ │ ├── overuse_detector.h │ │ │ │ ├── overuse_detector_unittest.cc │ │ │ │ ├── overuse_estimator.cc │ │ │ │ ├── overuse_estimator.h │ │ │ │ ├── packet_arrival_map.cc │ │ │ │ ├── packet_arrival_map.h │ │ │ │ ├── packet_arrival_map_test.cc │ │ │ │ ├── remote_bitrate_estimator_abs_send_time.cc │ │ │ │ ├── remote_bitrate_estimator_abs_send_time.h │ │ │ │ ├── remote_bitrate_estimator_abs_send_time_unittest.cc │ │ │ │ ├── remote_bitrate_estimator_single_stream.cc │ │ │ │ ├── remote_bitrate_estimator_single_stream.h │ │ │ │ ├── remote_bitrate_estimator_single_stream_unittest.cc │ │ │ │ ├── remote_bitrate_estimator_unittest_helper.cc │ │ │ │ ├── remote_bitrate_estimator_unittest_helper.h │ │ │ │ ├── remote_estimator_proxy.cc │ │ │ │ ├── remote_estimator_proxy.h │ │ │ │ ├── remote_estimator_proxy_unittest.cc │ │ │ │ ├── test/ │ │ │ │ │ ├── bwe_test_logging.cc │ │ │ │ │ └── bwe_test_logging.h │ │ │ │ └── tools/ │ │ │ │ ├── bwe_rtp.cc │ │ │ │ ├── bwe_rtp.h │ │ │ │ └── rtp_to_text.cc │ │ │ ├── rtp_rtcp/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── include/ │ │ │ │ │ ├── flexfec_receiver.h │ │ │ │ │ ├── flexfec_sender.h │ │ │ │ │ ├── receive_statistics.h │ │ │ │ │ ├── remote_ntp_time_estimator.h │ │ │ │ │ ├── report_block_data.cc │ │ │ │ │ ├── report_block_data.h │ │ │ │ │ ├── rtcp_statistics.h │ │ │ │ │ ├── rtp_cvo.h │ │ │ │ │ ├── rtp_header_extension_map.h │ │ │ │ │ ├── rtp_packet_sender.h │ │ │ │ │ ├── rtp_rtcp.h │ │ │ │ │ ├── rtp_rtcp_defines.cc │ │ │ │ │ ├── rtp_rtcp_defines.h │ │ │ │ │ └── ulpfec_receiver.h │ │ │ │ ├── mocks/ │ │ │ │ │ ├── mock_recovered_packet_receiver.h │ │ │ │ │ ├── mock_rtcp_bandwidth_observer.h │ │ │ │ │ ├── mock_rtcp_rtt_stats.h │ │ │ │ │ └── mock_rtp_rtcp.h │ │ │ │ ├── source/ │ │ │ │ │ ├── absolute_capture_time_interpolator.cc │ │ │ │ │ ├── absolute_capture_time_interpolator.h │ │ │ │ │ ├── absolute_capture_time_interpolator_unittest.cc │ │ │ │ │ ├── absolute_capture_time_sender.cc │ │ │ │ │ ├── absolute_capture_time_sender.h │ │ │ │ │ ├── absolute_capture_time_sender_unittest.cc │ │ │ │ │ ├── active_decode_targets_helper.cc │ │ │ │ │ ├── active_decode_targets_helper.h │ │ │ │ │ ├── active_decode_targets_helper_unittest.cc │ │ │ │ │ ├── byte_io.h │ │ │ │ │ ├── byte_io_unittest.cc │ │ │ │ │ ├── capture_clock_offset_updater.cc │ │ │ │ │ ├── capture_clock_offset_updater.h │ │ │ │ │ ├── capture_clock_offset_updater_unittest.cc │ │ │ │ │ ├── create_video_rtp_depacketizer.cc │ │ │ │ │ ├── create_video_rtp_depacketizer.h │ │ │ │ │ ├── deprecated/ │ │ │ │ │ │ ├── deprecated_rtp_sender_egress.cc │ │ │ │ │ │ └── deprecated_rtp_sender_egress.h │ │ │ │ │ ├── dtmf_queue.cc │ │ │ │ │ ├── dtmf_queue.h │ │ │ │ │ ├── fec_private_tables_bursty.cc │ │ │ │ │ ├── fec_private_tables_bursty.h │ │ │ │ │ ├── fec_private_tables_bursty_unittest.cc │ │ │ │ │ ├── fec_private_tables_random.cc │ │ │ │ │ ├── fec_private_tables_random.h │ │ │ │ │ ├── fec_test_helper.cc │ │ │ │ │ ├── fec_test_helper.h │ │ │ │ │ ├── flexfec_header_reader_writer.cc │ │ │ │ │ ├── flexfec_header_reader_writer.h │ │ │ │ │ ├── flexfec_header_reader_writer_unittest.cc │ │ │ │ │ ├── flexfec_receiver.cc │ │ │ │ │ ├── flexfec_receiver_unittest.cc │ │ │ │ │ ├── flexfec_sender.cc │ │ │ │ │ ├── flexfec_sender_unittest.cc │ │ │ │ │ ├── forward_error_correction.cc │ │ │ │ │ ├── forward_error_correction.h │ │ │ │ │ ├── forward_error_correction_internal.cc │ │ │ │ │ ├── forward_error_correction_internal.h │ │ │ │ │ ├── nack_rtx_unittest.cc │ │ │ │ │ ├── packet_loss_stats.cc │ │ │ │ │ ├── packet_loss_stats.h │ │ │ │ │ ├── packet_loss_stats_unittest.cc │ │ │ │ │ ├── packet_sequencer.cc │ │ │ │ │ ├── packet_sequencer.h │ │ │ │ │ ├── packet_sequencer_unittest.cc │ │ │ │ │ ├── receive_statistics_impl.cc │ │ │ │ │ ├── receive_statistics_impl.h │ │ │ │ │ ├── receive_statistics_unittest.cc │ │ │ │ │ ├── remote_ntp_time_estimator.cc │ │ │ │ │ ├── remote_ntp_time_estimator_unittest.cc │ │ │ │ │ ├── rtcp_nack_stats.cc │ │ │ │ │ ├── rtcp_nack_stats.h │ │ │ │ │ ├── rtcp_nack_stats_unittest.cc │ │ │ │ │ ├── rtcp_packet/ │ │ │ │ │ │ ├── app.cc │ │ │ │ │ │ ├── app.h │ │ │ │ │ │ ├── app_unittest.cc │ │ │ │ │ │ ├── bye.cc │ │ │ │ │ │ ├── bye.h │ │ │ │ │ │ ├── bye_unittest.cc │ │ │ │ │ │ ├── common_header.cc │ │ │ │ │ │ ├── common_header.h │ │ │ │ │ │ ├── common_header_unittest.cc │ │ │ │ │ │ ├── compound_packet.cc │ │ │ │ │ │ ├── compound_packet.h │ │ │ │ │ │ ├── compound_packet_unittest.cc │ │ │ │ │ │ ├── dlrr.cc │ │ │ │ │ │ ├── dlrr.h │ │ │ │ │ │ ├── dlrr_unittest.cc │ │ │ │ │ │ ├── extended_jitter_report.cc │ │ │ │ │ │ ├── extended_jitter_report.h │ │ │ │ │ │ ├── extended_jitter_report_unittest.cc │ │ │ │ │ │ ├── extended_reports.cc │ │ │ │ │ │ ├── extended_reports.h │ │ │ │ │ │ ├── extended_reports_unittest.cc │ │ │ │ │ │ ├── fir.cc │ │ │ │ │ │ ├── fir.h │ │ │ │ │ │ ├── fir_unittest.cc │ │ │ │ │ │ ├── loss_notification.cc │ │ │ │ │ │ ├── loss_notification.h │ │ │ │ │ │ ├── loss_notification_unittest.cc │ │ │ │ │ │ ├── nack.cc │ │ │ │ │ │ ├── nack.h │ │ │ │ │ │ ├── nack_unittest.cc │ │ │ │ │ │ ├── pli.cc │ │ │ │ │ │ ├── pli.h │ │ │ │ │ │ ├── pli_unittest.cc │ │ │ │ │ │ ├── psfb.cc │ │ │ │ │ │ ├── psfb.h │ │ │ │ │ │ ├── rapid_resync_request.cc │ │ │ │ │ │ ├── rapid_resync_request.h │ │ │ │ │ │ ├── rapid_resync_request_unittest.cc │ │ │ │ │ │ ├── receiver_report.cc │ │ │ │ │ │ ├── receiver_report.h │ │ │ │ │ │ ├── receiver_report_unittest.cc │ │ │ │ │ │ ├── remb.cc │ │ │ │ │ │ ├── remb.h │ │ │ │ │ │ ├── remb_unittest.cc │ │ │ │ │ │ ├── remote_estimate.cc │ │ │ │ │ │ ├── remote_estimate.h │ │ │ │ │ │ ├── remote_estimate_unittest.cc │ │ │ │ │ │ ├── report_block.cc │ │ │ │ │ │ ├── report_block.h │ │ │ │ │ │ ├── report_block_unittest.cc │ │ │ │ │ │ ├── rrtr.cc │ │ │ │ │ │ ├── rrtr.h │ │ │ │ │ │ ├── rrtr_unittest.cc │ │ │ │ │ │ ├── rtpfb.cc │ │ │ │ │ │ ├── rtpfb.h │ │ │ │ │ │ ├── sdes.cc │ │ │ │ │ │ ├── sdes.h │ │ │ │ │ │ ├── sdes_unittest.cc │ │ │ │ │ │ ├── sender_report.cc │ │ │ │ │ │ ├── sender_report.h │ │ │ │ │ │ ├── sender_report_unittest.cc │ │ │ │ │ │ ├── target_bitrate.cc │ │ │ │ │ │ ├── target_bitrate.h │ │ │ │ │ │ ├── target_bitrate_unittest.cc │ │ │ │ │ │ ├── tmmb_item.cc │ │ │ │ │ │ ├── tmmb_item.h │ │ │ │ │ │ ├── tmmbn.cc │ │ │ │ │ │ ├── tmmbn.h │ │ │ │ │ │ ├── tmmbn_unittest.cc │ │ │ │ │ │ ├── tmmbr.cc │ │ │ │ │ │ ├── tmmbr.h │ │ │ │ │ │ ├── tmmbr_unittest.cc │ │ │ │ │ │ ├── transport_feedback.cc │ │ │ │ │ │ ├── transport_feedback.h │ │ │ │ │ │ └── transport_feedback_unittest.cc │ │ │ │ │ ├── rtcp_packet.cc │ │ │ │ │ ├── rtcp_packet.h │ │ │ │ │ ├── rtcp_packet_unittest.cc │ │ │ │ │ ├── rtcp_receiver.cc │ │ │ │ │ ├── rtcp_receiver.h │ │ │ │ │ ├── rtcp_receiver_unittest.cc │ │ │ │ │ ├── rtcp_sender.cc │ │ │ │ │ ├── rtcp_sender.h │ │ │ │ │ ├── rtcp_sender_unittest.cc │ │ │ │ │ ├── rtcp_transceiver.cc │ │ │ │ │ ├── rtcp_transceiver.h │ │ │ │ │ ├── rtcp_transceiver_config.cc │ │ │ │ │ ├── rtcp_transceiver_config.h │ │ │ │ │ ├── rtcp_transceiver_impl.cc │ │ │ │ │ ├── rtcp_transceiver_impl.h │ │ │ │ │ ├── rtcp_transceiver_impl_unittest.cc │ │ │ │ │ ├── rtcp_transceiver_unittest.cc │ │ │ │ │ ├── rtp_dependency_descriptor_extension.cc │ │ │ │ │ ├── rtp_dependency_descriptor_extension.h │ │ │ │ │ ├── rtp_dependency_descriptor_extension_unittest.cc │ │ │ │ │ ├── rtp_dependency_descriptor_reader.cc │ │ │ │ │ ├── rtp_dependency_descriptor_reader.h │ │ │ │ │ ├── rtp_dependency_descriptor_writer.cc │ │ │ │ │ ├── rtp_dependency_descriptor_writer.h │ │ │ │ │ ├── rtp_descriptor_authentication.cc │ │ │ │ │ ├── rtp_descriptor_authentication.h │ │ │ │ │ ├── rtp_fec_unittest.cc │ │ │ │ │ ├── rtp_format.cc │ │ │ │ │ ├── rtp_format.h │ │ │ │ │ ├── rtp_format_h264.cc │ │ │ │ │ ├── rtp_format_h264.h │ │ │ │ │ ├── rtp_format_h264_unittest.cc │ │ │ │ │ ├── rtp_format_unittest.cc │ │ │ │ │ ├── rtp_format_video_generic.cc │ │ │ │ │ ├── rtp_format_video_generic.h │ │ │ │ │ ├── rtp_format_video_generic_unittest.cc │ │ │ │ │ ├── rtp_format_vp8.cc │ │ │ │ │ ├── rtp_format_vp8.h │ │ │ │ │ ├── rtp_format_vp8_test_helper.cc │ │ │ │ │ ├── rtp_format_vp8_test_helper.h │ │ │ │ │ ├── rtp_format_vp8_unittest.cc │ │ │ │ │ ├── rtp_format_vp9.cc │ │ │ │ │ ├── rtp_format_vp9.h │ │ │ │ │ ├── rtp_format_vp9_unittest.cc │ │ │ │ │ ├── rtp_generic_frame_descriptor.cc │ │ │ │ │ ├── rtp_generic_frame_descriptor.h │ │ │ │ │ ├── rtp_generic_frame_descriptor_extension.cc │ │ │ │ │ ├── rtp_generic_frame_descriptor_extension.h │ │ │ │ │ ├── rtp_generic_frame_descriptor_extension_unittest.cc │ │ │ │ │ ├── rtp_header_extension_map.cc │ │ │ │ │ ├── rtp_header_extension_map_unittest.cc │ │ │ │ │ ├── rtp_header_extension_size.cc │ │ │ │ │ ├── rtp_header_extension_size.h │ │ │ │ │ ├── rtp_header_extension_size_unittest.cc │ │ │ │ │ ├── rtp_header_extensions.cc │ │ │ │ │ ├── rtp_header_extensions.h │ │ │ │ │ ├── rtp_packet.cc │ │ │ │ │ ├── rtp_packet.h │ │ │ │ │ ├── rtp_packet_history.cc │ │ │ │ │ ├── rtp_packet_history.h │ │ │ │ │ ├── rtp_packet_history_unittest.cc │ │ │ │ │ ├── rtp_packet_received.cc │ │ │ │ │ ├── rtp_packet_received.h │ │ │ │ │ ├── rtp_packet_to_send.cc │ │ │ │ │ ├── rtp_packet_to_send.h │ │ │ │ │ ├── rtp_packet_unittest.cc │ │ │ │ │ ├── rtp_packetizer_av1.cc │ │ │ │ │ ├── rtp_packetizer_av1.h │ │ │ │ │ ├── rtp_packetizer_av1_test_helper.cc │ │ │ │ │ ├── rtp_packetizer_av1_test_helper.h │ │ │ │ │ ├── rtp_packetizer_av1_unittest.cc │ │ │ │ │ ├── rtp_rtcp_config.h │ │ │ │ │ ├── rtp_rtcp_impl.cc │ │ │ │ │ ├── rtp_rtcp_impl.h │ │ │ │ │ ├── rtp_rtcp_impl2.cc │ │ │ │ │ ├── rtp_rtcp_impl2.h │ │ │ │ │ ├── rtp_rtcp_impl2_unittest.cc │ │ │ │ │ ├── rtp_rtcp_impl_unittest.cc │ │ │ │ │ ├── rtp_rtcp_interface.h │ │ │ │ │ ├── rtp_sender.cc │ │ │ │ │ ├── rtp_sender.h │ │ │ │ │ ├── rtp_sender_audio.cc │ │ │ │ │ ├── rtp_sender_audio.h │ │ │ │ │ ├── rtp_sender_audio_unittest.cc │ │ │ │ │ ├── rtp_sender_egress.cc │ │ │ │ │ ├── rtp_sender_egress.h │ │ │ │ │ ├── rtp_sender_egress_unittest.cc │ │ │ │ │ ├── rtp_sender_unittest.cc │ │ │ │ │ ├── rtp_sender_video.cc │ │ │ │ │ ├── rtp_sender_video.h │ │ │ │ │ ├── rtp_sender_video_frame_transformer_delegate.cc │ │ │ │ │ ├── rtp_sender_video_frame_transformer_delegate.h │ │ │ │ │ ├── rtp_sender_video_unittest.cc │ │ │ │ │ ├── rtp_sequence_number_map.cc │ │ │ │ │ ├── rtp_sequence_number_map.h │ │ │ │ │ ├── rtp_sequence_number_map_unittest.cc │ │ │ │ │ ├── rtp_util.cc │ │ │ │ │ ├── rtp_util.h │ │ │ │ │ ├── rtp_util_unittest.cc │ │ │ │ │ ├── rtp_video_header.cc │ │ │ │ │ ├── rtp_video_header.h │ │ │ │ │ ├── rtp_video_layers_allocation_extension.cc │ │ │ │ │ ├── rtp_video_layers_allocation_extension.h │ │ │ │ │ ├── rtp_video_layers_allocation_extension_unittest.cc │ │ │ │ │ ├── source_tracker.cc │ │ │ │ │ ├── source_tracker.h │ │ │ │ │ ├── source_tracker_unittest.cc │ │ │ │ │ ├── time_util.cc │ │ │ │ │ ├── time_util.h │ │ │ │ │ ├── time_util_unittest.cc │ │ │ │ │ ├── tmmbr_help.cc │ │ │ │ │ ├── tmmbr_help.h │ │ │ │ │ ├── ulpfec_generator.cc │ │ │ │ │ ├── ulpfec_generator.h │ │ │ │ │ ├── ulpfec_generator_unittest.cc │ │ │ │ │ ├── ulpfec_header_reader_writer.cc │ │ │ │ │ ├── ulpfec_header_reader_writer.h │ │ │ │ │ ├── ulpfec_header_reader_writer_unittest.cc │ │ │ │ │ ├── ulpfec_receiver_impl.cc │ │ │ │ │ ├── ulpfec_receiver_impl.h │ │ │ │ │ ├── ulpfec_receiver_unittest.cc │ │ │ │ │ ├── video_fec_generator.h │ │ │ │ │ ├── video_rtp_depacketizer.cc │ │ │ │ │ ├── video_rtp_depacketizer.h │ │ │ │ │ ├── video_rtp_depacketizer_av1.cc │ │ │ │ │ ├── video_rtp_depacketizer_av1.h │ │ │ │ │ ├── video_rtp_depacketizer_av1_unittest.cc │ │ │ │ │ ├── video_rtp_depacketizer_generic.cc │ │ │ │ │ ├── video_rtp_depacketizer_generic.h │ │ │ │ │ ├── video_rtp_depacketizer_generic_unittest.cc │ │ │ │ │ ├── video_rtp_depacketizer_h264.cc │ │ │ │ │ ├── video_rtp_depacketizer_h264.h │ │ │ │ │ ├── video_rtp_depacketizer_h264_unittest.cc │ │ │ │ │ ├── video_rtp_depacketizer_raw.cc │ │ │ │ │ ├── video_rtp_depacketizer_raw.h │ │ │ │ │ ├── video_rtp_depacketizer_raw_unittest.cc │ │ │ │ │ ├── video_rtp_depacketizer_vp8.cc │ │ │ │ │ ├── video_rtp_depacketizer_vp8.h │ │ │ │ │ ├── video_rtp_depacketizer_vp8_unittest.cc │ │ │ │ │ ├── video_rtp_depacketizer_vp9.cc │ │ │ │ │ ├── video_rtp_depacketizer_vp9.h │ │ │ │ │ └── video_rtp_depacketizer_vp9_unittest.cc │ │ │ │ └── test/ │ │ │ │ └── testFec/ │ │ │ │ ├── average_residual_loss_xor_codes.h │ │ │ │ ├── test_fec.cc │ │ │ │ └── test_packet_masks_metrics.cc │ │ │ ├── third_party/ │ │ │ │ ├── fft/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.chromium │ │ │ │ │ ├── fft.c │ │ │ │ │ └── fft.h │ │ │ │ ├── g711/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.chromium │ │ │ │ │ ├── g711.c │ │ │ │ │ └── g711.h │ │ │ │ ├── g722/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.chromium │ │ │ │ │ ├── g722_decode.c │ │ │ │ │ ├── g722_enc_dec.h │ │ │ │ │ └── g722_encode.c │ │ │ │ └── portaudio/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── LICENSE │ │ │ │ ├── README.chromium │ │ │ │ ├── pa_memorybarrier.h │ │ │ │ ├── pa_ringbuffer.c │ │ │ │ └── pa_ringbuffer.h │ │ │ ├── utility/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── include/ │ │ │ │ │ ├── helpers_android.h │ │ │ │ │ ├── jvm_android.h │ │ │ │ │ ├── mock/ │ │ │ │ │ │ └── mock_process_thread.h │ │ │ │ │ └── process_thread.h │ │ │ │ └── source/ │ │ │ │ ├── helpers_android.cc │ │ │ │ ├── jvm_android.cc │ │ │ │ ├── process_thread_impl.cc │ │ │ │ ├── process_thread_impl.h │ │ │ │ └── process_thread_impl_unittest.cc │ │ │ ├── video_capture/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── device_info_impl.cc │ │ │ │ ├── device_info_impl.h │ │ │ │ ├── linux/ │ │ │ │ │ ├── device_info_linux.cc │ │ │ │ │ ├── device_info_linux.h │ │ │ │ │ ├── video_capture_linux.cc │ │ │ │ │ └── video_capture_linux.h │ │ │ │ ├── test/ │ │ │ │ │ └── video_capture_unittest.cc │ │ │ │ ├── video_capture.h │ │ │ │ ├── video_capture_config.h │ │ │ │ ├── video_capture_defines.h │ │ │ │ ├── video_capture_factory.cc │ │ │ │ ├── video_capture_factory.h │ │ │ │ ├── video_capture_impl.cc │ │ │ │ ├── video_capture_impl.h │ │ │ │ └── windows/ │ │ │ │ ├── device_info_ds.cc │ │ │ │ ├── device_info_ds.h │ │ │ │ ├── help_functions_ds.cc │ │ │ │ ├── help_functions_ds.h │ │ │ │ ├── sink_filter_ds.cc │ │ │ │ ├── sink_filter_ds.h │ │ │ │ ├── video_capture_ds.cc │ │ │ │ ├── video_capture_ds.h │ │ │ │ └── video_capture_factory_windows.cc │ │ │ ├── video_coding/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── chain_diff_calculator.cc │ │ │ │ ├── chain_diff_calculator.h │ │ │ │ ├── chain_diff_calculator_unittest.cc │ │ │ │ ├── codec_timer.cc │ │ │ │ ├── codec_timer.h │ │ │ │ ├── codecs/ │ │ │ │ │ ├── av1/ │ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ │ ├── DEPS │ │ │ │ │ │ ├── av1_svc_config.cc │ │ │ │ │ │ ├── av1_svc_config.h │ │ │ │ │ │ ├── av1_svc_config_unittest.cc │ │ │ │ │ │ ├── libaom_av1_decoder.cc │ │ │ │ │ │ ├── libaom_av1_decoder.h │ │ │ │ │ │ ├── libaom_av1_decoder_absent.cc │ │ │ │ │ │ ├── libaom_av1_encoder.cc │ │ │ │ │ │ ├── libaom_av1_encoder.h │ │ │ │ │ │ ├── libaom_av1_encoder_absent.cc │ │ │ │ │ │ ├── libaom_av1_encoder_unittest.cc │ │ │ │ │ │ └── libaom_av1_unittest.cc │ │ │ │ │ ├── h264/ │ │ │ │ │ │ ├── DEPS │ │ │ │ │ │ ├── OWNERS │ │ │ │ │ │ ├── h264.cc │ │ │ │ │ │ ├── h264_color_space.cc │ │ │ │ │ │ ├── h264_color_space.h │ │ │ │ │ │ ├── h264_decoder_impl.cc │ │ │ │ │ │ ├── h264_decoder_impl.h │ │ │ │ │ │ ├── h264_encoder_impl.cc │ │ │ │ │ │ ├── h264_encoder_impl.h │ │ │ │ │ │ ├── h264_encoder_impl_unittest.cc │ │ │ │ │ │ ├── h264_simulcast_unittest.cc │ │ │ │ │ │ ├── include/ │ │ │ │ │ │ │ ├── h264.h │ │ │ │ │ │ │ └── h264_globals.h │ │ │ │ │ │ └── test/ │ │ │ │ │ │ └── h264_impl_unittest.cc │ │ │ │ │ ├── interface/ │ │ │ │ │ │ ├── common_constants.h │ │ │ │ │ │ ├── libvpx_interface.cc │ │ │ │ │ │ ├── libvpx_interface.h │ │ │ │ │ │ └── mock_libvpx_interface.h │ │ │ │ │ ├── multiplex/ │ │ │ │ │ │ ├── augmented_video_frame_buffer.cc │ │ │ │ │ │ ├── include/ │ │ │ │ │ │ │ ├── augmented_video_frame_buffer.h │ │ │ │ │ │ │ ├── multiplex_decoder_adapter.h │ │ │ │ │ │ │ └── multiplex_encoder_adapter.h │ │ │ │ │ │ ├── multiplex_decoder_adapter.cc │ │ │ │ │ │ ├── multiplex_encoded_image_packer.cc │ │ │ │ │ │ ├── multiplex_encoded_image_packer.h │ │ │ │ │ │ ├── multiplex_encoder_adapter.cc │ │ │ │ │ │ └── test/ │ │ │ │ │ │ └── multiplex_adapter_unittest.cc │ │ │ │ │ ├── test/ │ │ │ │ │ │ ├── android_codec_factory_helper.cc │ │ │ │ │ │ ├── android_codec_factory_helper.h │ │ │ │ │ │ ├── batch/ │ │ │ │ │ │ │ ├── empty-runtime-deps │ │ │ │ │ │ │ ├── run-instantiation-tests.sh │ │ │ │ │ │ │ └── run-videoprocessor-tests.sh │ │ │ │ │ │ ├── encoded_video_frame_producer.cc │ │ │ │ │ │ ├── encoded_video_frame_producer.h │ │ │ │ │ │ ├── objc_codec_factory_helper.h │ │ │ │ │ │ ├── objc_codec_factory_helper.mm │ │ │ │ │ │ ├── plot_webrtc_test_logs.py │ │ │ │ │ │ ├── video_codec_unittest.cc │ │ │ │ │ │ ├── video_codec_unittest.h │ │ │ │ │ │ ├── video_encoder_decoder_instantiation_tests.cc │ │ │ │ │ │ ├── videocodec_test_fixture_config_unittest.cc │ │ │ │ │ │ ├── videocodec_test_fixture_impl.cc │ │ │ │ │ │ ├── videocodec_test_fixture_impl.h │ │ │ │ │ │ ├── videocodec_test_libaom.cc │ │ │ │ │ │ ├── videocodec_test_libvpx.cc │ │ │ │ │ │ ├── videocodec_test_mediacodec.cc │ │ │ │ │ │ ├── videocodec_test_openh264.cc │ │ │ │ │ │ ├── videocodec_test_stats_impl.cc │ │ │ │ │ │ ├── videocodec_test_stats_impl.h │ │ │ │ │ │ ├── videocodec_test_stats_impl_unittest.cc │ │ │ │ │ │ ├── videocodec_test_videotoolbox.cc │ │ │ │ │ │ ├── videoprocessor.cc │ │ │ │ │ │ ├── videoprocessor.h │ │ │ │ │ │ └── videoprocessor_unittest.cc │ │ │ │ │ ├── vp8/ │ │ │ │ │ │ ├── default_temporal_layers.cc │ │ │ │ │ │ ├── default_temporal_layers.h │ │ │ │ │ │ ├── default_temporal_layers_unittest.cc │ │ │ │ │ │ ├── include/ │ │ │ │ │ │ │ ├── temporal_layers_checker.h │ │ │ │ │ │ │ ├── vp8.h │ │ │ │ │ │ │ └── vp8_globals.h │ │ │ │ │ │ ├── libvpx_vp8_decoder.cc │ │ │ │ │ │ ├── libvpx_vp8_decoder.h │ │ │ │ │ │ ├── libvpx_vp8_encoder.cc │ │ │ │ │ │ ├── libvpx_vp8_encoder.h │ │ │ │ │ │ ├── libvpx_vp8_simulcast_test.cc │ │ │ │ │ │ ├── screenshare_layers.cc │ │ │ │ │ │ ├── screenshare_layers.h │ │ │ │ │ │ ├── screenshare_layers_unittest.cc │ │ │ │ │ │ ├── temporal_layers.h │ │ │ │ │ │ ├── temporal_layers_checker.cc │ │ │ │ │ │ └── test/ │ │ │ │ │ │ └── vp8_impl_unittest.cc │ │ │ │ │ └── vp9/ │ │ │ │ │ ├── DEPS │ │ │ │ │ ├── include/ │ │ │ │ │ │ ├── vp9.h │ │ │ │ │ │ └── vp9_globals.h │ │ │ │ │ ├── libvpx_vp9_decoder.cc │ │ │ │ │ ├── libvpx_vp9_decoder.h │ │ │ │ │ ├── libvpx_vp9_encoder.cc │ │ │ │ │ ├── libvpx_vp9_encoder.h │ │ │ │ │ ├── svc_config.cc │ │ │ │ │ ├── svc_config.h │ │ │ │ │ ├── svc_config_unittest.cc │ │ │ │ │ ├── test/ │ │ │ │ │ │ └── vp9_impl_unittest.cc │ │ │ │ │ ├── vp9.cc │ │ │ │ │ ├── vp9_frame_buffer_pool.cc │ │ │ │ │ └── vp9_frame_buffer_pool.h │ │ │ │ ├── decoder_database.cc │ │ │ │ ├── decoder_database.h │ │ │ │ ├── decoding_state.cc │ │ │ │ ├── decoding_state.h │ │ │ │ ├── decoding_state_unittest.cc │ │ │ │ ├── deprecated/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── nack_module.cc │ │ │ │ │ └── nack_module.h │ │ │ │ ├── encoded_frame.cc │ │ │ │ ├── encoded_frame.h │ │ │ │ ├── event_wrapper.cc │ │ │ │ ├── event_wrapper.h │ │ │ │ ├── fec_controller_default.cc │ │ │ │ ├── fec_controller_default.h │ │ │ │ ├── fec_controller_unittest.cc │ │ │ │ ├── fec_rate_table.h │ │ │ │ ├── frame_buffer.cc │ │ │ │ ├── frame_buffer.h │ │ │ │ ├── frame_buffer2.cc │ │ │ │ ├── frame_buffer2.h │ │ │ │ ├── frame_buffer2_unittest.cc │ │ │ │ ├── frame_dependencies_calculator.cc │ │ │ │ ├── frame_dependencies_calculator.h │ │ │ │ ├── frame_dependencies_calculator_unittest.cc │ │ │ │ ├── frame_object.cc │ │ │ │ ├── frame_object.h │ │ │ │ ├── g3doc/ │ │ │ │ │ └── index.md │ │ │ │ ├── generic_decoder.cc │ │ │ │ ├── generic_decoder.h │ │ │ │ ├── generic_decoder_unittest.cc │ │ │ │ ├── h264_sprop_parameter_sets.cc │ │ │ │ ├── h264_sprop_parameter_sets.h │ │ │ │ ├── h264_sprop_parameter_sets_unittest.cc │ │ │ │ ├── h264_sps_pps_tracker.cc │ │ │ │ ├── h264_sps_pps_tracker.h │ │ │ │ ├── h264_sps_pps_tracker_unittest.cc │ │ │ │ ├── histogram.cc │ │ │ │ ├── histogram.h │ │ │ │ ├── histogram_unittest.cc │ │ │ │ ├── include/ │ │ │ │ │ ├── video_codec_initializer.h │ │ │ │ │ ├── video_codec_interface.cc │ │ │ │ │ ├── video_codec_interface.h │ │ │ │ │ ├── video_coding.h │ │ │ │ │ ├── video_coding_defines.h │ │ │ │ │ └── video_error_codes.h │ │ │ │ ├── inter_frame_delay.cc │ │ │ │ ├── inter_frame_delay.h │ │ │ │ ├── internal_defines.h │ │ │ │ ├── jitter_buffer.cc │ │ │ │ ├── jitter_buffer.h │ │ │ │ ├── jitter_buffer_common.h │ │ │ │ ├── jitter_buffer_unittest.cc │ │ │ │ ├── jitter_estimator.cc │ │ │ │ ├── jitter_estimator.h │ │ │ │ ├── jitter_estimator_tests.cc │ │ │ │ ├── loss_notification_controller.cc │ │ │ │ ├── loss_notification_controller.h │ │ │ │ ├── loss_notification_controller_unittest.cc │ │ │ │ ├── media_opt_util.cc │ │ │ │ ├── media_opt_util.h │ │ │ │ ├── nack_module_unittest.cc │ │ │ │ ├── nack_requester.cc │ │ │ │ ├── nack_requester.h │ │ │ │ ├── nack_requester_unittest.cc │ │ │ │ ├── packet.cc │ │ │ │ ├── packet.h │ │ │ │ ├── packet_buffer.cc │ │ │ │ ├── packet_buffer.h │ │ │ │ ├── packet_buffer_unittest.cc │ │ │ │ ├── receiver.cc │ │ │ │ ├── receiver.h │ │ │ │ ├── receiver_unittest.cc │ │ │ │ ├── rtp_frame_id_only_ref_finder.cc │ │ │ │ ├── rtp_frame_id_only_ref_finder.h │ │ │ │ ├── rtp_frame_reference_finder.cc │ │ │ │ ├── rtp_frame_reference_finder.h │ │ │ │ ├── rtp_frame_reference_finder_unittest.cc │ │ │ │ ├── rtp_generic_ref_finder.cc │ │ │ │ ├── rtp_generic_ref_finder.h │ │ │ │ ├── rtp_seq_num_only_ref_finder.cc │ │ │ │ ├── rtp_seq_num_only_ref_finder.h │ │ │ │ ├── rtp_vp8_ref_finder.cc │ │ │ │ ├── rtp_vp8_ref_finder.h │ │ │ │ ├── rtp_vp8_ref_finder_unittest.cc │ │ │ │ ├── rtp_vp9_ref_finder.cc │ │ │ │ ├── rtp_vp9_ref_finder.h │ │ │ │ ├── rtp_vp9_ref_finder_unittest.cc │ │ │ │ ├── rtt_filter.cc │ │ │ │ ├── rtt_filter.h │ │ │ │ ├── session_info.cc │ │ │ │ ├── session_info.h │ │ │ │ ├── session_info_unittest.cc │ │ │ │ ├── svc/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── create_scalability_structure.cc │ │ │ │ │ ├── create_scalability_structure.h │ │ │ │ │ ├── scalability_structure_full_svc.cc │ │ │ │ │ ├── scalability_structure_full_svc.h │ │ │ │ │ ├── scalability_structure_full_svc_unittest.cc │ │ │ │ │ ├── scalability_structure_key_svc.cc │ │ │ │ │ ├── scalability_structure_key_svc.h │ │ │ │ │ ├── scalability_structure_key_svc_unittest.cc │ │ │ │ │ ├── scalability_structure_l2t2_key_shift.cc │ │ │ │ │ ├── scalability_structure_l2t2_key_shift.h │ │ │ │ │ ├── scalability_structure_l2t2_key_shift_unittest.cc │ │ │ │ │ ├── scalability_structure_simulcast.cc │ │ │ │ │ ├── scalability_structure_simulcast.h │ │ │ │ │ ├── scalability_structure_test_helpers.cc │ │ │ │ │ ├── scalability_structure_test_helpers.h │ │ │ │ │ ├── scalability_structure_unittest.cc │ │ │ │ │ ├── scalable_video_controller.h │ │ │ │ │ ├── scalable_video_controller_no_layering.cc │ │ │ │ │ ├── scalable_video_controller_no_layering.h │ │ │ │ │ ├── svc_rate_allocator.cc │ │ │ │ │ ├── svc_rate_allocator.h │ │ │ │ │ └── svc_rate_allocator_unittest.cc │ │ │ │ ├── test/ │ │ │ │ │ ├── stream_generator.cc │ │ │ │ │ └── stream_generator.h │ │ │ │ ├── timestamp_map.cc │ │ │ │ ├── timestamp_map.h │ │ │ │ ├── timestamp_map_unittest.cc │ │ │ │ ├── timing.cc │ │ │ │ ├── timing.h │ │ │ │ ├── timing_unittest.cc │ │ │ │ ├── unique_timestamp_counter.cc │ │ │ │ ├── unique_timestamp_counter.h │ │ │ │ ├── unique_timestamp_counter_unittest.cc │ │ │ │ ├── utility/ │ │ │ │ │ ├── decoded_frames_history.cc │ │ │ │ │ ├── decoded_frames_history.h │ │ │ │ │ ├── decoded_frames_history_unittest.cc │ │ │ │ │ ├── frame_dropper.cc │ │ │ │ │ ├── frame_dropper.h │ │ │ │ │ ├── frame_dropper_unittest.cc │ │ │ │ │ ├── framerate_controller.cc │ │ │ │ │ ├── framerate_controller.h │ │ │ │ │ ├── framerate_controller_unittest.cc │ │ │ │ │ ├── ivf_file_reader.cc │ │ │ │ │ ├── ivf_file_reader.h │ │ │ │ │ ├── ivf_file_reader_unittest.cc │ │ │ │ │ ├── ivf_file_writer.cc │ │ │ │ │ ├── ivf_file_writer.h │ │ │ │ │ ├── ivf_file_writer_unittest.cc │ │ │ │ │ ├── qp_parser.cc │ │ │ │ │ ├── qp_parser.h │ │ │ │ │ ├── qp_parser_unittest.cc │ │ │ │ │ ├── quality_scaler.cc │ │ │ │ │ ├── quality_scaler.h │ │ │ │ │ ├── quality_scaler_unittest.cc │ │ │ │ │ ├── simulcast_rate_allocator.cc │ │ │ │ │ ├── simulcast_rate_allocator.h │ │ │ │ │ ├── simulcast_rate_allocator_unittest.cc │ │ │ │ │ ├── simulcast_test_fixture_impl.cc │ │ │ │ │ ├── simulcast_test_fixture_impl.h │ │ │ │ │ ├── simulcast_utility.cc │ │ │ │ │ ├── simulcast_utility.h │ │ │ │ │ ├── vp8_header_parser.cc │ │ │ │ │ ├── vp8_header_parser.h │ │ │ │ │ ├── vp9_uncompressed_header_parser.cc │ │ │ │ │ ├── vp9_uncompressed_header_parser.h │ │ │ │ │ └── vp9_uncompressed_header_parser_unittest.cc │ │ │ │ ├── video_codec_initializer.cc │ │ │ │ ├── video_codec_initializer_unittest.cc │ │ │ │ ├── video_coding_defines.cc │ │ │ │ ├── video_coding_impl.cc │ │ │ │ ├── video_coding_impl.h │ │ │ │ ├── video_receiver.cc │ │ │ │ ├── video_receiver2.cc │ │ │ │ ├── video_receiver2.h │ │ │ │ └── video_receiver_unittest.cc │ │ │ └── video_processing/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── OWNERS │ │ │ ├── test/ │ │ │ │ └── denoiser_test.cc │ │ │ ├── util/ │ │ │ │ ├── denoiser_filter.cc │ │ │ │ ├── denoiser_filter.h │ │ │ │ ├── denoiser_filter_c.cc │ │ │ │ ├── denoiser_filter_c.h │ │ │ │ ├── denoiser_filter_neon.cc │ │ │ │ ├── denoiser_filter_neon.h │ │ │ │ ├── denoiser_filter_sse2.cc │ │ │ │ ├── denoiser_filter_sse2.h │ │ │ │ ├── noise_estimation.cc │ │ │ │ ├── noise_estimation.h │ │ │ │ ├── skin_detection.cc │ │ │ │ └── skin_detection.h │ │ │ ├── video_denoiser.cc │ │ │ └── video_denoiser.h │ │ ├── native-api.md │ │ ├── net/ │ │ │ └── dcsctp/ │ │ │ ├── BUILD.gn │ │ │ ├── OWNERS │ │ │ ├── common/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── internal_types.h │ │ │ │ ├── math.h │ │ │ │ ├── math_test.cc │ │ │ │ ├── pair_hash.h │ │ │ │ ├── pair_hash_test.cc │ │ │ │ ├── sequence_numbers.h │ │ │ │ ├── sequence_numbers_test.cc │ │ │ │ ├── str_join.h │ │ │ │ └── str_join_test.cc │ │ │ ├── fuzzers/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── dcsctp_fuzzers.cc │ │ │ │ ├── dcsctp_fuzzers.h │ │ │ │ └── dcsctp_fuzzers_test.cc │ │ │ ├── packet/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── bounded_byte_reader.h │ │ │ │ ├── bounded_byte_reader_test.cc │ │ │ │ ├── bounded_byte_writer.h │ │ │ │ ├── bounded_byte_writer_test.cc │ │ │ │ ├── chunk/ │ │ │ │ │ ├── abort_chunk.cc │ │ │ │ │ ├── abort_chunk.h │ │ │ │ │ ├── abort_chunk_test.cc │ │ │ │ │ ├── chunk.cc │ │ │ │ │ ├── chunk.h │ │ │ │ │ ├── cookie_ack_chunk.cc │ │ │ │ │ ├── cookie_ack_chunk.h │ │ │ │ │ ├── cookie_ack_chunk_test.cc │ │ │ │ │ ├── cookie_echo_chunk.cc │ │ │ │ │ ├── cookie_echo_chunk.h │ │ │ │ │ ├── cookie_echo_chunk_test.cc │ │ │ │ │ ├── data_chunk.cc │ │ │ │ │ ├── data_chunk.h │ │ │ │ │ ├── data_chunk_test.cc │ │ │ │ │ ├── data_common.h │ │ │ │ │ ├── error_chunk.cc │ │ │ │ │ ├── error_chunk.h │ │ │ │ │ ├── error_chunk_test.cc │ │ │ │ │ ├── forward_tsn_chunk.cc │ │ │ │ │ ├── forward_tsn_chunk.h │ │ │ │ │ ├── forward_tsn_chunk_test.cc │ │ │ │ │ ├── forward_tsn_common.h │ │ │ │ │ ├── heartbeat_ack_chunk.cc │ │ │ │ │ ├── heartbeat_ack_chunk.h │ │ │ │ │ ├── heartbeat_ack_chunk_test.cc │ │ │ │ │ ├── heartbeat_request_chunk.cc │ │ │ │ │ ├── heartbeat_request_chunk.h │ │ │ │ │ ├── heartbeat_request_chunk_test.cc │ │ │ │ │ ├── idata_chunk.cc │ │ │ │ │ ├── idata_chunk.h │ │ │ │ │ ├── idata_chunk_test.cc │ │ │ │ │ ├── iforward_tsn_chunk.cc │ │ │ │ │ ├── iforward_tsn_chunk.h │ │ │ │ │ ├── iforward_tsn_chunk_test.cc │ │ │ │ │ ├── init_ack_chunk.cc │ │ │ │ │ ├── init_ack_chunk.h │ │ │ │ │ ├── init_ack_chunk_test.cc │ │ │ │ │ ├── init_chunk.cc │ │ │ │ │ ├── init_chunk.h │ │ │ │ │ ├── init_chunk_test.cc │ │ │ │ │ ├── reconfig_chunk.cc │ │ │ │ │ ├── reconfig_chunk.h │ │ │ │ │ ├── reconfig_chunk_test.cc │ │ │ │ │ ├── sack_chunk.cc │ │ │ │ │ ├── sack_chunk.h │ │ │ │ │ ├── sack_chunk_test.cc │ │ │ │ │ ├── shutdown_ack_chunk.cc │ │ │ │ │ ├── shutdown_ack_chunk.h │ │ │ │ │ ├── shutdown_ack_chunk_test.cc │ │ │ │ │ ├── shutdown_chunk.cc │ │ │ │ │ ├── shutdown_chunk.h │ │ │ │ │ ├── shutdown_chunk_test.cc │ │ │ │ │ ├── shutdown_complete_chunk.cc │ │ │ │ │ ├── shutdown_complete_chunk.h │ │ │ │ │ └── shutdown_complete_chunk_test.cc │ │ │ │ ├── chunk_validators.cc │ │ │ │ ├── chunk_validators.h │ │ │ │ ├── chunk_validators_test.cc │ │ │ │ ├── crc32c.cc │ │ │ │ ├── crc32c.h │ │ │ │ ├── crc32c_test.cc │ │ │ │ ├── data.h │ │ │ │ ├── error_cause/ │ │ │ │ │ ├── cookie_received_while_shutting_down_cause.cc │ │ │ │ │ ├── cookie_received_while_shutting_down_cause.h │ │ │ │ │ ├── cookie_received_while_shutting_down_cause_test.cc │ │ │ │ │ ├── error_cause.cc │ │ │ │ │ ├── error_cause.h │ │ │ │ │ ├── invalid_mandatory_parameter_cause.cc │ │ │ │ │ ├── invalid_mandatory_parameter_cause.h │ │ │ │ │ ├── invalid_mandatory_parameter_cause_test.cc │ │ │ │ │ ├── invalid_stream_identifier_cause.cc │ │ │ │ │ ├── invalid_stream_identifier_cause.h │ │ │ │ │ ├── invalid_stream_identifier_cause_test.cc │ │ │ │ │ ├── missing_mandatory_parameter_cause.cc │ │ │ │ │ ├── missing_mandatory_parameter_cause.h │ │ │ │ │ ├── missing_mandatory_parameter_cause_test.cc │ │ │ │ │ ├── no_user_data_cause.cc │ │ │ │ │ ├── no_user_data_cause.h │ │ │ │ │ ├── no_user_data_cause_test.cc │ │ │ │ │ ├── out_of_resource_error_cause.cc │ │ │ │ │ ├── out_of_resource_error_cause.h │ │ │ │ │ ├── out_of_resource_error_cause_test.cc │ │ │ │ │ ├── protocol_violation_cause.cc │ │ │ │ │ ├── protocol_violation_cause.h │ │ │ │ │ ├── protocol_violation_cause_test.cc │ │ │ │ │ ├── restart_of_an_association_with_new_address_cause.cc │ │ │ │ │ ├── restart_of_an_association_with_new_address_cause.h │ │ │ │ │ ├── restart_of_an_association_with_new_address_cause_test.cc │ │ │ │ │ ├── stale_cookie_error_cause.cc │ │ │ │ │ ├── stale_cookie_error_cause.h │ │ │ │ │ ├── stale_cookie_error_cause_test.cc │ │ │ │ │ ├── unrecognized_chunk_type_cause.cc │ │ │ │ │ ├── unrecognized_chunk_type_cause.h │ │ │ │ │ ├── unrecognized_chunk_type_cause_test.cc │ │ │ │ │ ├── unrecognized_parameter_cause.cc │ │ │ │ │ ├── unrecognized_parameter_cause.h │ │ │ │ │ ├── unrecognized_parameter_cause_test.cc │ │ │ │ │ ├── unresolvable_address_cause.cc │ │ │ │ │ ├── unresolvable_address_cause.h │ │ │ │ │ ├── unresolvable_address_cause_test.cc │ │ │ │ │ ├── user_initiated_abort_cause.cc │ │ │ │ │ ├── user_initiated_abort_cause.h │ │ │ │ │ └── user_initiated_abort_cause_test.cc │ │ │ │ ├── parameter/ │ │ │ │ │ ├── add_incoming_streams_request_parameter.cc │ │ │ │ │ ├── add_incoming_streams_request_parameter.h │ │ │ │ │ ├── add_incoming_streams_request_parameter_test.cc │ │ │ │ │ ├── add_outgoing_streams_request_parameter.cc │ │ │ │ │ ├── add_outgoing_streams_request_parameter.h │ │ │ │ │ ├── add_outgoing_streams_request_parameter_test.cc │ │ │ │ │ ├── forward_tsn_supported_parameter.cc │ │ │ │ │ ├── forward_tsn_supported_parameter.h │ │ │ │ │ ├── forward_tsn_supported_parameter_test.cc │ │ │ │ │ ├── heartbeat_info_parameter.cc │ │ │ │ │ ├── heartbeat_info_parameter.h │ │ │ │ │ ├── incoming_ssn_reset_request_parameter.cc │ │ │ │ │ ├── incoming_ssn_reset_request_parameter.h │ │ │ │ │ ├── incoming_ssn_reset_request_parameter_test.cc │ │ │ │ │ ├── outgoing_ssn_reset_request_parameter.cc │ │ │ │ │ ├── outgoing_ssn_reset_request_parameter.h │ │ │ │ │ ├── outgoing_ssn_reset_request_parameter_test.cc │ │ │ │ │ ├── parameter.cc │ │ │ │ │ ├── parameter.h │ │ │ │ │ ├── parameter_test.cc │ │ │ │ │ ├── reconfiguration_response_parameter.cc │ │ │ │ │ ├── reconfiguration_response_parameter.h │ │ │ │ │ ├── reconfiguration_response_parameter_test.cc │ │ │ │ │ ├── ssn_tsn_reset_request_parameter.cc │ │ │ │ │ ├── ssn_tsn_reset_request_parameter.h │ │ │ │ │ ├── ssn_tsn_reset_request_parameter_test.cc │ │ │ │ │ ├── state_cookie_parameter.cc │ │ │ │ │ ├── state_cookie_parameter.h │ │ │ │ │ ├── state_cookie_parameter_test.cc │ │ │ │ │ ├── supported_extensions_parameter.cc │ │ │ │ │ ├── supported_extensions_parameter.h │ │ │ │ │ └── supported_extensions_parameter_test.cc │ │ │ │ ├── sctp_packet.cc │ │ │ │ ├── sctp_packet.h │ │ │ │ ├── sctp_packet_test.cc │ │ │ │ ├── tlv_trait.cc │ │ │ │ ├── tlv_trait.h │ │ │ │ └── tlv_trait_test.cc │ │ │ ├── public/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── dcsctp_message.h │ │ │ │ ├── dcsctp_options.h │ │ │ │ ├── dcsctp_socket.h │ │ │ │ ├── dcsctp_socket_factory.cc │ │ │ │ ├── dcsctp_socket_factory.h │ │ │ │ ├── mock_dcsctp_socket.h │ │ │ │ ├── mock_dcsctp_socket_test.cc │ │ │ │ ├── packet_observer.h │ │ │ │ ├── strong_alias.h │ │ │ │ ├── strong_alias_test.cc │ │ │ │ ├── text_pcap_packet_observer.cc │ │ │ │ ├── text_pcap_packet_observer.h │ │ │ │ ├── timeout.h │ │ │ │ ├── types.h │ │ │ │ └── types_test.cc │ │ │ ├── rx/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── data_tracker.cc │ │ │ │ ├── data_tracker.h │ │ │ │ ├── data_tracker_test.cc │ │ │ │ ├── reassembly_queue.cc │ │ │ │ ├── reassembly_queue.h │ │ │ │ ├── reassembly_queue_test.cc │ │ │ │ ├── reassembly_streams.h │ │ │ │ ├── traditional_reassembly_streams.cc │ │ │ │ ├── traditional_reassembly_streams.h │ │ │ │ └── traditional_reassembly_streams_test.cc │ │ │ ├── socket/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── callback_deferrer.h │ │ │ │ ├── capabilities.h │ │ │ │ ├── context.h │ │ │ │ ├── dcsctp_socket.cc │ │ │ │ ├── dcsctp_socket.h │ │ │ │ ├── dcsctp_socket_test.cc │ │ │ │ ├── heartbeat_handler.cc │ │ │ │ ├── heartbeat_handler.h │ │ │ │ ├── heartbeat_handler_test.cc │ │ │ │ ├── mock_context.h │ │ │ │ ├── mock_dcsctp_socket_callbacks.h │ │ │ │ ├── state_cookie.cc │ │ │ │ ├── state_cookie.h │ │ │ │ ├── state_cookie_test.cc │ │ │ │ ├── stream_reset_handler.cc │ │ │ │ ├── stream_reset_handler.h │ │ │ │ ├── stream_reset_handler_test.cc │ │ │ │ ├── transmission_control_block.cc │ │ │ │ └── transmission_control_block.h │ │ │ ├── testing/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── data_generator.cc │ │ │ │ ├── data_generator.h │ │ │ │ └── testing_macros.h │ │ │ ├── timer/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── fake_timeout.h │ │ │ │ ├── task_queue_timeout.cc │ │ │ │ ├── task_queue_timeout.h │ │ │ │ ├── task_queue_timeout_test.cc │ │ │ │ ├── timer.cc │ │ │ │ ├── timer.h │ │ │ │ └── timer_test.cc │ │ │ └── tx/ │ │ │ ├── BUILD.gn │ │ │ ├── mock_send_queue.h │ │ │ ├── retransmission_error_counter.cc │ │ │ ├── retransmission_error_counter.h │ │ │ ├── retransmission_error_counter_test.cc │ │ │ ├── retransmission_queue.cc │ │ │ ├── retransmission_queue.h │ │ │ ├── retransmission_queue_test.cc │ │ │ ├── retransmission_timeout.cc │ │ │ ├── retransmission_timeout.h │ │ │ ├── retransmission_timeout_test.cc │ │ │ ├── rr_send_queue.cc │ │ │ ├── rr_send_queue.h │ │ │ ├── rr_send_queue_test.cc │ │ │ └── send_queue.h │ │ ├── p2p/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── OWNERS │ │ │ ├── base/ │ │ │ │ ├── async_stun_tcp_socket.cc │ │ │ │ ├── async_stun_tcp_socket.h │ │ │ │ ├── async_stun_tcp_socket_unittest.cc │ │ │ │ ├── basic_async_resolver_factory.cc │ │ │ │ ├── basic_async_resolver_factory.h │ │ │ │ ├── basic_async_resolver_factory_unittest.cc │ │ │ │ ├── basic_ice_controller.cc │ │ │ │ ├── basic_ice_controller.h │ │ │ │ ├── basic_packet_socket_factory.cc │ │ │ │ ├── basic_packet_socket_factory.h │ │ │ │ ├── candidate_pair_interface.h │ │ │ │ ├── connection.cc │ │ │ │ ├── connection.h │ │ │ │ ├── connection_info.cc │ │ │ │ ├── connection_info.h │ │ │ │ ├── default_ice_transport_factory.cc │ │ │ │ ├── default_ice_transport_factory.h │ │ │ │ ├── dtls_transport.cc │ │ │ │ ├── dtls_transport.h │ │ │ │ ├── dtls_transport_factory.h │ │ │ │ ├── dtls_transport_internal.cc │ │ │ │ ├── dtls_transport_internal.h │ │ │ │ ├── dtls_transport_unittest.cc │ │ │ │ ├── fake_dtls_transport.h │ │ │ │ ├── fake_ice_transport.h │ │ │ │ ├── fake_packet_transport.h │ │ │ │ ├── fake_port_allocator.h │ │ │ │ ├── ice_controller_factory_interface.h │ │ │ │ ├── ice_controller_interface.cc │ │ │ │ ├── ice_controller_interface.h │ │ │ │ ├── ice_credentials_iterator.cc │ │ │ │ ├── ice_credentials_iterator.h │ │ │ │ ├── ice_credentials_iterator_unittest.cc │ │ │ │ ├── ice_transport_internal.cc │ │ │ │ ├── ice_transport_internal.h │ │ │ │ ├── mock_async_resolver.h │ │ │ │ ├── mock_ice_transport.h │ │ │ │ ├── p2p_constants.cc │ │ │ │ ├── p2p_constants.h │ │ │ │ ├── p2p_transport_channel.cc │ │ │ │ ├── p2p_transport_channel.h │ │ │ │ ├── p2p_transport_channel_ice_field_trials.h │ │ │ │ ├── p2p_transport_channel_unittest.cc │ │ │ │ ├── packet_transport_internal.cc │ │ │ │ ├── packet_transport_internal.h │ │ │ │ ├── port.cc │ │ │ │ ├── port.h │ │ │ │ ├── port_allocator.cc │ │ │ │ ├── port_allocator.h │ │ │ │ ├── port_allocator_unittest.cc │ │ │ │ ├── port_interface.cc │ │ │ │ ├── port_interface.h │ │ │ │ ├── port_unittest.cc │ │ │ │ ├── pseudo_tcp.cc │ │ │ │ ├── pseudo_tcp.h │ │ │ │ ├── pseudo_tcp_unittest.cc │ │ │ │ ├── regathering_controller.cc │ │ │ │ ├── regathering_controller.h │ │ │ │ ├── regathering_controller_unittest.cc │ │ │ │ ├── stun_port.cc │ │ │ │ ├── stun_port.h │ │ │ │ ├── stun_port_unittest.cc │ │ │ │ ├── stun_request.cc │ │ │ │ ├── stun_request.h │ │ │ │ ├── stun_request_unittest.cc │ │ │ │ ├── stun_server.cc │ │ │ │ ├── stun_server.h │ │ │ │ ├── stun_server_unittest.cc │ │ │ │ ├── tcp_port.cc │ │ │ │ ├── tcp_port.h │ │ │ │ ├── tcp_port_unittest.cc │ │ │ │ ├── test_stun_server.cc │ │ │ │ ├── test_stun_server.h │ │ │ │ ├── test_turn_customizer.h │ │ │ │ ├── test_turn_server.h │ │ │ │ ├── transport_description.cc │ │ │ │ ├── transport_description.h │ │ │ │ ├── transport_description_factory.cc │ │ │ │ ├── transport_description_factory.h │ │ │ │ ├── transport_description_factory_unittest.cc │ │ │ │ ├── transport_description_unittest.cc │ │ │ │ ├── transport_info.h │ │ │ │ ├── turn_port.cc │ │ │ │ ├── turn_port.h │ │ │ │ ├── turn_port_unittest.cc │ │ │ │ ├── turn_server.cc │ │ │ │ ├── turn_server.h │ │ │ │ ├── turn_server_unittest.cc │ │ │ │ └── udp_port.h │ │ │ ├── client/ │ │ │ │ ├── basic_port_allocator.cc │ │ │ │ ├── basic_port_allocator.h │ │ │ │ ├── basic_port_allocator_unittest.cc │ │ │ │ ├── relay_port_factory_interface.h │ │ │ │ ├── turn_port_factory.cc │ │ │ │ └── turn_port_factory.h │ │ │ ├── g3doc/ │ │ │ │ └── ice.md │ │ │ └── stunprober/ │ │ │ ├── stun_prober.cc │ │ │ ├── stun_prober.h │ │ │ └── stun_prober_unittest.cc │ │ ├── pc/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── OWNERS │ │ │ ├── audio_rtp_receiver.cc │ │ │ ├── audio_rtp_receiver.h │ │ │ ├── audio_track.cc │ │ │ ├── audio_track.h │ │ │ ├── channel.cc │ │ │ ├── channel.h │ │ │ ├── channel_interface.h │ │ │ ├── channel_manager.cc │ │ │ ├── channel_manager.h │ │ │ ├── channel_manager_unittest.cc │ │ │ ├── channel_unittest.cc │ │ │ ├── connection_context.cc │ │ │ ├── connection_context.h │ │ │ ├── data_channel_controller.cc │ │ │ ├── data_channel_controller.h │ │ │ ├── data_channel_integrationtest.cc │ │ │ ├── data_channel_unittest.cc │ │ │ ├── data_channel_utils.cc │ │ │ ├── data_channel_utils.h │ │ │ ├── dtls_srtp_transport.cc │ │ │ ├── dtls_srtp_transport.h │ │ │ ├── dtls_srtp_transport_unittest.cc │ │ │ ├── dtls_transport.cc │ │ │ ├── dtls_transport.h │ │ │ ├── dtls_transport_unittest.cc │ │ │ ├── dtmf_sender.cc │ │ │ ├── dtmf_sender.h │ │ │ ├── dtmf_sender_unittest.cc │ │ │ ├── external_hmac.cc │ │ │ ├── external_hmac.h │ │ │ ├── g3doc/ │ │ │ │ ├── dtls_transport.md │ │ │ │ ├── peer_connection.md │ │ │ │ ├── rtp.md │ │ │ │ ├── sctp_transport.md │ │ │ │ └── srtp.md │ │ │ ├── ice_server_parsing.cc │ │ │ ├── ice_server_parsing.h │ │ │ ├── ice_server_parsing_unittest.cc │ │ │ ├── ice_transport.cc │ │ │ ├── ice_transport.h │ │ │ ├── ice_transport_unittest.cc │ │ │ ├── jitter_buffer_delay.cc │ │ │ ├── jitter_buffer_delay.h │ │ │ ├── jitter_buffer_delay_unittest.cc │ │ │ ├── jsep_ice_candidate.cc │ │ │ ├── jsep_session_description.cc │ │ │ ├── jsep_session_description_unittest.cc │ │ │ ├── jsep_transport.cc │ │ │ ├── jsep_transport.h │ │ │ ├── jsep_transport_collection.cc │ │ │ ├── jsep_transport_collection.h │ │ │ ├── jsep_transport_controller.cc │ │ │ ├── jsep_transport_controller.h │ │ │ ├── jsep_transport_controller_unittest.cc │ │ │ ├── jsep_transport_unittest.cc │ │ │ ├── local_audio_source.cc │ │ │ ├── local_audio_source.h │ │ │ ├── local_audio_source_unittest.cc │ │ │ ├── media_protocol_names.cc │ │ │ ├── media_protocol_names.h │ │ │ ├── media_session.cc │ │ │ ├── media_session.h │ │ │ ├── media_session_unittest.cc │ │ │ ├── media_stream.cc │ │ │ ├── media_stream.h │ │ │ ├── media_stream_observer.cc │ │ │ ├── media_stream_observer.h │ │ │ ├── media_stream_proxy.h │ │ │ ├── media_stream_track_proxy.h │ │ │ ├── media_stream_unittest.cc │ │ │ ├── peer_connection.cc │ │ │ ├── peer_connection.h │ │ │ ├── peer_connection_adaptation_integrationtest.cc │ │ │ ├── peer_connection_bundle_unittest.cc │ │ │ ├── peer_connection_crypto_unittest.cc │ │ │ ├── peer_connection_data_channel_unittest.cc │ │ │ ├── peer_connection_end_to_end_unittest.cc │ │ │ ├── peer_connection_factory.cc │ │ │ ├── peer_connection_factory.h │ │ │ ├── peer_connection_factory_proxy.h │ │ │ ├── peer_connection_factory_unittest.cc │ │ │ ├── peer_connection_header_extension_unittest.cc │ │ │ ├── peer_connection_histogram_unittest.cc │ │ │ ├── peer_connection_ice_unittest.cc │ │ │ ├── peer_connection_integrationtest.cc │ │ │ ├── peer_connection_interface_unittest.cc │ │ │ ├── peer_connection_internal.h │ │ │ ├── peer_connection_jsep_unittest.cc │ │ │ ├── peer_connection_media_unittest.cc │ │ │ ├── peer_connection_message_handler.cc │ │ │ ├── peer_connection_message_handler.h │ │ │ ├── peer_connection_proxy.h │ │ │ ├── peer_connection_rampup_tests.cc │ │ │ ├── peer_connection_rtp_unittest.cc │ │ │ ├── peer_connection_signaling_unittest.cc │ │ │ ├── peer_connection_simulcast_unittest.cc │ │ │ ├── peer_connection_wrapper.cc │ │ │ ├── peer_connection_wrapper.h │ │ │ ├── proxy.cc │ │ │ ├── proxy.h │ │ │ ├── proxy_unittest.cc │ │ │ ├── remote_audio_source.cc │ │ │ ├── remote_audio_source.h │ │ │ ├── rtc_stats_collector.cc │ │ │ ├── rtc_stats_collector.h │ │ │ ├── rtc_stats_collector_unittest.cc │ │ │ ├── rtc_stats_integrationtest.cc │ │ │ ├── rtc_stats_traversal.cc │ │ │ ├── rtc_stats_traversal.h │ │ │ ├── rtc_stats_traversal_unittest.cc │ │ │ ├── rtcp_mux_filter.cc │ │ │ ├── rtcp_mux_filter.h │ │ │ ├── rtcp_mux_filter_unittest.cc │ │ │ ├── rtp_media_utils.cc │ │ │ ├── rtp_media_utils.h │ │ │ ├── rtp_media_utils_unittest.cc │ │ │ ├── rtp_parameters_conversion.cc │ │ │ ├── rtp_parameters_conversion.h │ │ │ ├── rtp_parameters_conversion_unittest.cc │ │ │ ├── rtp_receiver.cc │ │ │ ├── rtp_receiver.h │ │ │ ├── rtp_receiver_proxy.h │ │ │ ├── rtp_sender.cc │ │ │ ├── rtp_sender.h │ │ │ ├── rtp_sender_proxy.h │ │ │ ├── rtp_sender_receiver_unittest.cc │ │ │ ├── rtp_transceiver.cc │ │ │ ├── rtp_transceiver.h │ │ │ ├── rtp_transceiver_unittest.cc │ │ │ ├── rtp_transmission_manager.cc │ │ │ ├── rtp_transmission_manager.h │ │ │ ├── rtp_transport.cc │ │ │ ├── rtp_transport.h │ │ │ ├── rtp_transport_internal.h │ │ │ ├── rtp_transport_unittest.cc │ │ │ ├── scenario_tests/ │ │ │ │ ├── BUILD.gn │ │ │ │ └── goog_cc_test.cc │ │ │ ├── sctp_data_channel.cc │ │ │ ├── sctp_data_channel.h │ │ │ ├── sctp_data_channel_transport.cc │ │ │ ├── sctp_data_channel_transport.h │ │ │ ├── sctp_transport.cc │ │ │ ├── sctp_transport.h │ │ │ ├── sctp_transport_unittest.cc │ │ │ ├── sctp_utils.cc │ │ │ ├── sctp_utils.h │ │ │ ├── sctp_utils_unittest.cc │ │ │ ├── sdp_offer_answer.cc │ │ │ ├── sdp_offer_answer.h │ │ │ ├── sdp_serializer.cc │ │ │ ├── sdp_serializer.h │ │ │ ├── sdp_serializer_unittest.cc │ │ │ ├── sdp_state_provider.h │ │ │ ├── sdp_utils.cc │ │ │ ├── sdp_utils.h │ │ │ ├── session_description.cc │ │ │ ├── session_description.h │ │ │ ├── session_description_unittest.cc │ │ │ ├── simulcast_description.cc │ │ │ ├── simulcast_description.h │ │ │ ├── srtp_filter.cc │ │ │ ├── srtp_filter.h │ │ │ ├── srtp_filter_unittest.cc │ │ │ ├── srtp_session.cc │ │ │ ├── srtp_session.h │ │ │ ├── srtp_session_unittest.cc │ │ │ ├── srtp_transport.cc │ │ │ ├── srtp_transport.h │ │ │ ├── srtp_transport_unittest.cc │ │ │ ├── stats_collector.cc │ │ │ ├── stats_collector.h │ │ │ ├── stats_collector_interface.h │ │ │ ├── stats_collector_unittest.cc │ │ │ ├── stream_collection.h │ │ │ ├── test/ │ │ │ │ ├── DEPS │ │ │ │ ├── android_test_initializer.cc │ │ │ │ ├── android_test_initializer.h │ │ │ │ ├── fake_audio_capture_module.cc │ │ │ │ ├── fake_audio_capture_module.h │ │ │ │ ├── fake_audio_capture_module_unittest.cc │ │ │ │ ├── fake_data_channel_provider.h │ │ │ │ ├── fake_peer_connection_base.h │ │ │ │ ├── fake_peer_connection_for_stats.h │ │ │ │ ├── fake_periodic_video_source.h │ │ │ │ ├── fake_periodic_video_track_source.h │ │ │ │ ├── fake_rtc_certificate_generator.h │ │ │ │ ├── fake_video_track_renderer.h │ │ │ │ ├── fake_video_track_source.h │ │ │ │ ├── frame_generator_capturer_video_track_source.h │ │ │ │ ├── integration_test_helpers.cc │ │ │ │ ├── integration_test_helpers.h │ │ │ │ ├── mock_channel_interface.h │ │ │ │ ├── mock_data_channel.h │ │ │ │ ├── mock_peer_connection_observers.h │ │ │ │ ├── mock_rtp_receiver_internal.h │ │ │ │ ├── mock_rtp_sender_internal.h │ │ │ │ ├── peer_connection_test_wrapper.cc │ │ │ │ ├── peer_connection_test_wrapper.h │ │ │ │ ├── rtc_stats_obtainer.h │ │ │ │ ├── rtp_transport_test_util.h │ │ │ │ ├── srtp_test_util.h │ │ │ │ └── test_sdp_strings.h │ │ │ ├── track_media_info_map.cc │ │ │ ├── track_media_info_map.h │ │ │ ├── track_media_info_map_unittest.cc │ │ │ ├── transceiver_list.cc │ │ │ ├── transceiver_list.h │ │ │ ├── transport_stats.cc │ │ │ ├── transport_stats.h │ │ │ ├── usage_pattern.cc │ │ │ ├── usage_pattern.h │ │ │ ├── used_ids.h │ │ │ ├── used_ids_unittest.cc │ │ │ ├── video_rtp_receiver.cc │ │ │ ├── video_rtp_receiver.h │ │ │ ├── video_rtp_receiver_unittest.cc │ │ │ ├── video_rtp_track_source.cc │ │ │ ├── video_rtp_track_source.h │ │ │ ├── video_rtp_track_source_unittest.cc │ │ │ ├── video_track.cc │ │ │ ├── video_track.h │ │ │ ├── video_track_source.cc │ │ │ ├── video_track_source.h │ │ │ ├── video_track_source_proxy.cc │ │ │ ├── video_track_source_proxy.h │ │ │ ├── video_track_unittest.cc │ │ │ ├── webrtc_sdp.cc │ │ │ ├── webrtc_sdp.h │ │ │ ├── webrtc_sdp_unittest.cc │ │ │ ├── webrtc_session_description_factory.cc │ │ │ └── webrtc_session_description_factory.h │ │ ├── presubmit_test.py │ │ ├── presubmit_test_mocks.py │ │ ├── pylintrc │ │ ├── resources/ │ │ │ ├── .gitignore │ │ │ ├── ConferenceMotion_1280_720_50.yuv.sha1 │ │ │ ├── FourPeople_1280x720_30.yuv.sha1 │ │ │ ├── OWNERS │ │ │ ├── att-downlink.rx.sha1 │ │ │ ├── att-uplink.rx.sha1 │ │ │ ├── audio_coding/ │ │ │ │ ├── F00.BIT20.sha1 │ │ │ │ ├── F00.BIT30.sha1 │ │ │ │ ├── F00.INP.sha1 │ │ │ │ ├── F00.OUT20.sha1 │ │ │ │ ├── F00.OUT30.sha1 │ │ │ │ ├── F01.BIT20.sha1 │ │ │ │ ├── F01.BIT30.sha1 │ │ │ │ ├── F01.INP.sha1 │ │ │ │ ├── F01.OUT20.sha1 │ │ │ │ ├── F01.OUT30.sha1 │ │ │ │ ├── F02.BIT20.sha1 │ │ │ │ ├── F02.BIT30.sha1 │ │ │ │ ├── F02.INP.sha1 │ │ │ │ ├── F02.OUT20.sha1 │ │ │ │ ├── F02.OUT30.sha1 │ │ │ │ ├── F03.BIT20.sha1 │ │ │ │ ├── F03.BIT30.sha1 │ │ │ │ ├── F03.INP.sha1 │ │ │ │ ├── F03.OUT20.sha1 │ │ │ │ ├── F03.OUT30.sha1 │ │ │ │ ├── READ.ME │ │ │ │ ├── clean.chn.sha1 │ │ │ │ ├── music_stereo_48kHz.pcm.sha1 │ │ │ │ ├── neteq_opus.rtp.sha1 │ │ │ │ ├── neteq_opus_dtx.rtp.sha1 │ │ │ │ ├── neteq_universal_new.rtp.sha1 │ │ │ │ ├── speech_4_channels_48k_one_second.wav.sha1 │ │ │ │ ├── speech_mono_16kHz.pcm.sha1 │ │ │ │ ├── speech_mono_32_48kHz.pcm.sha1 │ │ │ │ ├── testfile16kHz.pcm.sha1 │ │ │ │ ├── testfile32kHz.pcm.sha1 │ │ │ │ ├── testfile_fake_stereo_32kHz.pcm.sha1 │ │ │ │ └── teststereo32kHz.pcm.sha1 │ │ │ ├── audio_device/ │ │ │ │ ├── audio_short16.pcm.sha1 │ │ │ │ ├── audio_short44.pcm.sha1 │ │ │ │ ├── audio_short48.pcm.sha1 │ │ │ │ └── audio_short8.pcm.sha1 │ │ │ ├── audio_processing/ │ │ │ │ ├── agc/ │ │ │ │ │ ├── agc_audio.pcm.sha1 │ │ │ │ │ ├── agc_no_circular_buffer.dat.sha1 │ │ │ │ │ ├── agc_pitch_gain.dat.sha1 │ │ │ │ │ ├── agc_pitch_lag.dat.sha1 │ │ │ │ │ ├── agc_spectral_peak.dat.sha1 │ │ │ │ │ ├── agc_vad.dat.sha1 │ │ │ │ │ ├── agc_voicing_prob.dat.sha1 │ │ │ │ │ └── agc_with_circular_buffer.dat.sha1 │ │ │ │ ├── agc2/ │ │ │ │ │ └── rnn_vad/ │ │ │ │ │ ├── band_energies.dat.sha1 │ │ │ │ │ ├── gru_in.dat.sha1 │ │ │ │ │ ├── pitch_buf_24k.dat.sha1 │ │ │ │ │ ├── pitch_lp_res.dat.sha1 │ │ │ │ │ ├── pitch_search_int.dat.sha1 │ │ │ │ │ ├── samples.pcm.sha1 │ │ │ │ │ └── vad_prob.dat.sha1 │ │ │ │ ├── conversational_speech/ │ │ │ │ │ ├── EN_script1_F_sp1_A1.wav.sha1 │ │ │ │ │ ├── EN_script1_F_sp1_A2.wav.sha1 │ │ │ │ │ ├── EN_script1_F_sp1_B1.wav.sha1 │ │ │ │ │ ├── EN_script1_F_sp1_B2.wav.sha1 │ │ │ │ │ ├── EN_script1_F_sp2_A1.wav.sha1 │ │ │ │ │ ├── EN_script1_F_sp2_A2.wav.sha1 │ │ │ │ │ ├── EN_script1_F_sp2_B1.wav.sha1 │ │ │ │ │ ├── EN_script1_F_sp2_B2.wav.sha1 │ │ │ │ │ ├── EN_script1_M_sp1_A1.wav.sha1 │ │ │ │ │ ├── EN_script1_M_sp1_A2.wav.sha1 │ │ │ │ │ ├── EN_script1_M_sp1_B1.wav.sha1 │ │ │ │ │ ├── EN_script1_M_sp1_B2.wav.sha1 │ │ │ │ │ ├── EN_script2_F_sp1_A1.wav.sha1 │ │ │ │ │ ├── EN_script2_F_sp1_A2.wav.sha1 │ │ │ │ │ ├── EN_script2_F_sp1_A3.wav.sha1 │ │ │ │ │ ├── EN_script2_F_sp1_A4.wav.sha1 │ │ │ │ │ ├── EN_script2_F_sp1_B1.wav.sha1 │ │ │ │ │ ├── EN_script2_F_sp1_B2.wav.sha1 │ │ │ │ │ ├── EN_script2_F_sp1_B3.wav.sha1 │ │ │ │ │ ├── EN_script2_F_sp1_B4.wav.sha1 │ │ │ │ │ ├── EN_script2_F_sp2_A1.wav.sha1 │ │ │ │ │ ├── EN_script2_F_sp2_A2.wav.sha1 │ │ │ │ │ ├── EN_script2_F_sp2_A3.wav.sha1 │ │ │ │ │ ├── EN_script2_F_sp2_A4.wav.sha1 │ │ │ │ │ ├── EN_script2_F_sp2_B1.wav.sha1 │ │ │ │ │ ├── EN_script2_F_sp2_B2.wav.sha1 │ │ │ │ │ ├── EN_script2_F_sp2_B3.wav.sha1 │ │ │ │ │ ├── EN_script2_F_sp2_B4.wav.sha1 │ │ │ │ │ ├── EN_script2_M_sp1_A1.wav.sha1 │ │ │ │ │ ├── EN_script2_M_sp1_A2.wav.sha1 │ │ │ │ │ ├── EN_script2_M_sp1_A3.wav.sha1 │ │ │ │ │ ├── EN_script2_M_sp1_A4.wav.sha1 │ │ │ │ │ ├── EN_script2_M_sp1_B1.wav.sha1 │ │ │ │ │ ├── EN_script2_M_sp1_B2.wav.sha1 │ │ │ │ │ ├── EN_script2_M_sp1_B3.wav.sha1 │ │ │ │ │ ├── EN_script2_M_sp1_B4.wav.sha1 │ │ │ │ │ ├── README.md │ │ │ │ │ ├── SE_script1_F_sp1_A1.wav.sha1 │ │ │ │ │ ├── SE_script1_F_sp1_A2.wav.sha1 │ │ │ │ │ ├── SE_script1_F_sp1_B1.wav.sha1 │ │ │ │ │ ├── SE_script1_F_sp1_B2.wav.sha1 │ │ │ │ │ ├── SE_script1_M_sp1_A1.wav.sha1 │ │ │ │ │ ├── SE_script1_M_sp1_A2.wav.sha1 │ │ │ │ │ ├── SE_script1_M_sp1_B1.wav.sha1 │ │ │ │ │ ├── SE_script1_M_sp1_B2.wav.sha1 │ │ │ │ │ ├── SE_script2_F_sp1_A1.wav.sha1 │ │ │ │ │ ├── SE_script2_F_sp1_A2.wav.sha1 │ │ │ │ │ ├── SE_script2_F_sp1_A3.wav.sha1 │ │ │ │ │ ├── SE_script2_F_sp1_A4.wav.sha1 │ │ │ │ │ ├── SE_script2_F_sp1_B1.wav.sha1 │ │ │ │ │ ├── SE_script2_F_sp1_B2.wav.sha1 │ │ │ │ │ ├── SE_script2_F_sp1_B3.wav.sha1 │ │ │ │ │ ├── SE_script2_F_sp1_B4.wav.sha1 │ │ │ │ │ ├── SE_script2_M_sp1_A1.wav.sha1 │ │ │ │ │ ├── SE_script2_M_sp1_A2.wav.sha1 │ │ │ │ │ ├── SE_script2_M_sp1_A3.wav.sha1 │ │ │ │ │ ├── SE_script2_M_sp1_A4.wav.sha1 │ │ │ │ │ ├── SE_script2_M_sp1_B1.wav.sha1 │ │ │ │ │ ├── SE_script2_M_sp1_B2.wav.sha1 │ │ │ │ │ ├── SE_script2_M_sp1_B3.wav.sha1 │ │ │ │ │ ├── SE_script2_M_sp1_B4.wav.sha1 │ │ │ │ │ ├── breathing_F_sp1_1.wav.sha1 │ │ │ │ │ ├── breathing_F_sp2_1.wav.sha1 │ │ │ │ │ ├── breathing_F_sp2_2.wav.sha1 │ │ │ │ │ ├── breathing_M_sp1_1.wav.sha1 │ │ │ │ │ ├── breathing_M_sp1_2.wav.sha1 │ │ │ │ │ └── breathing_M_sp1_3.wav.sha1 │ │ │ │ ├── output_data_fixed.pb.sha1 │ │ │ │ ├── output_data_float.pb.sha1 │ │ │ │ ├── output_data_float_avx2.pb.sha1 │ │ │ │ ├── output_data_mac.pb.sha1 │ │ │ │ ├── test/ │ │ │ │ │ └── py_quality_assessment/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── noise_tracks/ │ │ │ │ │ │ └── city.wav.sha1 │ │ │ │ │ └── probing_signals/ │ │ │ │ │ └── tone-880.wav.sha1 │ │ │ │ └── transient/ │ │ │ │ ├── ajm-macbook-1-spke16m.pcm.sha1 │ │ │ │ ├── audio16kHz.pcm.sha1 │ │ │ │ ├── audio32kHz.pcm.sha1 │ │ │ │ ├── audio48kHz.pcm.sha1 │ │ │ │ ├── audio8kHz.pcm.sha1 │ │ │ │ ├── detect16kHz.dat.sha1 │ │ │ │ ├── detect32kHz.dat.sha1 │ │ │ │ ├── detect48kHz.dat.sha1 │ │ │ │ ├── detect8kHz.dat.sha1 │ │ │ │ ├── double-utils.dat.sha1 │ │ │ │ ├── float-utils.dat.sha1 │ │ │ │ ├── suppressed16kHz.pcm.sha1 │ │ │ │ ├── suppressed32kHz.pcm.sha1 │ │ │ │ ├── suppressed8kHz.pcm.sha1 │ │ │ │ ├── wpd0.dat.sha1 │ │ │ │ ├── wpd1.dat.sha1 │ │ │ │ ├── wpd2.dat.sha1 │ │ │ │ ├── wpd3.dat.sha1 │ │ │ │ ├── wpd4.dat.sha1 │ │ │ │ ├── wpd5.dat.sha1 │ │ │ │ ├── wpd6.dat.sha1 │ │ │ │ └── wpd7.dat.sha1 │ │ │ ├── deflicker_before_cif_short.yuv.sha1 │ │ │ ├── difficult_photo_1850_1110.yuv.sha1 │ │ │ ├── e2e_audio_in.pcm.sha1 │ │ │ ├── far16_stereo.pcm.sha1 │ │ │ ├── far32_stereo.pcm.sha1 │ │ │ ├── far44_stereo.pcm.sha1 │ │ │ ├── far48_stereo.pcm.sha1 │ │ │ ├── far8_stereo.pcm.sha1 │ │ │ ├── foremanColorEnhanced_cif_short.yuv.sha1 │ │ │ ├── foreman_128x96.yuv.sha1 │ │ │ ├── foreman_160x120.yuv.sha1 │ │ │ ├── foreman_176x144.yuv.sha1 │ │ │ ├── foreman_240x136.yuv.sha1 │ │ │ ├── foreman_320x240.yuv.sha1 │ │ │ ├── foreman_480x272.yuv.sha1 │ │ │ ├── foreman_cif.yuv.sha1 │ │ │ ├── foreman_cif_short.yuv.sha1 │ │ │ ├── google-wifi-3mbps.rx.sha1 │ │ │ ├── images/ │ │ │ │ ├── captureDeviceImage.jpg.sha1 │ │ │ │ ├── renderStartImage.jpg.sha1 │ │ │ │ ├── renderTimeoutImage.jpg.sha1 │ │ │ │ └── webrtc_logo.jpg.sha1 │ │ │ ├── media/ │ │ │ │ ├── 1.frame_plus_1.byte.sha1 │ │ │ │ ├── captured-320x240-2s-48.frames.sha1 │ │ │ │ ├── faces.1280x720_P420.yuv.sha1 │ │ │ │ ├── faces_I400.jpg.sha1 │ │ │ │ ├── faces_I411.jpg.sha1 │ │ │ │ ├── faces_I420.jpg.sha1 │ │ │ │ ├── faces_I422.jpg.sha1 │ │ │ │ ├── faces_I444.jpg.sha1 │ │ │ │ ├── h264-svc-99-640x360.rtpdump.sha1 │ │ │ │ ├── video.rtpdump.sha1 │ │ │ │ └── voice.rtpdump.sha1 │ │ │ ├── near16_stereo.pcm.sha1 │ │ │ ├── near32_stereo.pcm.sha1 │ │ │ ├── near44_stereo.pcm.sha1 │ │ │ ├── near48_stereo.pcm.sha1 │ │ │ ├── near8_stereo.pcm.sha1 │ │ │ ├── network_tester/ │ │ │ │ ├── client_config.dat.sha1 │ │ │ │ └── server_config.dat.sha1 │ │ │ ├── paris_qcif.yuv.sha1 │ │ │ ├── pc_quality_smoke_test_alice_source.wav.sha1 │ │ │ ├── pc_quality_smoke_test_bob_source.wav.sha1 │ │ │ ├── photo_1850_1110.yuv.sha1 │ │ │ ├── presentation_1850_1110.yuv.sha1 │ │ │ ├── ref03.aecdump.sha1 │ │ │ ├── reference_less_video_test_file.y4m.sha1 │ │ │ ├── reference_video_640x360_30fps.y4m.sha1 │ │ │ ├── remote_bitrate_estimator/ │ │ │ │ ├── VideoSendersTest_BweTest_IncreasingChoke1_0_AST.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_IncreasingChoke1_0_TOF.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_IncreasingChoke1_1_AST.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_IncreasingChoke1_1_TOF.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_IncreasingChoke2_0_AST.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_IncreasingChoke2_0_TOF.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_IncreasingChoke2_1_AST.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_IncreasingChoke2_1_TOF.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_IncreasingDelay1_0_AST.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_IncreasingDelay1_0_TOF.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_IncreasingLoss1_0_AST.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_IncreasingLoss1_0_TOF.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_Multi1_1_AST.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_Multi1_1_TOF.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_SteadyChoke_0_AST.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_SteadyChoke_0_TOF.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_SteadyChoke_1_AST.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_SteadyChoke_1_TOF.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_SteadyDelay_0_AST.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_SteadyDelay_0_TOF.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_SteadyLoss_0_AST.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_SteadyLoss_0_TOF.bin.sha1 │ │ │ │ ├── VideoSendersTest_BweTest_UnlimitedSpeed_0_AST.bin.sha1 │ │ │ │ └── VideoSendersTest_BweTest_UnlimitedSpeed_0_TOF.bin.sha1 │ │ │ ├── rtp_rtcp/ │ │ │ │ ├── H263Foreman_CIF_Iframe.bin.sha1 │ │ │ │ ├── H263Foreman_CIF_Pframe.bin.sha1 │ │ │ │ ├── H263_CIF_IFRAME.bin.sha1 │ │ │ │ ├── H263_CIF_PFRAME.bin.sha1 │ │ │ │ ├── H263_QCIF_IFRAME.bin.sha1 │ │ │ │ ├── RTCPPacketTMMBR0.bin.sha1 │ │ │ │ ├── RTCPPacketTMMBR1.bin.sha1 │ │ │ │ ├── RTCPPacketTMMBR2.bin.sha1 │ │ │ │ ├── RTCPPacketTMMBR3.bin.sha1 │ │ │ │ ├── RTCPPacketTMMBR4.bin.sha1 │ │ │ │ ├── RTCPPacketTMMBR4_1.bin.sha1 │ │ │ │ ├── RTCPPacketTMMBR4_2.bin.sha1 │ │ │ │ └── RTCPPacketTMMBR5.bin.sha1 │ │ │ ├── short_mixed_mono_48.dat.sha1 │ │ │ ├── short_mixed_mono_48.pcm.sha1 │ │ │ ├── short_mixed_mono_48_arm.dat.sha1 │ │ │ ├── short_mixed_stereo_48.dat.sha1 │ │ │ ├── short_mixed_stereo_48.pcm.sha1 │ │ │ ├── speech_and_misc_wb.pcm.sha1 │ │ │ ├── utility/ │ │ │ │ ├── encapsulated_pcm16b_8khz.wav.sha1 │ │ │ │ └── encapsulated_pcmu_8khz.wav.sha1 │ │ │ ├── video_coding/ │ │ │ │ ├── frame-ethernet-ii.pcap.sha1 │ │ │ │ ├── frame-loopback.pcap.sha1 │ │ │ │ ├── pltype103.rtp.sha1 │ │ │ │ ├── pltype103_header_only.rtp.sha1 │ │ │ │ ├── ssrcs-2.pcap.sha1 │ │ │ │ └── ssrcs-3.pcap.sha1 │ │ │ ├── video_engine/ │ │ │ │ ├── renderStartImage.jpg.sha1 │ │ │ │ └── renderTimeoutImage.jpg.sha1 │ │ │ ├── voice_engine/ │ │ │ │ ├── audio_dtx16.wav.sha1 │ │ │ │ ├── audio_long16.pcm.sha1 │ │ │ │ ├── audio_long16.wav.sha1 │ │ │ │ ├── audio_long16big_endian.pcm.sha1 │ │ │ │ ├── audio_long16noise.pcm.sha1 │ │ │ │ ├── audio_long8.pcm.sha1 │ │ │ │ ├── audio_long8mulaw.wav.sha1 │ │ │ │ ├── audio_short16.pcm.sha1 │ │ │ │ ├── audio_tiny11.wav.sha1 │ │ │ │ ├── audio_tiny16.wav.sha1 │ │ │ │ ├── audio_tiny22.wav.sha1 │ │ │ │ ├── audio_tiny32.wav.sha1 │ │ │ │ ├── audio_tiny44.wav.sha1 │ │ │ │ ├── audio_tiny48.wav.sha1 │ │ │ │ └── audio_tiny8.wav.sha1 │ │ │ └── web_screenshot_1850_1110.yuv.sha1 │ │ ├── rtc_base/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── OWNERS │ │ │ ├── arraysize.h │ │ │ ├── async_invoker.cc │ │ │ ├── async_invoker.h │ │ │ ├── async_invoker_inl.h │ │ │ ├── async_packet_socket.cc │ │ │ ├── async_packet_socket.h │ │ │ ├── async_resolver.cc │ │ │ ├── async_resolver.h │ │ │ ├── async_resolver_interface.cc │ │ │ ├── async_resolver_interface.h │ │ │ ├── async_socket.cc │ │ │ ├── async_socket.h │ │ │ ├── async_tcp_socket.cc │ │ │ ├── async_tcp_socket.h │ │ │ ├── async_tcp_socket_unittest.cc │ │ │ ├── async_udp_socket.cc │ │ │ ├── async_udp_socket.h │ │ │ ├── async_udp_socket_unittest.cc │ │ │ ├── atomic_ops.h │ │ │ ├── atomic_ops_unittest.cc │ │ │ ├── base64_unittest.cc │ │ │ ├── bit_buffer.cc │ │ │ ├── bit_buffer.h │ │ │ ├── bit_buffer_unittest.cc │ │ │ ├── boringssl_certificate.cc │ │ │ ├── boringssl_certificate.h │ │ │ ├── boringssl_identity.cc │ │ │ ├── boringssl_identity.h │ │ │ ├── bounded_inline_vector.h │ │ │ ├── bounded_inline_vector_impl.h │ │ │ ├── bounded_inline_vector_unittest.cc │ │ │ ├── buffer.h │ │ │ ├── buffer_queue.cc │ │ │ ├── buffer_queue.h │ │ │ ├── buffer_queue_unittest.cc │ │ │ ├── buffer_unittest.cc │ │ │ ├── byte_buffer.cc │ │ │ ├── byte_buffer.h │ │ │ ├── byte_buffer_unittest.cc │ │ │ ├── byte_order.h │ │ │ ├── byte_order_unittest.cc │ │ │ ├── callback_list.cc │ │ │ ├── callback_list.h │ │ │ ├── callback_list_unittest.cc │ │ │ ├── checks.cc │ │ │ ├── checks.h │ │ │ ├── checks_unittest.cc │ │ │ ├── compile_assert_c.h │ │ │ ├── constructor_magic.h │ │ │ ├── containers/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── as_const.h │ │ │ │ ├── flat_map.h │ │ │ │ ├── flat_map_unittest.cc │ │ │ │ ├── flat_set.h │ │ │ │ ├── flat_set_unittest.cc │ │ │ │ ├── flat_tree.cc │ │ │ │ ├── flat_tree.h │ │ │ │ ├── flat_tree_unittest.cc │ │ │ │ ├── identity.h │ │ │ │ ├── invoke.h │ │ │ │ ├── move_only_int.h │ │ │ │ ├── not_fn.h │ │ │ │ └── void_t.h │ │ │ ├── copy_on_write_buffer.cc │ │ │ ├── copy_on_write_buffer.h │ │ │ ├── copy_on_write_buffer_unittest.cc │ │ │ ├── cpu_time.cc │ │ │ ├── cpu_time.h │ │ │ ├── cpu_time_unittest.cc │ │ │ ├── crc32.cc │ │ │ ├── crc32.h │ │ │ ├── crc32_unittest.cc │ │ │ ├── crypt_string.cc │ │ │ ├── crypt_string.h │ │ │ ├── data_rate_limiter.cc │ │ │ ├── data_rate_limiter.h │ │ │ ├── data_rate_limiter_unittest.cc │ │ │ ├── deprecated/ │ │ │ │ ├── recursive_critical_section.cc │ │ │ │ ├── recursive_critical_section.h │ │ │ │ └── recursive_critical_section_unittest.cc │ │ │ ├── dscp.h │ │ │ ├── event.cc │ │ │ ├── event.h │ │ │ ├── event_tracer.cc │ │ │ ├── event_tracer.h │ │ │ ├── event_tracer_unittest.cc │ │ │ ├── event_unittest.cc │ │ │ ├── experiments/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── alr_experiment.cc │ │ │ │ ├── alr_experiment.h │ │ │ │ ├── balanced_degradation_settings.cc │ │ │ │ ├── balanced_degradation_settings.h │ │ │ │ ├── balanced_degradation_settings_unittest.cc │ │ │ │ ├── cpu_speed_experiment.cc │ │ │ │ ├── cpu_speed_experiment.h │ │ │ │ ├── cpu_speed_experiment_unittest.cc │ │ │ │ ├── encoder_info_settings.cc │ │ │ │ ├── encoder_info_settings.h │ │ │ │ ├── encoder_info_settings_unittest.cc │ │ │ │ ├── field_trial_list.cc │ │ │ │ ├── field_trial_list.h │ │ │ │ ├── field_trial_list_unittest.cc │ │ │ │ ├── field_trial_parser.cc │ │ │ │ ├── field_trial_parser.h │ │ │ │ ├── field_trial_parser_unittest.cc │ │ │ │ ├── field_trial_units.cc │ │ │ │ ├── field_trial_units.h │ │ │ │ ├── field_trial_units_unittest.cc │ │ │ │ ├── jitter_upper_bound_experiment.cc │ │ │ │ ├── jitter_upper_bound_experiment.h │ │ │ │ ├── keyframe_interval_settings.cc │ │ │ │ ├── keyframe_interval_settings.h │ │ │ │ ├── keyframe_interval_settings_unittest.cc │ │ │ │ ├── min_video_bitrate_experiment.cc │ │ │ │ ├── min_video_bitrate_experiment.h │ │ │ │ ├── min_video_bitrate_experiment_unittest.cc │ │ │ │ ├── normalize_simulcast_size_experiment.cc │ │ │ │ ├── normalize_simulcast_size_experiment.h │ │ │ │ ├── normalize_simulcast_size_experiment_unittest.cc │ │ │ │ ├── quality_rampup_experiment.cc │ │ │ │ ├── quality_rampup_experiment.h │ │ │ │ ├── quality_rampup_experiment_unittest.cc │ │ │ │ ├── quality_scaler_settings.cc │ │ │ │ ├── quality_scaler_settings.h │ │ │ │ ├── quality_scaler_settings_unittest.cc │ │ │ │ ├── quality_scaling_experiment.cc │ │ │ │ ├── quality_scaling_experiment.h │ │ │ │ ├── quality_scaling_experiment_unittest.cc │ │ │ │ ├── rate_control_settings.cc │ │ │ │ ├── rate_control_settings.h │ │ │ │ ├── rate_control_settings_unittest.cc │ │ │ │ ├── rtt_mult_experiment.cc │ │ │ │ ├── rtt_mult_experiment.h │ │ │ │ ├── rtt_mult_experiment_unittest.cc │ │ │ │ ├── stable_target_rate_experiment.cc │ │ │ │ ├── stable_target_rate_experiment.h │ │ │ │ ├── stable_target_rate_experiment_unittest.cc │ │ │ │ ├── struct_parameters_parser.cc │ │ │ │ ├── struct_parameters_parser.h │ │ │ │ └── struct_parameters_parser_unittest.cc │ │ │ ├── fake_clock.cc │ │ │ ├── fake_clock.h │ │ │ ├── fake_clock_unittest.cc │ │ │ ├── fake_mdns_responder.h │ │ │ ├── fake_network.h │ │ │ ├── fake_ssl_identity.cc │ │ │ ├── fake_ssl_identity.h │ │ │ ├── file_rotating_stream.cc │ │ │ ├── file_rotating_stream.h │ │ │ ├── file_rotating_stream_unittest.cc │ │ │ ├── firewall_socket_server.cc │ │ │ ├── firewall_socket_server.h │ │ │ ├── format_macros.h │ │ │ ├── gtest_prod_util.h │ │ │ ├── gunit.cc │ │ │ ├── gunit.h │ │ │ ├── hash.h │ │ │ ├── hash_unittest.cc │ │ │ ├── helpers.cc │ │ │ ├── helpers.h │ │ │ ├── helpers_unittest.cc │ │ │ ├── http_common.cc │ │ │ ├── http_common.h │ │ │ ├── ifaddrs_android.cc │ │ │ ├── ifaddrs_android.h │ │ │ ├── ifaddrs_converter.cc │ │ │ ├── ifaddrs_converter.h │ │ │ ├── ignore_wundef.h │ │ │ ├── internal/ │ │ │ │ ├── default_socket_server.cc │ │ │ │ └── default_socket_server.h │ │ │ ├── ip_address.cc │ │ │ ├── ip_address.h │ │ │ ├── ip_address_unittest.cc │ │ │ ├── java/ │ │ │ │ └── src/ │ │ │ │ └── org/ │ │ │ │ └── webrtc/ │ │ │ │ ├── ContextUtils.java │ │ │ │ ├── Loggable.java │ │ │ │ ├── Logging.java │ │ │ │ ├── OWNERS │ │ │ │ ├── Size.java │ │ │ │ └── ThreadUtils.java │ │ │ ├── location.cc │ │ │ ├── location.h │ │ │ ├── log_sinks.cc │ │ │ ├── log_sinks.h │ │ │ ├── logging.cc │ │ │ ├── logging.h │ │ │ ├── logging_unittest.cc │ │ │ ├── mac_ifaddrs_converter.cc │ │ │ ├── mdns_responder_interface.h │ │ │ ├── memory/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── aligned_malloc.cc │ │ │ │ ├── aligned_malloc.h │ │ │ │ ├── aligned_malloc_unittest.cc │ │ │ │ ├── fifo_buffer.cc │ │ │ │ ├── fifo_buffer.h │ │ │ │ └── fifo_buffer_unittest.cc │ │ │ ├── memory_stream.cc │ │ │ ├── memory_stream.h │ │ │ ├── memory_usage.cc │ │ │ ├── memory_usage.h │ │ │ ├── memory_usage_unittest.cc │ │ │ ├── message_digest.cc │ │ │ ├── message_digest.h │ │ │ ├── message_digest_unittest.cc │ │ │ ├── message_handler.cc │ │ │ ├── message_handler.h │ │ │ ├── nat_server.cc │ │ │ ├── nat_server.h │ │ │ ├── nat_socket_factory.cc │ │ │ ├── nat_socket_factory.h │ │ │ ├── nat_types.cc │ │ │ ├── nat_types.h │ │ │ ├── nat_unittest.cc │ │ │ ├── net_helper.cc │ │ │ ├── net_helper.h │ │ │ ├── net_helpers.cc │ │ │ ├── net_helpers.h │ │ │ ├── network/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── sent_packet.cc │ │ │ │ └── sent_packet.h │ │ │ ├── network.cc │ │ │ ├── network.h │ │ │ ├── network_constants.cc │ │ │ ├── network_constants.h │ │ │ ├── network_monitor.cc │ │ │ ├── network_monitor.h │ │ │ ├── network_monitor_factory.cc │ │ │ ├── network_monitor_factory.h │ │ │ ├── network_route.cc │ │ │ ├── network_route.h │ │ │ ├── network_route_unittest.cc │ │ │ ├── network_unittest.cc │ │ │ ├── null_socket_server.cc │ │ │ ├── null_socket_server.h │ │ │ ├── null_socket_server_unittest.cc │ │ │ ├── numerics/ │ │ │ │ ├── divide_round.h │ │ │ │ ├── divide_round_unittest.cc │ │ │ │ ├── event_based_exponential_moving_average.cc │ │ │ │ ├── event_based_exponential_moving_average.h │ │ │ │ ├── event_based_exponential_moving_average_unittest.cc │ │ │ │ ├── event_rate_counter.cc │ │ │ │ ├── event_rate_counter.h │ │ │ │ ├── exp_filter.cc │ │ │ │ ├── exp_filter.h │ │ │ │ ├── exp_filter_unittest.cc │ │ │ │ ├── histogram_percentile_counter.cc │ │ │ │ ├── histogram_percentile_counter.h │ │ │ │ ├── histogram_percentile_counter_unittest.cc │ │ │ │ ├── math_utils.h │ │ │ │ ├── mod_ops.h │ │ │ │ ├── mod_ops_unittest.cc │ │ │ │ ├── moving_average.cc │ │ │ │ ├── moving_average.h │ │ │ │ ├── moving_average_unittest.cc │ │ │ │ ├── moving_max_counter.h │ │ │ │ ├── moving_max_counter_unittest.cc │ │ │ │ ├── moving_median_filter.h │ │ │ │ ├── moving_median_filter_unittest.cc │ │ │ │ ├── percentile_filter.h │ │ │ │ ├── percentile_filter_unittest.cc │ │ │ │ ├── running_statistics.h │ │ │ │ ├── running_statistics_unittest.cc │ │ │ │ ├── safe_compare.h │ │ │ │ ├── safe_compare_unittest.cc │ │ │ │ ├── safe_conversions.h │ │ │ │ ├── safe_conversions_impl.h │ │ │ │ ├── safe_minmax.h │ │ │ │ ├── safe_minmax_unittest.cc │ │ │ │ ├── sample_counter.cc │ │ │ │ ├── sample_counter.h │ │ │ │ ├── sample_counter_unittest.cc │ │ │ │ ├── sample_stats.cc │ │ │ │ ├── sample_stats.h │ │ │ │ ├── sequence_number_util.h │ │ │ │ └── sequence_number_util_unittest.cc │ │ │ ├── one_time_event.h │ │ │ ├── one_time_event_unittest.cc │ │ │ ├── openssl.h │ │ │ ├── openssl_adapter.cc │ │ │ ├── openssl_adapter.h │ │ │ ├── openssl_adapter_unittest.cc │ │ │ ├── openssl_certificate.cc │ │ │ ├── openssl_certificate.h │ │ │ ├── openssl_digest.cc │ │ │ ├── openssl_digest.h │ │ │ ├── openssl_identity.cc │ │ │ ├── openssl_identity.h │ │ │ ├── openssl_key_pair.cc │ │ │ ├── openssl_key_pair.h │ │ │ ├── openssl_session_cache.cc │ │ │ ├── openssl_session_cache.h │ │ │ ├── openssl_session_cache_unittest.cc │ │ │ ├── openssl_stream_adapter.cc │ │ │ ├── openssl_stream_adapter.h │ │ │ ├── openssl_utility.cc │ │ │ ├── openssl_utility.h │ │ │ ├── openssl_utility_unittest.cc │ │ │ ├── operations_chain.cc │ │ │ ├── operations_chain.h │ │ │ ├── operations_chain_unittest.cc │ │ │ ├── physical_socket_server.cc │ │ │ ├── physical_socket_server.h │ │ │ ├── physical_socket_server_unittest.cc │ │ │ ├── platform_thread.cc │ │ │ ├── platform_thread.h │ │ │ ├── platform_thread_types.cc │ │ │ ├── platform_thread_types.h │ │ │ ├── platform_thread_unittest.cc │ │ │ ├── protobuf_utils.h │ │ │ ├── proxy_info.cc │ │ │ ├── proxy_info.h │ │ │ ├── proxy_server.cc │ │ │ ├── proxy_server.h │ │ │ ├── proxy_unittest.cc │ │ │ ├── race_checker.cc │ │ │ ├── race_checker.h │ │ │ ├── random.cc │ │ │ ├── random.h │ │ │ ├── random_unittest.cc │ │ │ ├── rate_limiter.cc │ │ │ ├── rate_limiter.h │ │ │ ├── rate_limiter_unittest.cc │ │ │ ├── rate_statistics.cc │ │ │ ├── rate_statistics.h │ │ │ ├── rate_statistics_unittest.cc │ │ │ ├── rate_tracker.cc │ │ │ ├── rate_tracker.h │ │ │ ├── rate_tracker_unittest.cc │ │ │ ├── ref_count.h │ │ │ ├── ref_counted_object.h │ │ │ ├── ref_counted_object_unittest.cc │ │ │ ├── ref_counter.h │ │ │ ├── rolling_accumulator.h │ │ │ ├── rolling_accumulator_unittest.cc │ │ │ ├── rtc_certificate.cc │ │ │ ├── rtc_certificate.h │ │ │ ├── rtc_certificate_generator.cc │ │ │ ├── rtc_certificate_generator.h │ │ │ ├── rtc_certificate_generator_unittest.cc │ │ │ ├── rtc_certificate_unittest.cc │ │ │ ├── sanitizer.h │ │ │ ├── sanitizer_unittest.cc │ │ │ ├── server_socket_adapters.cc │ │ │ ├── server_socket_adapters.h │ │ │ ├── sigslot_repeater.h │ │ │ ├── sigslot_tester.h │ │ │ ├── sigslot_tester_unittest.cc │ │ │ ├── sigslot_unittest.cc │ │ │ ├── sigslottester.h.pump │ │ │ ├── socket.cc │ │ │ ├── socket.h │ │ │ ├── socket_adapters.cc │ │ │ ├── socket_adapters.h │ │ │ ├── socket_address.cc │ │ │ ├── socket_address.h │ │ │ ├── socket_address_pair.cc │ │ │ ├── socket_address_pair.h │ │ │ ├── socket_address_unittest.cc │ │ │ ├── socket_factory.h │ │ │ ├── socket_server.h │ │ │ ├── socket_stream.cc │ │ │ ├── socket_stream.h │ │ │ ├── socket_unittest.cc │ │ │ ├── socket_unittest.h │ │ │ ├── ssl_adapter.cc │ │ │ ├── ssl_adapter.h │ │ │ ├── ssl_adapter_unittest.cc │ │ │ ├── ssl_certificate.cc │ │ │ ├── ssl_certificate.h │ │ │ ├── ssl_fingerprint.cc │ │ │ ├── ssl_fingerprint.h │ │ │ ├── ssl_identity.cc │ │ │ ├── ssl_identity.h │ │ │ ├── ssl_identity_unittest.cc │ │ │ ├── ssl_roots.h │ │ │ ├── ssl_stream_adapter.cc │ │ │ ├── ssl_stream_adapter.h │ │ │ ├── ssl_stream_adapter_unittest.cc │ │ │ ├── stream.cc │ │ │ ├── stream.h │ │ │ ├── string_encode.cc │ │ │ ├── string_encode.h │ │ │ ├── string_encode_unittest.cc │ │ │ ├── string_to_number.cc │ │ │ ├── string_to_number.h │ │ │ ├── string_to_number_unittest.cc │ │ │ ├── string_utils.cc │ │ │ ├── string_utils.h │ │ │ ├── string_utils_unittest.cc │ │ │ ├── strings/ │ │ │ │ ├── audio_format_to_string.cc │ │ │ │ ├── audio_format_to_string.h │ │ │ │ ├── json.cc │ │ │ │ ├── json.h │ │ │ │ ├── json_unittest.cc │ │ │ │ ├── string_builder.cc │ │ │ │ ├── string_builder.h │ │ │ │ ├── string_builder_unittest.cc │ │ │ │ ├── string_format.cc │ │ │ │ ├── string_format.h │ │ │ │ └── string_format_unittest.cc │ │ │ ├── swap_queue.h │ │ │ ├── swap_queue_unittest.cc │ │ │ ├── synchronization/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── mutex.cc │ │ │ │ ├── mutex.h │ │ │ │ ├── mutex_abseil.h │ │ │ │ ├── mutex_benchmark.cc │ │ │ │ ├── mutex_critical_section.h │ │ │ │ ├── mutex_pthread.h │ │ │ │ ├── mutex_unittest.cc │ │ │ │ ├── sequence_checker_internal.cc │ │ │ │ ├── sequence_checker_internal.h │ │ │ │ ├── yield.cc │ │ │ │ ├── yield.h │ │ │ │ ├── yield_policy.cc │ │ │ │ ├── yield_policy.h │ │ │ │ └── yield_policy_unittest.cc │ │ │ ├── system/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── arch.h │ │ │ │ ├── asm_defines.h │ │ │ │ ├── assume.h │ │ │ │ ├── cocoa_threading.h │ │ │ │ ├── cocoa_threading.mm │ │ │ │ ├── file_wrapper.cc │ │ │ │ ├── file_wrapper.h │ │ │ │ ├── file_wrapper_unittest.cc │ │ │ │ ├── gcd_helpers.h │ │ │ │ ├── gcd_helpers.m │ │ │ │ ├── ignore_warnings.h │ │ │ │ ├── inline.h │ │ │ │ ├── no_unique_address.h │ │ │ │ ├── rtc_export.h │ │ │ │ ├── rtc_export_template.h │ │ │ │ ├── thread_registry.cc │ │ │ │ ├── thread_registry.h │ │ │ │ ├── unused.h │ │ │ │ ├── warn_current_thread_is_deadlocked.cc │ │ │ │ └── warn_current_thread_is_deadlocked.h │ │ │ ├── system_time.cc │ │ │ ├── system_time.h │ │ │ ├── task_queue.cc │ │ │ ├── task_queue.h │ │ │ ├── task_queue_for_test.cc │ │ │ ├── task_queue_for_test.h │ │ │ ├── task_queue_gcd.cc │ │ │ ├── task_queue_gcd.h │ │ │ ├── task_queue_libevent.cc │ │ │ ├── task_queue_libevent.h │ │ │ ├── task_queue_stdlib.cc │ │ │ ├── task_queue_stdlib.h │ │ │ ├── task_queue_unittest.cc │ │ │ ├── task_queue_win.cc │ │ │ ├── task_queue_win.h │ │ │ ├── task_utils/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── pending_task_safety_flag.cc │ │ │ │ ├── pending_task_safety_flag.h │ │ │ │ ├── pending_task_safety_flag_unittest.cc │ │ │ │ ├── repeating_task.cc │ │ │ │ ├── repeating_task.h │ │ │ │ ├── repeating_task_unittest.cc │ │ │ │ ├── to_queued_task.h │ │ │ │ └── to_queued_task_unittest.cc │ │ │ ├── test_base64.h │ │ │ ├── test_certificate_verifier.h │ │ │ ├── test_client.cc │ │ │ ├── test_client.h │ │ │ ├── test_client_unittest.cc │ │ │ ├── test_echo_server.cc │ │ │ ├── test_echo_server.h │ │ │ ├── test_utils.cc │ │ │ ├── test_utils.h │ │ │ ├── third_party/ │ │ │ │ ├── base64/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.chromium │ │ │ │ │ ├── base64.cc │ │ │ │ │ └── base64.h │ │ │ │ └── sigslot/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── LICENSE │ │ │ │ ├── README.chromium │ │ │ │ ├── sigslot.cc │ │ │ │ └── sigslot.h │ │ │ ├── thread.cc │ │ │ ├── thread.h │ │ │ ├── thread_annotations.h │ │ │ ├── thread_annotations_unittest.cc │ │ │ ├── thread_message.h │ │ │ ├── thread_unittest.cc │ │ │ ├── time/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── timestamp_extrapolator.cc │ │ │ │ └── timestamp_extrapolator.h │ │ │ ├── time_utils.cc │ │ │ ├── time_utils.h │ │ │ ├── time_utils_unittest.cc │ │ │ ├── timestamp_aligner.cc │ │ │ ├── timestamp_aligner.h │ │ │ ├── timestamp_aligner_unittest.cc │ │ │ ├── trace_event.h │ │ │ ├── type_traits.h │ │ │ ├── unique_id_generator.cc │ │ │ ├── unique_id_generator.h │ │ │ ├── unique_id_generator_unittest.cc │ │ │ ├── units/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── OWNERS │ │ │ │ ├── unit_base.h │ │ │ │ └── unit_base_unittest.cc │ │ │ ├── untyped_function.h │ │ │ ├── untyped_function_unittest.cc │ │ │ ├── virtual_socket_server.cc │ │ │ ├── virtual_socket_server.h │ │ │ ├── virtual_socket_unittest.cc │ │ │ ├── weak_ptr.cc │ │ │ ├── weak_ptr.h │ │ │ ├── weak_ptr_unittest.cc │ │ │ ├── win/ │ │ │ │ ├── create_direct3d_device.cc │ │ │ │ ├── create_direct3d_device.h │ │ │ │ ├── get_activation_factory.cc │ │ │ │ ├── get_activation_factory.h │ │ │ │ ├── hstring.cc │ │ │ │ ├── hstring.h │ │ │ │ ├── scoped_com_initializer.cc │ │ │ │ ├── scoped_com_initializer.h │ │ │ │ ├── windows_version.cc │ │ │ │ ├── windows_version.h │ │ │ │ └── windows_version_unittest.cc │ │ │ ├── win32.cc │ │ │ ├── win32.h │ │ │ ├── win32_socket_init.h │ │ │ ├── win32_socket_server.cc │ │ │ ├── win32_socket_server.h │ │ │ ├── win32_socket_server_unittest.cc │ │ │ ├── win32_unittest.cc │ │ │ ├── win32_window.cc │ │ │ ├── win32_window.h │ │ │ ├── win32_window_unittest.cc │ │ │ ├── zero_memory.cc │ │ │ ├── zero_memory.h │ │ │ └── zero_memory_unittest.cc │ │ ├── rtc_tools/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── OWNERS │ │ │ ├── audioproc_f/ │ │ │ │ └── audioproc_float_main.cc │ │ │ ├── author_line_count.sh │ │ │ ├── class_usage.sh │ │ │ ├── compare_videos.py │ │ │ ├── converter/ │ │ │ │ ├── converter.cc │ │ │ │ ├── converter.h │ │ │ │ ├── rgba_to_i420_converter.cc │ │ │ │ └── yuv_to_ivf_converter.cc │ │ │ ├── frame_analyzer/ │ │ │ │ ├── frame_analyzer.cc │ │ │ │ ├── linear_least_squares.cc │ │ │ │ ├── linear_least_squares.h │ │ │ │ ├── linear_least_squares_unittest.cc │ │ │ │ ├── reference_less_video_analysis.cc │ │ │ │ ├── reference_less_video_analysis_lib.cc │ │ │ │ ├── reference_less_video_analysis_lib.h │ │ │ │ ├── reference_less_video_analysis_unittest.cc │ │ │ │ ├── video_color_aligner.cc │ │ │ │ ├── video_color_aligner.h │ │ │ │ ├── video_color_aligner_unittest.cc │ │ │ │ ├── video_geometry_aligner.cc │ │ │ │ ├── video_geometry_aligner.h │ │ │ │ ├── video_geometry_aligner_unittest.cc │ │ │ │ ├── video_quality_analysis.cc │ │ │ │ ├── video_quality_analysis.h │ │ │ │ ├── video_quality_analysis_unittest.cc │ │ │ │ ├── video_temporal_aligner.cc │ │ │ │ ├── video_temporal_aligner.h │ │ │ │ └── video_temporal_aligner_unittest.cc │ │ │ ├── header_usage.sh │ │ │ ├── loopback_test/ │ │ │ │ ├── README │ │ │ │ ├── adapter.js │ │ │ │ ├── loopback_test.html │ │ │ │ ├── loopback_test.js │ │ │ │ ├── record-test.sh │ │ │ │ ├── run-server.sh │ │ │ │ └── stat_tracker.js │ │ │ ├── metrics_plotter.py │ │ │ ├── network_tester/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── README │ │ │ │ ├── androidapp/ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ ├── res/ │ │ │ │ │ │ ├── layout/ │ │ │ │ │ │ │ └── activity_main.xml │ │ │ │ │ │ ├── values/ │ │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ │ ├── dimens.xml │ │ │ │ │ │ │ └── strings.xml │ │ │ │ │ │ ├── values-v17/ │ │ │ │ │ │ │ └── styles.xml │ │ │ │ │ │ └── values-w820dp/ │ │ │ │ │ │ └── dimens.xml │ │ │ │ │ └── src/ │ │ │ │ │ └── com/ │ │ │ │ │ └── google/ │ │ │ │ │ └── media/ │ │ │ │ │ └── networktester/ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ └── NetworkTester.java │ │ │ │ ├── config_reader.cc │ │ │ │ ├── config_reader.h │ │ │ │ ├── create_network_tester_config.py │ │ │ │ ├── jni.cpp │ │ │ │ ├── network_tester_config.proto │ │ │ │ ├── network_tester_packet.proto │ │ │ │ ├── network_tester_unittest.cc │ │ │ │ ├── packet_logger.cc │ │ │ │ ├── packet_logger.h │ │ │ │ ├── packet_sender.cc │ │ │ │ ├── packet_sender.h │ │ │ │ ├── parse_packet_log.py │ │ │ │ ├── server.cc │ │ │ │ ├── test_controller.cc │ │ │ │ └── test_controller.h │ │ │ ├── psnr_ssim_analyzer/ │ │ │ │ └── psnr_ssim_analyzer.cc │ │ │ ├── py_event_log_analyzer/ │ │ │ │ ├── README.md │ │ │ │ ├── misc.py │ │ │ │ ├── misc_test.py │ │ │ │ ├── pb_parse.py │ │ │ │ ├── rtp_analyzer.py │ │ │ │ ├── rtp_analyzer.sh │ │ │ │ └── rtp_analyzer_test.py │ │ │ ├── rtc_event_log_visualizer/ │ │ │ │ ├── OWNERS │ │ │ │ ├── alerts.cc │ │ │ │ ├── alerts.h │ │ │ │ ├── analyze_audio.cc │ │ │ │ ├── analyze_audio.h │ │ │ │ ├── analyzer.cc │ │ │ │ ├── analyzer.h │ │ │ │ ├── analyzer_common.cc │ │ │ │ ├── analyzer_common.h │ │ │ │ ├── log_simulation.cc │ │ │ │ ├── log_simulation.h │ │ │ │ ├── main.cc │ │ │ │ ├── plot_base.cc │ │ │ │ ├── plot_base.h │ │ │ │ ├── plot_protobuf.cc │ │ │ │ ├── plot_protobuf.h │ │ │ │ ├── plot_python.cc │ │ │ │ ├── plot_python.h │ │ │ │ └── proto/ │ │ │ │ ├── chart.proto │ │ │ │ └── chart_enums.proto │ │ │ ├── rtp_generator/ │ │ │ │ ├── configs/ │ │ │ │ │ ├── vp8.json │ │ │ │ │ └── vp9.json │ │ │ │ ├── main.cc │ │ │ │ ├── rtp_generator.cc │ │ │ │ └── rtp_generator.h │ │ │ ├── sanitizers_unittest.cc │ │ │ ├── testing/ │ │ │ │ ├── README.md │ │ │ │ ├── build_apprtc.py │ │ │ │ ├── download_apprtc.py │ │ │ │ ├── golang/ │ │ │ │ │ ├── linux/ │ │ │ │ │ │ └── go.tar.gz.sha1 │ │ │ │ │ ├── mac/ │ │ │ │ │ │ └── go.tar.gz.sha1 │ │ │ │ │ └── win/ │ │ │ │ │ └── go.zip.sha1 │ │ │ │ ├── prebuilt_apprtc.zip.sha1 │ │ │ │ ├── setup_apprtc.py │ │ │ │ └── utils.py │ │ │ ├── unpack_aecdump/ │ │ │ │ └── unpack.cc │ │ │ ├── video_file_reader.cc │ │ │ ├── video_file_reader.h │ │ │ ├── video_file_reader_unittest.cc │ │ │ ├── video_file_writer.cc │ │ │ ├── video_file_writer.h │ │ │ ├── video_file_writer_unittest.cc │ │ │ └── video_replay.cc │ │ ├── sdk/ │ │ │ ├── BUILD.gn │ │ │ ├── OWNERS │ │ │ ├── android/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── BUILD.gn │ │ │ │ ├── OWNERS │ │ │ │ ├── PRESUBMIT.py │ │ │ │ ├── README │ │ │ │ ├── api/ │ │ │ │ │ └── org/ │ │ │ │ │ └── webrtc/ │ │ │ │ │ ├── AddIceObserver.java │ │ │ │ │ ├── AudioDecoderFactoryFactory.java │ │ │ │ │ ├── AudioEncoderFactoryFactory.java │ │ │ │ │ ├── AudioProcessingFactory.java │ │ │ │ │ ├── AudioSource.java │ │ │ │ │ ├── AudioTrack.java │ │ │ │ │ ├── BuiltinAudioDecoderFactoryFactory.java │ │ │ │ │ ├── BuiltinAudioEncoderFactoryFactory.java │ │ │ │ │ ├── CallSessionFileRotatingLogSink.java │ │ │ │ │ ├── Camera1Capturer.java │ │ │ │ │ ├── Camera1Enumerator.java │ │ │ │ │ ├── Camera2Capturer.java │ │ │ │ │ ├── Camera2Enumerator.java │ │ │ │ │ ├── CameraEnumerationAndroid.java │ │ │ │ │ ├── CameraEnumerator.java │ │ │ │ │ ├── CameraVideoCapturer.java │ │ │ │ │ ├── CandidatePairChangeEvent.java │ │ │ │ │ ├── CapturerObserver.java │ │ │ │ │ ├── CryptoOptions.java │ │ │ │ │ ├── DataChannel.java │ │ │ │ │ ├── DefaultVideoDecoderFactory.java │ │ │ │ │ ├── DefaultVideoEncoderFactory.java │ │ │ │ │ ├── DtmfSender.java │ │ │ │ │ ├── EglBase.java │ │ │ │ │ ├── EglBase10.java │ │ │ │ │ ├── EglBase14.java │ │ │ │ │ ├── EglRenderer.java │ │ │ │ │ ├── EncodedImage.java │ │ │ │ │ ├── FecControllerFactoryFactoryInterface.java │ │ │ │ │ ├── FileVideoCapturer.java │ │ │ │ │ ├── FrameDecryptor.java │ │ │ │ │ ├── FrameEncryptor.java │ │ │ │ │ ├── GlRectDrawer.java │ │ │ │ │ ├── GlShader.java │ │ │ │ │ ├── GlTextureFrameBuffer.java │ │ │ │ │ ├── GlUtil.java │ │ │ │ │ ├── HardwareVideoDecoderFactory.java │ │ │ │ │ ├── HardwareVideoEncoderFactory.java │ │ │ │ │ ├── IceCandidate.java │ │ │ │ │ ├── JavaI420Buffer.java │ │ │ │ │ ├── LibaomAv1Decoder.java │ │ │ │ │ ├── LibaomAv1Encoder.java │ │ │ │ │ ├── LibvpxVp8Decoder.java │ │ │ │ │ ├── LibvpxVp8Encoder.java │ │ │ │ │ ├── LibvpxVp9Decoder.java │ │ │ │ │ ├── LibvpxVp9Encoder.java │ │ │ │ │ ├── MediaConstraints.java │ │ │ │ │ ├── MediaSource.java │ │ │ │ │ ├── MediaStream.java │ │ │ │ │ ├── MediaStreamTrack.java │ │ │ │ │ ├── Metrics.java │ │ │ │ │ ├── NativeLibraryLoader.java │ │ │ │ │ ├── NativePeerConnectionFactory.java │ │ │ │ │ ├── NetEqFactoryFactory.java │ │ │ │ │ ├── NetworkChangeDetector.java │ │ │ │ │ ├── NetworkChangeDetectorFactory.java │ │ │ │ │ ├── NetworkControllerFactoryFactory.java │ │ │ │ │ ├── NetworkMonitor.java │ │ │ │ │ ├── NetworkMonitorAutoDetect.java │ │ │ │ │ ├── NetworkStatePredictorFactoryFactory.java │ │ │ │ │ ├── OWNERS │ │ │ │ │ ├── PeerConnection.java │ │ │ │ │ ├── PeerConnectionDependencies.java │ │ │ │ │ ├── PeerConnectionFactory.java │ │ │ │ │ ├── PlatformSoftwareVideoDecoderFactory.java │ │ │ │ │ ├── Predicate.java │ │ │ │ │ ├── RTCStats.java │ │ │ │ │ ├── RTCStatsCollectorCallback.java │ │ │ │ │ ├── RTCStatsReport.java │ │ │ │ │ ├── RefCounted.java │ │ │ │ │ ├── RendererCommon.java │ │ │ │ │ ├── RtcCertificatePem.java │ │ │ │ │ ├── RtpParameters.java │ │ │ │ │ ├── RtpReceiver.java │ │ │ │ │ ├── RtpSender.java │ │ │ │ │ ├── RtpTransceiver.java │ │ │ │ │ ├── SSLCertificateVerifier.java │ │ │ │ │ ├── ScreenCapturerAndroid.java │ │ │ │ │ ├── SdpObserver.java │ │ │ │ │ ├── SessionDescription.java │ │ │ │ │ ├── SoftwareVideoDecoderFactory.java │ │ │ │ │ ├── SoftwareVideoEncoderFactory.java │ │ │ │ │ ├── StatsObserver.java │ │ │ │ │ ├── StatsReport.java │ │ │ │ │ ├── SurfaceEglRenderer.java │ │ │ │ │ ├── SurfaceTextureHelper.java │ │ │ │ │ ├── SurfaceViewRenderer.java │ │ │ │ │ ├── TextureBufferImpl.java │ │ │ │ │ ├── TimestampAligner.java │ │ │ │ │ ├── TurnCustomizer.java │ │ │ │ │ ├── VideoCapturer.java │ │ │ │ │ ├── VideoCodecInfo.java │ │ │ │ │ ├── VideoCodecStatus.java │ │ │ │ │ ├── VideoDecoder.java │ │ │ │ │ ├── VideoDecoderFactory.java │ │ │ │ │ ├── VideoDecoderFallback.java │ │ │ │ │ ├── VideoEncoder.java │ │ │ │ │ ├── VideoEncoderFactory.java │ │ │ │ │ ├── VideoEncoderFallback.java │ │ │ │ │ ├── VideoFileRenderer.java │ │ │ │ │ ├── VideoFrame.java │ │ │ │ │ ├── VideoFrameDrawer.java │ │ │ │ │ ├── VideoProcessor.java │ │ │ │ │ ├── VideoSink.java │ │ │ │ │ ├── VideoSource.java │ │ │ │ │ ├── VideoTrack.java │ │ │ │ │ ├── WrappedNativeVideoDecoder.java │ │ │ │ │ ├── WrappedNativeVideoEncoder.java │ │ │ │ │ ├── YuvConverter.java │ │ │ │ │ ├── YuvHelper.java │ │ │ │ │ └── audio/ │ │ │ │ │ ├── AudioDeviceModule.java │ │ │ │ │ ├── JavaAudioDeviceModule.java │ │ │ │ │ └── LegacyAudioDeviceModule.java │ │ │ │ ├── instrumentationtests/ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ ├── ant.properties │ │ │ │ │ ├── build.xml │ │ │ │ │ ├── loggable_test.cc │ │ │ │ │ ├── project.properties │ │ │ │ │ ├── src/ │ │ │ │ │ │ └── org/ │ │ │ │ │ │ └── webrtc/ │ │ │ │ │ │ ├── AndroidVideoDecoderInstrumentationTest.java │ │ │ │ │ │ ├── BuiltinAudioCodecsFactoryFactoryTest.java │ │ │ │ │ │ ├── Camera1CapturerUsingByteBufferTest.java │ │ │ │ │ │ ├── Camera1CapturerUsingTextureTest.java │ │ │ │ │ │ ├── Camera2CapturerTest.java │ │ │ │ │ │ ├── CameraVideoCapturerTestFixtures.java │ │ │ │ │ │ ├── DefaultVideoEncoderFactoryTest.java │ │ │ │ │ │ ├── EglRendererTest.java │ │ │ │ │ │ ├── FileVideoCapturerTest.java │ │ │ │ │ │ ├── GlRectDrawerTest.java │ │ │ │ │ │ ├── HardwareVideoEncoderTest.java │ │ │ │ │ │ ├── LoggableTest.java │ │ │ │ │ │ ├── NetworkMonitorTest.java │ │ │ │ │ │ ├── PeerConnectionEndToEndTest.java │ │ │ │ │ │ ├── PeerConnectionFactoryTest.java │ │ │ │ │ │ ├── PeerConnectionTest.java │ │ │ │ │ │ ├── RendererCommonTest.java │ │ │ │ │ │ ├── RtcCertificatePemTest.java │ │ │ │ │ │ ├── RtpSenderTest.java │ │ │ │ │ │ ├── RtpTransceiverTest.java │ │ │ │ │ │ ├── SurfaceTextureHelperTest.java │ │ │ │ │ │ ├── SurfaceViewRendererOnMeasureTest.java │ │ │ │ │ │ ├── TestConstants.java │ │ │ │ │ │ ├── TimestampAlignerTest.java │ │ │ │ │ │ ├── VideoFileRendererTest.java │ │ │ │ │ │ ├── VideoFrameBufferTest.java │ │ │ │ │ │ ├── VideoTrackTest.java │ │ │ │ │ │ ├── WebRtcJniBootTest.java │ │ │ │ │ │ ├── YuvHelperTest.java │ │ │ │ │ │ └── capturetestvideo.y4m │ │ │ │ │ └── video_frame_buffer_test.cc │ │ │ │ ├── native_api/ │ │ │ │ │ ├── DEPS │ │ │ │ │ ├── audio_device_module/ │ │ │ │ │ │ ├── audio_device_android.cc │ │ │ │ │ │ └── audio_device_android.h │ │ │ │ │ ├── base/ │ │ │ │ │ │ ├── init.cc │ │ │ │ │ │ └── init.h │ │ │ │ │ ├── codecs/ │ │ │ │ │ │ ├── wrapper.cc │ │ │ │ │ │ └── wrapper.h │ │ │ │ │ ├── jni/ │ │ │ │ │ │ ├── class_loader.cc │ │ │ │ │ │ ├── class_loader.h │ │ │ │ │ │ ├── java_types.cc │ │ │ │ │ │ ├── java_types.h │ │ │ │ │ │ ├── jni_int_wrapper.h │ │ │ │ │ │ ├── jvm.cc │ │ │ │ │ │ ├── jvm.h │ │ │ │ │ │ └── scoped_java_ref.h │ │ │ │ │ ├── network_monitor/ │ │ │ │ │ │ ├── network_monitor.cc │ │ │ │ │ │ └── network_monitor.h │ │ │ │ │ ├── peerconnection/ │ │ │ │ │ │ ├── peer_connection_factory.cc │ │ │ │ │ │ └── peer_connection_factory.h │ │ │ │ │ ├── stacktrace/ │ │ │ │ │ │ ├── stacktrace.cc │ │ │ │ │ │ └── stacktrace.h │ │ │ │ │ └── video/ │ │ │ │ │ ├── video_source.cc │ │ │ │ │ ├── video_source.h │ │ │ │ │ ├── wrapper.cc │ │ │ │ │ └── wrapper.h │ │ │ │ ├── native_unittests/ │ │ │ │ │ ├── DEPS │ │ │ │ │ ├── android_network_monitor_unittest.cc │ │ │ │ │ ├── application_context_provider.cc │ │ │ │ │ ├── application_context_provider.h │ │ │ │ │ ├── audio_device/ │ │ │ │ │ │ └── audio_device_unittest.cc │ │ │ │ │ ├── codecs/ │ │ │ │ │ │ ├── DEPS │ │ │ │ │ │ └── wrapper_unittest.cc │ │ │ │ │ ├── java_types_unittest.cc │ │ │ │ │ ├── org/ │ │ │ │ │ │ └── webrtc/ │ │ │ │ │ │ ├── ApplicationContextProvider.java │ │ │ │ │ │ ├── BuildInfo.java │ │ │ │ │ │ ├── CodecsWrapperTestHelper.java │ │ │ │ │ │ ├── FakeVideoEncoder.java │ │ │ │ │ │ ├── JavaTypesTestHelper.java │ │ │ │ │ │ ├── JavaVideoSourceTestHelper.java │ │ │ │ │ │ └── PeerConnectionFactoryInitializationHelper.java │ │ │ │ │ ├── peerconnection/ │ │ │ │ │ │ ├── DEPS │ │ │ │ │ │ └── peer_connection_factory_unittest.cc │ │ │ │ │ ├── stacktrace/ │ │ │ │ │ │ └── stacktrace_unittest.cc │ │ │ │ │ ├── test_jni_onload.cc │ │ │ │ │ └── video/ │ │ │ │ │ └── video_source_unittest.cc │ │ │ │ ├── src/ │ │ │ │ │ ├── java/ │ │ │ │ │ │ └── org/ │ │ │ │ │ │ └── webrtc/ │ │ │ │ │ │ ├── AndroidVideoDecoder.java │ │ │ │ │ │ ├── BaseBitrateAdjuster.java │ │ │ │ │ │ ├── BitrateAdjuster.java │ │ │ │ │ │ ├── CalledByNative.java │ │ │ │ │ │ ├── CalledByNativeUnchecked.java │ │ │ │ │ │ ├── Camera1Session.java │ │ │ │ │ │ ├── Camera2Session.java │ │ │ │ │ │ ├── CameraCapturer.java │ │ │ │ │ │ ├── CameraSession.java │ │ │ │ │ │ ├── DynamicBitrateAdjuster.java │ │ │ │ │ │ ├── EglBase10Impl.java │ │ │ │ │ │ ├── EglBase14Impl.java │ │ │ │ │ │ ├── Empty.java │ │ │ │ │ │ ├── FramerateBitrateAdjuster.java │ │ │ │ │ │ ├── GlGenericDrawer.java │ │ │ │ │ │ ├── H264Utils.java │ │ │ │ │ │ ├── HardwareVideoEncoder.java │ │ │ │ │ │ ├── Histogram.java │ │ │ │ │ │ ├── JNILogging.java │ │ │ │ │ │ ├── JniCommon.java │ │ │ │ │ │ ├── JniHelper.java │ │ │ │ │ │ ├── MediaCodecUtils.java │ │ │ │ │ │ ├── MediaCodecVideoDecoderFactory.java │ │ │ │ │ │ ├── MediaCodecWrapper.java │ │ │ │ │ │ ├── MediaCodecWrapperFactory.java │ │ │ │ │ │ ├── MediaCodecWrapperFactoryImpl.java │ │ │ │ │ │ ├── NV12Buffer.java │ │ │ │ │ │ ├── NV21Buffer.java │ │ │ │ │ │ ├── NativeAndroidVideoTrackSource.java │ │ │ │ │ │ ├── NativeCapturerObserver.java │ │ │ │ │ │ ├── NativeLibrary.java │ │ │ │ │ │ ├── RefCountDelegate.java │ │ │ │ │ │ ├── VideoCodecMimeType.java │ │ │ │ │ │ ├── VideoDecoderWrapper.java │ │ │ │ │ │ ├── VideoEncoderWrapper.java │ │ │ │ │ │ ├── WebRtcClassLoader.java │ │ │ │ │ │ ├── WrappedNativeI420Buffer.java │ │ │ │ │ │ └── audio/ │ │ │ │ │ │ ├── LowLatencyAudioBufferManager.java │ │ │ │ │ │ ├── VolumeLogger.java │ │ │ │ │ │ ├── WebRtcAudioEffects.java │ │ │ │ │ │ ├── WebRtcAudioManager.java │ │ │ │ │ │ ├── WebRtcAudioRecord.java │ │ │ │ │ │ ├── WebRtcAudioTrack.java │ │ │ │ │ │ └── WebRtcAudioUtils.java │ │ │ │ │ └── jni/ │ │ │ │ │ ├── DEPS │ │ │ │ │ ├── OWNERS │ │ │ │ │ ├── android_histogram.cc │ │ │ │ │ ├── android_metrics.cc │ │ │ │ │ ├── android_network_monitor.cc │ │ │ │ │ ├── android_network_monitor.h │ │ │ │ │ ├── android_video_track_source.cc │ │ │ │ │ ├── android_video_track_source.h │ │ │ │ │ ├── audio_device/ │ │ │ │ │ │ ├── DEPS │ │ │ │ │ │ ├── OWNERS │ │ │ │ │ │ ├── aaudio_player.cc │ │ │ │ │ │ ├── aaudio_player.h │ │ │ │ │ │ ├── aaudio_recorder.cc │ │ │ │ │ │ ├── aaudio_recorder.h │ │ │ │ │ │ ├── aaudio_wrapper.cc │ │ │ │ │ │ ├── aaudio_wrapper.h │ │ │ │ │ │ ├── audio_common.h │ │ │ │ │ │ ├── audio_device_module.cc │ │ │ │ │ │ ├── audio_device_module.h │ │ │ │ │ │ ├── audio_record_jni.cc │ │ │ │ │ │ ├── audio_record_jni.h │ │ │ │ │ │ ├── audio_track_jni.cc │ │ │ │ │ │ ├── audio_track_jni.h │ │ │ │ │ │ ├── java_audio_device_module.cc │ │ │ │ │ │ ├── opensles_common.cc │ │ │ │ │ │ ├── opensles_common.h │ │ │ │ │ │ ├── opensles_player.cc │ │ │ │ │ │ ├── opensles_player.h │ │ │ │ │ │ ├── opensles_recorder.cc │ │ │ │ │ │ └── opensles_recorder.h │ │ │ │ │ ├── av1_codec.cc │ │ │ │ │ ├── builtin_audio_decoder_factory_factory.cc │ │ │ │ │ ├── builtin_audio_encoder_factory_factory.cc │ │ │ │ │ ├── class_loader.h │ │ │ │ │ ├── class_reference_holder.h │ │ │ │ │ ├── egl_base_10_impl.cc │ │ │ │ │ ├── encoded_image.cc │ │ │ │ │ ├── encoded_image.h │ │ │ │ │ ├── h264_utils.cc │ │ │ │ │ ├── java_i420_buffer.cc │ │ │ │ │ ├── jni_common.cc │ │ │ │ │ ├── jni_generator_helper.cc │ │ │ │ │ ├── jni_generator_helper.h │ │ │ │ │ ├── jni_helpers.cc │ │ │ │ │ ├── jni_helpers.h │ │ │ │ │ ├── jni_onload.cc │ │ │ │ │ ├── jvm.cc │ │ │ │ │ ├── jvm.h │ │ │ │ │ ├── logging/ │ │ │ │ │ │ ├── log_sink.cc │ │ │ │ │ │ └── log_sink.h │ │ │ │ │ ├── native_capturer_observer.cc │ │ │ │ │ ├── native_capturer_observer.h │ │ │ │ │ ├── nv12_buffer.cc │ │ │ │ │ ├── nv21_buffer.cc │ │ │ │ │ ├── pc/ │ │ │ │ │ │ ├── add_ice_candidate_observer.cc │ │ │ │ │ │ ├── add_ice_candidate_observer.h │ │ │ │ │ │ ├── android_network_monitor.h │ │ │ │ │ │ ├── audio.cc │ │ │ │ │ │ ├── audio.h │ │ │ │ │ │ ├── audio_track.cc │ │ │ │ │ │ ├── call_session_file_rotating_log_sink.cc │ │ │ │ │ │ ├── crypto_options.cc │ │ │ │ │ │ ├── crypto_options.h │ │ │ │ │ │ ├── data_channel.cc │ │ │ │ │ │ ├── data_channel.h │ │ │ │ │ │ ├── dtmf_sender.cc │ │ │ │ │ │ ├── ice_candidate.cc │ │ │ │ │ │ ├── ice_candidate.h │ │ │ │ │ │ ├── logging.cc │ │ │ │ │ │ ├── media_constraints.cc │ │ │ │ │ │ ├── media_constraints.h │ │ │ │ │ │ ├── media_source.cc │ │ │ │ │ │ ├── media_stream.cc │ │ │ │ │ │ ├── media_stream.h │ │ │ │ │ │ ├── media_stream_track.cc │ │ │ │ │ │ ├── media_stream_track.h │ │ │ │ │ │ ├── owned_factory_and_threads.cc │ │ │ │ │ │ ├── owned_factory_and_threads.h │ │ │ │ │ │ ├── peer_connection.cc │ │ │ │ │ │ ├── peer_connection.h │ │ │ │ │ │ ├── peer_connection_factory.cc │ │ │ │ │ │ ├── peer_connection_factory.h │ │ │ │ │ │ ├── rtc_certificate.cc │ │ │ │ │ │ ├── rtc_certificate.h │ │ │ │ │ │ ├── rtc_stats_collector_callback_wrapper.cc │ │ │ │ │ │ ├── rtc_stats_collector_callback_wrapper.h │ │ │ │ │ │ ├── rtp_parameters.cc │ │ │ │ │ │ ├── rtp_parameters.h │ │ │ │ │ │ ├── rtp_receiver.cc │ │ │ │ │ │ ├── rtp_receiver.h │ │ │ │ │ │ ├── rtp_sender.cc │ │ │ │ │ │ ├── rtp_sender.h │ │ │ │ │ │ ├── rtp_transceiver.cc │ │ │ │ │ │ ├── rtp_transceiver.h │ │ │ │ │ │ ├── sdp_observer.cc │ │ │ │ │ │ ├── sdp_observer.h │ │ │ │ │ │ ├── session_description.cc │ │ │ │ │ │ ├── session_description.h │ │ │ │ │ │ ├── ssl_certificate_verifier_wrapper.cc │ │ │ │ │ │ ├── ssl_certificate_verifier_wrapper.h │ │ │ │ │ │ ├── stats_observer.cc │ │ │ │ │ │ ├── stats_observer.h │ │ │ │ │ │ ├── turn_customizer.cc │ │ │ │ │ │ ├── turn_customizer.h │ │ │ │ │ │ ├── video.cc │ │ │ │ │ │ └── video.h │ │ │ │ │ ├── scoped_java_ref_counted.cc │ │ │ │ │ ├── scoped_java_ref_counted.h │ │ │ │ │ ├── timestamp_aligner.cc │ │ │ │ │ ├── video_codec_info.cc │ │ │ │ │ ├── video_codec_info.h │ │ │ │ │ ├── video_codec_status.cc │ │ │ │ │ ├── video_codec_status.h │ │ │ │ │ ├── video_decoder_factory_wrapper.cc │ │ │ │ │ ├── video_decoder_factory_wrapper.h │ │ │ │ │ ├── video_decoder_fallback.cc │ │ │ │ │ ├── video_decoder_wrapper.cc │ │ │ │ │ ├── video_decoder_wrapper.h │ │ │ │ │ ├── video_encoder_factory_wrapper.cc │ │ │ │ │ ├── video_encoder_factory_wrapper.h │ │ │ │ │ ├── video_encoder_fallback.cc │ │ │ │ │ ├── video_encoder_wrapper.cc │ │ │ │ │ ├── video_encoder_wrapper.h │ │ │ │ │ ├── video_frame.cc │ │ │ │ │ ├── video_frame.h │ │ │ │ │ ├── video_sink.cc │ │ │ │ │ ├── video_sink.h │ │ │ │ │ ├── video_track.cc │ │ │ │ │ ├── vp8_codec.cc │ │ │ │ │ ├── vp9_codec.cc │ │ │ │ │ ├── wrapped_native_i420_buffer.cc │ │ │ │ │ ├── wrapped_native_i420_buffer.h │ │ │ │ │ └── yuv_helper.cc │ │ │ │ └── tests/ │ │ │ │ ├── resources/ │ │ │ │ │ └── robolectric.properties │ │ │ │ └── src/ │ │ │ │ └── org/ │ │ │ │ └── webrtc/ │ │ │ │ ├── AndroidVideoDecoderTest.java │ │ │ │ ├── CameraEnumerationTest.java │ │ │ │ ├── CodecTestHelper.java │ │ │ │ ├── CryptoOptionsTest.java │ │ │ │ ├── FakeMediaCodecWrapper.java │ │ │ │ ├── GlGenericDrawerTest.java │ │ │ │ ├── HardwareVideoEncoderTest.java │ │ │ │ ├── IceCandidateTest.java │ │ │ │ ├── RefCountDelegateTest.java │ │ │ │ ├── ScalingSettingsTest.java │ │ │ │ └── audio/ │ │ │ │ └── LowLatencyAudioBufferManagerTest.java │ │ │ ├── media_constraints.cc │ │ │ ├── media_constraints.h │ │ │ ├── media_constraints_unittest.cc │ │ │ └── objc/ │ │ │ ├── DEPS │ │ │ ├── Framework/ │ │ │ │ ├── Classes/ │ │ │ │ │ ├── Common/ │ │ │ │ │ │ ├── NSString+StdString.h │ │ │ │ │ │ └── scoped_cftyperef.h │ │ │ │ │ ├── PeerConnection/ │ │ │ │ │ │ ├── RTCConfiguration+Native.h │ │ │ │ │ │ └── RTCPeerConnectionFactory+Native.h │ │ │ │ │ ├── Video/ │ │ │ │ │ │ ├── RTCDefaultShader.h │ │ │ │ │ │ └── RTCNV12TextureCache.h │ │ │ │ │ └── VideoToolbox/ │ │ │ │ │ └── nalu_rewriter.h │ │ │ │ └── Native/ │ │ │ │ ├── api/ │ │ │ │ │ ├── audio_device_module.h │ │ │ │ │ ├── video_decoder_factory.h │ │ │ │ │ ├── video_encoder_factory.h │ │ │ │ │ └── video_frame_buffer.h │ │ │ │ └── src/ │ │ │ │ ├── objc_video_decoder_factory.h │ │ │ │ └── objc_video_encoder_factory.h │ │ │ ├── Info.plist │ │ │ ├── OWNERS │ │ │ ├── README.md │ │ │ ├── api/ │ │ │ │ ├── RTCVideoRendererAdapter+Private.h │ │ │ │ ├── RTCVideoRendererAdapter.h │ │ │ │ ├── RTCVideoRendererAdapter.mm │ │ │ │ ├── logging/ │ │ │ │ │ ├── RTCCallbackLogger.h │ │ │ │ │ └── RTCCallbackLogger.mm │ │ │ │ ├── peerconnection/ │ │ │ │ │ ├── RTCAudioSource+Private.h │ │ │ │ │ ├── RTCAudioSource.h │ │ │ │ │ ├── RTCAudioSource.mm │ │ │ │ │ ├── RTCAudioTrack+Private.h │ │ │ │ │ ├── RTCAudioTrack.h │ │ │ │ │ ├── RTCAudioTrack.mm │ │ │ │ │ ├── RTCCertificate.h │ │ │ │ │ ├── RTCCertificate.mm │ │ │ │ │ ├── RTCConfiguration+Native.h │ │ │ │ │ ├── RTCConfiguration+Private.h │ │ │ │ │ ├── RTCConfiguration.h │ │ │ │ │ ├── RTCConfiguration.mm │ │ │ │ │ ├── RTCCryptoOptions.h │ │ │ │ │ ├── RTCCryptoOptions.mm │ │ │ │ │ ├── RTCDataChannel+Private.h │ │ │ │ │ ├── RTCDataChannel.h │ │ │ │ │ ├── RTCDataChannel.mm │ │ │ │ │ ├── RTCDataChannelConfiguration+Private.h │ │ │ │ │ ├── RTCDataChannelConfiguration.h │ │ │ │ │ ├── RTCDataChannelConfiguration.mm │ │ │ │ │ ├── RTCDtmfSender+Private.h │ │ │ │ │ ├── RTCDtmfSender.h │ │ │ │ │ ├── RTCDtmfSender.mm │ │ │ │ │ ├── RTCEncodedImage+Private.h │ │ │ │ │ ├── RTCEncodedImage+Private.mm │ │ │ │ │ ├── RTCFieldTrials.h │ │ │ │ │ ├── RTCFieldTrials.mm │ │ │ │ │ ├── RTCFileLogger.h │ │ │ │ │ ├── RTCFileLogger.mm │ │ │ │ │ ├── RTCIceCandidate+Private.h │ │ │ │ │ ├── RTCIceCandidate.h │ │ │ │ │ ├── RTCIceCandidate.mm │ │ │ │ │ ├── RTCIceServer+Private.h │ │ │ │ │ ├── RTCIceServer.h │ │ │ │ │ ├── RTCIceServer.mm │ │ │ │ │ ├── RTCLegacyStatsReport+Private.h │ │ │ │ │ ├── RTCLegacyStatsReport.h │ │ │ │ │ ├── RTCLegacyStatsReport.mm │ │ │ │ │ ├── RTCMediaConstraints+Private.h │ │ │ │ │ ├── RTCMediaConstraints.h │ │ │ │ │ ├── RTCMediaConstraints.mm │ │ │ │ │ ├── RTCMediaSource+Private.h │ │ │ │ │ ├── RTCMediaSource.h │ │ │ │ │ ├── RTCMediaSource.mm │ │ │ │ │ ├── RTCMediaStream+Private.h │ │ │ │ │ ├── RTCMediaStream.h │ │ │ │ │ ├── RTCMediaStream.mm │ │ │ │ │ ├── RTCMediaStreamTrack+Private.h │ │ │ │ │ ├── RTCMediaStreamTrack.h │ │ │ │ │ ├── RTCMediaStreamTrack.mm │ │ │ │ │ ├── RTCMetrics.h │ │ │ │ │ ├── RTCMetrics.mm │ │ │ │ │ ├── RTCMetricsSampleInfo+Private.h │ │ │ │ │ ├── RTCMetricsSampleInfo.h │ │ │ │ │ ├── RTCMetricsSampleInfo.mm │ │ │ │ │ ├── RTCPeerConnection+DataChannel.mm │ │ │ │ │ ├── RTCPeerConnection+Private.h │ │ │ │ │ ├── RTCPeerConnection+Stats.mm │ │ │ │ │ ├── RTCPeerConnection.h │ │ │ │ │ ├── RTCPeerConnection.mm │ │ │ │ │ ├── RTCPeerConnectionFactory+Native.h │ │ │ │ │ ├── RTCPeerConnectionFactory+Private.h │ │ │ │ │ ├── RTCPeerConnectionFactory.h │ │ │ │ │ ├── RTCPeerConnectionFactory.mm │ │ │ │ │ ├── RTCPeerConnectionFactoryBuilder+DefaultComponents.h │ │ │ │ │ ├── RTCPeerConnectionFactoryBuilder+DefaultComponents.mm │ │ │ │ │ ├── RTCPeerConnectionFactoryBuilder.h │ │ │ │ │ ├── RTCPeerConnectionFactoryBuilder.mm │ │ │ │ │ ├── RTCPeerConnectionFactoryOptions+Private.h │ │ │ │ │ ├── RTCPeerConnectionFactoryOptions.h │ │ │ │ │ ├── RTCPeerConnectionFactoryOptions.mm │ │ │ │ │ ├── RTCRtcpParameters+Private.h │ │ │ │ │ ├── RTCRtcpParameters.h │ │ │ │ │ ├── RTCRtcpParameters.mm │ │ │ │ │ ├── RTCRtpCodecParameters+Private.h │ │ │ │ │ ├── RTCRtpCodecParameters.h │ │ │ │ │ ├── RTCRtpCodecParameters.mm │ │ │ │ │ ├── RTCRtpEncodingParameters+Private.h │ │ │ │ │ ├── RTCRtpEncodingParameters.h │ │ │ │ │ ├── RTCRtpEncodingParameters.mm │ │ │ │ │ ├── RTCRtpHeaderExtension+Private.h │ │ │ │ │ ├── RTCRtpHeaderExtension.h │ │ │ │ │ ├── RTCRtpHeaderExtension.mm │ │ │ │ │ ├── RTCRtpParameters+Private.h │ │ │ │ │ ├── RTCRtpParameters.h │ │ │ │ │ ├── RTCRtpParameters.mm │ │ │ │ │ ├── RTCRtpReceiver+Native.h │ │ │ │ │ ├── RTCRtpReceiver+Private.h │ │ │ │ │ ├── RTCRtpReceiver.h │ │ │ │ │ ├── RTCRtpReceiver.mm │ │ │ │ │ ├── RTCRtpSender+Native.h │ │ │ │ │ ├── RTCRtpSender+Private.h │ │ │ │ │ ├── RTCRtpSender.h │ │ │ │ │ ├── RTCRtpSender.mm │ │ │ │ │ ├── RTCRtpTransceiver+Private.h │ │ │ │ │ ├── RTCRtpTransceiver.h │ │ │ │ │ ├── RTCRtpTransceiver.mm │ │ │ │ │ ├── RTCSSLAdapter.h │ │ │ │ │ ├── RTCSSLAdapter.mm │ │ │ │ │ ├── RTCSessionDescription+Private.h │ │ │ │ │ ├── RTCSessionDescription.h │ │ │ │ │ ├── RTCSessionDescription.mm │ │ │ │ │ ├── RTCStatisticsReport+Private.h │ │ │ │ │ ├── RTCStatisticsReport.h │ │ │ │ │ ├── RTCStatisticsReport.mm │ │ │ │ │ ├── RTCTracing.h │ │ │ │ │ ├── RTCTracing.mm │ │ │ │ │ ├── RTCVideoCodecInfo+Private.h │ │ │ │ │ ├── RTCVideoCodecInfo+Private.mm │ │ │ │ │ ├── RTCVideoEncoderSettings+Private.h │ │ │ │ │ ├── RTCVideoEncoderSettings+Private.mm │ │ │ │ │ ├── RTCVideoSource+Private.h │ │ │ │ │ ├── RTCVideoSource.h │ │ │ │ │ ├── RTCVideoSource.mm │ │ │ │ │ ├── RTCVideoTrack+Private.h │ │ │ │ │ ├── RTCVideoTrack.h │ │ │ │ │ └── RTCVideoTrack.mm │ │ │ │ ├── video_codec/ │ │ │ │ │ ├── RTCVideoCodecConstants.h │ │ │ │ │ ├── RTCVideoCodecConstants.mm │ │ │ │ │ ├── RTCVideoDecoderAV1.h │ │ │ │ │ ├── RTCVideoDecoderAV1.mm │ │ │ │ │ ├── RTCVideoDecoderVP8.h │ │ │ │ │ ├── RTCVideoDecoderVP8.mm │ │ │ │ │ ├── RTCVideoDecoderVP9.h │ │ │ │ │ ├── RTCVideoDecoderVP9.mm │ │ │ │ │ ├── RTCVideoEncoderAV1.h │ │ │ │ │ ├── RTCVideoEncoderAV1.mm │ │ │ │ │ ├── RTCVideoEncoderVP8.h │ │ │ │ │ ├── RTCVideoEncoderVP8.mm │ │ │ │ │ ├── RTCVideoEncoderVP9.h │ │ │ │ │ ├── RTCVideoEncoderVP9.mm │ │ │ │ │ ├── RTCWrappedNativeVideoDecoder.h │ │ │ │ │ ├── RTCWrappedNativeVideoDecoder.mm │ │ │ │ │ ├── RTCWrappedNativeVideoEncoder.h │ │ │ │ │ └── RTCWrappedNativeVideoEncoder.mm │ │ │ │ └── video_frame_buffer/ │ │ │ │ ├── RTCNativeI420Buffer+Private.h │ │ │ │ ├── RTCNativeI420Buffer.h │ │ │ │ ├── RTCNativeI420Buffer.mm │ │ │ │ ├── RTCNativeMutableI420Buffer.h │ │ │ │ └── RTCNativeMutableI420Buffer.mm │ │ │ ├── base/ │ │ │ │ ├── RTCCodecSpecificInfo.h │ │ │ │ ├── RTCEncodedImage.h │ │ │ │ ├── RTCEncodedImage.m │ │ │ │ ├── RTCI420Buffer.h │ │ │ │ ├── RTCLogging.h │ │ │ │ ├── RTCLogging.mm │ │ │ │ ├── RTCMacros.h │ │ │ │ ├── RTCMutableI420Buffer.h │ │ │ │ ├── RTCMutableYUVPlanarBuffer.h │ │ │ │ ├── RTCVideoCapturer.h │ │ │ │ ├── RTCVideoCapturer.m │ │ │ │ ├── RTCVideoCodecInfo.h │ │ │ │ ├── RTCVideoCodecInfo.m │ │ │ │ ├── RTCVideoDecoder.h │ │ │ │ ├── RTCVideoDecoderFactory.h │ │ │ │ ├── RTCVideoEncoder.h │ │ │ │ ├── RTCVideoEncoderFactory.h │ │ │ │ ├── RTCVideoEncoderQpThresholds.h │ │ │ │ ├── RTCVideoEncoderQpThresholds.m │ │ │ │ ├── RTCVideoEncoderSettings.h │ │ │ │ ├── RTCVideoEncoderSettings.m │ │ │ │ ├── RTCVideoFrame.h │ │ │ │ ├── RTCVideoFrame.mm │ │ │ │ ├── RTCVideoFrameBuffer.h │ │ │ │ ├── RTCVideoRenderer.h │ │ │ │ └── RTCYUVPlanarBuffer.h │ │ │ ├── components/ │ │ │ │ ├── audio/ │ │ │ │ │ ├── RTCAudioSession+Configuration.mm │ │ │ │ │ ├── RTCAudioSession+Private.h │ │ │ │ │ ├── RTCAudioSession.h │ │ │ │ │ ├── RTCAudioSession.mm │ │ │ │ │ ├── RTCAudioSessionConfiguration.h │ │ │ │ │ ├── RTCAudioSessionConfiguration.m │ │ │ │ │ ├── RTCNativeAudioSessionDelegateAdapter.h │ │ │ │ │ └── RTCNativeAudioSessionDelegateAdapter.mm │ │ │ │ ├── capturer/ │ │ │ │ │ ├── RTCCameraVideoCapturer.h │ │ │ │ │ ├── RTCCameraVideoCapturer.m │ │ │ │ │ ├── RTCFileVideoCapturer.h │ │ │ │ │ └── RTCFileVideoCapturer.m │ │ │ │ ├── network/ │ │ │ │ │ ├── RTCNetworkMonitor+Private.h │ │ │ │ │ ├── RTCNetworkMonitor.h │ │ │ │ │ └── RTCNetworkMonitor.mm │ │ │ │ ├── renderer/ │ │ │ │ │ ├── metal/ │ │ │ │ │ │ ├── RTCMTLI420Renderer.h │ │ │ │ │ │ ├── RTCMTLI420Renderer.mm │ │ │ │ │ │ ├── RTCMTLNSVideoView.h │ │ │ │ │ │ ├── RTCMTLNSVideoView.m │ │ │ │ │ │ ├── RTCMTLNV12Renderer.h │ │ │ │ │ │ ├── RTCMTLNV12Renderer.mm │ │ │ │ │ │ ├── RTCMTLRGBRenderer.h │ │ │ │ │ │ ├── RTCMTLRGBRenderer.mm │ │ │ │ │ │ ├── RTCMTLRenderer+Private.h │ │ │ │ │ │ ├── RTCMTLRenderer.h │ │ │ │ │ │ ├── RTCMTLRenderer.mm │ │ │ │ │ │ ├── RTCMTLVideoView.h │ │ │ │ │ │ └── RTCMTLVideoView.m │ │ │ │ │ └── opengl/ │ │ │ │ │ ├── RTCDefaultShader.h │ │ │ │ │ ├── RTCDefaultShader.mm │ │ │ │ │ ├── RTCDisplayLinkTimer.h │ │ │ │ │ ├── RTCDisplayLinkTimer.m │ │ │ │ │ ├── RTCEAGLVideoView.h │ │ │ │ │ ├── RTCEAGLVideoView.m │ │ │ │ │ ├── RTCI420TextureCache.h │ │ │ │ │ ├── RTCI420TextureCache.mm │ │ │ │ │ ├── RTCNSGLVideoView.h │ │ │ │ │ ├── RTCNSGLVideoView.m │ │ │ │ │ ├── RTCNV12TextureCache.h │ │ │ │ │ ├── RTCNV12TextureCache.m │ │ │ │ │ ├── RTCOpenGLDefines.h │ │ │ │ │ ├── RTCShader.h │ │ │ │ │ ├── RTCShader.mm │ │ │ │ │ └── RTCVideoViewShading.h │ │ │ │ ├── video_codec/ │ │ │ │ │ ├── RTCCodecSpecificInfoH264+Private.h │ │ │ │ │ ├── RTCCodecSpecificInfoH264.h │ │ │ │ │ ├── RTCCodecSpecificInfoH264.mm │ │ │ │ │ ├── RTCDefaultVideoDecoderFactory.h │ │ │ │ │ ├── RTCDefaultVideoDecoderFactory.m │ │ │ │ │ ├── RTCDefaultVideoEncoderFactory.h │ │ │ │ │ ├── RTCDefaultVideoEncoderFactory.m │ │ │ │ │ ├── RTCH264ProfileLevelId.h │ │ │ │ │ ├── RTCH264ProfileLevelId.mm │ │ │ │ │ ├── RTCVideoDecoderFactoryH264.h │ │ │ │ │ ├── RTCVideoDecoderFactoryH264.m │ │ │ │ │ ├── RTCVideoDecoderH264.h │ │ │ │ │ ├── RTCVideoDecoderH264.mm │ │ │ │ │ ├── RTCVideoEncoderFactoryH264.h │ │ │ │ │ ├── RTCVideoEncoderFactoryH264.m │ │ │ │ │ ├── RTCVideoEncoderH264.h │ │ │ │ │ ├── RTCVideoEncoderH264.mm │ │ │ │ │ ├── UIDevice+H264Profile.h │ │ │ │ │ ├── UIDevice+H264Profile.mm │ │ │ │ │ ├── helpers.cc │ │ │ │ │ ├── helpers.h │ │ │ │ │ ├── nalu_rewriter.cc │ │ │ │ │ └── nalu_rewriter.h │ │ │ │ └── video_frame_buffer/ │ │ │ │ ├── RTCCVPixelBuffer.h │ │ │ │ └── RTCCVPixelBuffer.mm │ │ │ ├── helpers/ │ │ │ │ ├── AVCaptureSession+DevicePosition.h │ │ │ │ ├── AVCaptureSession+DevicePosition.mm │ │ │ │ ├── NSString+StdString.h │ │ │ │ ├── NSString+StdString.mm │ │ │ │ ├── RTCCameraPreviewView.h │ │ │ │ ├── RTCCameraPreviewView.m │ │ │ │ ├── RTCDispatcher+Private.h │ │ │ │ ├── RTCDispatcher.h │ │ │ │ ├── RTCDispatcher.m │ │ │ │ ├── UIDevice+RTCDevice.h │ │ │ │ ├── UIDevice+RTCDevice.mm │ │ │ │ ├── noop.mm │ │ │ │ └── scoped_cftyperef.h │ │ │ ├── native/ │ │ │ │ ├── api/ │ │ │ │ │ ├── audio_device_module.h │ │ │ │ │ ├── audio_device_module.mm │ │ │ │ │ ├── network_monitor_factory.h │ │ │ │ │ ├── network_monitor_factory.mm │ │ │ │ │ ├── video_capturer.h │ │ │ │ │ ├── video_capturer.mm │ │ │ │ │ ├── video_decoder_factory.h │ │ │ │ │ ├── video_decoder_factory.mm │ │ │ │ │ ├── video_encoder_factory.h │ │ │ │ │ ├── video_encoder_factory.mm │ │ │ │ │ ├── video_frame.h │ │ │ │ │ ├── video_frame.mm │ │ │ │ │ ├── video_frame_buffer.h │ │ │ │ │ ├── video_frame_buffer.mm │ │ │ │ │ ├── video_renderer.h │ │ │ │ │ └── video_renderer.mm │ │ │ │ └── src/ │ │ │ │ ├── audio/ │ │ │ │ │ ├── audio_device_ios.h │ │ │ │ │ ├── audio_device_ios.mm │ │ │ │ │ ├── audio_device_module_ios.h │ │ │ │ │ ├── audio_device_module_ios.mm │ │ │ │ │ ├── audio_session_observer.h │ │ │ │ │ ├── helpers.h │ │ │ │ │ ├── helpers.mm │ │ │ │ │ ├── voice_processing_audio_unit.h │ │ │ │ │ └── voice_processing_audio_unit.mm │ │ │ │ ├── network_monitor_observer.h │ │ │ │ ├── objc_frame_buffer.h │ │ │ │ ├── objc_frame_buffer.mm │ │ │ │ ├── objc_network_monitor.h │ │ │ │ ├── objc_network_monitor.mm │ │ │ │ ├── objc_video_decoder_factory.h │ │ │ │ ├── objc_video_decoder_factory.mm │ │ │ │ ├── objc_video_encoder_factory.h │ │ │ │ ├── objc_video_encoder_factory.mm │ │ │ │ ├── objc_video_frame.h │ │ │ │ ├── objc_video_frame.mm │ │ │ │ ├── objc_video_renderer.h │ │ │ │ ├── objc_video_renderer.mm │ │ │ │ ├── objc_video_track_source.h │ │ │ │ └── objc_video_track_source.mm │ │ │ └── unittests/ │ │ │ ├── ObjCVideoTrackSource_xctest.mm │ │ │ ├── RTCAudioDeviceModule_xctest.mm │ │ │ ├── RTCAudioDevice_xctest.mm │ │ │ ├── RTCAudioSessionTest.mm │ │ │ ├── RTCCVPixelBuffer_xctest.mm │ │ │ ├── RTCCallbackLogger_xctest.m │ │ │ ├── RTCCameraVideoCapturerTests.mm │ │ │ ├── RTCCertificateTest.mm │ │ │ ├── RTCConfigurationTest.mm │ │ │ ├── RTCDataChannelConfigurationTest.mm │ │ │ ├── RTCDoNotPutCPlusPlusInFrameworkHeaders_xctest.m │ │ │ ├── RTCEncodedImage_xctest.mm │ │ │ ├── RTCFileVideoCapturer_xctest.mm │ │ │ ├── RTCH264ProfileLevelId_xctest.m │ │ │ ├── RTCIceCandidateTest.mm │ │ │ ├── RTCIceServerTest.mm │ │ │ ├── RTCMTLVideoView_xctest.m │ │ │ ├── RTCMediaConstraintsTest.mm │ │ │ ├── RTCNV12TextureCache_xctest.m │ │ │ ├── RTCPeerConnectionFactoryBuilderTest.mm │ │ │ ├── RTCPeerConnectionFactory_xctest.m │ │ │ ├── RTCPeerConnectionTest.mm │ │ │ ├── RTCSessionDescriptionTest.mm │ │ │ ├── RTCTracingTest.mm │ │ │ ├── audio_short16.pcm │ │ │ ├── audio_short44.pcm │ │ │ ├── audio_short48.pcm │ │ │ ├── avformatmappertests.mm │ │ │ ├── frame_buffer_helpers.h │ │ │ ├── frame_buffer_helpers.mm │ │ │ ├── main.mm │ │ │ ├── nalu_rewriter_xctest.mm │ │ │ ├── objc_video_decoder_factory_tests.mm │ │ │ ├── objc_video_encoder_factory_tests.mm │ │ │ └── scoped_cftyperef_tests.mm │ │ ├── stats/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── OWNERS │ │ │ ├── rtc_stats.cc │ │ │ ├── rtc_stats_report.cc │ │ │ ├── rtc_stats_report_unittest.cc │ │ │ ├── rtc_stats_unittest.cc │ │ │ ├── rtcstats_objects.cc │ │ │ └── test/ │ │ │ ├── rtc_test_stats.cc │ │ │ └── rtc_test_stats.h │ │ ├── system_wrappers/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── OWNERS │ │ │ ├── include/ │ │ │ │ ├── clock.h │ │ │ │ ├── cpu_features_wrapper.h │ │ │ │ ├── cpu_info.h │ │ │ │ ├── denormal_disabler.h │ │ │ │ ├── field_trial.h │ │ │ │ ├── metrics.h │ │ │ │ ├── ntp_time.h │ │ │ │ ├── rtp_to_ntp_estimator.h │ │ │ │ └── sleep.h │ │ │ └── source/ │ │ │ ├── clock.cc │ │ │ ├── clock_unittest.cc │ │ │ ├── cpu_features.cc │ │ │ ├── cpu_features_android.cc │ │ │ ├── cpu_features_linux.cc │ │ │ ├── cpu_info.cc │ │ │ ├── denormal_disabler.cc │ │ │ ├── denormal_disabler_unittest.cc │ │ │ ├── field_trial.cc │ │ │ ├── field_trial_unittest.cc │ │ │ ├── metrics.cc │ │ │ ├── metrics_default_unittest.cc │ │ │ ├── metrics_unittest.cc │ │ │ ├── ntp_time_unittest.cc │ │ │ ├── rtp_to_ntp_estimator.cc │ │ │ ├── rtp_to_ntp_estimator_unittest.cc │ │ │ └── sleep.cc │ │ ├── test/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── OWNERS │ │ │ ├── android/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── org/ │ │ │ │ └── webrtc/ │ │ │ │ └── native_test/ │ │ │ │ ├── RTCNativeUnitTest.java │ │ │ │ └── RTCNativeUnitTestActivity.java │ │ │ ├── audio_decoder_proxy_factory.h │ │ │ ├── benchmark_main.cc │ │ │ ├── call_config_utils.cc │ │ │ ├── call_config_utils.h │ │ │ ├── call_config_utils_unittest.cc │ │ │ ├── call_test.cc │ │ │ ├── call_test.h │ │ │ ├── configurable_frame_size_encoder.cc │ │ │ ├── configurable_frame_size_encoder.h │ │ │ ├── direct_transport.cc │ │ │ ├── direct_transport.h │ │ │ ├── direct_transport_unittest.cc │ │ │ ├── drifting_clock.cc │ │ │ ├── drifting_clock.h │ │ │ ├── encoder_settings.cc │ │ │ ├── encoder_settings.h │ │ │ ├── explicit_key_value_config.cc │ │ │ ├── explicit_key_value_config.h │ │ │ ├── fake_decoder.cc │ │ │ ├── fake_decoder.h │ │ │ ├── fake_encoder.cc │ │ │ ├── fake_encoder.h │ │ │ ├── fake_texture_frame.cc │ │ │ ├── fake_texture_frame.h │ │ │ ├── fake_videorenderer.h │ │ │ ├── fake_vp8_decoder.cc │ │ │ ├── fake_vp8_decoder.h │ │ │ ├── fake_vp8_encoder.cc │ │ │ ├── fake_vp8_encoder.h │ │ │ ├── fake_vp8_encoder_unittest.cc │ │ │ ├── field_trial.cc │ │ │ ├── field_trial.h │ │ │ ├── frame_forwarder.cc │ │ │ ├── frame_forwarder.h │ │ │ ├── frame_generator.cc │ │ │ ├── frame_generator.h │ │ │ ├── frame_generator_capturer.cc │ │ │ ├── frame_generator_capturer.h │ │ │ ├── frame_generator_capturer_unittest.cc │ │ │ ├── frame_generator_unittest.cc │ │ │ ├── frame_utils.cc │ │ │ ├── frame_utils.h │ │ │ ├── function_audio_decoder_factory.h │ │ │ ├── fuzzers/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── OWNERS │ │ │ │ ├── aec3_config_json_fuzzer.cc │ │ │ │ ├── aec3_fuzzer.cc │ │ │ │ ├── agc_fuzzer.cc │ │ │ │ ├── audio_decoder_fuzzer.cc │ │ │ │ ├── audio_decoder_fuzzer.h │ │ │ │ ├── audio_decoder_ilbc_fuzzer.cc │ │ │ │ ├── audio_decoder_isac_fuzzer.cc │ │ │ │ ├── audio_decoder_isacfix_fuzzer.cc │ │ │ │ ├── audio_decoder_multistream_opus_fuzzer.cc │ │ │ │ ├── audio_decoder_opus_fuzzer.cc │ │ │ │ ├── audio_decoder_opus_redundant_fuzzer.cc │ │ │ │ ├── audio_encoder_fuzzer.cc │ │ │ │ ├── audio_encoder_fuzzer.h │ │ │ │ ├── audio_encoder_isac_fixed_fuzzer.cc │ │ │ │ ├── audio_encoder_isac_float_fuzzer.cc │ │ │ │ ├── audio_encoder_opus_fuzzer.cc │ │ │ │ ├── audio_processing_configs_fuzzer.cc │ │ │ │ ├── audio_processing_fuzzer_helper.cc │ │ │ │ ├── audio_processing_fuzzer_helper.h │ │ │ │ ├── comfort_noise_decoder_fuzzer.cc │ │ │ │ ├── configs/ │ │ │ │ │ └── replay_packet_fuzzer/ │ │ │ │ │ ├── h264_fec_config.json │ │ │ │ │ ├── h264_non_interleaved_config.json │ │ │ │ │ ├── h264_single_nal_config.json │ │ │ │ │ ├── vp8_config.json │ │ │ │ │ ├── vp8_fec_config.json │ │ │ │ │ ├── vp9_config.json │ │ │ │ │ └── vp9_fec_config.json │ │ │ │ ├── congestion_controller_feedback_fuzzer.cc │ │ │ │ ├── corpora/ │ │ │ │ │ ├── README │ │ │ │ │ ├── aec3-config-json-corpus/ │ │ │ │ │ │ └── default.json │ │ │ │ │ ├── agc-corpus/ │ │ │ │ │ │ ├── agc-1 │ │ │ │ │ │ ├── agc-2 │ │ │ │ │ │ ├── agc-3 │ │ │ │ │ │ └── agc-4 │ │ │ │ │ ├── audio_processing-corpus/ │ │ │ │ │ │ ├── audio-processing-0 │ │ │ │ │ │ ├── audio-processing-1 │ │ │ │ │ │ ├── audio-processing-2 │ │ │ │ │ │ └── audio-processing-3 │ │ │ │ │ ├── dependency_descriptor-corpus/ │ │ │ │ │ │ ├── dependency-descriptor-0 │ │ │ │ │ │ ├── dependency-descriptor-1 │ │ │ │ │ │ ├── dependency-descriptor-10 │ │ │ │ │ │ ├── dependency-descriptor-11 │ │ │ │ │ │ ├── dependency-descriptor-12 │ │ │ │ │ │ ├── dependency-descriptor-13 │ │ │ │ │ │ ├── dependency-descriptor-14 │ │ │ │ │ │ ├── dependency-descriptor-15 │ │ │ │ │ │ ├── dependency-descriptor-16 │ │ │ │ │ │ ├── dependency-descriptor-2 │ │ │ │ │ │ ├── dependency-descriptor-3 │ │ │ │ │ │ ├── dependency-descriptor-4 │ │ │ │ │ │ ├── dependency-descriptor-5 │ │ │ │ │ │ ├── dependency-descriptor-6 │ │ │ │ │ │ ├── dependency-descriptor-7 │ │ │ │ │ │ ├── dependency-descriptor-8 │ │ │ │ │ │ └── dependency-descriptor-9 │ │ │ │ │ ├── field_trial-corpus/ │ │ │ │ │ │ ├── field-trial-0 │ │ │ │ │ │ ├── field-trial-1 │ │ │ │ │ │ └── field-trial-2 │ │ │ │ │ ├── mdns-corpus/ │ │ │ │ │ │ ├── 1.mdns │ │ │ │ │ │ ├── 10.mdns │ │ │ │ │ │ ├── 11.mdns │ │ │ │ │ │ ├── 12.mdns │ │ │ │ │ │ ├── 13.mdns │ │ │ │ │ │ ├── 14.mdns │ │ │ │ │ │ ├── 15.mdns │ │ │ │ │ │ ├── 16.mdns │ │ │ │ │ │ ├── 17.mdns │ │ │ │ │ │ ├── 18.mdns │ │ │ │ │ │ ├── 19.mdns │ │ │ │ │ │ ├── 2.mdns │ │ │ │ │ │ ├── 20.mdns │ │ │ │ │ │ ├── 3.mdns │ │ │ │ │ │ ├── 4.mdns │ │ │ │ │ │ ├── 5.mdns │ │ │ │ │ │ ├── 6.mdns │ │ │ │ │ │ ├── 7.mdns │ │ │ │ │ │ ├── 8.mdns │ │ │ │ │ │ └── 9.mdns │ │ │ │ │ ├── pseudotcp-corpus/ │ │ │ │ │ │ └── 785b96587d0eb44dd5d75b7a886f37e2ac504511 │ │ │ │ │ ├── rtcp-corpus/ │ │ │ │ │ │ ├── 0.rtcp │ │ │ │ │ │ ├── 1.rtcp │ │ │ │ │ │ ├── 10.rtcp │ │ │ │ │ │ ├── 11.rtcp │ │ │ │ │ │ ├── 12.rtcp │ │ │ │ │ │ ├── 13.rtcp │ │ │ │ │ │ ├── 14.rtcp │ │ │ │ │ │ ├── 15.rtcp │ │ │ │ │ │ ├── 16.rtcp │ │ │ │ │ │ ├── 17.rtcp │ │ │ │ │ │ ├── 18.rtcp │ │ │ │ │ │ ├── 19.rtcp │ │ │ │ │ │ ├── 2.rtcp │ │ │ │ │ │ ├── 20.rtcp │ │ │ │ │ │ ├── 21.rtcp │ │ │ │ │ │ ├── 22.rtcp │ │ │ │ │ │ ├── 23.rtcp │ │ │ │ │ │ ├── 24.rtcp │ │ │ │ │ │ ├── 25.rtcp │ │ │ │ │ │ ├── 26.rtcp │ │ │ │ │ │ ├── 27.rtcp │ │ │ │ │ │ ├── 28.rtcp │ │ │ │ │ │ ├── 29.rtcp │ │ │ │ │ │ ├── 3.rtcp │ │ │ │ │ │ ├── 30.rtcp │ │ │ │ │ │ ├── 31.rtcp │ │ │ │ │ │ ├── 32.rtcp │ │ │ │ │ │ ├── 33.rtcp │ │ │ │ │ │ ├── 34.rtcp │ │ │ │ │ │ ├── 35.rtcp │ │ │ │ │ │ ├── 36.rtcp │ │ │ │ │ │ ├── 37.rtcp │ │ │ │ │ │ ├── 38.rtcp │ │ │ │ │ │ ├── 39.rtcp │ │ │ │ │ │ ├── 4.rtcp │ │ │ │ │ │ ├── 40.rtcp │ │ │ │ │ │ ├── 41.rtcp │ │ │ │ │ │ ├── 42.rtcp │ │ │ │ │ │ ├── 43.rtcp │ │ │ │ │ │ ├── 44.rtcp │ │ │ │ │ │ ├── 45.rtcp │ │ │ │ │ │ ├── 46.rtcp │ │ │ │ │ │ ├── 47.rtcp │ │ │ │ │ │ ├── 48.rtcp │ │ │ │ │ │ ├── 49.rtcp │ │ │ │ │ │ ├── 5.rtcp │ │ │ │ │ │ ├── 50.rtcp │ │ │ │ │ │ ├── 51.rtcp │ │ │ │ │ │ ├── 52.rtcp │ │ │ │ │ │ ├── 53.rtcp │ │ │ │ │ │ ├── 54.rtcp │ │ │ │ │ │ ├── 55.rtcp │ │ │ │ │ │ ├── 56.rtcp │ │ │ │ │ │ ├── 57.rtcp │ │ │ │ │ │ ├── 58.rtcp │ │ │ │ │ │ ├── 59.rtcp │ │ │ │ │ │ ├── 6.rtcp │ │ │ │ │ │ ├── 60.rtcp │ │ │ │ │ │ ├── 61.rtcp │ │ │ │ │ │ ├── 62.rtcp │ │ │ │ │ │ ├── 63.rtcp │ │ │ │ │ │ ├── 64.rtcp │ │ │ │ │ │ ├── 65.rtcp │ │ │ │ │ │ ├── 66.rtcp │ │ │ │ │ │ ├── 7.rtcp │ │ │ │ │ │ ├── 8.rtcp │ │ │ │ │ │ └── 9.rtcp │ │ │ │ │ ├── rtp-corpus/ │ │ │ │ │ │ ├── rtp-0 │ │ │ │ │ │ ├── rtp-1 │ │ │ │ │ │ ├── rtp-2 │ │ │ │ │ │ ├── rtp-3 │ │ │ │ │ │ ├── rtp-4 │ │ │ │ │ │ ├── rtp-5 │ │ │ │ │ │ ├── rtp-6 │ │ │ │ │ │ └── rtp-7 │ │ │ │ │ ├── rtp-depacketizer-av1-assemble-frame-corpus/ │ │ │ │ │ │ └── av1-assemble-frame-0 │ │ │ │ │ ├── rtpdump-corpus/ │ │ │ │ │ │ ├── vp8/ │ │ │ │ │ │ │ └── vp8.rtpdump │ │ │ │ │ │ └── vp9/ │ │ │ │ │ │ └── vp9.rtpdump │ │ │ │ │ ├── sdp-corpus/ │ │ │ │ │ │ ├── 10.sdp │ │ │ │ │ │ ├── 11.sdp │ │ │ │ │ │ ├── 12.sdp │ │ │ │ │ │ ├── 13.sdp │ │ │ │ │ │ ├── 14.sdp │ │ │ │ │ │ ├── 15.sdp │ │ │ │ │ │ ├── 16.sdp │ │ │ │ │ │ ├── 17.sdp │ │ │ │ │ │ ├── 18.sdp │ │ │ │ │ │ ├── 19.sdp │ │ │ │ │ │ ├── 2.sdp │ │ │ │ │ │ ├── 20.sdp │ │ │ │ │ │ ├── 21.sdp │ │ │ │ │ │ ├── 22.sdp │ │ │ │ │ │ ├── 23.sdp │ │ │ │ │ │ ├── 24.sdp │ │ │ │ │ │ ├── 25.sdp │ │ │ │ │ │ ├── 26.sdp │ │ │ │ │ │ ├── 27.sdp │ │ │ │ │ │ ├── 28.sdp │ │ │ │ │ │ ├── 29.sdp │ │ │ │ │ │ ├── 3.sdp │ │ │ │ │ │ ├── 30.sdp │ │ │ │ │ │ ├── 31.sdp │ │ │ │ │ │ ├── 32.sdp │ │ │ │ │ │ ├── 33.sdp │ │ │ │ │ │ ├── 34.sdp │ │ │ │ │ │ ├── 35.sdp │ │ │ │ │ │ ├── 36.sdp │ │ │ │ │ │ ├── 37.sdp │ │ │ │ │ │ ├── 38.sdp │ │ │ │ │ │ ├── 39.sdp │ │ │ │ │ │ ├── 4.sdp │ │ │ │ │ │ ├── 40.sdp │ │ │ │ │ │ ├── 41.sdp │ │ │ │ │ │ ├── 42.sdp │ │ │ │ │ │ ├── 43.sdp │ │ │ │ │ │ ├── 44.sdp │ │ │ │ │ │ ├── 45.sdp │ │ │ │ │ │ ├── 46.sdp │ │ │ │ │ │ ├── 47.sdp │ │ │ │ │ │ ├── 48.sdp │ │ │ │ │ │ ├── 49.sdp │ │ │ │ │ │ ├── 5.sdp │ │ │ │ │ │ ├── 50.sdp │ │ │ │ │ │ ├── 51.sdp │ │ │ │ │ │ ├── 52.sdp │ │ │ │ │ │ ├── 53.sdp │ │ │ │ │ │ ├── 54.sdp │ │ │ │ │ │ ├── 55.sdp │ │ │ │ │ │ ├── 6.sdp │ │ │ │ │ │ ├── 7.sdp │ │ │ │ │ │ ├── 8.sdp │ │ │ │ │ │ ├── 9.sdp │ │ │ │ │ │ ├── firefox-1.sdp │ │ │ │ │ │ ├── firefox-2.sdp │ │ │ │ │ │ ├── opera-1.sdp │ │ │ │ │ │ ├── opera-2.sdp │ │ │ │ │ │ ├── simulcast.1.sdp │ │ │ │ │ │ ├── simulcast.2.sdp │ │ │ │ │ │ ├── unittest-1.sdp │ │ │ │ │ │ ├── unittest-2.sdp │ │ │ │ │ │ ├── unittest-3.sdp │ │ │ │ │ │ ├── unittest-4.sdp │ │ │ │ │ │ ├── unittest-5.sdp │ │ │ │ │ │ ├── unittest-6.sdp │ │ │ │ │ │ ├── unittest-7.sdp │ │ │ │ │ │ ├── unittest-8.sdp │ │ │ │ │ │ └── unittest-9.sdp │ │ │ │ │ ├── sdp.tokens │ │ │ │ │ ├── string_to_number-corpus/ │ │ │ │ │ │ ├── 0 │ │ │ │ │ │ ├── 1 │ │ │ │ │ │ ├── 2 │ │ │ │ │ │ ├── 3 │ │ │ │ │ │ ├── 4 │ │ │ │ │ │ └── 5 │ │ │ │ │ ├── stun-corpus/ │ │ │ │ │ │ ├── 0.stun │ │ │ │ │ │ ├── 1.stun │ │ │ │ │ │ ├── 10.stun │ │ │ │ │ │ ├── 11.stun │ │ │ │ │ │ ├── 12.stun │ │ │ │ │ │ ├── 13.stun │ │ │ │ │ │ ├── 14.stun │ │ │ │ │ │ ├── 15.stun │ │ │ │ │ │ ├── 16.stun │ │ │ │ │ │ ├── 17.stun │ │ │ │ │ │ ├── 2.stun │ │ │ │ │ │ ├── 3.stun │ │ │ │ │ │ ├── 4.stun │ │ │ │ │ │ ├── 5.stun │ │ │ │ │ │ ├── 6.stun │ │ │ │ │ │ ├── 7.stun │ │ │ │ │ │ ├── 8.stun │ │ │ │ │ │ ├── 9.stun │ │ │ │ │ │ └── validator-crash-1.stun │ │ │ │ │ └── stun.tokens │ │ │ │ ├── dcsctp_packet_fuzzer.cc │ │ │ │ ├── dcsctp_socket_fuzzer.cc │ │ │ │ ├── field_trial_fuzzer.cc │ │ │ │ ├── flexfec_header_reader_fuzzer.cc │ │ │ │ ├── flexfec_receiver_fuzzer.cc │ │ │ │ ├── flexfec_sender_fuzzer.cc │ │ │ │ ├── forward_error_correction_fuzzer.cc │ │ │ │ ├── frame_buffer2_fuzzer.cc │ │ │ │ ├── fuzz_data_helper.cc │ │ │ │ ├── fuzz_data_helper.h │ │ │ │ ├── h264_bitstream_parser_fuzzer.cc │ │ │ │ ├── h264_depacketizer_fuzzer.cc │ │ │ │ ├── neteq_rtp_fuzzer.cc │ │ │ │ ├── neteq_signal_fuzzer.cc │ │ │ │ ├── packet_buffer_fuzzer.cc │ │ │ │ ├── pseudotcp_parser_fuzzer.cc │ │ │ │ ├── residual_echo_detector_fuzzer.cc │ │ │ │ ├── rtcp_receiver_fuzzer.cc │ │ │ │ ├── rtp_depacketizer_av1_assemble_frame_fuzzer.cc │ │ │ │ ├── rtp_dependency_descriptor_fuzzer.cc │ │ │ │ ├── rtp_frame_reference_finder_fuzzer.cc │ │ │ │ ├── rtp_packet_fuzzer.cc │ │ │ │ ├── rtp_packetizer_av1_fuzzer.cc │ │ │ │ ├── sctp_utils_fuzzer.cc │ │ │ │ ├── sdp_integration_fuzzer.cc │ │ │ │ ├── sdp_parser_fuzzer.cc │ │ │ │ ├── ssl_certificate_fuzzer.cc │ │ │ │ ├── string_to_number_fuzzer.cc │ │ │ │ ├── stun_parser_fuzzer.cc │ │ │ │ ├── stun_validator_fuzzer.cc │ │ │ │ ├── turn_unwrap_fuzzer.cc │ │ │ │ ├── ulpfec_generator_fuzzer.cc │ │ │ │ ├── ulpfec_header_reader_fuzzer.cc │ │ │ │ ├── ulpfec_receiver_fuzzer.cc │ │ │ │ ├── utils/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── rtp_replayer.cc │ │ │ │ │ └── rtp_replayer.h │ │ │ │ ├── vp8_depacketizer_fuzzer.cc │ │ │ │ ├── vp8_qp_parser_fuzzer.cc │ │ │ │ ├── vp8_replay_fuzzer.cc │ │ │ │ ├── vp9_depacketizer_fuzzer.cc │ │ │ │ ├── vp9_encoder_references_fuzzer.cc │ │ │ │ ├── vp9_qp_parser_fuzzer.cc │ │ │ │ ├── vp9_replay_fuzzer.cc │ │ │ │ └── webrtc_fuzzer_main.cc │ │ │ ├── gl/ │ │ │ │ ├── gl_renderer.cc │ │ │ │ └── gl_renderer.h │ │ │ ├── gmock.h │ │ │ ├── gtest.h │ │ │ ├── ios/ │ │ │ │ ├── Info.plist │ │ │ │ ├── coverage_util_ios.h │ │ │ │ ├── coverage_util_ios.mm │ │ │ │ ├── google_test_runner_delegate.h │ │ │ │ ├── test_support.h │ │ │ │ └── test_support.mm │ │ │ ├── layer_filtering_transport.cc │ │ │ ├── layer_filtering_transport.h │ │ │ ├── linux/ │ │ │ │ ├── glx_renderer.cc │ │ │ │ ├── glx_renderer.h │ │ │ │ └── video_renderer_linux.cc │ │ │ ├── logging/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── file_log_writer.cc │ │ │ │ ├── file_log_writer.h │ │ │ │ ├── log_writer.cc │ │ │ │ ├── log_writer.h │ │ │ │ ├── memory_log_writer.cc │ │ │ │ └── memory_log_writer.h │ │ │ ├── mac/ │ │ │ │ ├── Info.plist │ │ │ │ ├── run_test.mm │ │ │ │ ├── video_renderer_mac.h │ │ │ │ └── video_renderer_mac.mm │ │ │ ├── mac_capturer.h │ │ │ ├── mac_capturer.mm │ │ │ ├── mappable_native_buffer.cc │ │ │ ├── mappable_native_buffer.h │ │ │ ├── mock_audio_decoder.cc │ │ │ ├── mock_audio_decoder.h │ │ │ ├── mock_audio_decoder_factory.h │ │ │ ├── mock_audio_encoder.cc │ │ │ ├── mock_audio_encoder.h │ │ │ ├── mock_audio_encoder_factory.h │ │ │ ├── mock_frame_transformer.h │ │ │ ├── mock_transformable_frame.h │ │ │ ├── mock_transport.cc │ │ │ ├── mock_transport.h │ │ │ ├── network/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── OWNERS │ │ │ │ ├── cross_traffic.cc │ │ │ │ ├── cross_traffic.h │ │ │ │ ├── cross_traffic_unittest.cc │ │ │ │ ├── emulated_network_manager.cc │ │ │ │ ├── emulated_network_manager.h │ │ │ │ ├── emulated_turn_server.cc │ │ │ │ ├── emulated_turn_server.h │ │ │ │ ├── fake_network_socket_server.cc │ │ │ │ ├── fake_network_socket_server.h │ │ │ │ ├── feedback_generator.cc │ │ │ │ ├── feedback_generator.h │ │ │ │ ├── feedback_generator_unittest.cc │ │ │ │ ├── g3doc/ │ │ │ │ │ ├── g3doc.lua │ │ │ │ │ └── index.md │ │ │ │ ├── network_emulation.cc │ │ │ │ ├── network_emulation.h │ │ │ │ ├── network_emulation_manager.cc │ │ │ │ ├── network_emulation_manager.h │ │ │ │ ├── network_emulation_pc_unittest.cc │ │ │ │ ├── network_emulation_unittest.cc │ │ │ │ ├── traffic_route.cc │ │ │ │ └── traffic_route.h │ │ │ ├── null_platform_renderer.cc │ │ │ ├── null_transport.cc │ │ │ ├── null_transport.h │ │ │ ├── pc/ │ │ │ │ ├── e2e/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── analyzer/ │ │ │ │ │ │ ├── audio/ │ │ │ │ │ │ │ ├── default_audio_quality_analyzer.cc │ │ │ │ │ │ │ └── default_audio_quality_analyzer.h │ │ │ │ │ │ └── video/ │ │ │ │ │ │ ├── default_video_quality_analyzer.cc │ │ │ │ │ │ ├── default_video_quality_analyzer.h │ │ │ │ │ │ ├── default_video_quality_analyzer_internal_shared_objects.cc │ │ │ │ │ │ ├── default_video_quality_analyzer_internal_shared_objects.h │ │ │ │ │ │ ├── default_video_quality_analyzer_shared_objects.cc │ │ │ │ │ │ ├── default_video_quality_analyzer_shared_objects.h │ │ │ │ │ │ ├── default_video_quality_analyzer_test.cc │ │ │ │ │ │ ├── encoded_image_data_injector.h │ │ │ │ │ │ ├── example_video_quality_analyzer.cc │ │ │ │ │ │ ├── example_video_quality_analyzer.h │ │ │ │ │ │ ├── multi_head_queue.h │ │ │ │ │ │ ├── multi_head_queue_test.cc │ │ │ │ │ │ ├── quality_analyzing_video_decoder.cc │ │ │ │ │ │ ├── quality_analyzing_video_decoder.h │ │ │ │ │ │ ├── quality_analyzing_video_encoder.cc │ │ │ │ │ │ ├── quality_analyzing_video_encoder.h │ │ │ │ │ │ ├── simulcast_dummy_buffer_helper.cc │ │ │ │ │ │ ├── simulcast_dummy_buffer_helper.h │ │ │ │ │ │ ├── single_process_encoded_image_data_injector.cc │ │ │ │ │ │ ├── single_process_encoded_image_data_injector.h │ │ │ │ │ │ ├── single_process_encoded_image_data_injector_unittest.cc │ │ │ │ │ │ ├── video_frame_tracking_id_injector.cc │ │ │ │ │ │ ├── video_frame_tracking_id_injector.h │ │ │ │ │ │ ├── video_frame_tracking_id_injector_unittest.cc │ │ │ │ │ │ ├── video_quality_analyzer_injection_helper.cc │ │ │ │ │ │ ├── video_quality_analyzer_injection_helper.h │ │ │ │ │ │ ├── video_quality_metrics_reporter.cc │ │ │ │ │ │ └── video_quality_metrics_reporter.h │ │ │ │ │ ├── analyzer_helper.cc │ │ │ │ │ ├── analyzer_helper.h │ │ │ │ │ ├── cross_media_metrics_reporter.cc │ │ │ │ │ ├── cross_media_metrics_reporter.h │ │ │ │ │ ├── echo/ │ │ │ │ │ │ ├── echo_emulation.cc │ │ │ │ │ │ └── echo_emulation.h │ │ │ │ │ ├── g3doc/ │ │ │ │ │ │ ├── architecture.md │ │ │ │ │ │ ├── default_video_quality_analyzer.md │ │ │ │ │ │ ├── g3doc.lua │ │ │ │ │ │ └── index.md │ │ │ │ │ ├── media/ │ │ │ │ │ │ ├── media_helper.cc │ │ │ │ │ │ ├── media_helper.h │ │ │ │ │ │ └── test_video_capturer_video_track_source.h │ │ │ │ │ ├── network_quality_metrics_reporter.cc │ │ │ │ │ ├── network_quality_metrics_reporter.h │ │ │ │ │ ├── peer_configurer.cc │ │ │ │ │ ├── peer_configurer.h │ │ │ │ │ ├── peer_connection_e2e_smoke_test.cc │ │ │ │ │ ├── peer_connection_quality_test.cc │ │ │ │ │ ├── peer_connection_quality_test.h │ │ │ │ │ ├── peer_connection_quality_test_params.h │ │ │ │ │ ├── sdp/ │ │ │ │ │ │ ├── sdp_changer.cc │ │ │ │ │ │ └── sdp_changer.h │ │ │ │ │ ├── stats_based_network_quality_metrics_reporter.cc │ │ │ │ │ ├── stats_based_network_quality_metrics_reporter.h │ │ │ │ │ ├── stats_poller.cc │ │ │ │ │ ├── stats_poller.h │ │ │ │ │ ├── test_activities_executor.cc │ │ │ │ │ ├── test_activities_executor.h │ │ │ │ │ ├── test_peer.cc │ │ │ │ │ ├── test_peer.h │ │ │ │ │ ├── test_peer_factory.cc │ │ │ │ │ └── test_peer_factory.h │ │ │ │ └── sctp/ │ │ │ │ ├── BUILD.gn │ │ │ │ └── fake_sctp_transport.h │ │ │ ├── peer_scenario/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── DEPS │ │ │ │ ├── peer_scenario.cc │ │ │ │ ├── peer_scenario.h │ │ │ │ ├── peer_scenario_client.cc │ │ │ │ ├── peer_scenario_client.h │ │ │ │ ├── scenario_connection.cc │ │ │ │ ├── scenario_connection.h │ │ │ │ ├── sdp_callbacks.cc │ │ │ │ ├── sdp_callbacks.h │ │ │ │ ├── signaling_route.cc │ │ │ │ ├── signaling_route.h │ │ │ │ └── tests/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── peer_scenario_quality_test.cc │ │ │ │ ├── remote_estimate_test.cc │ │ │ │ └── unsignaled_stream_test.cc │ │ │ ├── platform_video_capturer.cc │ │ │ ├── platform_video_capturer.h │ │ │ ├── rtcp_packet_parser.cc │ │ │ ├── rtcp_packet_parser.h │ │ │ ├── rtp_file_reader.cc │ │ │ ├── rtp_file_reader.h │ │ │ ├── rtp_file_reader_unittest.cc │ │ │ ├── rtp_file_writer.cc │ │ │ ├── rtp_file_writer.h │ │ │ ├── rtp_file_writer_unittest.cc │ │ │ ├── rtp_rtcp_observer.h │ │ │ ├── run_loop.cc │ │ │ ├── run_loop.h │ │ │ ├── run_loop_unittest.cc │ │ │ ├── run_test.cc │ │ │ ├── run_test.h │ │ │ ├── scenario/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── OWNERS │ │ │ │ ├── audio_stream.cc │ │ │ │ ├── audio_stream.h │ │ │ │ ├── call_client.cc │ │ │ │ ├── call_client.h │ │ │ │ ├── column_printer.cc │ │ │ │ ├── column_printer.h │ │ │ │ ├── hardware_codecs.cc │ │ │ │ ├── hardware_codecs.h │ │ │ │ ├── network_node.cc │ │ │ │ ├── network_node.h │ │ │ │ ├── performance_stats.cc │ │ │ │ ├── performance_stats.h │ │ │ │ ├── performance_stats_unittest.cc │ │ │ │ ├── probing_test.cc │ │ │ │ ├── scenario.cc │ │ │ │ ├── scenario.h │ │ │ │ ├── scenario_config.cc │ │ │ │ ├── scenario_config.h │ │ │ │ ├── scenario_unittest.cc │ │ │ │ ├── stats_collection.cc │ │ │ │ ├── stats_collection.h │ │ │ │ ├── stats_collection_unittest.cc │ │ │ │ ├── video_frame_matcher.cc │ │ │ │ ├── video_frame_matcher.h │ │ │ │ ├── video_stream.cc │ │ │ │ ├── video_stream.h │ │ │ │ └── video_stream_unittest.cc │ │ │ ├── test_main.cc │ │ │ ├── test_main_lib.cc │ │ │ ├── test_main_lib.h │ │ │ ├── test_video_capturer.cc │ │ │ ├── test_video_capturer.h │ │ │ ├── testsupport/ │ │ │ │ ├── DEPS │ │ │ │ ├── copy_to_file_audio_capturer.cc │ │ │ │ ├── copy_to_file_audio_capturer.h │ │ │ │ ├── copy_to_file_audio_capturer_unittest.cc │ │ │ │ ├── file_utils.cc │ │ │ │ ├── file_utils.h │ │ │ │ ├── file_utils_override.cc │ │ │ │ ├── file_utils_override.h │ │ │ │ ├── file_utils_unittest.cc │ │ │ │ ├── frame_reader.h │ │ │ │ ├── frame_writer.h │ │ │ │ ├── ios_file_utils.h │ │ │ │ ├── ios_file_utils.mm │ │ │ │ ├── ivf_video_frame_generator.cc │ │ │ │ ├── ivf_video_frame_generator.h │ │ │ │ ├── ivf_video_frame_generator_unittest.cc │ │ │ │ ├── jpeg_frame_writer.cc │ │ │ │ ├── jpeg_frame_writer_ios.cc │ │ │ │ ├── mac_file_utils.h │ │ │ │ ├── mac_file_utils.mm │ │ │ │ ├── mock/ │ │ │ │ │ └── mock_frame_reader.h │ │ │ │ ├── perf_result_reporter.cc │ │ │ │ ├── perf_result_reporter.h │ │ │ │ ├── perf_test.cc │ │ │ │ ├── perf_test.h │ │ │ │ ├── perf_test_histogram_writer.cc │ │ │ │ ├── perf_test_histogram_writer.h │ │ │ │ ├── perf_test_histogram_writer_no_protobuf.cc │ │ │ │ ├── perf_test_histogram_writer_unittest.cc │ │ │ │ ├── perf_test_result_writer.h │ │ │ │ ├── perf_test_unittest.cc │ │ │ │ ├── resources_dir_flag.cc │ │ │ │ ├── resources_dir_flag.h │ │ │ │ ├── rtc_expect_death.h │ │ │ │ ├── test_artifacts.cc │ │ │ │ ├── test_artifacts.h │ │ │ │ ├── test_artifacts_unittest.cc │ │ │ │ ├── video_frame_writer.cc │ │ │ │ ├── video_frame_writer.h │ │ │ │ ├── video_frame_writer_unittest.cc │ │ │ │ ├── y4m_frame_reader.cc │ │ │ │ ├── y4m_frame_reader_unittest.cc │ │ │ │ ├── y4m_frame_writer.cc │ │ │ │ ├── y4m_frame_writer_unittest.cc │ │ │ │ ├── yuv_frame_reader.cc │ │ │ │ ├── yuv_frame_reader_unittest.cc │ │ │ │ ├── yuv_frame_writer.cc │ │ │ │ └── yuv_frame_writer_unittest.cc │ │ │ ├── time_controller/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── external_time_controller.cc │ │ │ │ ├── external_time_controller.h │ │ │ │ ├── external_time_controller_unittest.cc │ │ │ │ ├── real_time_controller.cc │ │ │ │ ├── real_time_controller.h │ │ │ │ ├── simulated_process_thread.cc │ │ │ │ ├── simulated_process_thread.h │ │ │ │ ├── simulated_task_queue.cc │ │ │ │ ├── simulated_task_queue.h │ │ │ │ ├── simulated_thread.cc │ │ │ │ ├── simulated_thread.h │ │ │ │ ├── simulated_time_controller.cc │ │ │ │ ├── simulated_time_controller.h │ │ │ │ ├── simulated_time_controller_unittest.cc │ │ │ │ └── time_controller_conformance_test.cc │ │ │ ├── vcm_capturer.cc │ │ │ ├── vcm_capturer.h │ │ │ ├── video_codec_settings.h │ │ │ ├── video_decoder_proxy_factory.h │ │ │ ├── video_encoder_proxy_factory.h │ │ │ ├── video_renderer.cc │ │ │ ├── video_renderer.h │ │ │ └── win/ │ │ │ ├── d3d_renderer.cc │ │ │ └── d3d_renderer.h │ │ ├── third_party/ │ │ │ └── abseil-cpp/ │ │ │ ├── .clang-format │ │ │ ├── .github/ │ │ │ │ └── ISSUE_TEMPLATE/ │ │ │ │ ├── 00-bug_report.md │ │ │ │ ├── 90-question.md │ │ │ │ └── config.yml │ │ │ ├── .gitignore │ │ │ ├── ABSEIL_ISSUE_TEMPLATE.md │ │ │ ├── AUTHORS │ │ │ ├── BUILD.bazel │ │ │ ├── CMake/ │ │ │ │ ├── AbseilDll.cmake │ │ │ │ ├── AbseilHelpers.cmake │ │ │ │ ├── Googletest/ │ │ │ │ │ ├── CMakeLists.txt.in │ │ │ │ │ └── DownloadGTest.cmake │ │ │ │ ├── README.md │ │ │ │ ├── abslConfig.cmake.in │ │ │ │ └── install_test_project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── simple.cc │ │ │ │ └── test.sh │ │ │ ├── CMakeLists.txt │ │ │ ├── CONTRIBUTING.md │ │ │ ├── FAQ.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── UPGRADES.md │ │ │ ├── WORKSPACE │ │ │ ├── absl/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── abseil.podspec.gen.py │ │ │ │ ├── algorithm/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── algorithm.h │ │ │ │ │ ├── algorithm_test.cc │ │ │ │ │ ├── container.h │ │ │ │ │ ├── container_test.cc │ │ │ │ │ └── equal_benchmark.cc │ │ │ │ ├── base/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── attributes.h │ │ │ │ │ ├── bit_cast_test.cc │ │ │ │ │ ├── call_once.h │ │ │ │ │ ├── call_once_test.cc │ │ │ │ │ ├── casts.h │ │ │ │ │ ├── config.h │ │ │ │ │ ├── config_test.cc │ │ │ │ │ ├── const_init.h │ │ │ │ │ ├── dynamic_annotations.h │ │ │ │ │ ├── exception_safety_testing_test.cc │ │ │ │ │ ├── inline_variable_test.cc │ │ │ │ │ ├── inline_variable_test_a.cc │ │ │ │ │ ├── inline_variable_test_b.cc │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── atomic_hook.h │ │ │ │ │ │ ├── atomic_hook_test.cc │ │ │ │ │ │ ├── atomic_hook_test_helper.cc │ │ │ │ │ │ ├── atomic_hook_test_helper.h │ │ │ │ │ │ ├── cmake_thread_test.cc │ │ │ │ │ │ ├── cycleclock.cc │ │ │ │ │ │ ├── cycleclock.h │ │ │ │ │ │ ├── direct_mmap.h │ │ │ │ │ │ ├── dynamic_annotations.h │ │ │ │ │ │ ├── endian.h │ │ │ │ │ │ ├── endian_test.cc │ │ │ │ │ │ ├── errno_saver.h │ │ │ │ │ │ ├── errno_saver_test.cc │ │ │ │ │ │ ├── exception_safety_testing.cc │ │ │ │ │ │ ├── exception_safety_testing.h │ │ │ │ │ │ ├── exception_testing.h │ │ │ │ │ │ ├── fast_type_id.h │ │ │ │ │ │ ├── fast_type_id_test.cc │ │ │ │ │ │ ├── hide_ptr.h │ │ │ │ │ │ ├── identity.h │ │ │ │ │ │ ├── inline_variable.h │ │ │ │ │ │ ├── inline_variable_testing.h │ │ │ │ │ │ ├── invoke.h │ │ │ │ │ │ ├── low_level_alloc.cc │ │ │ │ │ │ ├── low_level_alloc.h │ │ │ │ │ │ ├── low_level_alloc_test.cc │ │ │ │ │ │ ├── low_level_scheduling.h │ │ │ │ │ │ ├── per_thread_tls.h │ │ │ │ │ │ ├── prefetch.h │ │ │ │ │ │ ├── prefetch_test.cc │ │ │ │ │ │ ├── pretty_function.h │ │ │ │ │ │ ├── raw_logging.cc │ │ │ │ │ │ ├── raw_logging.h │ │ │ │ │ │ ├── scheduling_mode.h │ │ │ │ │ │ ├── scoped_set_env.cc │ │ │ │ │ │ ├── scoped_set_env.h │ │ │ │ │ │ ├── scoped_set_env_test.cc │ │ │ │ │ │ ├── spinlock.cc │ │ │ │ │ │ ├── spinlock.h │ │ │ │ │ │ ├── spinlock_akaros.inc │ │ │ │ │ │ ├── spinlock_benchmark.cc │ │ │ │ │ │ ├── spinlock_linux.inc │ │ │ │ │ │ ├── spinlock_posix.inc │ │ │ │ │ │ ├── spinlock_wait.cc │ │ │ │ │ │ ├── spinlock_wait.h │ │ │ │ │ │ ├── spinlock_win32.inc │ │ │ │ │ │ ├── strerror.cc │ │ │ │ │ │ ├── strerror.h │ │ │ │ │ │ ├── strerror_benchmark.cc │ │ │ │ │ │ ├── strerror_test.cc │ │ │ │ │ │ ├── sysinfo.cc │ │ │ │ │ │ ├── sysinfo.h │ │ │ │ │ │ ├── sysinfo_test.cc │ │ │ │ │ │ ├── thread_annotations.h │ │ │ │ │ │ ├── thread_identity.cc │ │ │ │ │ │ ├── thread_identity.h │ │ │ │ │ │ ├── thread_identity_benchmark.cc │ │ │ │ │ │ ├── thread_identity_test.cc │ │ │ │ │ │ ├── throw_delegate.cc │ │ │ │ │ │ ├── throw_delegate.h │ │ │ │ │ │ ├── tsan_mutex_interface.h │ │ │ │ │ │ ├── unaligned_access.h │ │ │ │ │ │ ├── unique_small_name_test.cc │ │ │ │ │ │ ├── unscaledcycleclock.cc │ │ │ │ │ │ └── unscaledcycleclock.h │ │ │ │ │ ├── invoke_test.cc │ │ │ │ │ ├── log_severity.cc │ │ │ │ │ ├── log_severity.h │ │ │ │ │ ├── log_severity_test.cc │ │ │ │ │ ├── macros.h │ │ │ │ │ ├── optimization.h │ │ │ │ │ ├── optimization_test.cc │ │ │ │ │ ├── options.h │ │ │ │ │ ├── policy_checks.h │ │ │ │ │ ├── port.h │ │ │ │ │ ├── raw_logging_test.cc │ │ │ │ │ ├── spinlock_test_common.cc │ │ │ │ │ ├── thread_annotations.h │ │ │ │ │ └── throw_delegate_test.cc │ │ │ │ ├── cleanup/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── cleanup.h │ │ │ │ │ ├── cleanup_test.cc │ │ │ │ │ └── internal/ │ │ │ │ │ └── cleanup.h │ │ │ │ ├── container/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── btree_benchmark.cc │ │ │ │ │ ├── btree_map.h │ │ │ │ │ ├── btree_set.h │ │ │ │ │ ├── btree_test.cc │ │ │ │ │ ├── btree_test.h │ │ │ │ │ ├── fixed_array.h │ │ │ │ │ ├── fixed_array_benchmark.cc │ │ │ │ │ ├── fixed_array_exception_safety_test.cc │ │ │ │ │ ├── fixed_array_test.cc │ │ │ │ │ ├── flat_hash_map.h │ │ │ │ │ ├── flat_hash_map_test.cc │ │ │ │ │ ├── flat_hash_set.h │ │ │ │ │ ├── flat_hash_set_test.cc │ │ │ │ │ ├── inlined_vector.h │ │ │ │ │ ├── inlined_vector_benchmark.cc │ │ │ │ │ ├── inlined_vector_exception_safety_test.cc │ │ │ │ │ ├── inlined_vector_test.cc │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── btree.h │ │ │ │ │ │ ├── btree_container.h │ │ │ │ │ │ ├── common.h │ │ │ │ │ │ ├── compressed_tuple.h │ │ │ │ │ │ ├── compressed_tuple_test.cc │ │ │ │ │ │ ├── container_memory.h │ │ │ │ │ │ ├── container_memory_test.cc │ │ │ │ │ │ ├── counting_allocator.h │ │ │ │ │ │ ├── hash_function_defaults.h │ │ │ │ │ │ ├── hash_function_defaults_test.cc │ │ │ │ │ │ ├── hash_generator_testing.cc │ │ │ │ │ │ ├── hash_generator_testing.h │ │ │ │ │ │ ├── hash_policy_testing.h │ │ │ │ │ │ ├── hash_policy_testing_test.cc │ │ │ │ │ │ ├── hash_policy_traits.h │ │ │ │ │ │ ├── hash_policy_traits_test.cc │ │ │ │ │ │ ├── hashtable_debug.h │ │ │ │ │ │ ├── hashtable_debug_hooks.h │ │ │ │ │ │ ├── hashtablez_sampler.cc │ │ │ │ │ │ ├── hashtablez_sampler.h │ │ │ │ │ │ ├── hashtablez_sampler_force_weak_definition.cc │ │ │ │ │ │ ├── hashtablez_sampler_test.cc │ │ │ │ │ │ ├── inlined_vector.h │ │ │ │ │ │ ├── layout.h │ │ │ │ │ │ ├── layout_benchmark.cc │ │ │ │ │ │ ├── layout_test.cc │ │ │ │ │ │ ├── node_slot_policy.h │ │ │ │ │ │ ├── node_slot_policy_test.cc │ │ │ │ │ │ ├── raw_hash_map.h │ │ │ │ │ │ ├── raw_hash_set.cc │ │ │ │ │ │ ├── raw_hash_set.h │ │ │ │ │ │ ├── raw_hash_set_allocator_test.cc │ │ │ │ │ │ ├── raw_hash_set_benchmark.cc │ │ │ │ │ │ ├── raw_hash_set_probe_benchmark.cc │ │ │ │ │ │ ├── raw_hash_set_test.cc │ │ │ │ │ │ ├── test_instance_tracker.cc │ │ │ │ │ │ ├── test_instance_tracker.h │ │ │ │ │ │ ├── test_instance_tracker_test.cc │ │ │ │ │ │ ├── tracked.h │ │ │ │ │ │ ├── unordered_map_constructor_test.h │ │ │ │ │ │ ├── unordered_map_lookup_test.h │ │ │ │ │ │ ├── unordered_map_members_test.h │ │ │ │ │ │ ├── unordered_map_modifiers_test.h │ │ │ │ │ │ ├── unordered_map_test.cc │ │ │ │ │ │ ├── unordered_set_constructor_test.h │ │ │ │ │ │ ├── unordered_set_lookup_test.h │ │ │ │ │ │ ├── unordered_set_members_test.h │ │ │ │ │ │ ├── unordered_set_modifiers_test.h │ │ │ │ │ │ └── unordered_set_test.cc │ │ │ │ │ ├── node_hash_map.h │ │ │ │ │ ├── node_hash_map_test.cc │ │ │ │ │ ├── node_hash_set.h │ │ │ │ │ ├── node_hash_set_test.cc │ │ │ │ │ └── sample_element_size_test.cc │ │ │ │ ├── copts/ │ │ │ │ │ ├── AbseilConfigureCopts.cmake │ │ │ │ │ ├── GENERATED_AbseilCopts.cmake │ │ │ │ │ ├── GENERATED_copts.bzl │ │ │ │ │ ├── configure_copts.bzl │ │ │ │ │ ├── copts.py │ │ │ │ │ └── generate_copts.py │ │ │ │ ├── debugging/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── failure_signal_handler.cc │ │ │ │ │ ├── failure_signal_handler.h │ │ │ │ │ ├── failure_signal_handler_test.cc │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── address_is_readable.cc │ │ │ │ │ │ ├── address_is_readable.h │ │ │ │ │ │ ├── demangle.cc │ │ │ │ │ │ ├── demangle.h │ │ │ │ │ │ ├── demangle_test.cc │ │ │ │ │ │ ├── elf_mem_image.cc │ │ │ │ │ │ ├── elf_mem_image.h │ │ │ │ │ │ ├── examine_stack.cc │ │ │ │ │ │ ├── examine_stack.h │ │ │ │ │ │ ├── stack_consumption.cc │ │ │ │ │ │ ├── stack_consumption.h │ │ │ │ │ │ ├── stack_consumption_test.cc │ │ │ │ │ │ ├── stacktrace_aarch64-inl.inc │ │ │ │ │ │ ├── stacktrace_arm-inl.inc │ │ │ │ │ │ ├── stacktrace_config.h │ │ │ │ │ │ ├── stacktrace_emscripten-inl.inc │ │ │ │ │ │ ├── stacktrace_generic-inl.inc │ │ │ │ │ │ ├── stacktrace_powerpc-inl.inc │ │ │ │ │ │ ├── stacktrace_riscv-inl.inc │ │ │ │ │ │ ├── stacktrace_unimplemented-inl.inc │ │ │ │ │ │ ├── stacktrace_win32-inl.inc │ │ │ │ │ │ ├── stacktrace_x86-inl.inc │ │ │ │ │ │ ├── symbolize.h │ │ │ │ │ │ ├── vdso_support.cc │ │ │ │ │ │ └── vdso_support.h │ │ │ │ │ ├── leak_check.cc │ │ │ │ │ ├── leak_check.h │ │ │ │ │ ├── leak_check_fail_test.cc │ │ │ │ │ ├── leak_check_test.cc │ │ │ │ │ ├── stacktrace.cc │ │ │ │ │ ├── stacktrace.h │ │ │ │ │ ├── stacktrace_benchmark.cc │ │ │ │ │ ├── symbolize.cc │ │ │ │ │ ├── symbolize.h │ │ │ │ │ ├── symbolize_darwin.inc │ │ │ │ │ ├── symbolize_elf.inc │ │ │ │ │ ├── symbolize_emscripten.inc │ │ │ │ │ ├── symbolize_test.cc │ │ │ │ │ ├── symbolize_unimplemented.inc │ │ │ │ │ └── symbolize_win32.inc │ │ │ │ ├── flags/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── commandlineflag.cc │ │ │ │ │ ├── commandlineflag.h │ │ │ │ │ ├── commandlineflag_test.cc │ │ │ │ │ ├── config.h │ │ │ │ │ ├── config_test.cc │ │ │ │ │ ├── declare.h │ │ │ │ │ ├── flag.cc │ │ │ │ │ ├── flag.h │ │ │ │ │ ├── flag_benchmark.cc │ │ │ │ │ ├── flag_benchmark.lds │ │ │ │ │ ├── flag_test.cc │ │ │ │ │ ├── flag_test_defs.cc │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── commandlineflag.cc │ │ │ │ │ │ ├── commandlineflag.h │ │ │ │ │ │ ├── flag.cc │ │ │ │ │ │ ├── flag.h │ │ │ │ │ │ ├── flag_msvc.inc │ │ │ │ │ │ ├── parse.h │ │ │ │ │ │ ├── path_util.h │ │ │ │ │ │ ├── path_util_test.cc │ │ │ │ │ │ ├── private_handle_accessor.cc │ │ │ │ │ │ ├── private_handle_accessor.h │ │ │ │ │ │ ├── program_name.cc │ │ │ │ │ │ ├── program_name.h │ │ │ │ │ │ ├── program_name_test.cc │ │ │ │ │ │ ├── registry.h │ │ │ │ │ │ ├── sequence_lock.h │ │ │ │ │ │ ├── sequence_lock_test.cc │ │ │ │ │ │ ├── usage.cc │ │ │ │ │ │ ├── usage.h │ │ │ │ │ │ └── usage_test.cc │ │ │ │ │ ├── marshalling.cc │ │ │ │ │ ├── marshalling.h │ │ │ │ │ ├── marshalling_test.cc │ │ │ │ │ ├── parse.cc │ │ │ │ │ ├── parse.h │ │ │ │ │ ├── parse_test.cc │ │ │ │ │ ├── reflection.cc │ │ │ │ │ ├── reflection.h │ │ │ │ │ ├── reflection_test.cc │ │ │ │ │ ├── usage.cc │ │ │ │ │ ├── usage.h │ │ │ │ │ ├── usage_config.cc │ │ │ │ │ ├── usage_config.h │ │ │ │ │ └── usage_config_test.cc │ │ │ │ ├── functional/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── any_invocable.h │ │ │ │ │ ├── any_invocable_test.cc │ │ │ │ │ ├── bind_front.h │ │ │ │ │ ├── bind_front_test.cc │ │ │ │ │ ├── function_ref.h │ │ │ │ │ ├── function_ref_test.cc │ │ │ │ │ ├── function_type_benchmark.cc │ │ │ │ │ └── internal/ │ │ │ │ │ ├── any_invocable.h │ │ │ │ │ ├── front_binder.h │ │ │ │ │ └── function_ref.h │ │ │ │ ├── hash/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── hash.h │ │ │ │ │ ├── hash_benchmark.cc │ │ │ │ │ ├── hash_test.cc │ │ │ │ │ ├── hash_testing.h │ │ │ │ │ └── internal/ │ │ │ │ │ ├── city.cc │ │ │ │ │ ├── city.h │ │ │ │ │ ├── city_test.cc │ │ │ │ │ ├── hash.cc │ │ │ │ │ ├── hash.h │ │ │ │ │ ├── low_level_hash.cc │ │ │ │ │ ├── low_level_hash.h │ │ │ │ │ ├── low_level_hash_test.cc │ │ │ │ │ ├── print_hash_of.cc │ │ │ │ │ └── spy_hash_state.h │ │ │ │ ├── log/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── basic_log_test.cc │ │ │ │ │ ├── check.h │ │ │ │ │ ├── check_test.cc │ │ │ │ │ ├── die_if_null.cc │ │ │ │ │ ├── die_if_null.h │ │ │ │ │ ├── die_if_null_test.cc │ │ │ │ │ ├── flags.cc │ │ │ │ │ ├── flags.h │ │ │ │ │ ├── flags_test.cc │ │ │ │ │ ├── globals.cc │ │ │ │ │ ├── globals.h │ │ │ │ │ ├── globals_test.cc │ │ │ │ │ ├── initialize.cc │ │ │ │ │ ├── initialize.h │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ │ ├── check_op.cc │ │ │ │ │ │ ├── check_op.h │ │ │ │ │ │ ├── conditions.cc │ │ │ │ │ │ ├── conditions.h │ │ │ │ │ │ ├── config.h │ │ │ │ │ │ ├── flags.h │ │ │ │ │ │ ├── globals.cc │ │ │ │ │ │ ├── globals.h │ │ │ │ │ │ ├── log_format.cc │ │ │ │ │ │ ├── log_format.h │ │ │ │ │ │ ├── log_message.cc │ │ │ │ │ │ ├── log_message.h │ │ │ │ │ │ ├── log_sink_set.cc │ │ │ │ │ │ ├── log_sink_set.h │ │ │ │ │ │ ├── nullguard.h │ │ │ │ │ │ ├── nullstream.h │ │ │ │ │ │ ├── stderr_log_sink_test.cc │ │ │ │ │ │ ├── strip.h │ │ │ │ │ │ ├── test_actions.cc │ │ │ │ │ │ ├── test_actions.h │ │ │ │ │ │ ├── test_helpers.cc │ │ │ │ │ │ ├── test_helpers.h │ │ │ │ │ │ ├── test_matchers.cc │ │ │ │ │ │ ├── test_matchers.h │ │ │ │ │ │ └── voidify.h │ │ │ │ │ ├── log.h │ │ │ │ │ ├── log_benchmark.cc │ │ │ │ │ ├── log_entry.cc │ │ │ │ │ ├── log_entry.h │ │ │ │ │ ├── log_entry_test.cc │ │ │ │ │ ├── log_format_test.cc │ │ │ │ │ ├── log_macro_hygiene_test.cc │ │ │ │ │ ├── log_modifier_methods_test.cc │ │ │ │ │ ├── log_sink.cc │ │ │ │ │ ├── log_sink.h │ │ │ │ │ ├── log_sink_registry.h │ │ │ │ │ ├── log_sink_test.cc │ │ │ │ │ ├── log_streamer.h │ │ │ │ │ ├── log_streamer_test.cc │ │ │ │ │ ├── scoped_mock_log.cc │ │ │ │ │ ├── scoped_mock_log.h │ │ │ │ │ ├── scoped_mock_log_test.cc │ │ │ │ │ └── stripping_test.cc │ │ │ │ ├── memory/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── memory.h │ │ │ │ │ ├── memory_exception_safety_test.cc │ │ │ │ │ └── memory_test.cc │ │ │ │ ├── meta/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── type_traits.h │ │ │ │ │ └── type_traits_test.cc │ │ │ │ ├── numeric/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── bits.h │ │ │ │ │ ├── bits_benchmark.cc │ │ │ │ │ ├── bits_test.cc │ │ │ │ │ ├── int128.cc │ │ │ │ │ ├── int128.h │ │ │ │ │ ├── int128_benchmark.cc │ │ │ │ │ ├── int128_have_intrinsic.inc │ │ │ │ │ ├── int128_no_intrinsic.inc │ │ │ │ │ ├── int128_stream_test.cc │ │ │ │ │ ├── int128_test.cc │ │ │ │ │ └── internal/ │ │ │ │ │ ├── bits.h │ │ │ │ │ └── representation.h │ │ │ │ ├── profiling/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ └── internal/ │ │ │ │ │ ├── exponential_biased.cc │ │ │ │ │ ├── exponential_biased.h │ │ │ │ │ ├── exponential_biased_test.cc │ │ │ │ │ ├── periodic_sampler.cc │ │ │ │ │ ├── periodic_sampler.h │ │ │ │ │ ├── periodic_sampler_benchmark.cc │ │ │ │ │ ├── periodic_sampler_test.cc │ │ │ │ │ ├── sample_recorder.h │ │ │ │ │ └── sample_recorder_test.cc │ │ │ │ ├── random/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── benchmarks.cc │ │ │ │ │ ├── bernoulli_distribution.h │ │ │ │ │ ├── bernoulli_distribution_test.cc │ │ │ │ │ ├── beta_distribution.h │ │ │ │ │ ├── beta_distribution_test.cc │ │ │ │ │ ├── bit_gen_ref.h │ │ │ │ │ ├── bit_gen_ref_test.cc │ │ │ │ │ ├── discrete_distribution.cc │ │ │ │ │ ├── discrete_distribution.h │ │ │ │ │ ├── discrete_distribution_test.cc │ │ │ │ │ ├── distributions.h │ │ │ │ │ ├── distributions_test.cc │ │ │ │ │ ├── examples_test.cc │ │ │ │ │ ├── exponential_distribution.h │ │ │ │ │ ├── exponential_distribution_test.cc │ │ │ │ │ ├── gaussian_distribution.cc │ │ │ │ │ ├── gaussian_distribution.h │ │ │ │ │ ├── gaussian_distribution_test.cc │ │ │ │ │ ├── generators_test.cc │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ │ ├── chi_square.cc │ │ │ │ │ │ ├── chi_square.h │ │ │ │ │ │ ├── chi_square_test.cc │ │ │ │ │ │ ├── distribution_caller.h │ │ │ │ │ │ ├── distribution_test_util.cc │ │ │ │ │ │ ├── distribution_test_util.h │ │ │ │ │ │ ├── distribution_test_util_test.cc │ │ │ │ │ │ ├── explicit_seed_seq.h │ │ │ │ │ │ ├── explicit_seed_seq_test.cc │ │ │ │ │ │ ├── fast_uniform_bits.h │ │ │ │ │ │ ├── fast_uniform_bits_test.cc │ │ │ │ │ │ ├── fastmath.h │ │ │ │ │ │ ├── fastmath_test.cc │ │ │ │ │ │ ├── gaussian_distribution_gentables.cc │ │ │ │ │ │ ├── generate_real.h │ │ │ │ │ │ ├── generate_real_test.cc │ │ │ │ │ │ ├── iostream_state_saver.h │ │ │ │ │ │ ├── iostream_state_saver_test.cc │ │ │ │ │ │ ├── mock_helpers.h │ │ │ │ │ │ ├── mock_overload_set.h │ │ │ │ │ │ ├── nanobenchmark.cc │ │ │ │ │ │ ├── nanobenchmark.h │ │ │ │ │ │ ├── nanobenchmark_test.cc │ │ │ │ │ │ ├── nonsecure_base.h │ │ │ │ │ │ ├── nonsecure_base_test.cc │ │ │ │ │ │ ├── pcg_engine.h │ │ │ │ │ │ ├── pcg_engine_test.cc │ │ │ │ │ │ ├── platform.h │ │ │ │ │ │ ├── pool_urbg.cc │ │ │ │ │ │ ├── pool_urbg.h │ │ │ │ │ │ ├── pool_urbg_test.cc │ │ │ │ │ │ ├── randen.cc │ │ │ │ │ │ ├── randen.h │ │ │ │ │ │ ├── randen_benchmarks.cc │ │ │ │ │ │ ├── randen_detect.cc │ │ │ │ │ │ ├── randen_detect.h │ │ │ │ │ │ ├── randen_engine.h │ │ │ │ │ │ ├── randen_engine_test.cc │ │ │ │ │ │ ├── randen_hwaes.cc │ │ │ │ │ │ ├── randen_hwaes.h │ │ │ │ │ │ ├── randen_hwaes_test.cc │ │ │ │ │ │ ├── randen_round_keys.cc │ │ │ │ │ │ ├── randen_slow.cc │ │ │ │ │ │ ├── randen_slow.h │ │ │ │ │ │ ├── randen_slow_test.cc │ │ │ │ │ │ ├── randen_test.cc │ │ │ │ │ │ ├── randen_traits.h │ │ │ │ │ │ ├── salted_seed_seq.h │ │ │ │ │ │ ├── salted_seed_seq_test.cc │ │ │ │ │ │ ├── seed_material.cc │ │ │ │ │ │ ├── seed_material.h │ │ │ │ │ │ ├── seed_material_test.cc │ │ │ │ │ │ ├── sequence_urbg.h │ │ │ │ │ │ ├── traits.h │ │ │ │ │ │ ├── traits_test.cc │ │ │ │ │ │ ├── uniform_helper.h │ │ │ │ │ │ ├── uniform_helper_test.cc │ │ │ │ │ │ ├── wide_multiply.h │ │ │ │ │ │ └── wide_multiply_test.cc │ │ │ │ │ ├── log_uniform_int_distribution.h │ │ │ │ │ ├── log_uniform_int_distribution_test.cc │ │ │ │ │ ├── mock_distributions.h │ │ │ │ │ ├── mock_distributions_test.cc │ │ │ │ │ ├── mocking_bit_gen.h │ │ │ │ │ ├── mocking_bit_gen_test.cc │ │ │ │ │ ├── poisson_distribution.h │ │ │ │ │ ├── poisson_distribution_test.cc │ │ │ │ │ ├── random.h │ │ │ │ │ ├── seed_gen_exception.cc │ │ │ │ │ ├── seed_gen_exception.h │ │ │ │ │ ├── seed_sequences.cc │ │ │ │ │ ├── seed_sequences.h │ │ │ │ │ ├── seed_sequences_test.cc │ │ │ │ │ ├── uniform_int_distribution.h │ │ │ │ │ ├── uniform_int_distribution_test.cc │ │ │ │ │ ├── uniform_real_distribution.h │ │ │ │ │ ├── uniform_real_distribution_test.cc │ │ │ │ │ ├── zipf_distribution.h │ │ │ │ │ └── zipf_distribution_test.cc │ │ │ │ ├── status/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── status_internal.h │ │ │ │ │ │ └── statusor_internal.h │ │ │ │ │ ├── status.cc │ │ │ │ │ ├── status.h │ │ │ │ │ ├── status_payload_printer.cc │ │ │ │ │ ├── status_payload_printer.h │ │ │ │ │ ├── status_test.cc │ │ │ │ │ ├── statusor.cc │ │ │ │ │ ├── statusor.h │ │ │ │ │ └── statusor_test.cc │ │ │ │ ├── strings/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── ascii.cc │ │ │ │ │ ├── ascii.h │ │ │ │ │ ├── ascii_benchmark.cc │ │ │ │ │ ├── ascii_test.cc │ │ │ │ │ ├── atod_manual_test.cc │ │ │ │ │ ├── charconv.cc │ │ │ │ │ ├── charconv.h │ │ │ │ │ ├── charconv_benchmark.cc │ │ │ │ │ ├── charconv_test.cc │ │ │ │ │ ├── cord.cc │ │ │ │ │ ├── cord.h │ │ │ │ │ ├── cord_analysis.cc │ │ │ │ │ ├── cord_analysis.h │ │ │ │ │ ├── cord_buffer.cc │ │ │ │ │ ├── cord_buffer.h │ │ │ │ │ ├── cord_buffer_test.cc │ │ │ │ │ ├── cord_ring_reader_test.cc │ │ │ │ │ ├── cord_ring_test.cc │ │ │ │ │ ├── cord_test.cc │ │ │ │ │ ├── cord_test_helpers.h │ │ │ │ │ ├── cordz_test.cc │ │ │ │ │ ├── cordz_test_helpers.h │ │ │ │ │ ├── escaping.cc │ │ │ │ │ ├── escaping.h │ │ │ │ │ ├── escaping_benchmark.cc │ │ │ │ │ ├── escaping_test.cc │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── char_map.h │ │ │ │ │ │ ├── char_map_benchmark.cc │ │ │ │ │ │ ├── char_map_test.cc │ │ │ │ │ │ ├── charconv_bigint.cc │ │ │ │ │ │ ├── charconv_bigint.h │ │ │ │ │ │ ├── charconv_bigint_test.cc │ │ │ │ │ │ ├── charconv_parse.cc │ │ │ │ │ │ ├── charconv_parse.h │ │ │ │ │ │ ├── charconv_parse_test.cc │ │ │ │ │ │ ├── cord_data_edge.h │ │ │ │ │ │ ├── cord_data_edge_test.cc │ │ │ │ │ │ ├── cord_internal.cc │ │ │ │ │ │ ├── cord_internal.h │ │ │ │ │ │ ├── cord_rep_btree.cc │ │ │ │ │ │ ├── cord_rep_btree.h │ │ │ │ │ │ ├── cord_rep_btree_navigator.cc │ │ │ │ │ │ ├── cord_rep_btree_navigator.h │ │ │ │ │ │ ├── cord_rep_btree_navigator_test.cc │ │ │ │ │ │ ├── cord_rep_btree_reader.cc │ │ │ │ │ │ ├── cord_rep_btree_reader.h │ │ │ │ │ │ ├── cord_rep_btree_reader_test.cc │ │ │ │ │ │ ├── cord_rep_btree_test.cc │ │ │ │ │ │ ├── cord_rep_consume.cc │ │ │ │ │ │ ├── cord_rep_consume.h │ │ │ │ │ │ ├── cord_rep_crc.cc │ │ │ │ │ │ ├── cord_rep_crc.h │ │ │ │ │ │ ├── cord_rep_crc_test.cc │ │ │ │ │ │ ├── cord_rep_flat.h │ │ │ │ │ │ ├── cord_rep_ring.cc │ │ │ │ │ │ ├── cord_rep_ring.h │ │ │ │ │ │ ├── cord_rep_ring_reader.h │ │ │ │ │ │ ├── cord_rep_test_util.h │ │ │ │ │ │ ├── cordz_functions.cc │ │ │ │ │ │ ├── cordz_functions.h │ │ │ │ │ │ ├── cordz_functions_test.cc │ │ │ │ │ │ ├── cordz_handle.cc │ │ │ │ │ │ ├── cordz_handle.h │ │ │ │ │ │ ├── cordz_handle_test.cc │ │ │ │ │ │ ├── cordz_info.cc │ │ │ │ │ │ ├── cordz_info.h │ │ │ │ │ │ ├── cordz_info_statistics_test.cc │ │ │ │ │ │ ├── cordz_info_test.cc │ │ │ │ │ │ ├── cordz_sample_token.cc │ │ │ │ │ │ ├── cordz_sample_token.h │ │ │ │ │ │ ├── cordz_sample_token_test.cc │ │ │ │ │ │ ├── cordz_statistics.h │ │ │ │ │ │ ├── cordz_update_scope.h │ │ │ │ │ │ ├── cordz_update_scope_test.cc │ │ │ │ │ │ ├── cordz_update_tracker.h │ │ │ │ │ │ ├── cordz_update_tracker_test.cc │ │ │ │ │ │ ├── escaping.cc │ │ │ │ │ │ ├── escaping.h │ │ │ │ │ │ ├── escaping_test_common.h │ │ │ │ │ │ ├── memutil.cc │ │ │ │ │ │ ├── memutil.h │ │ │ │ │ │ ├── memutil_benchmark.cc │ │ │ │ │ │ ├── memutil_test.cc │ │ │ │ │ │ ├── numbers_test_common.h │ │ │ │ │ │ ├── ostringstream.cc │ │ │ │ │ │ ├── ostringstream.h │ │ │ │ │ │ ├── ostringstream_benchmark.cc │ │ │ │ │ │ ├── ostringstream_test.cc │ │ │ │ │ │ ├── pow10_helper.cc │ │ │ │ │ │ ├── pow10_helper.h │ │ │ │ │ │ ├── pow10_helper_test.cc │ │ │ │ │ │ ├── resize_uninitialized.h │ │ │ │ │ │ ├── resize_uninitialized_test.cc │ │ │ │ │ │ ├── stl_type_traits.h │ │ │ │ │ │ ├── str_format/ │ │ │ │ │ │ │ ├── arg.cc │ │ │ │ │ │ │ ├── arg.h │ │ │ │ │ │ │ ├── arg_test.cc │ │ │ │ │ │ │ ├── bind.cc │ │ │ │ │ │ │ ├── bind.h │ │ │ │ │ │ │ ├── bind_test.cc │ │ │ │ │ │ │ ├── checker.h │ │ │ │ │ │ │ ├── checker_test.cc │ │ │ │ │ │ │ ├── convert_test.cc │ │ │ │ │ │ │ ├── extension.cc │ │ │ │ │ │ │ ├── extension.h │ │ │ │ │ │ │ ├── extension_test.cc │ │ │ │ │ │ │ ├── float_conversion.cc │ │ │ │ │ │ │ ├── float_conversion.h │ │ │ │ │ │ │ ├── output.cc │ │ │ │ │ │ │ ├── output.h │ │ │ │ │ │ │ ├── output_test.cc │ │ │ │ │ │ │ ├── parser.cc │ │ │ │ │ │ │ ├── parser.h │ │ │ │ │ │ │ └── parser_test.cc │ │ │ │ │ │ ├── str_join_internal.h │ │ │ │ │ │ ├── str_split_internal.h │ │ │ │ │ │ ├── string_constant.h │ │ │ │ │ │ ├── string_constant_test.cc │ │ │ │ │ │ ├── utf8.cc │ │ │ │ │ │ ├── utf8.h │ │ │ │ │ │ └── utf8_test.cc │ │ │ │ │ ├── match.cc │ │ │ │ │ ├── match.h │ │ │ │ │ ├── match_test.cc │ │ │ │ │ ├── numbers.cc │ │ │ │ │ ├── numbers.h │ │ │ │ │ ├── numbers_benchmark.cc │ │ │ │ │ ├── numbers_test.cc │ │ │ │ │ ├── str_cat.cc │ │ │ │ │ ├── str_cat.h │ │ │ │ │ ├── str_cat_benchmark.cc │ │ │ │ │ ├── str_cat_test.cc │ │ │ │ │ ├── str_format.h │ │ │ │ │ ├── str_format_test.cc │ │ │ │ │ ├── str_join.h │ │ │ │ │ ├── str_join_benchmark.cc │ │ │ │ │ ├── str_join_test.cc │ │ │ │ │ ├── str_replace.cc │ │ │ │ │ ├── str_replace.h │ │ │ │ │ ├── str_replace_benchmark.cc │ │ │ │ │ ├── str_replace_test.cc │ │ │ │ │ ├── str_split.cc │ │ │ │ │ ├── str_split.h │ │ │ │ │ ├── str_split_benchmark.cc │ │ │ │ │ ├── str_split_test.cc │ │ │ │ │ ├── string_view.cc │ │ │ │ │ ├── string_view.h │ │ │ │ │ ├── string_view_benchmark.cc │ │ │ │ │ ├── string_view_test.cc │ │ │ │ │ ├── strip.h │ │ │ │ │ ├── strip_test.cc │ │ │ │ │ ├── substitute.cc │ │ │ │ │ ├── substitute.h │ │ │ │ │ └── substitute_test.cc │ │ │ │ ├── synchronization/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── barrier.cc │ │ │ │ │ ├── barrier.h │ │ │ │ │ ├── barrier_test.cc │ │ │ │ │ ├── blocking_counter.cc │ │ │ │ │ ├── blocking_counter.h │ │ │ │ │ ├── blocking_counter_benchmark.cc │ │ │ │ │ ├── blocking_counter_test.cc │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── create_thread_identity.cc │ │ │ │ │ │ ├── create_thread_identity.h │ │ │ │ │ │ ├── futex.h │ │ │ │ │ │ ├── graphcycles.cc │ │ │ │ │ │ ├── graphcycles.h │ │ │ │ │ │ ├── graphcycles_benchmark.cc │ │ │ │ │ │ ├── graphcycles_test.cc │ │ │ │ │ │ ├── kernel_timeout.h │ │ │ │ │ │ ├── per_thread_sem.cc │ │ │ │ │ │ ├── per_thread_sem.h │ │ │ │ │ │ ├── per_thread_sem_test.cc │ │ │ │ │ │ ├── thread_pool.h │ │ │ │ │ │ ├── waiter.cc │ │ │ │ │ │ └── waiter.h │ │ │ │ │ ├── lifetime_test.cc │ │ │ │ │ ├── mutex.cc │ │ │ │ │ ├── mutex.h │ │ │ │ │ ├── mutex_benchmark.cc │ │ │ │ │ ├── mutex_test.cc │ │ │ │ │ ├── notification.cc │ │ │ │ │ ├── notification.h │ │ │ │ │ └── notification_test.cc │ │ │ │ ├── time/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── civil_time.cc │ │ │ │ │ ├── civil_time.h │ │ │ │ │ ├── civil_time_benchmark.cc │ │ │ │ │ ├── civil_time_test.cc │ │ │ │ │ ├── clock.cc │ │ │ │ │ ├── clock.h │ │ │ │ │ ├── clock_benchmark.cc │ │ │ │ │ ├── clock_test.cc │ │ │ │ │ ├── duration.cc │ │ │ │ │ ├── duration_benchmark.cc │ │ │ │ │ ├── duration_test.cc │ │ │ │ │ ├── format.cc │ │ │ │ │ ├── format_benchmark.cc │ │ │ │ │ ├── format_test.cc │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── cctz/ │ │ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ │ │ ├── include/ │ │ │ │ │ │ │ │ └── cctz/ │ │ │ │ │ │ │ │ ├── civil_time.h │ │ │ │ │ │ │ │ ├── civil_time_detail.h │ │ │ │ │ │ │ │ ├── time_zone.h │ │ │ │ │ │ │ │ └── zone_info_source.h │ │ │ │ │ │ │ ├── src/ │ │ │ │ │ │ │ │ ├── cctz_benchmark.cc │ │ │ │ │ │ │ │ ├── civil_time_detail.cc │ │ │ │ │ │ │ │ ├── civil_time_test.cc │ │ │ │ │ │ │ │ ├── time_zone_fixed.cc │ │ │ │ │ │ │ │ ├── time_zone_fixed.h │ │ │ │ │ │ │ │ ├── time_zone_format.cc │ │ │ │ │ │ │ │ ├── time_zone_format_test.cc │ │ │ │ │ │ │ │ ├── time_zone_if.cc │ │ │ │ │ │ │ │ ├── time_zone_if.h │ │ │ │ │ │ │ │ ├── time_zone_impl.cc │ │ │ │ │ │ │ │ ├── time_zone_impl.h │ │ │ │ │ │ │ │ ├── time_zone_info.cc │ │ │ │ │ │ │ │ ├── time_zone_info.h │ │ │ │ │ │ │ │ ├── time_zone_libc.cc │ │ │ │ │ │ │ │ ├── time_zone_libc.h │ │ │ │ │ │ │ │ ├── time_zone_lookup.cc │ │ │ │ │ │ │ │ ├── time_zone_lookup_test.cc │ │ │ │ │ │ │ │ ├── time_zone_posix.cc │ │ │ │ │ │ │ │ ├── time_zone_posix.h │ │ │ │ │ │ │ │ ├── tzfile.h │ │ │ │ │ │ │ │ └── zone_info_source.cc │ │ │ │ │ │ │ └── testdata/ │ │ │ │ │ │ │ ├── README.zoneinfo │ │ │ │ │ │ │ ├── version │ │ │ │ │ │ │ └── zoneinfo/ │ │ │ │ │ │ │ ├── Africa/ │ │ │ │ │ │ │ │ ├── Abidjan │ │ │ │ │ │ │ │ ├── Accra │ │ │ │ │ │ │ │ ├── Addis_Ababa │ │ │ │ │ │ │ │ ├── Algiers │ │ │ │ │ │ │ │ ├── Asmara │ │ │ │ │ │ │ │ ├── Asmera │ │ │ │ │ │ │ │ ├── Bamako │ │ │ │ │ │ │ │ ├── Bangui │ │ │ │ │ │ │ │ ├── Banjul │ │ │ │ │ │ │ │ ├── Bissau │ │ │ │ │ │ │ │ ├── Blantyre │ │ │ │ │ │ │ │ ├── Brazzaville │ │ │ │ │ │ │ │ ├── Bujumbura │ │ │ │ │ │ │ │ ├── Cairo │ │ │ │ │ │ │ │ ├── Casablanca │ │ │ │ │ │ │ │ ├── Ceuta │ │ │ │ │ │ │ │ ├── Conakry │ │ │ │ │ │ │ │ ├── Dakar │ │ │ │ │ │ │ │ ├── Dar_es_Salaam │ │ │ │ │ │ │ │ ├── Djibouti │ │ │ │ │ │ │ │ ├── Douala │ │ │ │ │ │ │ │ ├── El_Aaiun │ │ │ │ │ │ │ │ ├── Freetown │ │ │ │ │ │ │ │ ├── Gaborone │ │ │ │ │ │ │ │ ├── Harare │ │ │ │ │ │ │ │ ├── Johannesburg │ │ │ │ │ │ │ │ ├── Juba │ │ │ │ │ │ │ │ ├── Kampala │ │ │ │ │ │ │ │ ├── Khartoum │ │ │ │ │ │ │ │ ├── Kigali │ │ │ │ │ │ │ │ ├── Kinshasa │ │ │ │ │ │ │ │ ├── Lagos │ │ │ │ │ │ │ │ ├── Libreville │ │ │ │ │ │ │ │ ├── Lome │ │ │ │ │ │ │ │ ├── Luanda │ │ │ │ │ │ │ │ ├── Lubumbashi │ │ │ │ │ │ │ │ ├── Lusaka │ │ │ │ │ │ │ │ ├── Malabo │ │ │ │ │ │ │ │ ├── Maputo │ │ │ │ │ │ │ │ ├── Maseru │ │ │ │ │ │ │ │ ├── Mbabane │ │ │ │ │ │ │ │ ├── Mogadishu │ │ │ │ │ │ │ │ ├── Monrovia │ │ │ │ │ │ │ │ ├── Nairobi │ │ │ │ │ │ │ │ ├── Ndjamena │ │ │ │ │ │ │ │ ├── Niamey │ │ │ │ │ │ │ │ ├── Nouakchott │ │ │ │ │ │ │ │ ├── Ouagadougou │ │ │ │ │ │ │ │ ├── Porto-Novo │ │ │ │ │ │ │ │ ├── Sao_Tome │ │ │ │ │ │ │ │ ├── Timbuktu │ │ │ │ │ │ │ │ ├── Tripoli │ │ │ │ │ │ │ │ ├── Tunis │ │ │ │ │ │ │ │ └── Windhoek │ │ │ │ │ │ │ ├── America/ │ │ │ │ │ │ │ │ ├── Adak │ │ │ │ │ │ │ │ ├── Anchorage │ │ │ │ │ │ │ │ ├── Anguilla │ │ │ │ │ │ │ │ ├── Antigua │ │ │ │ │ │ │ │ ├── Araguaina │ │ │ │ │ │ │ │ ├── Argentina/ │ │ │ │ │ │ │ │ │ ├── Buenos_Aires │ │ │ │ │ │ │ │ │ ├── Catamarca │ │ │ │ │ │ │ │ │ ├── ComodRivadavia │ │ │ │ │ │ │ │ │ ├── Cordoba │ │ │ │ │ │ │ │ │ ├── Jujuy │ │ │ │ │ │ │ │ │ ├── La_Rioja │ │ │ │ │ │ │ │ │ ├── Mendoza │ │ │ │ │ │ │ │ │ ├── Rio_Gallegos │ │ │ │ │ │ │ │ │ ├── Salta │ │ │ │ │ │ │ │ │ ├── San_Juan │ │ │ │ │ │ │ │ │ ├── San_Luis │ │ │ │ │ │ │ │ │ ├── Tucuman │ │ │ │ │ │ │ │ │ └── Ushuaia │ │ │ │ │ │ │ │ ├── Aruba │ │ │ │ │ │ │ │ ├── Asuncion │ │ │ │ │ │ │ │ ├── Atikokan │ │ │ │ │ │ │ │ ├── Atka │ │ │ │ │ │ │ │ ├── Bahia │ │ │ │ │ │ │ │ ├── Bahia_Banderas │ │ │ │ │ │ │ │ ├── Barbados │ │ │ │ │ │ │ │ ├── Belem │ │ │ │ │ │ │ │ ├── Belize │ │ │ │ │ │ │ │ ├── Blanc-Sablon │ │ │ │ │ │ │ │ ├── Boa_Vista │ │ │ │ │ │ │ │ ├── Bogota │ │ │ │ │ │ │ │ ├── Boise │ │ │ │ │ │ │ │ ├── Buenos_Aires │ │ │ │ │ │ │ │ ├── Cambridge_Bay │ │ │ │ │ │ │ │ ├── Campo_Grande │ │ │ │ │ │ │ │ ├── Cancun │ │ │ │ │ │ │ │ ├── Caracas │ │ │ │ │ │ │ │ ├── Catamarca │ │ │ │ │ │ │ │ ├── Cayenne │ │ │ │ │ │ │ │ ├── Cayman │ │ │ │ │ │ │ │ ├── Chicago │ │ │ │ │ │ │ │ ├── Chihuahua │ │ │ │ │ │ │ │ ├── Coral_Harbour │ │ │ │ │ │ │ │ ├── Cordoba │ │ │ │ │ │ │ │ ├── Costa_Rica │ │ │ │ │ │ │ │ ├── Creston │ │ │ │ │ │ │ │ ├── Cuiaba │ │ │ │ │ │ │ │ ├── Curacao │ │ │ │ │ │ │ │ ├── Danmarkshavn │ │ │ │ │ │ │ │ ├── Dawson │ │ │ │ │ │ │ │ ├── Dawson_Creek │ │ │ │ │ │ │ │ ├── Denver │ │ │ │ │ │ │ │ ├── Detroit │ │ │ │ │ │ │ │ ├── Dominica │ │ │ │ │ │ │ │ ├── Edmonton │ │ │ │ │ │ │ │ ├── Eirunepe │ │ │ │ │ │ │ │ ├── El_Salvador │ │ │ │ │ │ │ │ ├── Ensenada │ │ │ │ │ │ │ │ ├── Fort_Nelson │ │ │ │ │ │ │ │ ├── Fort_Wayne │ │ │ │ │ │ │ │ ├── Fortaleza │ │ │ │ │ │ │ │ ├── Glace_Bay │ │ │ │ │ │ │ │ ├── Godthab │ │ │ │ │ │ │ │ ├── Goose_Bay │ │ │ │ │ │ │ │ ├── Grand_Turk │ │ │ │ │ │ │ │ ├── Grenada │ │ │ │ │ │ │ │ ├── Guadeloupe │ │ │ │ │ │ │ │ ├── Guatemala │ │ │ │ │ │ │ │ ├── Guayaquil │ │ │ │ │ │ │ │ ├── Guyana │ │ │ │ │ │ │ │ ├── Halifax │ │ │ │ │ │ │ │ ├── Havana │ │ │ │ │ │ │ │ ├── Hermosillo │ │ │ │ │ │ │ │ ├── Indiana/ │ │ │ │ │ │ │ │ │ ├── Indianapolis │ │ │ │ │ │ │ │ │ ├── Knox │ │ │ │ │ │ │ │ │ ├── Marengo │ │ │ │ │ │ │ │ │ ├── Petersburg │ │ │ │ │ │ │ │ │ ├── Tell_City │ │ │ │ │ │ │ │ │ ├── Vevay │ │ │ │ │ │ │ │ │ ├── Vincennes │ │ │ │ │ │ │ │ │ └── Winamac │ │ │ │ │ │ │ │ ├── Indianapolis │ │ │ │ │ │ │ │ ├── Inuvik │ │ │ │ │ │ │ │ ├── Iqaluit │ │ │ │ │ │ │ │ ├── Jamaica │ │ │ │ │ │ │ │ ├── Jujuy │ │ │ │ │ │ │ │ ├── Juneau │ │ │ │ │ │ │ │ ├── Kentucky/ │ │ │ │ │ │ │ │ │ ├── Louisville │ │ │ │ │ │ │ │ │ └── Monticello │ │ │ │ │ │ │ │ ├── Knox_IN │ │ │ │ │ │ │ │ ├── Kralendijk │ │ │ │ │ │ │ │ ├── La_Paz │ │ │ │ │ │ │ │ ├── Lima │ │ │ │ │ │ │ │ ├── Los_Angeles │ │ │ │ │ │ │ │ ├── Louisville │ │ │ │ │ │ │ │ ├── Lower_Princes │ │ │ │ │ │ │ │ ├── Maceio │ │ │ │ │ │ │ │ ├── Managua │ │ │ │ │ │ │ │ ├── Manaus │ │ │ │ │ │ │ │ ├── Marigot │ │ │ │ │ │ │ │ ├── Martinique │ │ │ │ │ │ │ │ ├── Matamoros │ │ │ │ │ │ │ │ ├── Mazatlan │ │ │ │ │ │ │ │ ├── Mendoza │ │ │ │ │ │ │ │ ├── Menominee │ │ │ │ │ │ │ │ ├── Merida │ │ │ │ │ │ │ │ ├── Metlakatla │ │ │ │ │ │ │ │ ├── Mexico_City │ │ │ │ │ │ │ │ ├── Miquelon │ │ │ │ │ │ │ │ ├── Moncton │ │ │ │ │ │ │ │ ├── Monterrey │ │ │ │ │ │ │ │ ├── Montevideo │ │ │ │ │ │ │ │ ├── Montreal │ │ │ │ │ │ │ │ ├── Montserrat │ │ │ │ │ │ │ │ ├── Nassau │ │ │ │ │ │ │ │ ├── New_York │ │ │ │ │ │ │ │ ├── Nipigon │ │ │ │ │ │ │ │ ├── Nome │ │ │ │ │ │ │ │ ├── Noronha │ │ │ │ │ │ │ │ ├── North_Dakota/ │ │ │ │ │ │ │ │ │ ├── Beulah │ │ │ │ │ │ │ │ │ ├── Center │ │ │ │ │ │ │ │ │ └── New_Salem │ │ │ │ │ │ │ │ ├── Nuuk │ │ │ │ │ │ │ │ ├── Ojinaga │ │ │ │ │ │ │ │ ├── Panama │ │ │ │ │ │ │ │ ├── Pangnirtung │ │ │ │ │ │ │ │ ├── Paramaribo │ │ │ │ │ │ │ │ ├── Phoenix │ │ │ │ │ │ │ │ ├── Port-au-Prince │ │ │ │ │ │ │ │ ├── Port_of_Spain │ │ │ │ │ │ │ │ ├── Porto_Acre │ │ │ │ │ │ │ │ ├── Porto_Velho │ │ │ │ │ │ │ │ ├── Puerto_Rico │ │ │ │ │ │ │ │ ├── Punta_Arenas │ │ │ │ │ │ │ │ ├── Rainy_River │ │ │ │ │ │ │ │ ├── Rankin_Inlet │ │ │ │ │ │ │ │ ├── Recife │ │ │ │ │ │ │ │ ├── Regina │ │ │ │ │ │ │ │ ├── Resolute │ │ │ │ │ │ │ │ ├── Rio_Branco │ │ │ │ │ │ │ │ ├── Rosario │ │ │ │ │ │ │ │ ├── Santa_Isabel │ │ │ │ │ │ │ │ ├── Santarem │ │ │ │ │ │ │ │ ├── Santiago │ │ │ │ │ │ │ │ ├── Santo_Domingo │ │ │ │ │ │ │ │ ├── Sao_Paulo │ │ │ │ │ │ │ │ ├── Scoresbysund │ │ │ │ │ │ │ │ ├── Shiprock │ │ │ │ │ │ │ │ ├── Sitka │ │ │ │ │ │ │ │ ├── St_Barthelemy │ │ │ │ │ │ │ │ ├── St_Johns │ │ │ │ │ │ │ │ ├── St_Kitts │ │ │ │ │ │ │ │ ├── St_Lucia │ │ │ │ │ │ │ │ ├── St_Thomas │ │ │ │ │ │ │ │ ├── St_Vincent │ │ │ │ │ │ │ │ ├── Swift_Current │ │ │ │ │ │ │ │ ├── Tegucigalpa │ │ │ │ │ │ │ │ ├── Thule │ │ │ │ │ │ │ │ ├── Thunder_Bay │ │ │ │ │ │ │ │ ├── Tijuana │ │ │ │ │ │ │ │ ├── Toronto │ │ │ │ │ │ │ │ ├── Tortola │ │ │ │ │ │ │ │ ├── Vancouver │ │ │ │ │ │ │ │ ├── Virgin │ │ │ │ │ │ │ │ ├── Whitehorse │ │ │ │ │ │ │ │ ├── Winnipeg │ │ │ │ │ │ │ │ ├── Yakutat │ │ │ │ │ │ │ │ └── Yellowknife │ │ │ │ │ │ │ ├── Antarctica/ │ │ │ │ │ │ │ │ ├── Casey │ │ │ │ │ │ │ │ ├── Davis │ │ │ │ │ │ │ │ ├── DumontDUrville │ │ │ │ │ │ │ │ ├── Macquarie │ │ │ │ │ │ │ │ ├── Mawson │ │ │ │ │ │ │ │ ├── McMurdo │ │ │ │ │ │ │ │ ├── Palmer │ │ │ │ │ │ │ │ ├── Rothera │ │ │ │ │ │ │ │ ├── South_Pole │ │ │ │ │ │ │ │ ├── Syowa │ │ │ │ │ │ │ │ ├── Troll │ │ │ │ │ │ │ │ └── Vostok │ │ │ │ │ │ │ ├── Arctic/ │ │ │ │ │ │ │ │ └── Longyearbyen │ │ │ │ │ │ │ ├── Asia/ │ │ │ │ │ │ │ │ ├── Aden │ │ │ │ │ │ │ │ ├── Almaty │ │ │ │ │ │ │ │ ├── Amman │ │ │ │ │ │ │ │ ├── Anadyr │ │ │ │ │ │ │ │ ├── Aqtau │ │ │ │ │ │ │ │ ├── Aqtobe │ │ │ │ │ │ │ │ ├── Ashgabat │ │ │ │ │ │ │ │ ├── Ashkhabad │ │ │ │ │ │ │ │ ├── Atyrau │ │ │ │ │ │ │ │ ├── Baghdad │ │ │ │ │ │ │ │ ├── Bahrain │ │ │ │ │ │ │ │ ├── Baku │ │ │ │ │ │ │ │ ├── Bangkok │ │ │ │ │ │ │ │ ├── Barnaul │ │ │ │ │ │ │ │ ├── Beirut │ │ │ │ │ │ │ │ ├── Bishkek │ │ │ │ │ │ │ │ ├── Brunei │ │ │ │ │ │ │ │ ├── Calcutta │ │ │ │ │ │ │ │ ├── Chita │ │ │ │ │ │ │ │ ├── Choibalsan │ │ │ │ │ │ │ │ ├── Chongqing │ │ │ │ │ │ │ │ ├── Chungking │ │ │ │ │ │ │ │ ├── Colombo │ │ │ │ │ │ │ │ ├── Dacca │ │ │ │ │ │ │ │ ├── Damascus │ │ │ │ │ │ │ │ ├── Dhaka │ │ │ │ │ │ │ │ ├── Dili │ │ │ │ │ │ │ │ ├── Dubai │ │ │ │ │ │ │ │ ├── Dushanbe │ │ │ │ │ │ │ │ ├── Famagusta │ │ │ │ │ │ │ │ ├── Gaza │ │ │ │ │ │ │ │ ├── Harbin │ │ │ │ │ │ │ │ ├── Hebron │ │ │ │ │ │ │ │ ├── Ho_Chi_Minh │ │ │ │ │ │ │ │ ├── Hong_Kong │ │ │ │ │ │ │ │ ├── Hovd │ │ │ │ │ │ │ │ ├── Irkutsk │ │ │ │ │ │ │ │ ├── Istanbul │ │ │ │ │ │ │ │ ├── Jakarta │ │ │ │ │ │ │ │ ├── Jayapura │ │ │ │ │ │ │ │ ├── Jerusalem │ │ │ │ │ │ │ │ ├── Kabul │ │ │ │ │ │ │ │ ├── Kamchatka │ │ │ │ │ │ │ │ ├── Karachi │ │ │ │ │ │ │ │ ├── Kashgar │ │ │ │ │ │ │ │ ├── Kathmandu │ │ │ │ │ │ │ │ ├── Katmandu │ │ │ │ │ │ │ │ ├── Khandyga │ │ │ │ │ │ │ │ ├── Kolkata │ │ │ │ │ │ │ │ ├── Krasnoyarsk │ │ │ │ │ │ │ │ ├── Kuala_Lumpur │ │ │ │ │ │ │ │ ├── Kuching │ │ │ │ │ │ │ │ ├── Kuwait │ │ │ │ │ │ │ │ ├── Macao │ │ │ │ │ │ │ │ ├── Macau │ │ │ │ │ │ │ │ ├── Magadan │ │ │ │ │ │ │ │ ├── Makassar │ │ │ │ │ │ │ │ ├── Manila │ │ │ │ │ │ │ │ ├── Muscat │ │ │ │ │ │ │ │ ├── Nicosia │ │ │ │ │ │ │ │ ├── Novokuznetsk │ │ │ │ │ │ │ │ ├── Novosibirsk │ │ │ │ │ │ │ │ ├── Omsk │ │ │ │ │ │ │ │ ├── Oral │ │ │ │ │ │ │ │ ├── Phnom_Penh │ │ │ │ │ │ │ │ ├── Pontianak │ │ │ │ │ │ │ │ ├── Pyongyang │ │ │ │ │ │ │ │ ├── Qatar │ │ │ │ │ │ │ │ ├── Qostanay │ │ │ │ │ │ │ │ ├── Qyzylorda │ │ │ │ │ │ │ │ ├── Rangoon │ │ │ │ │ │ │ │ ├── Riyadh │ │ │ │ │ │ │ │ ├── Saigon │ │ │ │ │ │ │ │ ├── Sakhalin │ │ │ │ │ │ │ │ ├── Samarkand │ │ │ │ │ │ │ │ ├── Seoul │ │ │ │ │ │ │ │ ├── Shanghai │ │ │ │ │ │ │ │ ├── Singapore │ │ │ │ │ │ │ │ ├── Srednekolymsk │ │ │ │ │ │ │ │ ├── Taipei │ │ │ │ │ │ │ │ ├── Tashkent │ │ │ │ │ │ │ │ ├── Tbilisi │ │ │ │ │ │ │ │ ├── Tehran │ │ │ │ │ │ │ │ ├── Tel_Aviv │ │ │ │ │ │ │ │ ├── Thimbu │ │ │ │ │ │ │ │ ├── Thimphu │ │ │ │ │ │ │ │ ├── Tokyo │ │ │ │ │ │ │ │ ├── Tomsk │ │ │ │ │ │ │ │ ├── Ujung_Pandang │ │ │ │ │ │ │ │ ├── Ulaanbaatar │ │ │ │ │ │ │ │ ├── Ulan_Bator │ │ │ │ │ │ │ │ ├── Urumqi │ │ │ │ │ │ │ │ ├── Ust-Nera │ │ │ │ │ │ │ │ ├── Vientiane │ │ │ │ │ │ │ │ ├── Vladivostok │ │ │ │ │ │ │ │ ├── Yakutsk │ │ │ │ │ │ │ │ ├── Yangon │ │ │ │ │ │ │ │ ├── Yekaterinburg │ │ │ │ │ │ │ │ └── Yerevan │ │ │ │ │ │ │ ├── Atlantic/ │ │ │ │ │ │ │ │ ├── Azores │ │ │ │ │ │ │ │ ├── Bermuda │ │ │ │ │ │ │ │ ├── Canary │ │ │ │ │ │ │ │ ├── Cape_Verde │ │ │ │ │ │ │ │ ├── Faeroe │ │ │ │ │ │ │ │ ├── Faroe │ │ │ │ │ │ │ │ ├── Jan_Mayen │ │ │ │ │ │ │ │ ├── Madeira │ │ │ │ │ │ │ │ ├── Reykjavik │ │ │ │ │ │ │ │ ├── South_Georgia │ │ │ │ │ │ │ │ ├── St_Helena │ │ │ │ │ │ │ │ └── Stanley │ │ │ │ │ │ │ ├── Australia/ │ │ │ │ │ │ │ │ ├── ACT │ │ │ │ │ │ │ │ ├── Adelaide │ │ │ │ │ │ │ │ ├── Brisbane │ │ │ │ │ │ │ │ ├── Broken_Hill │ │ │ │ │ │ │ │ ├── Canberra │ │ │ │ │ │ │ │ ├── Currie │ │ │ │ │ │ │ │ ├── Darwin │ │ │ │ │ │ │ │ ├── Eucla │ │ │ │ │ │ │ │ ├── Hobart │ │ │ │ │ │ │ │ ├── LHI │ │ │ │ │ │ │ │ ├── Lindeman │ │ │ │ │ │ │ │ ├── Lord_Howe │ │ │ │ │ │ │ │ ├── Melbourne │ │ │ │ │ │ │ │ ├── NSW │ │ │ │ │ │ │ │ ├── North │ │ │ │ │ │ │ │ ├── Perth │ │ │ │ │ │ │ │ ├── Queensland │ │ │ │ │ │ │ │ ├── South │ │ │ │ │ │ │ │ ├── Sydney │ │ │ │ │ │ │ │ ├── Tasmania │ │ │ │ │ │ │ │ ├── Victoria │ │ │ │ │ │ │ │ ├── West │ │ │ │ │ │ │ │ └── Yancowinna │ │ │ │ │ │ │ ├── Brazil/ │ │ │ │ │ │ │ │ ├── Acre │ │ │ │ │ │ │ │ ├── DeNoronha │ │ │ │ │ │ │ │ ├── East │ │ │ │ │ │ │ │ └── West │ │ │ │ │ │ │ ├── CET │ │ │ │ │ │ │ ├── CST6CDT │ │ │ │ │ │ │ ├── Canada/ │ │ │ │ │ │ │ │ ├── Atlantic │ │ │ │ │ │ │ │ ├── Central │ │ │ │ │ │ │ │ ├── Eastern │ │ │ │ │ │ │ │ ├── Mountain │ │ │ │ │ │ │ │ ├── Newfoundland │ │ │ │ │ │ │ │ ├── Pacific │ │ │ │ │ │ │ │ ├── Saskatchewan │ │ │ │ │ │ │ │ └── Yukon │ │ │ │ │ │ │ ├── Chile/ │ │ │ │ │ │ │ │ ├── Continental │ │ │ │ │ │ │ │ └── EasterIsland │ │ │ │ │ │ │ ├── Cuba │ │ │ │ │ │ │ ├── EET │ │ │ │ │ │ │ ├── EST │ │ │ │ │ │ │ ├── EST5EDT │ │ │ │ │ │ │ ├── Egypt │ │ │ │ │ │ │ ├── Eire │ │ │ │ │ │ │ ├── Etc/ │ │ │ │ │ │ │ │ ├── GMT │ │ │ │ │ │ │ │ ├── GMT+0 │ │ │ │ │ │ │ │ ├── GMT+1 │ │ │ │ │ │ │ │ ├── GMT+10 │ │ │ │ │ │ │ │ ├── GMT+11 │ │ │ │ │ │ │ │ ├── GMT+12 │ │ │ │ │ │ │ │ ├── GMT+2 │ │ │ │ │ │ │ │ ├── GMT+3 │ │ │ │ │ │ │ │ ├── GMT+4 │ │ │ │ │ │ │ │ ├── GMT+5 │ │ │ │ │ │ │ │ ├── GMT+6 │ │ │ │ │ │ │ │ ├── GMT+7 │ │ │ │ │ │ │ │ ├── GMT+8 │ │ │ │ │ │ │ │ ├── GMT+9 │ │ │ │ │ │ │ │ ├── GMT-0 │ │ │ │ │ │ │ │ ├── GMT-1 │ │ │ │ │ │ │ │ ├── GMT-10 │ │ │ │ │ │ │ │ ├── GMT-11 │ │ │ │ │ │ │ │ ├── GMT-12 │ │ │ │ │ │ │ │ ├── GMT-13 │ │ │ │ │ │ │ │ ├── GMT-14 │ │ │ │ │ │ │ │ ├── GMT-2 │ │ │ │ │ │ │ │ ├── GMT-3 │ │ │ │ │ │ │ │ ├── GMT-4 │ │ │ │ │ │ │ │ ├── GMT-5 │ │ │ │ │ │ │ │ ├── GMT-6 │ │ │ │ │ │ │ │ ├── GMT-7 │ │ │ │ │ │ │ │ ├── GMT-8 │ │ │ │ │ │ │ │ ├── GMT-9 │ │ │ │ │ │ │ │ ├── GMT0 │ │ │ │ │ │ │ │ ├── Greenwich │ │ │ │ │ │ │ │ ├── UCT │ │ │ │ │ │ │ │ ├── UTC │ │ │ │ │ │ │ │ ├── Universal │ │ │ │ │ │ │ │ └── Zulu │ │ │ │ │ │ │ ├── Europe/ │ │ │ │ │ │ │ │ ├── Amsterdam │ │ │ │ │ │ │ │ ├── Andorra │ │ │ │ │ │ │ │ ├── Astrakhan │ │ │ │ │ │ │ │ ├── Athens │ │ │ │ │ │ │ │ ├── Belfast │ │ │ │ │ │ │ │ ├── Belgrade │ │ │ │ │ │ │ │ ├── Berlin │ │ │ │ │ │ │ │ ├── Bratislava │ │ │ │ │ │ │ │ ├── Brussels │ │ │ │ │ │ │ │ ├── Bucharest │ │ │ │ │ │ │ │ ├── Budapest │ │ │ │ │ │ │ │ ├── Busingen │ │ │ │ │ │ │ │ ├── Chisinau │ │ │ │ │ │ │ │ ├── Copenhagen │ │ │ │ │ │ │ │ ├── Dublin │ │ │ │ │ │ │ │ ├── Gibraltar │ │ │ │ │ │ │ │ ├── Guernsey │ │ │ │ │ │ │ │ ├── Helsinki │ │ │ │ │ │ │ │ ├── Isle_of_Man │ │ │ │ │ │ │ │ ├── Istanbul │ │ │ │ │ │ │ │ ├── Jersey │ │ │ │ │ │ │ │ ├── Kaliningrad │ │ │ │ │ │ │ │ ├── Kiev │ │ │ │ │ │ │ │ ├── Kirov │ │ │ │ │ │ │ │ ├── Kyiv │ │ │ │ │ │ │ │ ├── Lisbon │ │ │ │ │ │ │ │ ├── Ljubljana │ │ │ │ │ │ │ │ ├── London │ │ │ │ │ │ │ │ ├── Luxembourg │ │ │ │ │ │ │ │ ├── Madrid │ │ │ │ │ │ │ │ ├── Malta │ │ │ │ │ │ │ │ ├── Mariehamn │ │ │ │ │ │ │ │ ├── Minsk │ │ │ │ │ │ │ │ ├── Monaco │ │ │ │ │ │ │ │ ├── Moscow │ │ │ │ │ │ │ │ ├── Nicosia │ │ │ │ │ │ │ │ ├── Oslo │ │ │ │ │ │ │ │ ├── Paris │ │ │ │ │ │ │ │ ├── Podgorica │ │ │ │ │ │ │ │ ├── Prague │ │ │ │ │ │ │ │ ├── Riga │ │ │ │ │ │ │ │ ├── Rome │ │ │ │ │ │ │ │ ├── Samara │ │ │ │ │ │ │ │ ├── San_Marino │ │ │ │ │ │ │ │ ├── Sarajevo │ │ │ │ │ │ │ │ ├── Saratov │ │ │ │ │ │ │ │ ├── Simferopol │ │ │ │ │ │ │ │ ├── Skopje │ │ │ │ │ │ │ │ ├── Sofia │ │ │ │ │ │ │ │ ├── Stockholm │ │ │ │ │ │ │ │ ├── Tallinn │ │ │ │ │ │ │ │ ├── Tirane │ │ │ │ │ │ │ │ ├── Tiraspol │ │ │ │ │ │ │ │ ├── Ulyanovsk │ │ │ │ │ │ │ │ ├── Uzhgorod │ │ │ │ │ │ │ │ ├── Vaduz │ │ │ │ │ │ │ │ ├── Vatican │ │ │ │ │ │ │ │ ├── Vienna │ │ │ │ │ │ │ │ ├── Vilnius │ │ │ │ │ │ │ │ ├── Volgograd │ │ │ │ │ │ │ │ ├── Warsaw │ │ │ │ │ │ │ │ ├── Zagreb │ │ │ │ │ │ │ │ ├── Zaporozhye │ │ │ │ │ │ │ │ └── Zurich │ │ │ │ │ │ │ ├── Factory │ │ │ │ │ │ │ ├── GB │ │ │ │ │ │ │ ├── GB-Eire │ │ │ │ │ │ │ ├── GMT │ │ │ │ │ │ │ ├── GMT+0 │ │ │ │ │ │ │ ├── GMT-0 │ │ │ │ │ │ │ ├── GMT0 │ │ │ │ │ │ │ ├── Greenwich │ │ │ │ │ │ │ ├── HST │ │ │ │ │ │ │ ├── Hongkong │ │ │ │ │ │ │ ├── Iceland │ │ │ │ │ │ │ ├── Indian/ │ │ │ │ │ │ │ │ ├── Antananarivo │ │ │ │ │ │ │ │ ├── Chagos │ │ │ │ │ │ │ │ ├── Christmas │ │ │ │ │ │ │ │ ├── Cocos │ │ │ │ │ │ │ │ ├── Comoro │ │ │ │ │ │ │ │ ├── Kerguelen │ │ │ │ │ │ │ │ ├── Mahe │ │ │ │ │ │ │ │ ├── Maldives │ │ │ │ │ │ │ │ ├── Mauritius │ │ │ │ │ │ │ │ ├── Mayotte │ │ │ │ │ │ │ │ └── Reunion │ │ │ │ │ │ │ ├── Iran │ │ │ │ │ │ │ ├── Israel │ │ │ │ │ │ │ ├── Jamaica │ │ │ │ │ │ │ ├── Japan │ │ │ │ │ │ │ ├── Kwajalein │ │ │ │ │ │ │ ├── Libya │ │ │ │ │ │ │ ├── MET │ │ │ │ │ │ │ ├── MST │ │ │ │ │ │ │ ├── MST7MDT │ │ │ │ │ │ │ ├── Mexico/ │ │ │ │ │ │ │ │ ├── BajaNorte │ │ │ │ │ │ │ │ ├── BajaSur │ │ │ │ │ │ │ │ └── General │ │ │ │ │ │ │ ├── NZ │ │ │ │ │ │ │ ├── NZ-CHAT │ │ │ │ │ │ │ ├── Navajo │ │ │ │ │ │ │ ├── PRC │ │ │ │ │ │ │ ├── PST8PDT │ │ │ │ │ │ │ ├── Pacific/ │ │ │ │ │ │ │ │ ├── Apia │ │ │ │ │ │ │ │ ├── Auckland │ │ │ │ │ │ │ │ ├── Bougainville │ │ │ │ │ │ │ │ ├── Chatham │ │ │ │ │ │ │ │ ├── Chuuk │ │ │ │ │ │ │ │ ├── Easter │ │ │ │ │ │ │ │ ├── Efate │ │ │ │ │ │ │ │ ├── Enderbury │ │ │ │ │ │ │ │ ├── Fakaofo │ │ │ │ │ │ │ │ ├── Fiji │ │ │ │ │ │ │ │ ├── Funafuti │ │ │ │ │ │ │ │ ├── Galapagos │ │ │ │ │ │ │ │ ├── Gambier │ │ │ │ │ │ │ │ ├── Guadalcanal │ │ │ │ │ │ │ │ ├── Guam │ │ │ │ │ │ │ │ ├── Honolulu │ │ │ │ │ │ │ │ ├── Johnston │ │ │ │ │ │ │ │ ├── Kanton │ │ │ │ │ │ │ │ ├── Kiritimati │ │ │ │ │ │ │ │ ├── Kosrae │ │ │ │ │ │ │ │ ├── Kwajalein │ │ │ │ │ │ │ │ ├── Majuro │ │ │ │ │ │ │ │ ├── Marquesas │ │ │ │ │ │ │ │ ├── Midway │ │ │ │ │ │ │ │ ├── Nauru │ │ │ │ │ │ │ │ ├── Niue │ │ │ │ │ │ │ │ ├── Norfolk │ │ │ │ │ │ │ │ ├── Noumea │ │ │ │ │ │ │ │ ├── Pago_Pago │ │ │ │ │ │ │ │ ├── Palau │ │ │ │ │ │ │ │ ├── Pitcairn │ │ │ │ │ │ │ │ ├── Pohnpei │ │ │ │ │ │ │ │ ├── Ponape │ │ │ │ │ │ │ │ ├── Port_Moresby │ │ │ │ │ │ │ │ ├── Rarotonga │ │ │ │ │ │ │ │ ├── Saipan │ │ │ │ │ │ │ │ ├── Samoa │ │ │ │ │ │ │ │ ├── Tahiti │ │ │ │ │ │ │ │ ├── Tarawa │ │ │ │ │ │ │ │ ├── Tongatapu │ │ │ │ │ │ │ │ ├── Truk │ │ │ │ │ │ │ │ ├── Wake │ │ │ │ │ │ │ │ ├── Wallis │ │ │ │ │ │ │ │ └── Yap │ │ │ │ │ │ │ ├── Poland │ │ │ │ │ │ │ ├── Portugal │ │ │ │ │ │ │ ├── ROC │ │ │ │ │ │ │ ├── ROK │ │ │ │ │ │ │ ├── Singapore │ │ │ │ │ │ │ ├── Turkey │ │ │ │ │ │ │ ├── UCT │ │ │ │ │ │ │ ├── US/ │ │ │ │ │ │ │ │ ├── Alaska │ │ │ │ │ │ │ │ ├── Aleutian │ │ │ │ │ │ │ │ ├── Arizona │ │ │ │ │ │ │ │ ├── Central │ │ │ │ │ │ │ │ ├── East-Indiana │ │ │ │ │ │ │ │ ├── Eastern │ │ │ │ │ │ │ │ ├── Hawaii │ │ │ │ │ │ │ │ ├── Indiana-Starke │ │ │ │ │ │ │ │ ├── Michigan │ │ │ │ │ │ │ │ ├── Mountain │ │ │ │ │ │ │ │ ├── Pacific │ │ │ │ │ │ │ │ └── Samoa │ │ │ │ │ │ │ ├── UTC │ │ │ │ │ │ │ ├── Universal │ │ │ │ │ │ │ ├── W-SU │ │ │ │ │ │ │ ├── WET │ │ │ │ │ │ │ ├── Zulu │ │ │ │ │ │ │ ├── iso3166.tab │ │ │ │ │ │ │ └── zone1970.tab │ │ │ │ │ │ ├── get_current_time_chrono.inc │ │ │ │ │ │ ├── get_current_time_posix.inc │ │ │ │ │ │ ├── test_util.cc │ │ │ │ │ │ ├── test_util.h │ │ │ │ │ │ └── zoneinfo.inc │ │ │ │ │ ├── time.cc │ │ │ │ │ ├── time.h │ │ │ │ │ ├── time_benchmark.cc │ │ │ │ │ ├── time_test.cc │ │ │ │ │ └── time_zone_test.cc │ │ │ │ ├── types/ │ │ │ │ │ ├── BUILD.bazel │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── any.h │ │ │ │ │ ├── any_exception_safety_test.cc │ │ │ │ │ ├── any_test.cc │ │ │ │ │ ├── bad_any_cast.cc │ │ │ │ │ ├── bad_any_cast.h │ │ │ │ │ ├── bad_optional_access.cc │ │ │ │ │ ├── bad_optional_access.h │ │ │ │ │ ├── bad_variant_access.cc │ │ │ │ │ ├── bad_variant_access.h │ │ │ │ │ ├── compare.h │ │ │ │ │ ├── compare_test.cc │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── conformance_aliases.h │ │ │ │ │ │ ├── conformance_archetype.h │ │ │ │ │ │ ├── conformance_profile.h │ │ │ │ │ │ ├── conformance_testing.h │ │ │ │ │ │ ├── conformance_testing_helpers.h │ │ │ │ │ │ ├── conformance_testing_test.cc │ │ │ │ │ │ ├── optional.h │ │ │ │ │ │ ├── parentheses.h │ │ │ │ │ │ ├── span.h │ │ │ │ │ │ ├── transform_args.h │ │ │ │ │ │ └── variant.h │ │ │ │ │ ├── optional.h │ │ │ │ │ ├── optional_exception_safety_test.cc │ │ │ │ │ ├── optional_test.cc │ │ │ │ │ ├── span.h │ │ │ │ │ ├── span_test.cc │ │ │ │ │ ├── variant.h │ │ │ │ │ ├── variant_benchmark.cc │ │ │ │ │ ├── variant_exception_safety_test.cc │ │ │ │ │ └── variant_test.cc │ │ │ │ └── utility/ │ │ │ │ ├── BUILD.bazel │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── utility.h │ │ │ │ └── utility_test.cc │ │ │ ├── ci/ │ │ │ │ ├── absl_alternate_options.h │ │ │ │ ├── cmake_common.sh │ │ │ │ ├── cmake_install_test.sh │ │ │ │ ├── linux_clang-latest_libcxx_asan_bazel.sh │ │ │ │ ├── linux_clang-latest_libcxx_bazel.sh │ │ │ │ ├── linux_clang-latest_libcxx_tsan_bazel.sh │ │ │ │ ├── linux_clang-latest_libstdcxx_bazel.sh │ │ │ │ ├── linux_docker_containers.sh │ │ │ │ ├── linux_gcc-floor_libstdcxx_bazel.sh │ │ │ │ ├── linux_gcc-latest_libstdcxx_bazel.sh │ │ │ │ ├── linux_gcc-latest_libstdcxx_cmake.sh │ │ │ │ ├── linux_gcc_alpine_cmake.sh │ │ │ │ ├── macos_xcode_bazel.sh │ │ │ │ └── macos_xcode_cmake.sh │ │ │ ├── conanfile.py │ │ │ └── create_lts.py │ │ ├── tools_webrtc/ │ │ │ ├── BUILD.gn │ │ │ ├── OWNERS │ │ │ ├── PRESUBMIT.py │ │ │ ├── __init__.py │ │ │ ├── android/ │ │ │ │ ├── OWNERS │ │ │ │ ├── __init__.py │ │ │ │ ├── adb_shell.sh │ │ │ │ ├── build_aar.py │ │ │ │ ├── profiling/ │ │ │ │ │ ├── perf_setup.sh │ │ │ │ │ └── utilities.sh │ │ │ │ ├── templates/ │ │ │ │ │ ├── maven-repository.jinja │ │ │ │ │ └── pom.jinja │ │ │ │ └── test_aar.py │ │ │ ├── apple/ │ │ │ │ ├── copy_framework_header.py │ │ │ │ └── copy_framework_header_test.py │ │ │ ├── audio_quality/ │ │ │ │ ├── README │ │ │ │ ├── linux/ │ │ │ │ │ ├── PolqaOem64.sha1 │ │ │ │ │ └── pesq.sha1 │ │ │ │ ├── mac/ │ │ │ │ │ └── pesq.sha1 │ │ │ │ └── win/ │ │ │ │ ├── PolqaOem64.dll.sha1 │ │ │ │ ├── PolqaOem64.exe.sha1 │ │ │ │ ├── pesq.exe.sha1 │ │ │ │ └── vcomp120.dll.sha1 │ │ │ ├── autoroller/ │ │ │ │ ├── roll_deps.py │ │ │ │ └── unittests/ │ │ │ │ ├── roll_deps_test.py │ │ │ │ └── testdata/ │ │ │ │ └── roll_deps/ │ │ │ │ ├── DEPS │ │ │ │ ├── DEPS.chromium.new │ │ │ │ ├── DEPS.chromium.with_android_deps │ │ │ │ └── DEPS.with_android_deps │ │ │ ├── binary_version_check.py │ │ │ ├── clang_tidy.py │ │ │ ├── coverage/ │ │ │ │ ├── generate_coverage_command.py │ │ │ │ └── generate_ios_coverage_command.py │ │ │ ├── cpu/ │ │ │ │ ├── OWNERS │ │ │ │ ├── README │ │ │ │ └── cpu_mon.py │ │ │ ├── download_tools.py │ │ │ ├── ensure_webcam_is_running.py │ │ │ ├── executable_host_build.py │ │ │ ├── flags_compatibility.py │ │ │ ├── get_landmines.py │ │ │ ├── gn_check_autofix.py │ │ │ ├── gtest-parallel-wrapper.py │ │ │ ├── gtest_parallel_wrapper_test.py │ │ │ ├── ios/ │ │ │ │ ├── OWNERS │ │ │ │ ├── build_ios_libs.py │ │ │ │ ├── build_ios_libs.sh │ │ │ │ ├── generate_modulemap.py │ │ │ │ ├── generate_umbrella_header.py │ │ │ │ ├── merge_ios_libs.py │ │ │ │ ├── no_op.cc │ │ │ │ └── objc_app.plist │ │ │ ├── iwyu/ │ │ │ │ ├── apply-iwyu │ │ │ │ ├── iwyu │ │ │ │ └── iwyu-filter-list │ │ │ ├── libs/ │ │ │ │ ├── __init__.py │ │ │ │ ├── generate_licenses.py │ │ │ │ └── generate_licenses_test.py │ │ │ ├── matlab/ │ │ │ │ ├── maxUnwrap.m │ │ │ │ ├── parseLog.m │ │ │ │ └── rtpAnalyze.m │ │ │ ├── mb/ │ │ │ │ ├── OWNERS │ │ │ │ ├── PRESUBMIT.py │ │ │ │ ├── README.md │ │ │ │ ├── docs/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── design_spec.md │ │ │ │ │ └── user_guide.md │ │ │ │ ├── gn_isolate_map.pyl │ │ │ │ ├── mb │ │ │ │ ├── mb.bat │ │ │ │ ├── mb.py │ │ │ │ ├── mb_config.pyl │ │ │ │ └── mb_unittest.py │ │ │ ├── msan/ │ │ │ │ └── suppressions.txt │ │ │ ├── network_emulator/ │ │ │ │ ├── config.py │ │ │ │ ├── emulate.py │ │ │ │ └── network_emulator.py │ │ │ ├── perf/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── catapult_uploader.py │ │ │ │ └── webrtc_dashboard_upload.py │ │ │ ├── presubmit_checks_lib/ │ │ │ │ ├── __init__.py │ │ │ │ ├── build_helpers.py │ │ │ │ ├── build_helpers_test.py │ │ │ │ ├── check_orphan_headers.py │ │ │ │ ├── check_orphan_headers_test.py │ │ │ │ ├── check_package_boundaries.py │ │ │ │ ├── check_package_boundaries_test.py │ │ │ │ └── testdata/ │ │ │ │ ├── all_build_files/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── expected.pyl │ │ │ │ │ ├── subpackage1/ │ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ │ └── subsubpackage1/ │ │ │ │ │ │ └── BUILD.gn │ │ │ │ │ └── subpackage2/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ └── subsubpackage2/ │ │ │ │ │ └── BUILD.gn │ │ │ │ ├── circular_dependency/ │ │ │ │ │ ├── .gn │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ └── BUILDCONFIG.gn │ │ │ │ ├── common_prefix/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── call/ │ │ │ │ │ │ └── BUILD.gn │ │ │ │ │ └── expected.pyl │ │ │ │ ├── dangerous_filename/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── expected.pyl │ │ │ │ │ └── libc++/ │ │ │ │ │ └── BUILD.gn │ │ │ │ ├── multiple_errors_multiple_targets/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── expected.pyl │ │ │ │ │ ├── subpackage1/ │ │ │ │ │ │ └── BUILD.gn │ │ │ │ │ └── subpackage2/ │ │ │ │ │ └── BUILD.gn │ │ │ │ ├── multiple_errors_single_target/ │ │ │ │ │ ├── BUILD.gn │ │ │ │ │ ├── expected.pyl │ │ │ │ │ └── subpackage/ │ │ │ │ │ └── BUILD.gn │ │ │ │ └── no_errors/ │ │ │ │ ├── BUILD.gn │ │ │ │ └── expected.pyl │ │ │ ├── sanitizers/ │ │ │ │ ├── README │ │ │ │ ├── lsan_suppressions_webrtc.cc │ │ │ │ └── tsan_suppressions_webrtc.cc │ │ │ ├── sslroots/ │ │ │ │ ├── README.md │ │ │ │ └── generate_sslroots.py │ │ │ ├── ubsan/ │ │ │ │ ├── suppressions.txt │ │ │ │ └── vptr_suppressions.txt │ │ │ ├── version_updater/ │ │ │ │ └── update_version.py │ │ │ ├── video_quality_toolchain/ │ │ │ │ ├── README │ │ │ │ ├── linux/ │ │ │ │ │ └── ffmpeg.sha1 │ │ │ │ ├── mac/ │ │ │ │ │ └── ffmpeg.sha1 │ │ │ │ └── win/ │ │ │ │ ├── cygEMF-1.dll.sha1 │ │ │ │ ├── cygICE-6.dll.sha1 │ │ │ │ ├── cygMagick++-1.dll.sha1 │ │ │ │ ├── cygMagick++-5.dll.sha1 │ │ │ │ ├── cygMagickCore-1.dll.sha1 │ │ │ │ ├── cygMagickCore-5.dll.sha1 │ │ │ │ ├── cygMagickWand-1.dll.sha1 │ │ │ │ ├── cygMagickWand-5.dll.sha1 │ │ │ │ ├── cygSM-6.dll.sha1 │ │ │ │ ├── cygX11-6.dll.sha1 │ │ │ │ ├── cygXau-6.dll.sha1 │ │ │ │ ├── cygXaw-7.dll.sha1 │ │ │ │ ├── cygXdmcp-6.dll.sha1 │ │ │ │ ├── cygXext-6.dll.sha1 │ │ │ │ ├── cygXft-2.dll.sha1 │ │ │ │ ├── cygXmu-6.dll.sha1 │ │ │ │ ├── cygXpm-4.dll.sha1 │ │ │ │ ├── cygXrender-1.dll.sha1 │ │ │ │ ├── cygXt-6.dll.sha1 │ │ │ │ ├── cygattr-1.dll.sha1 │ │ │ │ ├── cygautotrace-3.dll.sha1 │ │ │ │ ├── cygbz2-1.dll.sha1 │ │ │ │ ├── cygcairo-2.dll.sha1 │ │ │ │ ├── cygcairo-gobject-2.dll.sha1 │ │ │ │ ├── cygcairo-script-interpreter-2.dll.sha1 │ │ │ │ ├── cygcharset-1.dll.sha1 │ │ │ │ ├── cygcroco-0.6-3.dll.sha1 │ │ │ │ ├── cygcrypt-0.dll.sha1 │ │ │ │ ├── cygcrypto-0.9.8.dll.sha1 │ │ │ │ ├── cygcrypto-1.0.0.dll.sha1 │ │ │ │ ├── cygdatrie-1.dll.sha1 │ │ │ │ ├── cygdb-4.5.dll.sha1 │ │ │ │ ├── cygdb_cxx-4.5.dll.sha1 │ │ │ │ ├── cygdbus-1-3.dll.sha1 │ │ │ │ ├── cygexpat-1.dll.sha1 │ │ │ │ ├── cygfam-0.dll.sha1 │ │ │ │ ├── cygffi-4.dll.sha1 │ │ │ │ ├── cygfftw3-3.dll.sha1 │ │ │ │ ├── cygfftw3_threads-3.dll.sha1 │ │ │ │ ├── cygfftw3f-3.dll.sha1 │ │ │ │ ├── cygfftw3f_threads-3.dll.sha1 │ │ │ │ ├── cygfontconfig-1.dll.sha1 │ │ │ │ ├── cygform-10.dll.sha1 │ │ │ │ ├── cygformw-10.dll.sha1 │ │ │ │ ├── cygfpx-1.dll.sha1 │ │ │ │ ├── cygfreetype-6.dll.sha1 │ │ │ │ ├── cyggcc_s-1.dll.sha1 │ │ │ │ ├── cyggd-2.dll.sha1 │ │ │ │ ├── cyggdbm-4.dll.sha1 │ │ │ │ ├── cyggdbm_compat-4.dll.sha1 │ │ │ │ ├── cyggdk_pixbuf-2.0-0.dll.sha1 │ │ │ │ ├── cyggif-4.dll.sha1 │ │ │ │ ├── cyggio-2.0-0.dll.sha1 │ │ │ │ ├── cygglib-2.0-0.dll.sha1 │ │ │ │ ├── cyggmodule-2.0-0.dll.sha1 │ │ │ │ ├── cyggmp-3.dll.sha1 │ │ │ │ ├── cyggobject-2.0-0.dll.sha1 │ │ │ │ ├── cyggomp-1.dll.sha1 │ │ │ │ ├── cyggraphite2-3.dll.sha1 │ │ │ │ ├── cyggs-9.dll.sha1 │ │ │ │ ├── cyggthread-2.0-0.dll.sha1 │ │ │ │ ├── cygharfbuzz-0.dll.sha1 │ │ │ │ ├── cyghistory7.dll.sha1 │ │ │ │ ├── cygicons-0.dll.sha1 │ │ │ │ ├── cygiconv-2.dll.sha1 │ │ │ │ ├── cygicudata.dll.sha1 │ │ │ │ ├── cygicudata48.dll.sha1 │ │ │ │ ├── cygicui18n.dll.sha1 │ │ │ │ ├── cygicui18n48.dll.sha1 │ │ │ │ ├── cygicuio.dll.sha1 │ │ │ │ ├── cygicuio48.dll.sha1 │ │ │ │ ├── cygicule.dll.sha1 │ │ │ │ ├── cygicule48.dll.sha1 │ │ │ │ ├── cygiculx.dll.sha1 │ │ │ │ ├── cygiculx48.dll.sha1 │ │ │ │ ├── cygicutest.dll.sha1 │ │ │ │ ├── cygicutest48.dll.sha1 │ │ │ │ ├── cygicuuc.dll.sha1 │ │ │ │ ├── cygicuuc48.dll.sha1 │ │ │ │ ├── cygidn-11.dll.sha1 │ │ │ │ ├── cygintl-3.dll.sha1 │ │ │ │ ├── cygintl-8.dll.sha1 │ │ │ │ ├── cygjasper-1.dll.sha1 │ │ │ │ ├── cygjbig-2.dll.sha1 │ │ │ │ ├── cygjpeg-7.dll.sha1 │ │ │ │ ├── cygjpeg-8.dll.sha1 │ │ │ │ ├── cyglcms-1.dll.sha1 │ │ │ │ ├── cyglcms2-2.dll.sha1 │ │ │ │ ├── cyglsa.dll.sha1 │ │ │ │ ├── cyglsa64.dll.sha1 │ │ │ │ ├── cygltdl-7.dll.sha1 │ │ │ │ ├── cyglzma-5.dll.sha1 │ │ │ │ ├── cygmagic-1.dll.sha1 │ │ │ │ ├── cygmenu-10.dll.sha1 │ │ │ │ ├── cygmenuw-10.dll.sha1 │ │ │ │ ├── cygming-1.dll.sha1 │ │ │ │ ├── cygmp-3.dll.sha1 │ │ │ │ ├── cygncurses++-10.dll.sha1 │ │ │ │ ├── cygncurses++w-10.dll.sha1 │ │ │ │ ├── cygncurses-10.dll.sha1 │ │ │ │ ├── cygncursesw-10.dll.sha1 │ │ │ │ ├── cygpanel-10.dll.sha1 │ │ │ │ ├── cygpanelw-10.dll.sha1 │ │ │ │ ├── cygpango-1.0-0.dll.sha1 │ │ │ │ ├── cygpangocairo-1.0-0.dll.sha1 │ │ │ │ ├── cygpangoft2-1.0-0.dll.sha1 │ │ │ │ ├── cygpangoxft-1.0-0.dll.sha1 │ │ │ │ ├── cygpaper-1.dll.sha1 │ │ │ │ ├── cygpcre-0.dll.sha1 │ │ │ │ ├── cygpcre-1.dll.sha1 │ │ │ │ ├── cygperl5_14.dll.sha1 │ │ │ │ ├── cygpixman-1-0.dll.sha1 │ │ │ │ ├── cygplotter-2.dll.sha1 │ │ │ │ ├── cygpng12.dll.sha1 │ │ │ │ ├── cygpng14-14.dll.sha1 │ │ │ │ ├── cygpng15-15.dll.sha1 │ │ │ │ ├── cygpopt-0.dll.sha1 │ │ │ │ ├── cygpstoedit-0.dll.sha1 │ │ │ │ ├── cygreadline7.dll.sha1 │ │ │ │ ├── cygrsvg-2-2.dll.sha1 │ │ │ │ ├── cygsigsegv-2.dll.sha1 │ │ │ │ ├── cygsqlite3-0.dll.sha1 │ │ │ │ ├── cygssl-0.9.8.dll.sha1 │ │ │ │ ├── cygssl-1.0.0.dll.sha1 │ │ │ │ ├── cygssp-0.dll.sha1 │ │ │ │ ├── cygstdc++-6.dll.sha1 │ │ │ │ ├── cygthai-0.dll.sha1 │ │ │ │ ├── cygtic-10.dll.sha1 │ │ │ │ ├── cygticw-10.dll.sha1 │ │ │ │ ├── cygtiff-5.dll.sha1 │ │ │ │ ├── cygtiffxx-5.dll.sha1 │ │ │ │ ├── cyguuid-1.dll.sha1 │ │ │ │ ├── cygwin1.dll.sha1 │ │ │ │ ├── cygxcb-1.dll.sha1 │ │ │ │ ├── cygxcb-render-0.dll.sha1 │ │ │ │ ├── cygxcb-shm-0.dll.sha1 │ │ │ │ ├── cygxml2-2.dll.sha1 │ │ │ │ ├── cygz.dll.sha1 │ │ │ │ ├── ffmpeg.exe.sha1 │ │ │ │ ├── libgomp-1.dll.sha1 │ │ │ │ ├── pthreadgc2.dll.sha1 │ │ │ │ └── zlib1.dll.sha1 │ │ │ ├── vim/ │ │ │ │ └── webrtc.ycm_extra_conf.py │ │ │ └── whitespace.txt │ │ ├── video/ │ │ │ ├── BUILD.gn │ │ │ ├── DEPS │ │ │ ├── OWNERS │ │ │ ├── adaptation/ │ │ │ │ ├── BUILD.gn │ │ │ │ ├── OWNERS │ │ │ │ ├── balanced_constraint.cc │ │ │ │ ├── balanced_constraint.h │ │ │ │ ├── bitrate_constraint.cc │ │ │ │ ├── bitrate_constraint.h │ │ │ │ ├── bitrate_constraint_unittest.cc │ │ │ │ ├── encode_usage_resource.cc │ │ │ │ ├── encode_usage_resource.h │ │ │ │ ├── overuse_frame_detector.cc │ │ │ │ ├── overuse_frame_detector.h │ │ │ │ ├── overuse_frame_detector_unittest.cc │ │ │ │ ├── pixel_limit_resource.cc │ │ │ │ ├── pixel_limit_resource.h │ │ │ │ ├── pixel_limit_resource_unittest.cc │ │ │ │ ├── quality_rampup_experiment_helper.cc │ │ │ │ ├── quality_rampup_experiment_helper.h │ │ │ │ ├── quality_scaler_resource.cc │ │ │ │ ├── quality_scaler_resource.h │ │ │ │ ├── quality_scaler_resource_unittest.cc │ │ │ │ ├── video_stream_encoder_resource.cc │ │ │ │ ├── video_stream_encoder_resource.h │ │ │ │ ├── video_stream_encoder_resource_manager.cc │ │ │ │ └── video_stream_encoder_resource_manager.h │ │ │ ├── alignment_adjuster.cc │ │ │ ├── alignment_adjuster.h │ │ │ ├── alignment_adjuster_unittest.cc │ │ │ ├── buffered_frame_decryptor.cc │ │ │ ├── buffered_frame_decryptor.h │ │ │ ├── buffered_frame_decryptor_unittest.cc │ │ │ ├── call_stats.cc │ │ │ ├── call_stats.h │ │ │ ├── call_stats2.cc │ │ │ ├── call_stats2.h │ │ │ ├── call_stats2_unittest.cc │ │ │ ├── call_stats_unittest.cc │ │ │ ├── cpu_scaling_tests.cc │ │ │ ├── encoder_bitrate_adjuster.cc │ │ │ ├── encoder_bitrate_adjuster.h │ │ │ ├── encoder_bitrate_adjuster_unittest.cc │ │ │ ├── encoder_overshoot_detector.cc │ │ │ ├── encoder_overshoot_detector.h │ │ │ ├── encoder_overshoot_detector_unittest.cc │ │ │ ├── encoder_rtcp_feedback.cc │ │ │ ├── encoder_rtcp_feedback.h │ │ │ ├── encoder_rtcp_feedback_unittest.cc │ │ │ ├── end_to_end_tests/ │ │ │ │ ├── bandwidth_tests.cc │ │ │ │ ├── call_operation_tests.cc │ │ │ │ ├── codec_tests.cc │ │ │ │ ├── config_tests.cc │ │ │ │ ├── extended_reports_tests.cc │ │ │ │ ├── fec_tests.cc │ │ │ │ ├── frame_encryption_tests.cc │ │ │ │ ├── histogram_tests.cc │ │ │ │ ├── multi_codec_receive_tests.cc │ │ │ │ ├── multi_stream_tester.cc │ │ │ │ ├── multi_stream_tester.h │ │ │ │ ├── multi_stream_tests.cc │ │ │ │ ├── network_state_tests.cc │ │ │ │ ├── resolution_bitrate_limits_tests.cc │ │ │ │ ├── retransmission_tests.cc │ │ │ │ ├── rtp_rtcp_tests.cc │ │ │ │ ├── ssrc_tests.cc │ │ │ │ ├── stats_tests.cc │ │ │ │ └── transport_feedback_tests.cc │ │ │ ├── frame_dumping_decoder.cc │ │ │ ├── frame_dumping_decoder.h │ │ │ ├── frame_encode_metadata_writer.cc │ │ │ ├── frame_encode_metadata_writer.h │ │ │ ├── frame_encode_metadata_writer_unittest.cc │ │ │ ├── full_stack_tests.cc │ │ │ ├── full_stack_tests_plot.py │ │ │ ├── g3doc/ │ │ │ │ ├── adaptation.md │ │ │ │ └── stats.md │ │ │ ├── pc_full_stack_tests.cc │ │ │ ├── picture_id_tests.cc │ │ │ ├── quality_limitation_reason_tracker.cc │ │ │ ├── quality_limitation_reason_tracker.h │ │ │ ├── quality_limitation_reason_tracker_unittest.cc │ │ │ ├── quality_scaling_tests.cc │ │ │ ├── quality_threshold.cc │ │ │ ├── quality_threshold.h │ │ │ ├── quality_threshold_unittest.cc │ │ │ ├── receive_statistics_proxy.cc │ │ │ ├── receive_statistics_proxy.h │ │ │ ├── receive_statistics_proxy2.cc │ │ │ ├── receive_statistics_proxy2.h │ │ │ ├── receive_statistics_proxy2_unittest.cc │ │ │ ├── receive_statistics_proxy_unittest.cc │ │ │ ├── report_block_stats.cc │ │ │ ├── report_block_stats.h │ │ │ ├── report_block_stats_unittest.cc │ │ │ ├── rtp_streams_synchronizer.cc │ │ │ ├── rtp_streams_synchronizer.h │ │ │ ├── rtp_streams_synchronizer2.cc │ │ │ ├── rtp_streams_synchronizer2.h │ │ │ ├── rtp_video_stream_receiver.cc │ │ │ ├── rtp_video_stream_receiver.h │ │ │ ├── rtp_video_stream_receiver2.cc │ │ │ ├── rtp_video_stream_receiver2.h │ │ │ ├── rtp_video_stream_receiver2_unittest.cc │ │ │ ├── rtp_video_stream_receiver_frame_transformer_delegate.cc │ │ │ ├── rtp_video_stream_receiver_frame_transformer_delegate.h │ │ │ ├── rtp_video_stream_receiver_frame_transformer_delegate_unittest.cc │ │ │ ├── rtp_video_stream_receiver_unittest.cc │ │ │ ├── screenshare_loopback.cc │ │ │ ├── send_delay_stats.cc │ │ │ ├── send_delay_stats.h │ │ │ ├── send_delay_stats_unittest.cc │ │ │ ├── send_statistics_proxy.cc │ │ │ ├── send_statistics_proxy.h │ │ │ ├── send_statistics_proxy_unittest.cc │ │ │ ├── stats_counter.cc │ │ │ ├── stats_counter.h │ │ │ ├── stats_counter_unittest.cc │ │ │ ├── stream_synchronization.cc │ │ │ ├── stream_synchronization.h │ │ │ ├── stream_synchronization_unittest.cc │ │ │ ├── sv_loopback.cc │ │ │ ├── test/ │ │ │ │ └── mock_video_stream_encoder.h │ │ │ ├── transport_adapter.cc │ │ │ ├── transport_adapter.h │ │ │ ├── video_analyzer.cc │ │ │ ├── video_analyzer.h │ │ │ ├── video_loopback.cc │ │ │ ├── video_loopback.h │ │ │ ├── video_loopback_main.cc │ │ │ ├── video_loopback_main.mm │ │ │ ├── video_quality_observer.cc │ │ │ ├── video_quality_observer.h │ │ │ ├── video_quality_observer2.cc │ │ │ ├── video_quality_observer2.h │ │ │ ├── video_quality_test.cc │ │ │ ├── video_quality_test.h │ │ │ ├── video_receive_stream.cc │ │ │ ├── video_receive_stream.h │ │ │ ├── video_receive_stream2.cc │ │ │ ├── video_receive_stream2.h │ │ │ ├── video_receive_stream2_unittest.cc │ │ │ ├── video_receive_stream_unittest.cc │ │ │ ├── video_send_stream.cc │ │ │ ├── video_send_stream.h │ │ │ ├── video_send_stream_impl.cc │ │ │ ├── video_send_stream_impl.h │ │ │ ├── video_send_stream_impl_unittest.cc │ │ │ ├── video_send_stream_tests.cc │ │ │ ├── video_source_sink_controller.cc │ │ │ ├── video_source_sink_controller.h │ │ │ ├── video_source_sink_controller_unittest.cc │ │ │ ├── video_stream_decoder.cc │ │ │ ├── video_stream_decoder.h │ │ │ ├── video_stream_decoder2.cc │ │ │ ├── video_stream_decoder2.h │ │ │ ├── video_stream_decoder_impl.cc │ │ │ ├── video_stream_decoder_impl.h │ │ │ ├── video_stream_decoder_impl_unittest.cc │ │ │ ├── video_stream_encoder.cc │ │ │ ├── video_stream_encoder.h │ │ │ └── video_stream_encoder_unittest.cc │ │ ├── webrtc.gni │ │ ├── webrtc_lib_link_test.cc │ │ └── whitespace.txt │ ├── gradle.properties │ ├── proguard-rules.pro │ ├── scripts/ │ │ ├── common.sh │ │ ├── format.sh │ │ ├── get-dep.sh │ │ └── jni-generator.sh │ └── src/ │ ├── androidTest/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ ├── audio_video.sdp │ │ │ ├── jssip.sdp │ │ │ └── webrtc.sdp │ │ ├── java/ │ │ │ └── org/ │ │ │ └── mediasoup/ │ │ │ └── droid/ │ │ │ ├── BaseTest.java │ │ │ ├── DeviceTest.java │ │ │ ├── FakeTransportListener.java │ │ │ ├── LoggerTest.java │ │ │ ├── MediasoupClientTest.java │ │ │ ├── PeerConnectionTest.java │ │ │ ├── PeerConnectionUtils.java │ │ │ ├── Utils.java │ │ │ └── data/ │ │ │ └── Parameters.java │ │ └── jni/ │ │ ├── generated_mediasoupclient_jni/ │ │ │ └── jni/ │ │ │ └── Parameters_jni.h │ │ └── parameters_jni.cpp │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── org/ │ │ │ ├── mediasoup/ │ │ │ │ └── droid/ │ │ │ │ ├── Consumer.java │ │ │ │ ├── DataConsumer.java │ │ │ │ ├── DataProducer.java │ │ │ │ ├── Device.java │ │ │ │ ├── Logger.java │ │ │ │ ├── MediasoupClient.java │ │ │ │ ├── MediasoupException.java │ │ │ │ ├── PeerConnection.java │ │ │ │ ├── Producer.java │ │ │ │ ├── RecvTransport.java │ │ │ │ ├── SendTransport.java │ │ │ │ └── Transport.java │ │ │ └── webrtc/ │ │ │ └── RTCUtils.java │ │ ├── jni/ │ │ │ ├── consumer_jni.cpp │ │ │ ├── data_consumer_jni.cpp │ │ │ ├── data_producer_jni.cpp │ │ │ ├── device_jni.cpp │ │ │ ├── generated_mediasoupclient_jni/ │ │ │ │ └── jni/ │ │ │ │ ├── Consumer_jni.h │ │ │ │ ├── DataConsumer_jni.h │ │ │ │ ├── DataProducer_jni.h │ │ │ │ ├── Device_jni.h │ │ │ │ ├── Logger_jni.h │ │ │ │ ├── MediasoupClient_jni.h │ │ │ │ ├── Parameters_jni.h │ │ │ │ ├── PeerConnection_jni.h │ │ │ │ ├── Producer_jni.h │ │ │ │ ├── RecvTransport_jni.h │ │ │ │ ├── SendTransport_jni.h │ │ │ │ └── Transport_jni.h │ │ │ ├── include/ │ │ │ │ ├── common_jni.h │ │ │ │ ├── consumer_jni.h │ │ │ │ ├── data_consumer_jni.h │ │ │ │ ├── data_producer_jni.h │ │ │ │ ├── java_types.h │ │ │ │ ├── jni_generator_helper.h │ │ │ │ ├── peerconnection_jni.h │ │ │ │ ├── producer_jni.h │ │ │ │ ├── scoped_java_ref.h │ │ │ │ └── transport_jni.h │ │ │ ├── java_types.cpp │ │ │ ├── jni_generator_helper.cpp │ │ │ ├── jni_onload.cpp │ │ │ ├── logger_jni.cpp │ │ │ ├── mediasoup_client_jni.cpp │ │ │ ├── peerconnection_jni.cpp │ │ │ ├── producer_jni.cpp │ │ │ ├── scoped_java_ref.cpp │ │ │ └── transport_jni.cpp │ │ └── res/ │ │ └── values/ │ │ └── strings.xml │ └── test/ │ └── java/ │ └── org/ │ └── mediasoup/ │ └── droid/ │ └── ExampleUnitTest.java └── settings.gradle