实例介绍
webrtc自带的peerconnection client&server;的源代码,可使用vs2017编译和调试.
【实例截图】
【核心代码】
16359647401995718495.zip
├── bfWebRTC
│ ├── bfWebRTC.vcxproj
│ ├── bfWebRTC.vcxproj.filters
│ ├── bfWebRTC.vcxproj.user
│ ├── conductor.cc
│ ├── conductor.h
│ ├── defaults.cc
│ ├── defaults.h
│ ├── flagdefs.h
│ ├── hidden_main_wnd.cpp
│ ├── hidden_main_wnd.h
│ ├── json_batchallocator.h
│ ├── json.cc
│ ├── json_internalarray.inl
│ ├── json_internalmap.inl
│ ├── json_reader.cpp
│ ├── json_tool.h
│ ├── json_value.cpp
│ ├── json_valueiterator.inl
│ ├── json_writer.cpp
│ ├── main.cc
│ ├── main_wnd.cc
│ ├── main_wnd.h
│ ├── peer_connection_client.cc
│ ├── peer_connection_client.h
│ └── relayserver.cc
├── bfWebRTCServer
│ ├── bfWebRTCServer.cpp
│ ├── bfWebRTCServer.vcxproj
│ ├── bfWebRTCServer.vcxproj.filters
│ ├── bfWebRTCServer.vcxproj.user
│ ├── data_socket.cc
│ ├── data_socket.h
│ ├── main.cc
│ ├── peer_channel.cc
│ ├── peer_channel.h
│ ├── relay_log.txt
│ ├── relayserver.cc
│ ├── stdafx.cpp
│ ├── stdafx.h
│ ├── targetver.h
│ ├── utils.cc
│ └── utils.h
├── bfWebRTC.sln
├── bfWebRTC项目导读.docx
├── include
│ ├── api
│ │ ├── array_view.h
│ │ ├── audio
│ │ │ ├── audio_frame.cc
│ │ │ ├── audio_frame.h
│ │ │ ├── audio_mixer.h
│ │ │ ├── BUILD.gn
│ │ │ ├── echo_canceller3_config.cc
│ │ │ ├── echo_canceller3_config.h
│ │ │ ├── echo_canceller3_factory.cc
│ │ │ ├── echo_canceller3_factory.h
│ │ │ ├── echo_control.h
│ │ │ ├── OWNERS
│ │ │ └── test
│ │ │ ├── audio_frame_unittest.cc
│ │ │ └── BUILD.gn
│ │ ├── audio_codecs
│ │ │ ├── audio_codec_pair_id.cc
│ │ │ ├── audio_codec_pair_id.h
│ │ │ ├── audio_decoder.cc
│ │ │ ├── audio_decoder_factory.cc
│ │ │ ├── audio_decoder_factory.h
│ │ │ ├── audio_decoder_factory_template.h
│ │ │ ├── audio_decoder.h
│ │ │ ├── audio_encoder.cc
│ │ │ ├── audio_encoder_factory.cc
│ │ │ ├── audio_encoder_factory.h
│ │ │ ├── audio_encoder_factory_template.h
│ │ │ ├── audio_encoder.h
│ │ │ ├── audio_format.cc
│ │ │ ├── audio_format.h
│ │ │ ├── BUILD.gn
│ │ │ ├── builtin_audio_decoder_factory.cc
│ │ │ ├── builtin_audio_decoder_factory.h
│ │ │ ├── builtin_audio_encoder_factory.cc
│ │ │ ├── builtin_audio_encoder_factory.h
│ │ │ ├── g711
│ │ │ │ ├── audio_decoder_g711.cc
│ │ │ │ ├── audio_decoder_g711.h
│ │ │ │ ├── audio_encoder_g711.cc
│ │ │ │ ├── audio_encoder_g711.h
│ │ │ │ └── BUILD.gn
│ │ │ ├── g722
│ │ │ │ ├── audio_decoder_g722.cc
│ │ │ │ ├── audio_decoder_g722.h
│ │ │ │ ├── audio_encoder_g722.cc
│ │ │ │ ├── audio_encoder_g722_config.h
│ │ │ │ ├── audio_encoder_g722.h
│ │ │ │ └── BUILD.gn
│ │ │ ├── ilbc
│ │ │ │ ├── audio_decoder_ilbc.cc
│ │ │ │ ├── audio_decoder_ilbc.h
│ │ │ │ ├── audio_encoder_ilbc.cc
│ │ │ │ ├── audio_encoder_ilbc_config.h
│ │ │ │ ├── audio_encoder_ilbc.h
│ │ │ │ └── BUILD.gn
│ │ │ ├── isac
│ │ │ │ ├── audio_decoder_isac_fix.cc
│ │ │ │ ├── audio_decoder_isac_fix.h
│ │ │ │ ├── audio_decoder_isac_float.cc
│ │ │ │ ├── audio_decoder_isac_float.h
│ │ │ │ ├── audio_decoder_isac.h
│ │ │ │ ├── audio_encoder_isac_fix.cc
│ │ │ │ ├── audio_encoder_isac_fix.h
│ │ │ │ ├── audio_encoder_isac_float.cc
│ │ │ │ ├── audio_encoder_isac_float.h
│ │ │ │ ├── audio_encoder_isac.h
│ │ │ │ └── BUILD.gn
│ │ │ ├── L16
│ │ │ │ ├── audio_decoder_L16.cc
│ │ │ │ ├── audio_decoder_L16.h
│ │ │ │ ├── audio_encoder_L16.cc
│ │ │ │ ├── audio_encoder_L16.h
│ │ │ │ └── BUILD.gn
│ │ │ ├── opus
│ │ │ │ ├── audio_decoder_opus.cc
│ │ │ │ ├── audio_decoder_opus.h
│ │ │ │ ├── audio_encoder_opus.cc
│ │ │ │ ├── audio_encoder_opus_config.cc
│ │ │ │ ├── audio_encoder_opus_config.h
│ │ │ │ ├── audio_encoder_opus.h
│ │ │ │ └── BUILD.gn
│ │ │ ├── OWNERS
│ │ │ └── test
│ │ │ ├── audio_decoder_factory_template_unittest.cc
│ │ │ ├── audio_encoder_factory_template_unittest.cc
│ │ │ └── BUILD.gn
│ │ ├── audio_options.h
│ │ ├── call
│ │ │ ├── audio_sink.h
│ │ │ ├── callfactoryinterface.h
│ │ │ ├── transport.cc
│ │ │ └── transport.h
│ │ ├── candidate.h
│ │ ├── cryptoparams.h
│ │ ├── datachannelinterface.h
│ │ ├── dtmfsenderinterface.h
│ │ ├── fakemetricsobserver.h
│ │ ├── fec_controller.h
│ │ ├── jsep.h
│ │ ├── jsepicecandidate.h
│ │ ├── jsepsessiondescription.h
│ │ ├── mediaconstraintsinterface.h
│ │ ├── mediastreaminterface.h
│ │ ├── mediastreamproxy.h
│ │ ├── mediastreamtrackproxy.h
│ │ ├── mediatypes.h
│ │ ├── notifier.h
│ │ ├── optional.h
│ │ ├── ortc
│ │ │ ├── mediadescription.cc
│ │ │ ├── mediadescription.h
│ │ │ ├── mediadescription_unittest.cc
│ │ │ ├── ortcfactoryinterface.h
│ │ │ ├── ortcrtpreceiverinterface.h
│ │ │ ├── ortcrtpsenderinterface.h
│ │ │ ├── packettransportinterface.h
│ │ │ ├── rtptransportcontrollerinterface.h
│ │ │ ├── rtptransportinterface.h
│ │ │ ├── sessiondescription.cc
│ │ │ ├── sessiondescription.h
│ │ │ ├── sessiondescription_unittest.cc
│ │ │ ├── srtptransportinterface.h
│ │ │ └── udptransportinterface.h
│ │ ├── peerconnectionfactoryproxy.h
│ │ ├── peerconnectioninterface.h
│ │ ├── peerconnectionproxy.h
│ │ ├── proxy.h
│ │ ├── refcountedbase.h
│ │ ├── rtcerror.h
│ │ ├── rtceventlogoutput.h
│ │ ├── rtp_headers.h
│ │ ├── rtpparameters.h
│ │ ├── rtpreceiverinterface.h
│ │ ├── rtpsenderinterface.h
│ │ ├── rtptransceiverinterface.h
│ │ ├── setremotedescriptionobserverinterface.h
│ │ ├── stats
│ │ │ ├── OWNERS
│ │ │ ├── rtcstatscollectorcallback.h
│ │ │ ├── rtcstats.h
│ │ │ ├── rtcstats_objects.h
│ │ │ └── rtcstatsreport.h
│ │ ├── statstypes.h
│ │ ├── test
│ │ │ ├── audioproc_float.cc
│ │ │ ├── audioproc_float.h
│ │ │ ├── create_videocodec_test_fixture.cc
│ │ │ ├── create_videocodec_test_fixture.h
│ │ │ ├── DEPS
│ │ │ ├── fakeconstraints.h
│ │ │ ├── mock_audio_mixer.h
│ │ │ ├── mock_rtpreceiver.h
│ │ │ ├── mock_rtpsender.h
│ │ │ ├── mock_video_decoder_factory.h
│ │ │ ├── mock_video_encoder_factory.h
│ │ │ ├── videocodec_test_fixture.h
│ │ │ ├── videocodec_test_stats.cc
│ │ │ └── videocodec_test_stats.h
│ │ ├── transport
│ │ │ ├── bitrate_settings.cc
│ │ │ ├── bitrate_settings.h
│ │ │ ├── BUILD.gn
│ │ │ ├── network_control.h
│ │ │ ├── network_types.cc
│ │ │ ├── network_types.h
│ │ │ └── test
│ │ │ ├── mock_network_control.h
│ │ │ ├── network_control_tester.cc
│ │ │ └── network_control_tester.h
│ │ ├── turncustomizer.h
│ │ ├── umametrics.h
│ │ ├── units
│ │ │ ├── BUILD.gn
│ │ │ ├── data_rate.cc
│ │ │ ├── data_rate.h
│ │ │ ├── data_rate_unittest.cc
│ │ │ ├── data_size.cc
│ │ │ ├── data_size.h
│ │ │ ├── data_size_unittest.cc
│ │ │ ├── time_delta.cc
│ │ │ ├── time_delta.h
│ │ │ ├── time_delta_unittest.cc
│ │ │ ├── timestamp.cc
│ │ │ ├── timestamp.h
│ │ │ └── timestamp_unittest.cc
│ │ ├── video
│ │ │ ├── BUILD.gn
│ │ │ ├── DEPS
│ │ │ ├── encoded_frame.cc
│ │ │ ├── encoded_frame.h
│ │ │ ├── i420_buffer.cc
│ │ │ ├── i420_buffer.h
│ │ │ ├── OWNERS
│ │ │ ├── video_bitrate_allocation.cc
│ │ │ ├── video_bitrate_allocation.h
│ │ │ ├── video_content_type.cc
│ │ │ ├── video_content_type.h
│ │ │ ├── video_frame_buffer.cc
│ │ │ ├── video_frame_buffer.h
│ │ │ ├── video_frame.cc
│ │ │ ├── video_frame.h
│ │ │ ├── video_rotation.h
│ │ │ ├── video_sink_interface.h
│ │ │ ├── video_source_interface.cc
│ │ │ ├── video_source_interface.h
│ │ │ ├── video_stream_decoder_create.cc
│ │ │ ├── video_stream_decoder_create.h
│ │ │ ├── video_stream_decoder.h
│ │ │ ├── video_stream_encoder_interface.h
│ │ │ ├── video_timing.cc
│ │ │ └── video_timing.h
│ │ ├── video_codecs
│ │ │ ├── BUILD.gn
│ │ │ ├── builtin_video_decoder_factory.cc
│ │ │ ├── builtin_video_decoder_factory.h
│ │ │ ├── builtin_video_encoder_factory.cc
│ │ │ ├── builtin_video_encoder_factory.h
│ │ │ ├── sdp_video_format.cc
│ │ │ ├── sdp_video_format.h
│ │ │ ├── test
│ │ │ │ ├── BUILD.gn
│ │ │ │ └── builtin_video_encoder_factory_unittest.cc
│ │ │ ├── video_decoder.cc
│ │ │ ├── video_decoder_factory.h
│ │ │ ├── video_decoder.h
│ │ │ ├── video_encoder.cc
│ │ │ ├── video_encoder_config.cc
│ │ │ ├── video_encoder_config.h
│ │ │ ├── video_encoder_factory.h
│ │ │ └── video_encoder.h
│ │ ├── videosinkinterface.h
│ │ ├── videosourceinterface.h
│ │ └── videosourceproxy.h
│ ├── audio
│ │ ├── audio_level.h
│ │ ├── audio_receive_stream.h
│ │ ├── audio_send_stream.h
│ │ ├── audio_state.h
│ │ ├── audio_transport_impl.h
│ │ ├── channel.h
│ │ ├── conversion.h
│ │ ├── mock_voe_channel_proxy.h
│ │ ├── null_audio_poller.h
│ │ ├── remix_resample.h
│ │ ├── test
│ │ │ ├── audio_bwe_integration_test.h
│ │ │ ├── audio_end_to_end_test.h
│ │ │ ├── low_bandwidth_audio_test.py
│ │ │ └── unittests
│ │ │ └── low_bandwidth_audio_test_test.py
│ │ ├── time_interval.h
│ │ ├── transport_feedback_packet_loss_tracker.h
│ │ └── utility
│ │ └── audio_frame_operations.h
│ ├── base
│ │ ├── allocator
│ │ │ ├── allocator_check.h
│ │ │ ├── allocator_extension.h
│ │ │ ├── allocator_interception_mac.h
│ │ │ ├── allocator_interception_mac.mm
│ │ │ ├── allocator_interception_mac_unittest.mm
│ │ │ ├── allocator_shim_default_dispatch_to_mac_zoned_malloc.h
│ │ │ ├── allocator_shim.h
│ │ │ ├── allocator_shim_internals.h
│ │ │ ├── allocator_shim_override_cpp_symbols.h
│ │ │ ├── allocator_shim_override_glibc_weak_symbols.h
│ │ │ ├── allocator_shim_override_libc_symbols.h
│ │ │ ├── allocator_shim_override_linker_wrapped_symbols.h
│ │ │ ├── allocator_shim_override_mac_symbols.h
│ │ │ ├── allocator_shim_override_ucrt_symbols_win.h
│ │ │ ├── malloc_zone_functions_mac.h
│ │ │ ├── partition_allocator
│ │ │ │ ├── address_space_randomization.h
│ │ │ │ ├── oom.h
│ │ │ │ ├── page_allocator_constants.h
│ │ │ │ ├── page_allocator.h
│ │ │ │ ├── page_allocator_internal.h
│ │ │ │ ├── page_allocator_internals_posix.h
│ │ │ │ ├── page_allocator_internals_win.h
│ │ │ │ ├── partition_alloc_constants.h
│ │ │ │ ├── partition_alloc.h
│ │ │ │ ├── PartitionAlloc.md
│ │ │ │ ├── partition_bucket.h
│ │ │ │ ├── partition_cookie.h
│ │ │ │ ├── partition_direct_map_extent.h
│ │ │ │ ├── partition_freelist_entry.h
│ │ │ │ ├── partition_oom.h
│ │ │ │ ├── partition_page.h
│ │ │ │ ├── partition_root_base.h
│ │ │ │ └── spin_lock.h
│ │ │ ├── README.md
│ │ │ └── winheap_stubs_win.h
│ │ ├── android
│ │ │ ├── android_hardware_buffer_abi.h
│ │ │ ├── android_hardware_buffer_compat.h
│ │ │ ├── apk_assets.h
│ │ │ ├── application_status_listener.h
│ │ │ ├── base_jni_onload.h
│ │ │ ├── callback_android.h
│ │ │ ├── content_uri_utils.h
│ │ │ ├── event_log.h
│ │ │ ├── java
│ │ │ │ ├── src
│ │ │ │ │ └── org
│ │ │ │ │ └── chromium
│ │ │ │ │ └── base
│ │ │ │ │ ├── ActivityState.java
│ │ │ │ │ ├── AnimationFrameTimeHistogram.java
│ │ │ │ │ ├── annotations
│ │ │ │ │ │ ├── AccessedByNative.java
│ │ │ │ │ │ ├── CalledByNative.java
│ │ │ │ │ │ ├── CalledByNativeUnchecked.java
│ │ │ │ │ │ ├── JNIAdditionalImport.java
│ │ │ │ │ │ ├── JNINamespace.java
│ │ │ │ │ │ ├── MainDex.java
│ │ │ │ │ │ ├── NativeCall.java
│ │ │ │ │ │ ├── NativeClassQualifiedName.java
│ │ │ │ │ │ ├── RemovableInRelease.java
│ │ │ │ │ │ └── UsedByReflection.java
│ │ │ │ │ ├── ApiCompatibilityUtils.java
│ │ │ │ │ ├── ApkAssets.java
│ │ │ │ │ ├── ApplicationStatus.java
│ │ │ │ │ ├── BaseSwitches.java
│ │ │ │ │ ├── BuildInfo.java
│ │ │ │ │ ├── Callback.java
│ │ │ │ │ ├── CollectionUtil.java
│ │ │ │ │ ├── CommandLineInitUtil.java
│ │ │ │ │ ├── CommandLine.java
│ │ │ │ │ ├── ContentUriUtils.java
│ │ │ │ │ ├── ContextUtils.java
│ │ │ │ │ ├── CpuFeatures.java
│ │ │ │ │ ├── DiscardableReferencePool.java
│ │ │ │ │ ├── EarlyTraceEvent.java
│ │ │ │ │ ├── EventLog.java
│ │ │ │ │ ├── FieldTrialList.java
│ │ │ │ │ ├── FileUtils.java
│ │ │ │ │ ├── ImportantFileWriterAndroid.java
│ │ │ │ │ ├── JavaExceptionReporter.java
│ │ │ │ │ ├── JavaHandlerThread.java
│ │ │ │ │ ├── JNIUtils.java
│ │ │ │ │ ├── library_loader
│ │ │ │ │ │ ├── LegacyLinker.java
│ │ │ │ │ │ ├── LibraryLoader.java
│ │ │ │ │ │ ├── Linker.java
│ │ │ │ │ │ ├── LoaderErrors.java
│ │ │ │ │ │ ├── NativeLibraryPreloader.java
│ │ │ │ │ │ └── ProcessInitException.java
│ │ │ │ │ ├── LocaleUtils.java
│ │ │ │ │ ├── Log.java
│ │ │ │ │ ├── memory
│ │ │ │ │ │ ├── MemoryPressureCallback.java
│ │ │ │ │ │ ├── MemoryPressureMonitor.java
│ │ │ │ │ │ └── MemoryPressureUma.java
│ │ │ │ │ ├── MemoryPressureListener.java
│ │ │ │ │ ├── metrics
│ │ │ │ │ │ ├── CachedMetrics.java
│ │ │ │ │ │ ├── RecordHistogram.java
│ │ │ │ │ │ ├── RecordUserAction.java
│ │ │ │ │ │ └── StatisticsRecorderAndroid.java
│ │ │ │ │ ├── multidex
│ │ │ │ │ │ └── ChromiumMultiDexInstaller.java
│ │ │ │ │ ├── NonThreadSafe.java
│ │ │ │ │ ├── ObserverList.java
│ │ │ │ │ ├── PackageUtils.java
│ │ │ │ │ ├── PathService.java
│ │ │ │ │ ├── PathUtils.java
│ │ │ │ │ ├── PowerMonitor.java
│ │ │ │ │ ├── process_launcher
│ │ │ │ │ │ ├── ChildConnectionAllocator.java
│ │ │ │ │ │ ├── ChildProcessConnection.java
│ │ │ │ │ │ ├── ChildProcessConstants.java
│ │ │ │ │ │ ├── ChildProcessLauncher.java
│ │ │ │ │ │ ├── ChildProcessServiceDelegate.java
│ │ │ │ │ │ ├── ChildProcessService.java
│ │ │ │ │ │ ├── FileDescriptorInfo.aidl
│ │ │ │ │ │ ├── FileDescriptorInfo.java
│ │ │ │ │ │ ├── ICallbackInt.aidl
│ │ │ │ │ │ └── IChildProcessService.aidl
│ │ │ │ │ ├── Promise.java
│ │ │ │ │ ├── ResourceExtractor.java
│ │ │ │ │ ├── SecureRandomInitializer.java
│ │ │ │ │ ├── StreamUtil.java
│ │ │ │ │ ├── StrictModeContext.java
│ │ │ │ │ ├── Supplier.java
│ │ │ │ │ ├── SystemMessageHandler.java
│ │ │ │ │ ├── SysUtils.java
│ │ │ │ │ ├── ThreadUtils.java
│ │ │ │ │ ├── ThrowUncaughtException.java
│ │ │ │ │ ├── TimeUtils.java
│ │ │ │ │ ├── TimezoneUtils.java
│ │ │ │ │ ├── TraceEvent.java
│ │ │ │ │ ├── UnguessableToken.java
│ │ │ │ │ └── VisibleForTesting.java
│ │ │ │ └── templates
│ │ │ │ ├── BuildConfig.template
│ │ │ │ └── NativeLibraries.template
│ │ │ ├── java_exception_reporter.h
│ │ │ ├── java_handler_thread.h
│ │ │ ├── java_runtime.h
│ │ │ ├── javatests
│ │ │ │ └── src
│ │ │ │ └── org
│ │ │ │ └── chromium
│ │ │ │ └── base
│ │ │ │ ├── AdvancedMockContextTest.java
│ │ │ │ ├── ApiCompatibilityUtilsTest.java
│ │ │ │ ├── CommandLineInitUtilTest.java
│ │ │ │ ├── CommandLineTest.java
│ │ │ │ ├── EarlyTraceEventTest.java
│ │ │ │ ├── LocaleUtilsTest.java
│ │ │ │ ├── metrics
│ │ │ │ │ └── RecordHistogramTest.java
│ │ │ │ ├── ObserverListTest.java
│ │ │ │ └── StrictModeContextTest.java
│ │ │ ├── jni_android.h
│ │ │ ├── jni_array.h
│ │ │ ├── jni_generator
│ │ │ │ ├── android_jar.classes
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ │ └── src
│ │ │ │ │ └── org
│ │ │ │ │ └── chromium
│ │ │ │ │ └── example
│ │ │ │ │ └── jni_generator
│ │ │ │ ├── jni_exception_list.gni
│ │ │ │ ├── jni_generator_helper.h
│ │ │ │ ├── jni_generator.py
│ │ │ │ ├── jni_generator_tests.py
│ │ │ │ ├── jni_registration_generator.py
│ │ │ │ ├── PRESUBMIT.py
│ │ │ │ ├── README.md
│ │ │ │ ├── SampleForTests_jni.golden
│ │ │ │ ├── testCalledByNatives.golden
│ │ │ │ ├── testConstantsFromJavaP.golden
│ │ │ │ ├── testFromJavaPGenerics.golden
│ │ │ │ ├── testFromJavaP.golden
│ │ │ │ ├── testInnerClassNativesBothInnerAndOuter.golden
│ │ │ │ ├── testInnerClassNativesBothInnerAndOuterRegistrations.golden
│ │ │ │ ├── testInnerClassNatives.golden
│ │ │ │ ├── testInnerClassNativesMultiple.golden
│ │ │ │ ├── testInputStream.javap
│ │ │ │ ├── testMotionEvent.javap
│ │ │ │ ├── testMotionEvent.javap7
│ │ │ │ ├── testMultipleJNIAdditionalImport.golden
│ │ │ │ ├── testNativeExportsOnlyOption.golden
│ │ │ │ ├── testNatives.golden
│ │ │ │ ├── testNativesLong.golden
│ │ │ │ ├── testNativesRegistrations.golden
│ │ │ │ ├── testSingleJNIAdditionalImport.golden
│ │ │ │ └── testTracing.golden
│ │ │ ├── jni_int_wrapper.h
│ │ │ ├── jni_registrar.h
│ │ │ ├── jni_string.h
│ │ │ ├── jni_utils.h
│ │ │ ├── jni_weak_ref.h
│ │ │ ├── junit
│ │ │ │ └── src
│ │ │ │ └── org
│ │ │ │ └── chromium
│ │ │ │ └── base
│ │ │ │ ├── ApplicationStatusTest.java
│ │ │ │ ├── DiscardableReferencePoolTest.java
│ │ │ │ ├── LogTest.java
│ │ │ │ ├── memory
│ │ │ │ │ └── MemoryPressureMonitorTest.java
│ │ │ │ ├── metrics
│ │ │ │ │ └── test
│ │ │ │ │ └── ShadowRecordHistogram.java
│ │ │ │ ├── NonThreadSafeTest.java
│ │ │ │ ├── process_launcher
│ │ │ │ │ ├── ChildConnectionAllocatorTest.java
│ │ │ │ │ └── ChildProcessConnectionTest.java
│ │ │ │ └── PromiseTest.java
│ │ │ ├── library_loader
│ │ │ │ ├── anchor_functions.h
│ │ │ │ ├── anchor_functions.lds
│ │ │ │ ├── library_loader_hooks.h
│ │ │ │ ├── library_load_from_apk_status_codes.h
│ │ │ │ └── library_prefetcher.h
│ │ │ ├── linker
│ │ │ │ ├── config.gni
│ │ │ │ ├── legacy_linker_jni.h
│ │ │ │ └── linker_jni.h
│ │ │ ├── locale_utils.h
│ │ │ ├── memory_pressure_listener_android.h
│ │ │ ├── path_utils.h
│ │ │ ├── proguard
│ │ │ │ ├── chromium_apk.flags
│ │ │ │ ├── chromium_code.flags
│ │ │ │ ├── disable_all_obfuscation.flags
│ │ │ │ ├── disable_chromium_obfuscation.flags
│ │ │ │ └── enable_obfuscation.flags
│ │ │ ├── sys_utils.h
│ │ │ ├── throw_uncaught_exception.h
│ │ │ ├── timezone_utils.h
│ │ │ └── unguessable_token_android.h
│ │ ├── at_exit.h
│ │ ├── atomicops.h
│ │ ├── atomicops_internals_atomicword_compat.h
│ │ ├── atomicops_internals_portable.h
│ │ ├── atomicops_internals_x86_msvc.h
│ │ ├── atomic_ref_count.h
│ │ ├── atomic_sequence_num.h
│ │ ├── auto_reset.h
│ │ ├── barrier_closure.h
│ │ ├── base64.h
│ │ ├── base64url.h
│ │ ├── base_export.h
│ │ ├── base_paths_android.h
│ │ ├── base_paths_fuchsia.h
│ │ ├── base_paths.h
│ │ ├── base_paths_mac.h
│ │ ├── base_paths_mac.mm
│ │ ├── base_paths_posix.h
│ │ ├── base_paths_win.h
│ │ ├── base_switches.h
│ │ ├── big_endian.h
│ │ ├── bind_helpers.h
│ │ ├── bind_internal.h
│ │ ├── bind_unittest.nc
│ │ ├── bit_cast.h
│ │ ├── bits.h
│ │ ├── build_time.h
│ │ ├── callback_forward.h
│ │ ├── callback.h
│ │ ├── callback_helpers.h
│ │ ├── callback_internal.h
│ │ ├── callback_list.h
│ │ ├── callback_list_unittest.nc
│ │ ├── callback_unittest.nc
│ │ ├── cancelable_callback.h
│ │ ├── command_line.h
│ │ ├── compiler_specific.h
│ │ ├── component_export.h
│ │ ├── containers
│ │ │ ├── adapters.h
│ │ │ ├── circular_deque.h
│ │ │ ├── flat_map.h
│ │ │ ├── flat_set.h
│ │ │ ├── flat_tree.h
│ │ │ ├── hash_tables.h
│ │ │ ├── id_map.h
│ │ │ ├── linked_list.h
│ │ │ ├── mru_cache.h
│ │ │ ├── queue.h
│ │ │ ├── README.md
│ │ │ ├── ring_buffer.h
│ │ │ ├── small_map.h
│ │ │ ├── span.h
│ │ │ ├── span_unittest.nc
│ │ │ ├── stack_container.h
│ │ │ ├── stack.h
│ │ │ ├── unique_ptr_adapters.h
│ │ │ └── vector_buffer.h
│ │ ├── cpu.h
│ │ ├── critical_closure.h
│ │ ├── critical_closure_internal_ios.mm
│ │ ├── debug
│ │ │ ├── alias.h
│ │ │ ├── asan_invalid_access.h
│ │ │ ├── close_handle_hook_win.h
│ │ │ ├── crash_logging.h
│ │ │ ├── debugger.h
│ │ │ ├── dump_without_crashing.h
│ │ │ ├── elf_reader_linux.h
│ │ │ ├── gdi_debug_util_win.h
│ │ │ ├── leak_annotations.h
│ │ │ ├── leak_tracker.h
│ │ │ ├── proc_maps_linux.h
│ │ │ ├── profiler.h
│ │ │ ├── stack_trace.h
│ │ │ ├── task_annotator.h
│ │ │ └── thread_heap_usage_tracker.h
│ │ ├── deferred_sequenced_task_runner.h
│ │ ├── environment.h
│ │ ├── export_template.h
│ │ ├── feature_list.h
│ │ ├── file_descriptor_posix.h
│ │ ├── file_descriptor_store.h
│ │ ├── files
│ │ │ ├── dir_reader_fallback.h
│ │ │ ├── dir_reader_linux.h
│ │ │ ├── dir_reader_posix.h
│ │ │ ├── file_enumerator.h
│ │ │ ├── file_path.h
│ │ │ ├── file_path_watcher_fsevents.h
│ │ │ ├── file_path_watcher.h
│ │ │ ├── file_path_watcher_kqueue.h
│ │ │ ├── file_tracing.h
│ │ │ ├── file_util_mac.mm
│ │ │ ├── important_file_writer.h
│ │ │ └── platform_file.h
│ │ ├── file_version_info.h
│ │ ├── file_version_info_mac.h
│ │ ├── file_version_info_mac.mm
│ │ ├── file_version_info_win.h
│ │ ├── format_macros.h
│ │ ├── fuchsia
│ │ │ ├── async_dispatcher.h
│ │ │ ├── component_context.h
│ │ │ ├── default_job.h
│ │ │ ├── fidl_interface_request.h
│ │ │ ├── fuchsia_logging.h
│ │ │ ├── scoped_service_binding.h
│ │ │ ├── scoped_zx_handle.h
│ │ │ ├── services_directory.h
│ │ │ └── test.fidl
│ │ ├── gtest_prod_util.h
│ │ ├── guid.h
│ │ ├── hash.h
│ │ ├── i18n
│ │ │ ├── base_i18n_export.h
│ │ │ ├── base_i18n_switches.h
│ │ │ ├── bidi_line_iterator.h
│ │ │ ├── break_iterator.h
│ │ │ ├── case_conversion.h
│ │ │ ├── character_encoding.h
│ │ │ ├── char_iterator.h
│ │ │ ├── encoding_detection.h
│ │ │ ├── file_util_icu.h
│ │ │ ├── i18n_constants.h
│ │ │ ├── icu_string_conversions.h
│ │ │ ├── icu_util.h
│ │ │ ├── message_formatter.h
│ │ │ ├── number_formatting.h
│ │ │ ├── rtl.h
│ │ │ ├── streaming_utf8_validator.h
│ │ │ ├── string_compare.h
│ │ │ ├── string_search.h
│ │ │ ├── time_formatting.h
│ │ │ ├── timezone.h
│ │ │ ├── unicodestring.h
│ │ │ └── utf8_validator_tables.h
│ │ ├── ios
│ │ │ ├── block_types.h
│ │ │ ├── crb_protocol_observers.h
│ │ │ ├── crb_protocol_observers.mm
│ │ │ ├── crb_protocol_observers_unittest.mm
│ │ │ ├── device_util.h
│ │ │ ├── device_util.mm
│ │ │ ├── device_util_unittest.mm
│ │ │ ├── ios_util.h
│ │ │ ├── ios_util.mm
│ │ │ ├── ns_error_util.h
│ │ │ ├── ns_error_util.mm
│ │ │ ├── scoped_critical_action.h
│ │ │ ├── scoped_critical_action.mm
│ │ │ ├── weak_nsobject.mm
│ │ │ └── weak_nsobject_unittest.mm
│ │ ├── json
│ │ │ ├── json_parser.h
│ │ │ ├── json_reader.h
│ │ │ ├── json_value_converter.h
│ │ │ ├── json_writer.h
│ │ │ └── string_escape.h
│ │ ├── lazy_instance.h
│ │ ├── lazy_instance_helpers.h
│ │ ├── linux_util.h
│ │ ├── location.h
│ │ ├── logging_win.h
│ │ ├── mac
│ │ │ ├── authorization_util.h
│ │ │ ├── authorization_util.mm
│ │ │ ├── availability.h
│ │ │ ├── bind_objc_block.h
│ │ │ ├── bind_objc_block_unittest_arc.mm
│ │ │ ├── bind_objc_block_unittest.mm
│ │ │ ├── bundle_locations.h
│ │ │ ├── bundle_locations.mm
│ │ │ ├── call_with_eh_frame_asm.S
│ │ │ ├── call_with_eh_frame.h
│ │ │ ├── call_with_eh_frame_unittest.mm
│ │ │ ├── dispatch_source_mach.h
│ │ │ ├── foundation_util.mm
│ │ │ ├── foundation_util_unittest.mm
│ │ │ ├── launch_services_util.h
│ │ │ ├── launch_services_util.mm
│ │ │ ├── mach_logging.h
│ │ │ ├── mach_port_broker.h
│ │ │ ├── mach_port_broker.mm
│ │ │ ├── mac_logging.h
│ │ │ ├── mac_logging.mm
│ │ │ ├── mac_util.h
│ │ │ ├── mac_util.mm
│ │ │ ├── mac_util_unittest.mm
│ │ │ ├── objc_release_properties.h
│ │ │ ├── objc_release_properties.mm
│ │ │ ├── objc_release_properties_unittest.mm
│ │ │ ├── os_crash_dumps.h
│ │ │ ├── scoped_aedesc.h
│ │ │ ├── scoped_cffiledescriptorref.h
│ │ │ ├── scoped_dispatch_object.h
│ │ │ ├── scoped_ionotificationportref.h
│ │ │ ├── scoped_ioobject.h
│ │ │ ├── scoped_ioplugininterface.h
│ │ │ ├── scoped_launch_data.h
│ │ │ ├── scoped_nsautorelease_pool.h
│ │ │ ├── scoped_nsautorelease_pool.mm
│ │ │ ├── scoped_nsobject.mm
│ │ │ ├── scoped_nsobject_unittest_arc.mm
│ │ │ ├── scoped_nsobject_unittest.mm
│ │ │ ├── scoped_objc_class_swizzler.h
│ │ │ ├── scoped_objc_class_swizzler.mm
│ │ │ ├── scoped_objc_class_swizzler_unittest.mm
│ │ │ ├── scoped_sending_event.h
│ │ │ ├── scoped_sending_event.mm
│ │ │ ├── scoped_sending_event_unittest.mm
│ │ │ ├── sdk_forward_declarations.h
│ │ │ └── sdk_forward_declarations.mm
│ │ ├── macros.h
│ │ ├── md5.h
│ │ ├── memory
│ │ │ ├── aligned_memory.h
│ │ │ ├── discardable_memory.h
│ │ │ ├── free_deleter.h
│ │ │ ├── memory_pressure_listener.h
│ │ │ ├── memory_pressure_monitor_chromeos.h
│ │ │ ├── memory_pressure_monitor.h
│ │ │ ├── memory_pressure_monitor_mac.h
│ │ │ ├── memory_pressure_monitor_win.h
│ │ │ ├── protected_memory_cfi.h
│ │ │ ├── raw_scoped_refptr_mismatch_checker.h
│ │ │ ├── ref_counted_delete_on_sequence.h
│ │ │ ├── ref_counted.h
│ │ │ ├── ref_counted_unittest.nc
│ │ │ ├── shared_memory_helper.h
│ │ │ ├── shared_memory_mapping.h
│ │ │ ├── shared_memory_tracker.h
│ │ │ ├── singleton.h
│ │ │ └── weak_ptr_unittest.nc
│ │ ├── message_loop
│ │ │ ├── message_loop.h
│ │ │ ├── message_loop_task_runner.h
│ │ │ ├── message_pump_android.h
│ │ │ ├── message_pump_default.h
│ │ │ ├── message_pump_for_io.h
│ │ │ ├── message_pump_for_ui.h
│ │ │ ├── message_pump_fuchsia.h
│ │ │ ├── message_pump_glib.h
│ │ │ ├── message_pump.h
│ │ │ ├── message_pump_mac.h
│ │ │ ├── message_pump_mac.mm
│ │ │ ├── message_pump_mac_unittest.mm
│ │ │ ├── message_pump_win.h
│ │ │ ├── timer_slack.h
│ │ │ └── watchable_io_message_pump_posix.h
│ │ ├── metrics
│ │ │ ├── bucket_ranges.h
│ │ │ ├── dummy_histogram.h
│ │ │ ├── field_trial_param_associator.h
│ │ │ ├── field_trial_params.h
│ │ │ ├── field_trial_params_unittest.nc
│ │ │ ├── histogram_base.h
│ │ │ ├── histogram_delta_serialization.h
│ │ │ ├── histogram_flattener.h
│ │ │ ├── histogram_functions.h
│ │ │ ├── histogram.h
│ │ │ ├── histogram_macros.h
│ │ │ ├── histogram_macros_internal.h
│ │ │ ├── histogram_macros_local.h
│ │ │ ├── histogram_snapshot_manager.h
│ │ │ ├── histogram_unittest.nc
│ │ │ ├── metrics_hashes.h
│ │ │ ├── persistent_histogram_storage.h
│ │ │ ├── persistent_sample_map.h
│ │ │ ├── record_histogram_checker.h
│ │ │ ├── sample_map.h
│ │ │ ├── single_sample_metrics.h
│ │ │ ├── sparse_histogram.h
│ │ │ ├── user_metrics_action.h
│ │ │ └── user_metrics.h
│ │ ├── native_library.h
│ │ ├── native_library_ios.mm
│ │ ├── native_library_mac.mm
│ │ ├── nix
│ │ │ ├── mime_util_xdg.h
│ │ │ └── xdg_util.h
│ │ ├── no_destructor.h
│ │ ├── numerics
│ │ │ ├── checked_math.h
│ │ │ ├── checked_math_impl.h
│ │ │ ├── clamped_math.h
│ │ │ ├── clamped_math_impl.h
│ │ │ ├── math_constants.h
│ │ │ ├── ranges.h
│ │ │ ├── README.md
│ │ │ ├── safe_conversions_arm_impl.h
│ │ │ ├── safe_conversions.h
│ │ │ ├── safe_conversions_impl.h
│ │ │ ├── safe_math_arm_impl.h
│ │ │ ├── safe_math_clang_gcc_impl.h
│ │ │ ├── safe_math.h
│ │ │ └── safe_math_shared_impl.h
│ │ ├── observer_list.h
│ │ ├── observer_list_threadsafe.h
│ │ ├── optional.h
│ │ ├── optional_unittest.nc
│ │ ├── os_compat_android.h
│ │ ├── os_compat_nacl.h
│ │ ├── path_service.h
│ │ ├── pending_task.h
│ │ ├── pickle.h
│ │ ├── posix
│ │ │ ├── eintr_wrapper.h
│ │ │ ├── file_descriptor_shuffle.h
│ │ │ ├── global_descriptors.h
│ │ │ └── safe_strerror.h
│ │ ├── post_task_and_reply_with_result_internal.h
│ │ ├── power_monitor
│ │ │ ├── power_monitor_device_source.h
│ │ │ ├── power_monitor_device_source_ios.mm
│ │ │ ├── power_monitor_device_source_mac.mm
│ │ │ ├── power_monitor_source.h
│ │ │ └── power_observer.h
│ │ ├── PRESUBMIT.py
│ │ ├── process
│ │ │ ├── internal_aix.h
│ │ │ ├── internal_linux.h
│ │ │ ├── kill.h
│ │ │ ├── launch.h
│ │ │ ├── memory.h
│ │ │ ├── memory_mac.mm
│ │ │ ├── memory_unittest_mac.h
│ │ │ ├── memory_unittest_mac.mm
│ │ │ ├── port_provider_mac.h
│ │ │ ├── process_handle.h
│ │ │ ├── process_info.h
│ │ │ ├── process_iterator.h
│ │ │ ├── process_metrics.h
│ │ │ └── process_metrics_iocounters.h
│ │ ├── profiler
│ │ │ ├── native_stack_sampler.h
│ │ │ ├── stack_sampling_profiler.h
│ │ │ └── win32_stack_frame_unwinder.h
│ │ ├── rand_util.h
│ │ ├── run_loop.h
│ │ ├── sampling_heap_profiler
│ │ │ └── sampling_heap_profiler.h
│ │ ├── scoped_clear_errno.h
│ │ ├── scoped_observer.h
│ │ ├── sequence_checker.h
│ │ ├── sequence_checker_impl.h
│ │ ├── sequenced_task_runner.h
│ │ ├── sequenced_task_runner_helpers.h
│ │ ├── sequence_token.h
│ │ ├── sha1.h
│ │ ├── single_thread_task_runner.h
│ │ ├── stl_util.h
│ │ ├── strings
│ │ │ ├── char_traits.h
│ │ │ ├── latin1_string_conversions.h
│ │ │ ├── nullable_string16.h
│ │ │ ├── old_utf_string_conversions.h
│ │ │ ├── pattern.h
│ │ │ ├── safe_sprintf.h
│ │ │ ├── strcat.h
│ │ │ ├── string16.h
│ │ │ ├── string16_unittest.nc
│ │ │ ├── stringize_macros.h
│ │ │ ├── string_number_conversions.h
│ │ │ ├── string_piece_forward.h
│ │ │ ├── string_piece.h
│ │ │ ├── stringprintf.h
│ │ │ ├── string_split.h
│ │ │ ├── string_tokenizer.h
│ │ │ ├── string_util.h
│ │ │ ├── string_util_posix.h
│ │ │ ├── string_util_win.h
│ │ │ ├── sys_string_conversions.h
│ │ │ ├── sys_string_conversions_mac.mm
│ │ │ ├── sys_string_conversions_mac_unittest.mm
│ │ │ ├── utf_offset_string_conversions.h
│ │ │ ├── utf_string_conversions.h
│ │ │ └── utf_string_conversion_utils.h
│ │ ├── synchronization
│ │ │ ├── atomic_flag.h
│ │ │ ├── cancellation_flag.h
│ │ │ ├── condition_variable.h
│ │ │ ├── lock.h
│ │ │ ├── lock_impl.h
│ │ │ ├── spin_wait.h
│ │ │ └── waitable_event_watcher.h
│ │ ├── sys_byteorder.h
│ │ ├── sys_info.h
│ │ ├── sys_info_internal.h
│ │ ├── sys_info_ios.mm
│ │ ├── sys_info_mac.mm
│ │ ├── syslog_logging.h
│ │ ├── system_monitor
│ │ │ └── system_monitor.h
│ │ ├── task
│ │ │ ├── cancelable_task_tracker.h
│ │ │ ├── README.md
│ │ │ ├── sequence_manager
│ │ │ └── task_scheduler
│ │ ├── task_runner_util.h
│ │ ├── task_scheduler
│ │ │ ├── can_schedule_sequence_observer.h
│ │ │ ├── delayed_task_manager.h
│ │ │ ├── environment_config.h
│ │ │ ├── initialization_util.h
│ │ │ ├── lazy_task_runner.h
│ │ │ ├── platform_native_worker_pool_win.h
│ │ │ ├── post_task.h
│ │ │ ├── priority_queue.h
│ │ │ ├── scheduler_lock.h
│ │ │ ├── scheduler_lock_impl.h
│ │ │ ├── scheduler_single_thread_task_runner_manager.h
│ │ │ ├── scheduler_worker.h
│ │ │ ├── scheduler_worker_observer.h
│ │ │ ├── scheduler_worker_params.h
│ │ │ ├── scheduler_worker_pool.h
│ │ │ ├── scheduler_worker_pool_impl.h
│ │ │ ├── scheduler_worker_pool_params.h
│ │ │ ├── scheduler_worker_stack.h
│ │ │ ├── scoped_set_task_priority_for_current_thread.h
│ │ │ ├── sequence_sort_key.h
│ │ │ ├── service_thread.h
│ │ │ ├── single_thread_task_runner_thread_mode.h
│ │ │ ├── task_scheduler_impl.h
│ │ │ ├── task_tracker.h
│ │ │ ├── task_tracker_posix.h
│ │ │ ├── task_traits_details.h
│ │ │ ├── task_traits_unittest.nc
│ │ │ ├── test_task_factory.h
│ │ │ └── test_utils.h
│ │ ├── template_util.h
│ │ ├── test
│ │ │ ├── android
│ │ │ │ ├── java
│ │ │ │ │ └── src
│ │ │ │ │ └── org
│ │ │ │ │ └── chromium
│ │ │ │ │ └── base
│ │ │ │ │ ├── ContentUriTestUtils.java
│ │ │ │ │ ├── ITestCallback.aidl
│ │ │ │ │ ├── ITestController.aidl
│ │ │ │ │ ├── JavaHandlerThreadHelpers.java
│ │ │ │ │ ├── MainReturnCodeResult.java
│ │ │ │ │ ├── MultiprocessTestClientService0.java
│ │ │ │ │ ├── MultiprocessTestClientService1.java
│ │ │ │ │ ├── MultiprocessTestClientService2.java
│ │ │ │ │ ├── MultiprocessTestClientService3.java
│ │ │ │ │ ├── MultiprocessTestClientService4.java
│ │ │ │ │ ├── MultiprocessTestClientServiceDelegate.java
│ │ │ │ │ ├── MultiprocessTestClientService.java
│ │ │ │ │ └── TestUiThread.java
│ │ │ │ ├── java_handler_thread_helpers.h
│ │ │ │ ├── javatests
│ │ │ │ │ └── src
│ │ │ │ │ └── org
│ │ │ │ │ └── chromium
│ │ │ │ │ └── base
│ │ │ │ │ └── test
│ │ │ │ │ ├── BaseChromiumAndroidJUnitRunner.java
│ │ │ │ │ ├── BaseChromiumRunnerCommon.java
│ │ │ │ │ ├── BaseJUnit4ClassRunner.java
│ │ │ │ │ ├── BaseTestResult.java
│ │ │ │ │ ├── params
│ │ │ │ │ │ ├── BaseJUnit4RunnerDelegate.java
│ │ │ │ │ │ ├── BlockJUnit4RunnerDelegate.java
│ │ │ │ │ │ ├── MethodParamAnnotationRule.java
│ │ │ │ │ │ ├── MethodParamRule.java
│ │ │ │ │ │ ├── ParameterAnnotations.java
│ │ │ │ │ │ ├── ParameterizedFrameworkMethod.java
│ │ │ │ │ │ ├── ParameterizedRunnerDelegateCommon.java
│ │ │ │ │ │ ├── ParameterizedRunnerDelegateFactory.java
│ │ │ │ │ │ ├── ParameterizedRunnerDelegate.java
│ │ │ │ │ │ ├── ParameterizedRunner.java
│ │ │ │ │ │ ├── ParameterProvider.java
│ │ │ │ │ │ └── ParameterSet.java
│ │ │ │ │ ├── ScreenshotOnFailureStatement.java
│ │ │ │ │ ├── SetUpStatement.java
│ │ │ │ │ ├── SetUpTestRule.java
│ │ │ │ │ ├── TestChildProcessConnection.java
│ │ │ │ │ ├── TestListInstrumentationRunListener.java
│ │ │ │ │ ├── TestTraceEvent.java
│ │ │ │ │ └── util
│ │ │ │ │ ├── AdvancedMockContext.java
│ │ │ │ │ ├── AnnotationProcessingUtils.java
│ │ │ │ │ ├── AnnotationRule.java
│ │ │ │ │ ├── CallbackHelper.java
│ │ │ │ │ ├── CommandLineFlags.java
│ │ │ │ │ ├── DisabledTest.java
│ │ │ │ │ ├── DisableIf.java
│ │ │ │ │ ├── DisableIfSkipCheck.java
│ │ │ │ │ ├── EnormousTest.java
│ │ │ │ │ ├── Feature.java
│ │ │ │ │ ├── FlakyTest.java
│ │ │ │ │ ├── InMemorySharedPreferences.java
│ │ │ │ │ ├── InstrumentationUtils.java
│ │ │ │ │ ├── IntegrationTest.java
│ │ │ │ │ ├── Manual.java
│ │ │ │ │ ├── ManualSkipCheck.java
│ │ │ │ │ ├── Matchers.java
│ │ │ │ │ ├── MetricsUtils.java
│ │ │ │ │ ├── MinAndroidSdkLevel.java
│ │ │ │ │ ├── MinAndroidSdkLevelSkipCheck.java
│ │ │ │ │ ├── parameter
│ │ │ │ │ │ ├── CommandLineParameter.java
│ │ │ │ │ │ └── SkipCommandLineParameterization.java
│ │ │ │ │ ├── Restriction.java
│ │ │ │ │ ├── RestrictionSkipCheck.java
│ │ │ │ │ ├── RetryOnFailure.java
│ │ │ │ │ ├── ScalableTimeout.java
│ │ │ │ │ ├── SkipCheck.java
│ │ │ │ │ ├── TestFileUtil.java
│ │ │ │ │ ├── TestThread.java
│ │ │ │ │ ├── TimeoutScale.java
│ │ │ │ │ ├── UrlUtils.java
│ │ │ │ │ └── UserActionTester.java
│ │ │ │ ├── junit
│ │ │ │ │ └── src
│ │ │ │ │ └── org
│ │ │ │ │ └── chromium
│ │ │ │ │ └── base
│ │ │ │ │ └── test
│ │ │ │ │ ├── BaseRobolectricTestRunner.java
│ │ │ │ │ ├── params
│ │ │ │ │ │ ├── ExampleParameterizedTest.java
│ │ │ │ │ │ ├── ParameterizedRunnerDelegateCommonTest.java
│ │ │ │ │ │ ├── ParameterizedRunnerDelegateFactoryTest.java
│ │ │ │ │ │ ├── ParameterizedRunnerTest.java
│ │ │ │ │ │ └── ParameterizedTestNameTest.java
│ │ │ │ │ ├── SetUpStatementTest.java
│ │ │ │ │ ├── TestListInstrumentationRunListenerTest.java
│ │ │ │ │ └── util
│ │ │ │ │ ├── AnnotationProcessingUtilsTest.java
│ │ │ │ │ ├── DisableIfTest.java
│ │ │ │ │ ├── ManualSkipCheckTest.java
│ │ │ │ │ ├── MinAndroidSdkLevelSkipCheckTest.java
│ │ │ │ │ ├── RestrictionSkipCheckTest.java
│ │ │ │ │ └── SkipCheckTest.java
│ │ │ │ └── url_utils.h
│ │ │ ├── bind_test_util.h
│ │ │ ├── copy_only_int.h
│ │ │ ├── data
│ │ │ │ ├── file_util
│ │ │ │ │ ├── binary_file.bin
│ │ │ │ │ ├── binary_file_diff.bin
│ │ │ │ │ ├── binary_file_same.bin
│ │ │ │ │ ├── blank_line_crlf.txt
│ │ │ │ │ ├── blank_line.txt
│ │ │ │ │ ├── crlf.txt
│ │ │ │ │ ├── different_first.txt
│ │ │ │ │ ├── different_last.txt
│ │ │ │ │ ├── different.txt
│ │ │ │ │ ├── empty1.txt
│ │ │ │ │ ├── empty2.txt
│ │ │ │ │ ├── first1.txt
│ │ │ │ │ ├── first2.txt
│ │ │ │ │ ├── original.txt
│ │ │ │ │ ├── red.png
│ │ │ │ │ ├── same_length.txt
│ │ │ │ │ ├── same.txt
│ │ │ │ │ └── shortened.txt
│ │ │ │ ├── file_version_info_unittest
│ │ │ │ │ ├── FileVersionInfoTest1.dll
│ │ │ │ │ └── FileVersionInfoTest2.dll
│ │ │ │ ├── json
│ │ │ │ │ └── bom_feff.json
│ │ │ │ ├── pe_image
│ │ │ │ │ ├── pe_image_test_32.dll
│ │ │ │ │ └── pe_image_test_64.dll
│ │ │ │ ├── serializer_nested_test.json
│ │ │ │ ├── serializer_test.json
│ │ │ │ └── serializer_test_nowhitespace.json
│ │ │ ├── fontconfig_util_linux.h
│ │ │ ├── fuzzed_data_provider.h
│ │ │ ├── gtest_util.h
│ │ │ ├── gtest_xml_unittest_result_printer.h
│ │ │ ├── gtest_xml_util.h
│ │ │ ├── histogram_tester.h
│ │ │ ├── icu_test_util.h
│ │ │ ├── ios
│ │ │ │ ├── wait_util.h
│ │ │ │ └── wait_util.mm
│ │ │ ├── launcher
│ │ │ │ ├── test_launcher.h
│ │ │ │ ├── test_launcher_nacl_nonsfi.h
│ │ │ │ ├── test_launcher_tracer.h
│ │ │ │ ├── test_result.h
│ │ │ │ ├── test_results_tracker.h
│ │ │ │ └── unit_test_launcher.h
│ │ │ ├── malloc_wrapper.h
│ │ │ ├── mock_callback.h
│ │ │ ├── mock_callback.h.pump
│ │ │ ├── mock_chrome_application_mac.h
│ │ │ ├── mock_chrome_application_mac.mm
│ │ │ ├── mock_devices_changed_observer.h
│ │ │ ├── mock_entropy_provider.h
│ │ │ ├── mock_log.h
│ │ │ ├── move_only_int.h
│ │ │ ├── multiprocess_test.h
│ │ │ ├── native_library_test_utils.h
│ │ │ ├── null_task_runner.h
│ │ │ ├── perf_log.h
│ │ │ ├── perf_test_suite.h
│ │ │ ├── perf_time_logger.h
│ │ │ ├── power_monitor_test_base.h
│ │ │ ├── scoped_command_line.h
│ │ │ ├── scoped_environment_variable_override.h
│ │ │ ├── scoped_feature_list.h
│ │ │ ├── scoped_locale.h
│ │ │ ├── scoped_mock_time_message_loop_task_runner.h
│ │ │ ├── scoped_path_override.h
│ │ │ ├── scoped_task_environment.h
│ │ │ ├── sequenced_task_runner_test_template.h
│ │ │ ├── simple_test_clock.h
│ │ │ ├── simple_test_tick_clock.h
│ │ │ ├── task_runner_test_template.h
│ │ │ ├── test_discardable_memory_allocator.h
│ │ │ ├── test_file_util.h
│ │ │ ├── test_io_thread.h
│ │ │ ├── test_listener_ios.h
│ │ │ ├── test_listener_ios.mm
│ │ │ ├── test_message_loop.h
│ │ │ ├── test_mock_time_task_runner.h
│ │ │ ├── test_pending_task.h
│ │ │ ├── test_reg_util_win.h
│ │ │ ├── test_shared_memory_util.h
│ │ │ ├── test_shortcut_win.h
│ │ │ ├── test_simple_task_runner.h
│ │ │ ├── test_suite.h
│ │ │ ├── test_support_android.h
│ │ │ ├── test_support_ios.h
│ │ │ ├── test_support_ios.mm
│ │ │ ├── test_switches.h
│ │ │ ├── test_timeouts.h
│ │ │ ├── test_ui_thread_android.h
│ │ │ ├── thread_test_helper.h
│ │ │ ├── trace_event_analyzer.h
│ │ │ ├── trace_to_file.h
│ │ │ ├── user_action_tester.h
│ │ │ └── values_test_util.h
│ │ ├── third_party
│ │ │ ├── dmg_fp
│ │ │ │ ├── const_hexdig.patch
│ │ │ │ ├── dmg_fp.h
│ │ │ │ ├── exp_length.patch
│ │ │ │ ├── gcc_64_bit.patch
│ │ │ │ ├── gcc_warnings.patch
│ │ │ │ ├── LICENSE
│ │ │ │ ├── mac_wextra.patch
│ │ │ │ ├── msvc_warnings.patch
│ │ │ │ └── README.chromium
│ │ │ ├── dynamic_annotations
│ │ │ │ ├── dynamic_annotations.c
│ │ │ │ ├── dynamic_annotations.h
│ │ │ │ ├── LICENSE
│ │ │ │ └── README.chromium
│ │ │ ├── icu
│ │ │ │ ├── icu_utf.h
│ │ │ │ ├── LICENSE
│ │ │ │ └── README.chromium
│ │ │ ├── libevent
│ │ │ │ ├── aix
│ │ │ │ │ ├── config.h
│ │ │ │ │ └── event-config.h
│ │ │ │ ├── android
│ │ │ │ │ ├── config.h
│ │ │ │ │ └── event-config.h
│ │ │ │ ├── autogen.sh
│ │ │ │ ├── buffer.c
│ │ │ │ ├── ChangeLog
│ │ │ │ ├── chromium.patch
│ │ │ │ ├── compat
│ │ │ │ │ └── sys
│ │ │ │ │ ├── _libevent_time.h
│ │ │ │ │ └── queue.h
│ │ │ │ ├── configure.in
│ │ │ │ ├── devpoll.c
│ │ │ │ ├── Doxyfile
│ │ │ │ ├── epoll.c
│ │ │ │ ├── epoll_sub.c
│ │ │ │ ├── evbuffer.c
│ │ │ │ ├── evdns.3
│ │ │ │ ├── evdns.c
│ │ │ │ ├── evdns.h
│ │ │ │ ├── event.3
│ │ │ │ ├── event.c
│ │ │ │ ├── event-config.h
│ │ │ │ ├── event.h
│ │ │ │ ├── event-internal.h
│ │ │ │ ├── event_rpcgen.py
│ │ │ │ ├── event_tagging.c
│ │ │ │ ├── evport.c
│ │ │ │ ├── evrpc.c
│ │ │ │ ├── evrpc.h
│ │ │ │ ├── evrpc-internal.h
│ │ │ │ ├── evsignal.h
│ │ │ │ ├── evutil.c
│ │ │ │ ├── evutil.h
│ │ │ │ ├── freebsd
│ │ │ │ │ ├── config.h
│ │ │ │ │ └── event-config.h
│ │ │ │ ├── http.c
│ │ │ │ ├── http-internal.h
│ │ │ │ ├── kqueue.c
│ │ │ │ ├── LICENSE
│ │ │ │ ├── linux
│ │ │ │ │ ├── config.h
│ │ │ │ │ └── event-config.h
│ │ │ │ ├── log.c
│ │ │ │ ├── log.h
│ │ │ │ ├── m4
│ │ │ │ ├── mac
│ │ │ │ │ ├── config.h
│ │ │ │ │ └── event-config.h
│ │ │ │ ├── Makefile.am
│ │ │ │ ├── Makefile.nmake
│ │ │ │ ├── min_heap.h
│ │ │ │ ├── nacl_nonsfi
│ │ │ │ │ ├── config.h
│ │ │ │ │ ├── event-config.h
│ │ │ │ │ ├── random.c
│ │ │ │ │ └── signal_stub.c
│ │ │ │ ├── poll.c
│ │ │ │ ├── README
│ │ │ │ ├── README.chromium
│ │ │ │ ├── sample
│ │ │ │ │ ├── event-test.c
│ │ │ │ │ ├── Makefile.am
│ │ │ │ │ ├── signal-test.c
│ │ │ │ │ └── time-test.c
│ │ │ │ ├── select.c
│ │ │ │ ├── signal.c
│ │ │ │ ├── solaris
│ │ │ │ │ ├── config.h
│ │ │ │ │ └── event-config.h
│ │ │ │ ├── stamp-h.in
│ │ │ │ ├── strlcpy.c
│ │ │ │ ├── strlcpy-internal.h
│ │ │ │ ├── test
│ │ │ │ │ ├── bench.c
│ │ │ │ │ ├── Makefile.am
│ │ │ │ │ ├── Makefile.nmake
│ │ │ │ │ ├── regress.c
│ │ │ │ │ ├── regress_dns.c
│ │ │ │ │ ├── regress.h
│ │ │ │ │ ├── regress.rpc
│ │ │ │ │ ├── regress_rpc.c
│ │ │ │ │ ├── test-eof.c
│ │ │ │ │ ├── test-init.c
│ │ │ │ │ ├── test.sh
│ │ │ │ │ ├── test-time.c
│ │ │ │ │ └── test-weof.c
│ │ │ │ └── whatsnew-14.txt
│ │ │ ├── nspr
│ │ │ │ ├── LICENSE
│ │ │ │ ├── prtime.h
│ │ │ │ └── README.chromium
│ │ │ ├── superfasthash
│ │ │ │ ├── LICENSE
│ │ │ │ ├── README.chromium
│ │ │ │ └── superfasthash.c
│ │ │ ├── symbolize
│ │ │ │ ├── config.h
│ │ │ │ ├── demangle.h
│ │ │ │ ├── glog
│ │ │ │ │ ├── logging.h
│ │ │ │ │ └── raw_logging.h
│ │ │ │ ├── LICENSE
│ │ │ │ ├── README.chromium
│ │ │ │ ├── symbolize.h
│ │ │ │ └── utilities.h
│ │ │ ├── valgrind
│ │ │ │ ├── LICENSE
│ │ │ │ ├── memcheck.h
│ │ │ │ ├── README.chromium
│ │ │ │ └── valgrind.h
│ │ │ ├── xdg_mime
│ │ │ │ ├── compile.patch
│ │ │ │ ├── free_pointer_later.patch
│ │ │ │ ├── function_casts.patch
│ │ │ │ ├── LICENSE
│ │ │ │ ├── README
│ │ │ │ ├── README.chromium
│ │ │ │ ├── xdgmimealias.c
│ │ │ │ ├── xdgmimealias.h
│ │ │ │ ├── xdgmime.c
│ │ │ │ ├── xdgmimecache.c
│ │ │ │ ├── xdgmimecache.h
│ │ │ │ ├── xdgmimeglob.c
│ │ │ │ ├── xdgmimeglob.h
│ │ │ │ ├── xdgmime.h
│ │ │ │ ├── xdgmimeicon.c
│ │ │ │ ├── xdgmimeicon.h
│ │ │ │ ├── xdgmimeint.c
│ │ │ │ ├── xdgmimeint.h
│ │ │ │ ├── xdgmimemagic.c
│ │ │ │ ├── xdgmimemagic.h
│ │ │ │ ├── xdgmimeparent.c
│ │ │ │ └── xdgmimeparent.h
│ │ │ └── xdg_user_dirs
│ │ │ ├── LICENSE
│ │ │ ├── README.chromium
│ │ │ └── xdg_user_dir_lookup.h
│ │ ├── thread_annotations_unittest.nc
│ │ ├── threading
│ │ │ ├── platform_thread.h
│ │ │ ├── platform_thread_internal_posix.h
│ │ │ ├── platform_thread_mac.mm
│ │ │ ├── post_task_and_reply_impl.h
│ │ │ ├── scoped_blocking_call.h
│ │ │ ├── sequenced_task_runner_handle.h
│ │ │ ├── sequence_local_storage_map.h
│ │ │ ├── sequence_local_storage_slot.h
│ │ │ ├── simple_thread.h
│ │ │ ├── thread_checker.h
│ │ │ ├── thread_checker_impl.h
│ │ │ ├── thread_collision_warner.h
│ │ │ ├── thread_id_name_manager.h
│ │ │ ├── thread_local.h
│ │ │ ├── thread_restrictions.h
│ │ │ ├── thread_task_runner_handle.h
│ │ │ └── watchdog.h
│ │ ├── time
│ │ │ ├── clock.h
│ │ │ ├── default_clock.h
│ │ │ ├── default_tick_clock.h
│ │ │ ├── tick_clock.h
│ │ │ ├── time.h
│ │ │ └── time_to_iso8601.h
│ │ ├── timer
│ │ │ ├── elapsed_timer.h
│ │ │ ├── hi_res_timer_manager.h
│ │ │ ├── mock_timer.h
│ │ │ └── timer.h
│ │ ├── trace_event
│ │ │ ├── auto_open_close_event.h
│ │ │ ├── blame_context.h
│ │ │ ├── category_registry.h
│ │ │ ├── cfi_backtrace_android.h
│ │ │ ├── common
│ │ │ ├── etw_manifest
│ │ │ │ └── chrome_events_win.man
│ │ │ ├── event_name_filter.h
│ │ │ ├── heap_profiler_allocation_context.h
│ │ │ ├── heap_profiler_allocation_context_tracker.h
│ │ │ ├── heap_profiler_allocation_register.h
│ │ │ ├── heap_profiler_event_filter.h
│ │ │ ├── heap_profiler.h
│ │ │ ├── heap_profiler_heap_dump_writer.h
│ │ │ ├── heap_profiler_serialization_state.h
│ │ │ ├── heap_profiler_stack_frame_deduplicator.h
│ │ │ ├── heap_profiler_type_name_deduplicator.h
│ │ │ ├── java_heap_dump_provider_android.h
│ │ │ ├── malloc_dump_provider.h
│ │ │ ├── memory_allocator_dump_guid.h
│ │ │ ├── memory_allocator_dump.h
│ │ │ ├── memory_dump_manager_test_utils.h
│ │ │ ├── memory_dump_provider.h
│ │ │ ├── memory_dump_request_args.h
│ │ │ ├── memory_dump_scheduler.h
│ │ │ ├── memory_infra_background_whitelist.h
│ │ │ ├── memory_peak_detector.h
│ │ │ ├── sharded_allocation_register.h
│ │ │ ├── trace_buffer.h
│ │ │ ├── trace_category.h
│ │ │ ├── trace_config_category_filter.h
│ │ │ ├── trace_config.h
│ │ │ ├── trace_config_memory_test_util.h
│ │ │ ├── trace_event_argument.h
│ │ │ ├── trace_event_etw_export_win.h
│ │ │ ├── trace_event_filter.h
│ │ │ ├── trace_event_filter_test_utils.h
│ │ │ ├── trace_event.h
│ │ │ ├── trace_event_impl.h
│ │ │ ├── trace_event_memory_overhead.h
│ │ │ ├── trace_event_system_stats_monitor.h
│ │ │ ├── trace_log.h
│ │ │ └── tracing_agent.h
│ │ ├── tuple.h
│ │ ├── unguessable_token.h
│ │ ├── value_iterators.h
│ │ ├── version.h
│ │ ├── vlog.h
│ │ └── win
│ │ ├── async_operation.h
│ │ ├── com_init_check_hook.h
│ │ ├── com_init_util.h
│ │ ├── core_winrt_util.h
│ │ ├── current_module.h
│ │ ├── enum_variant.h
│ │ ├── event_trace_consumer.h
│ │ ├── event_trace_controller.h
│ │ ├── event_trace_provider.h
│ │ ├── i18n.h
│ │ ├── iunknown_impl.h
│ │ ├── message_window.h
│ │ ├── object_watcher.h
│ │ ├── patch_util.h
│ │ ├── pe_image.h
│ │ ├── process_startup_helper.h
│ │ ├── resource_util.h
│ │ ├── scoped_co_mem.h
│ │ ├── scoped_com_initializer.h
│ │ ├── scoped_gdi_object.h
│ │ ├── scoped_handle_verifier.h
│ │ ├── scoped_hdc.h
│ │ ├── scoped_hglobal.h
│ │ ├── scoped_propvariant.h
│ │ ├── scoped_select_object.h
│ │ ├── scoped_windows_thread_environment.h
│ │ ├── scoped_winrt_initializer.h
│ │ ├── shortcut.h
│ │ ├── startup_information.h
│ │ ├── typed_event_handler.h
│ │ ├── wait_chain.h
│ │ ├── win_client_metrics.h
│ │ ├── windows_full.h
│ │ ├── windows_types.h
│ │ ├── windows_version.h
│ │ ├── winrt_storage_util.h
│ │ ├── win_util.h
│ │ └── wrapped_window_proc.h
│ ├── call
│ │ ├── audio_send_stream.h
│ │ ├── audio_state.h
│ │ ├── bitrate_allocator.h
│ │ ├── bitrate_constraints.h
│ │ ├── call_config.h
│ │ ├── callfactory.h
│ │ ├── degraded_call.h
│ │ ├── fake_network_pipe.h
│ │ ├── flexfec_receive_stream.h
│ │ ├── flexfec_receive_stream_impl.h
│ │ ├── rampup_tests.h
│ │ ├── receive_time_calculator.h
│ │ ├── rtcp_demuxer.h
│ │ ├── rtcp_packet_sink_interface.h
│ │ ├── rtp_bitrate_configurator.h
│ │ ├── rtp_config.h
│ │ ├── rtp_demuxer.h
│ │ ├── rtp_packet_sink_interface.h
│ │ ├── rtp_rtcp_demuxer_helper.h
│ │ ├── rtp_stream_receiver_controller.h
│ │ ├── rtp_transport_controller_send.h
│ │ ├── rtx_receive_stream.h
│ │ ├── ssrc_binding_observer.h
│ │ ├── syncable.h
│ │ ├── test
│ │ │ ├── mock_audio_send_stream.h
│ │ │ ├── mock_bitrate_allocator.h
│ │ │ ├── mock_rtp_packet_sink_interface.h
│ │ │ └── mock_rtp_transport_controller_send.h
│ │ └── video_config.h
│ ├── common_audio
│ │ ├── audio_converter.h
│ │ ├── audio_ring_buffer.h
│ │ ├── channel_buffer.h
│ │ ├── fft4g.c
│ │ ├── fft4g.h
│ │ ├── fir_filter_c.h
│ │ ├── fir_filter_factory.h
│ │ ├── fir_filter.h
│ │ ├── fir_filter_neon.h
│ │ ├── fir_filter_sse.h
│ │ ├── include
│ │ │ └── audio_util.h
│ │ ├── lapped_transform.h
│ │ ├── mocks
│ │ │ └── mock_smoothing_filter.h
│ │ ├── real_fourier.h
│ │ ├── real_fourier_ooura.h
│ │ ├── resampler
│ │ │ ├── include
│ │ │ │ ├── push_resampler.h
│ │ │ │ └── resampler.h
│ │ │ ├── push_sinc_resampler.h
│ │ │ ├── sinc_resampler.h
│ │ │ └── sinusoidal_linear_chirp_source.h
│ │ ├── ring_buffer.c
│ │ ├── ring_buffer.h
│ │ ├── signal_processing
│ │ │ ├── auto_correlation.c
│ │ │ ├── auto_corr_to_refl_coef.c
│ │ │ ├── complex_bit_reverse_arm.S
│ │ │ ├── complex_bit_reverse.c
│ │ │ ├── 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.h
│ │ │ ├── downsample_fast.c
│ │ │ ├── downsample_fast_mips.c
│ │ │ ├── downsample_fast_neon.c
│ │ │ ├── energy.c
│ │ │ ├── filter_ar.c
│ │ │ ├── filter_ar_fast_q12_armv7.S
│ │ │ ├── filter_ar_fast_q12.c
│ │ │ ├── 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_armv7.h
│ │ │ │ ├── spl_inl.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
│ │ │ ├── refl_coef_to_lpc.c
│ │ │ ├── resample_48khz.c
│ │ │ ├── resample_by_2.c
│ │ │ ├── resample_by_2_internal.c
│ │ │ ├── resample_by_2_internal.h
│ │ │ ├── resample_by_2_mips.c
│ │ │ ├── resample.c
│ │ │ ├── resample_fractional.c
│ │ │ ├── spl_init.c
│ │ │ ├── spl_inl.c
│ │ │ ├── splitting_filter.c
│ │ │ ├── spl_sqrt.c
│ │ │ ├── spl_sqrt_floor_arm.S
│ │ │ ├── spl_sqrt_floor.c
│ │ │ ├── spl_sqrt_floor_mips.c
│ │ │ ├── sqrt_of_one_minus_x_squared.c
│ │ │ ├── vector_scaling_operations.c
│ │ │ └── vector_scaling_operations_mips.c
│ │ ├── smoothing_filter.h
│ │ ├── sparse_fir_filter.h
│ │ ├── vad
│ │ │ ├── include
│ │ │ │ ├── vad.h
│ │ │ │ └── webrtc_vad.h
│ │ │ ├── mock
│ │ │ │ └── mock_vad.h
│ │ │ ├── vad_core.c
│ │ │ ├── vad_core.h
│ │ │ ├── vad_filterbank.c
│ │ │ ├── vad_filterbank.h
│ │ │ ├── vad_gmm.c
│ │ │ ├── vad_gmm.h
│ │ │ ├── vad_sp.c
│ │ │ ├── vad_sp.h
│ │ │ ├── vad_unittest.h
│ │ │ └── webrtc_vad.c
│ │ ├── wav_file.h
│ │ ├── wav_header.h
│ │ └── window_generator.h
│ ├── common_types.h
│ ├── common_video
│ │ ├── h264
│ │ │ ├── h264_bitstream_parser.h
│ │ │ ├── h264_common.h
│ │ │ ├── pps_parser.h
│ │ │ ├── profile_level_id.h
│ │ │ ├── sps_parser.h
│ │ │ └── sps_vui_rewriter.h
│ │ ├── include
│ │ │ ├── bitrate_adjuster.h
│ │ │ ├── frame_callback.h
│ │ │ ├── i420_buffer_pool.h
│ │ │ ├── incoming_video_stream.h
│ │ │ ├── video_bitrate_allocator.h
│ │ │ ├── video_frame_buffer.h
│ │ │ └── video_frame.h
│ │ ├── libyuv
│ │ │ └── include
│ │ │ └── webrtc_libyuv.h
│ │ └── video_render_frames.h
│ ├── examples
│ │ ├── aarproject
│ │ │ ├── app
│ │ │ │ ├── build.gradle
│ │ │ │ └── proguard-rules.pro
│ │ │ ├── build.gradle
│ │ │ ├── gradle.properties
│ │ │ ├── local.properties
│ │ │ └── settings.gradle
│ │ ├── androidapp
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── ant.properties
│ │ │ ├── build.xml
│ │ │ ├── project.properties
│ │ │ ├── README
│ │ │ ├── res
│ │ │ │ ├── drawable-hdpi
│ │ │ │ │ ├── disconnect.png
│ │ │ │ │ ├── ic_action_full_screen.png
│ │ │ │ │ ├── ic_action_return_from_full_screen.png
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_loopback_call.png
│ │ │ │ ├── drawable-ldpi
│ │ │ │ │ ├── disconnect.png
│ │ │ │ │ ├── ic_action_full_screen.png
│ │ │ │ │ ├── ic_action_return_from_full_screen.png
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_loopback_call.png
│ │ │ │ ├── drawable-mdpi
│ │ │ │ │ ├── disconnect.png
│ │ │ │ │ ├── ic_action_full_screen.png
│ │ │ │ │ ├── ic_action_return_from_full_screen.png
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_loopback_call.png
│ │ │ │ ├── drawable-xhdpi
│ │ │ │ │ ├── disconnect.png
│ │ │ │ │ ├── ic_action_full_screen.png
│ │ │ │ │ ├── ic_action_return_from_full_screen.png
│ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ └── ic_loopback_call.png
│ │ │ │ ├── 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
│ │ │ │ ├── RecordedAudioToFileController.java
│ │ │ │ ├── RoomParametersFetcher.java
│ │ │ │ ├── SettingsActivity.java
│ │ │ │ ├── SettingsFragment.java
│ │ │ │ ├── TCPChannelClient.java
│ │ │ │ ├── UnhandledExceptionHandler.java
│ │ │ │ ├── util
│ │ │ │ │ ├── AppRTCUtils.java
│ │ │ │ │ └── AsyncHttpURLConnection.java
│ │ │ │ ├── WebSocketChannelClient.java
│ │ │ │ └── WebSocketRTCClient.java
│ │ │ ├── start_loopback_stubbed_camera_saved_video_out.py
│ │ │ └── third_party
│ │ │ └── autobanh
│ │ │ ├── lib
│ │ │ │ └── autobanh.jar
│ │ │ ├── LICENSE
│ │ │ ├── LICENSE.md
│ │ │ └── NOTICE
│ │ ├── androidjunit
│ │ │ ├── README
│ │ │ └── src
│ │ │ └── org
│ │ │ └── appspot
│ │ │ └── apprtc
│ │ │ ├── BluetoothManagerTest.java
│ │ │ ├── DirectRTCClientTest.java
│ │ │ └── TCPChannelClientTest.java
│ │ ├── androidnativeapi
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── org
│ │ │ │ └── webrtc
│ │ │ │ └── examples
│ │ │ │ └── androidnativeapi
│ │ │ │ ├── CallClient.java
│ │ │ │ └── MainActivity.java
│ │ │ ├── jni
│ │ │ │ └── androidcallclient.h
│ │ │ └── res
│ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ └── values
│ │ │ └── strings.xml
│ │ ├── androidtests
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── ant.properties
│ │ │ ├── build.xml
│ │ │ ├── gradle_project_test.py
│ │ │ ├── project.properties
│ │ │ ├── README
│ │ │ ├── src
│ │ │ │ └── org
│ │ │ │ └── appspot
│ │ │ │ └── apprtc
│ │ │ │ └── test
│ │ │ │ ├── CallActivityStubbedInputOutputTest.java
│ │ │ │ └── PeerConnectionClientTest.java
│ │ │ ├── third_party
│ │ │ │ └── README.webrtc
│ │ │ └── video_quality_loopback_test.py
│ │ ├── objc
│ │ │ ├── AppRTCMobile
│ │ │ │ ├── ARDAppClient.h
│ │ │ │ ├── ARDAppClient+Internal.h
│ │ │ │ ├── ARDAppClient.m
│ │ │ │ ├── ARDAppEngineClient.h
│ │ │ │ ├── ARDAppEngineClient.m
│ │ │ │ ├── ARDBitrateTracker.h
│ │ │ │ ├── ARDBitrateTracker.m
│ │ │ │ ├── ARDCaptureController.h
│ │ │ │ ├── ARDCaptureController.m
│ │ │ │ ├── ARDJoinResponse.h
│ │ │ │ ├── ARDJoinResponse+Internal.h
│ │ │ │ ├── ARDJoinResponse.m
│ │ │ │ ├── ARDMessageResponse.h
│ │ │ │ ├── ARDMessageResponse+Internal.h
│ │ │ │ ├── ARDMessageResponse.m
│ │ │ │ ├── ARDRoomServerClient.h
│ │ │ │ ├── ARDSettingsModel.h
│ │ │ │ ├── ARDSettingsModel.m
│ │ │ │ ├── ARDSettingsModel+Private.h
│ │ │ │ ├── ARDSettingsStore.h
│ │ │ │ ├── ARDSettingsStore.m
│ │ │ │ ├── ARDSignalingChannel.h
│ │ │ │ ├── ARDSignalingMessage.h
│ │ │ │ ├── ARDSignalingMessage.m
│ │ │ │ ├── ARDStatsBuilder.h
│ │ │ │ ├── ARDStatsBuilder.m
│ │ │ │ ├── ARDTURNClient.h
│ │ │ │ ├── ARDTURNClient+Internal.h
│ │ │ │ ├── ARDTURNClient.m
│ │ │ │ ├── ARDWebSocketChannel.h
│ │ │ │ ├── ARDWebSocketChannel.m
│ │ │ │ ├── common
│ │ │ │ │ ├── ARDUtilities.h
│ │ │ │ │ └── ARDUtilities.m
│ │ │ │ ├── ios
│ │ │ │ │ ├── ARDAppDelegate.h
│ │ │ │ │ ├── ARDAppDelegate.m
│ │ │ │ │ ├── ARDFileCaptureController.h
│ │ │ │ │ ├── ARDFileCaptureController.m
│ │ │ │ │ ├── ARDMainViewController.h
│ │ │ │ │ ├── ARDMainViewController.m
│ │ │ │ │ ├── ARDMainView.h
│ │ │ │ │ ├── ARDMainView.m
│ │ │ │ │ ├── ARDSettingsViewController.h
│ │ │ │ │ ├── ARDSettingsViewController.m
│ │ │ │ │ ├── ARDStatsView.h
│ │ │ │ │ ├── ARDStatsView.m
│ │ │ │ │ ├── ARDVideoCallViewController.h
│ │ │ │ │ ├── ARDVideoCallViewController.m
│ │ │ │ │ ├── ARDVideoCallView.h
│ │ │ │ │ ├── ARDVideoCallView.m
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ ├── main.m
│ │ │ │ │ ├── resources
│ │ │ │ │ │ ├── foreman.mp4
│ │ │ │ │ │ ├── ic_call_end_black_24dp@2x.png
│ │ │ │ │ │ ├── ic_call_end_black_24dp.png
│ │ │ │ │ │ ├── ic_clear_black_24dp@2x.png
│ │ │ │ │ │ ├── ic_clear_black_24dp.png
│ │ │ │ │ │ ├── ic_settings_black_24dp@2x.png
│ │ │ │ │ │ ├── ic_settings_black_24dp.png
│ │ │ │ │ │ ├── ic_surround_sound_black_24dp@2x.png
│ │ │ │ │ │ ├── ic_surround_sound_black_24dp.png
│ │ │ │ │ │ ├── ic_switch_video_black_24dp@2x.png
│ │ │ │ │ │ ├── ic_switch_video_black_24dp.png
│ │ │ │ │ │ ├── iPhone5@2x.png
│ │ │ │ │ │ ├── iPhone6@2x.png
│ │ │ │ │ │ ├── iPhone6p@3x.png
│ │ │ │ │ │ ├── mozart.mp3
│ │ │ │ │ │ └── Roboto-Regular.ttf
│ │ │ │ │ ├── RTCVideoCodecInfo+HumanReadable.h
│ │ │ │ │ ├── RTCVideoCodecInfo+HumanReadable.m
│ │ │ │ │ ├── UIImage+ARDUtilities.h
│ │ │ │ │ └── UIImage+ARDUtilities.m
│ │ │ │ ├── mac
│ │ │ │ │ ├── APPRTCAppDelegate.h
│ │ │ │ │ ├── APPRTCAppDelegate.m
│ │ │ │ │ ├── APPRTCViewController.h
│ │ │ │ │ ├── APPRTCViewController.m
│ │ │ │ │ ├── Info.plist
│ │ │ │ │ └── main.m
│ │ │ │ ├── RTCIceCandidate+JSON.h
│ │ │ │ ├── RTCIceCandidate+JSON.m
│ │ │ │ ├── RTCIceServer+JSON.h
│ │ │ │ ├── RTCIceServer+JSON.m
│ │ │ │ ├── RTCMediaConstraints+JSON.h
│ │ │ │ ├── RTCMediaConstraints+JSON.m
│ │ │ │ ├── RTCSessionDescription+JSON.h
│ │ │ │ ├── RTCSessionDescription+JSON.m
│ │ │ │ ├── tests
│ │ │ │ │ ├── ARDAppClient_xctest.mm
│ │ │ │ │ ├── ARDFileCaptureController_xctest.mm
│ │ │ │ │ └── ARDSettingsModel_xctest.mm
│ │ │ │ └── third_party
│ │ │ │ └── SocketRocket
│ │ │ │ ├── LICENSE
│ │ │ │ ├── SRWebSocket.h
│ │ │ │ └── SRWebSocket.m
│ │ │ ├── Icon-120.png
│ │ │ ├── Icon-180.png
│ │ │ ├── Icon.png
│ │ │ └── README
│ │ ├── objcnativeapi
│ │ │ ├── Info.plist
│ │ │ └── objc
│ │ │ ├── main.m
│ │ │ ├── NADAppDelegate.h
│ │ │ ├── NADAppDelegate.m
│ │ │ ├── NADViewController.h
│ │ │ ├── NADViewController.mm
│ │ │ ├── objccallclient.h
│ │ │ └── objccallclient.mm
│ │ ├── peerconnection
│ │ │ ├── client
│ │ │ │ ├── conductor.h
│ │ │ │ ├── defaults.h
│ │ │ │ ├── flagdefs.h
│ │ │ │ ├── linux
│ │ │ │ │ └── main_wnd.h
│ │ │ │ ├── main_wnd.h
│ │ │ │ └── peer_connection_client.h
│ │ │ └── server
│ │ │ ├── data_socket.h
│ │ │ ├── peer_channel.h
│ │ │ ├── server_test.html
│ │ │ └── utils.h
│ │ ├── relayserver
│ │ ├── stunprober
│ │ ├── stunserver
│ │ ├── turnserver
│ │ └── unityplugin
│ │ ├── ANDROID_INSTRUCTION
│ │ ├── classreferenceholder.h
│ │ ├── java
│ │ │ └── src
│ │ │ └── org
│ │ │ └── webrtc
│ │ │ └── UnityUtility.java
│ │ ├── README
│ │ ├── simple_peer_connection.h
│ │ ├── unity_plugin_apis.h
│ │ └── video_observer.h
│ ├── infra
│ │ └── config
│ │ ├── cq.cfg
│ │ └── README.md
│ ├── json
│ │ ├── assertions.h
│ │ ├── autolink.h
│ │ ├── config.h
│ │ ├── features.h
│ │ ├── forwards.h
│ │ ├── json.h
│ │ ├── reader.h
│ │ ├── value.h
│ │ └── writer.h
│ ├── libyuv
│ │ ├── basic_types.h
│ │ ├── compare.h
│ │ ├── compare_row.h
│ │ ├── convert_argb.h
│ │ ├── convert_from_argb.h
│ │ ├── convert_from.h
│ │ ├── convert.h
│ │ ├── cpu_id.h
│ │ ├── include
│ │ │ ├── libyuv
│ │ │ │ ├── basic_types.h
│ │ │ │ ├── compare.h
│ │ │ │ ├── compare_row.h
│ │ │ │ ├── convert_argb.h
│ │ │ │ ├── convert_from_argb.h
│ │ │ │ ├── convert_from.h
│ │ │ │ ├── convert.h
│ │ │ │ ├── cpu_id.h
│ │ │ │ ├── macros_msa.h
│ │ │ │ ├── mjpeg_decoder.h
│ │ │ │ ├── planar_functions.h
│ │ │ │ ├── rotate_argb.h
│ │ │ │ ├── rotate.h
│ │ │ │ ├── rotate_row.h
│ │ │ │ ├── row.h
│ │ │ │ ├── scale_argb.h
│ │ │ │ ├── scale.h
│ │ │ │ ├── scale_row.h
│ │ │ │ ├── version.h
│ │ │ │ └── video_common.h
│ │ │ └── libyuv.h
│ │ ├── macros_msa.h
│ │ ├── mjpeg_decoder.h
│ │ ├── planar_functions.h
│ │ ├── rotate_argb.h
│ │ ├── rotate.h
│ │ ├── rotate_row.h
│ │ ├── row.h
│ │ ├── scale_argb.h
│ │ ├── scale.h
│ │ ├── scale_row.h
│ │ ├── version.h
│ │ └── video_common.h
│ ├── libyuv.h
│ ├── logging
│ │ └── rtc_event_log
│ │ ├── encoder
│ │ │ ├── rtc_event_log_encoder.h
│ │ │ └── rtc_event_log_encoder_legacy.h
│ │ ├── events
│ │ │ ├── rtc_event_alr_state.h
│ │ │ ├── rtc_event_audio_network_adaptation.h
│ │ │ ├── rtc_event_audio_playout.h
│ │ │ ├── rtc_event_audio_receive_stream_config.h
│ │ │ ├── rtc_event_audio_send_stream_config.h
│ │ │ ├── rtc_event_bwe_update_delay_based.h
│ │ │ ├── rtc_event_bwe_update_loss_based.h
│ │ │ ├── rtc_event.h
│ │ │ ├── rtc_event_ice_candidate_pair_config.h
│ │ │ ├── rtc_event_ice_candidate_pair.h
│ │ │ ├── rtc_event_probe_cluster_created.h
│ │ │ ├── rtc_event_probe_result_failure.h
│ │ │ ├── rtc_event_probe_result_success.h
│ │ │ ├── rtc_event_rtcp_packet_incoming.h
│ │ │ ├── rtc_event_rtcp_packet_outgoing.h
│ │ │ ├── rtc_event_rtp_packet_incoming.h
│ │ │ ├── rtc_event_rtp_packet_outgoing.h
│ │ │ ├── rtc_event_video_receive_stream_config.h
│ │ │ └── rtc_event_video_send_stream_config.h
│ │ ├── icelogger.h
│ │ ├── mock
│ │ │ └── mock_rtc_event_log.h
│ │ ├── output
│ │ │ └── rtc_event_log_output_file.h
│ │ ├── rtc_event_log2.proto
│ │ ├── rtc_event_log_factory.h
│ │ ├── rtc_event_log_factory_interface.h
│ │ ├── rtc_event_log.h
│ │ ├── rtc_event_log_parser.h
│ │ ├── rtc_event_log_parser_new.h
│ │ ├── rtc_event_log.proto
│ │ ├── rtc_event_log_unittest_helper.h
│ │ └── rtc_stream_config.h
│ ├── media
│ │ ├── base
│ │ │ ├── adaptedvideotracksource.h
│ │ │ ├── audiosource.h
│ │ │ ├── codec.h
│ │ │ ├── cryptoparams.h
│ │ │ ├── device.h
│ │ │ ├── fakeframesource.h
│ │ │ ├── fakemediaengine.h
│ │ │ ├── fakenetworkinterface.h
│ │ │ ├── fakertp.h
│ │ │ ├── fakevideocapturer.h
│ │ │ ├── fakevideorenderer.h
│ │ │ ├── h264_profile_level_id.h
│ │ │ ├── mediachannel.h
│ │ │ ├── mediaconfig.h
│ │ │ ├── mediaconstants.h
│ │ │ ├── mediaengine.h
│ │ │ ├── rtpdataengine.h
│ │ │ ├── rtputils.h
│ │ │ ├── streamparams.h
│ │ │ ├── testutils.h
│ │ │ ├── turnutils.h
│ │ │ ├── videoadapter.h
│ │ │ ├── videobroadcaster.h
│ │ │ ├── videocapturerfactory.h
│ │ │ ├── videocapturer.h
│ │ │ ├── videocommon.h
│ │ │ └── videosourcebase.h
│ │ ├── engine
│ │ │ ├── adm_helpers.h
│ │ │ ├── apm_helpers.h
│ │ │ ├── constants.h
│ │ │ ├── convert_legacy_video_factory.h
│ │ │ ├── fakewebrtccall.h
│ │ │ ├── fakewebrtcdeviceinfo.h
│ │ │ ├── fakewebrtcvcmfactory.h
│ │ │ ├── fakewebrtcvideocapturemodule.h
│ │ │ ├── fakewebrtcvideoengine.h
│ │ │ ├── internaldecoderfactory.h
│ │ │ ├── internalencoderfactory.h
│ │ │ ├── multiplexcodecfactory.h
│ │ │ ├── nullwebrtcvideoengine.h
│ │ │ ├── payload_type_mapper.h
│ │ │ ├── scopedvideodecoder.h
│ │ │ ├── scopedvideoencoder.h
│ │ │ ├── simulcast_encoder_adapter.h
│ │ │ ├── simulcast.h
│ │ │ ├── videodecodersoftwarefallbackwrapper.h
│ │ │ ├── videoencodersoftwarefallbackwrapper.h
│ │ │ ├── vp8_encoder_simulcast_proxy.h
│ │ │ ├── webrtcmediaengine.h
│ │ │ ├── webrtcvideocapturerfactory.h
│ │ │ ├── webrtcvideocapturer.h
│ │ │ ├── webrtcvideoengine.h
│ │ │ └── webrtcvoiceengine.h
│ │ └── sctp
│ │ ├── sctptransport.h
│ │ └── sctptransportinternal.h
│ ├── modules
│ │ ├── audio_coding
│ │ │ ├── acm2
│ │ │ │ ├── acm_codec_database.cc
│ │ │ │ ├── acm_codec_database.h
│ │ │ │ ├── acm_receiver.cc
│ │ │ │ ├── acm_receiver.h
│ │ │ │ ├── acm_receiver_unittest.cc
│ │ │ │ ├── acm_receive_test.cc
│ │ │ │ ├── acm_receive_test.h
│ │ │ │ ├── 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
│ │ │ │ ├── codec_manager.cc
│ │ │ │ ├── codec_manager.h
│ │ │ │ ├── codec_manager_unittest.cc
│ │ │ │ ├── rent_a_codec.cc
│ │ │ │ ├── rent_a_codec.h
│ │ │ │ └── rent_a_codec_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
│ │ │ │ ├── fec_controller_rplr_based.cc
│ │ │ │ ├── fec_controller_rplr_based.h
│ │ │ │ ├── fec_controller_rplr_based_unittest.cc
│ │ │ │ ├── frame_length_controller.cc
│ │ │ │ ├── frame_length_controller.h
│ │ │ │ ├── frame_length_controller_unittest.cc
│ │ │ │ ├── include
│ │ │ │ │ ├── audio_network_adaptor_config.h
│ │ │ │ │ └── audio_network_adaptor.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
│ │ │ ├── BUILD.gn
│ │ │ ├── codecs
│ │ │ │ ├── audio_decoder.h
│ │ │ │ ├── audio_encoder.h
│ │ │ │ ├── audio_format_conversion.cc
│ │ │ │ ├── audio_format_conversion.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.c
│ │ │ │ │ ├── g711.h
│ │ │ │ │ ├── g711_interface.c
│ │ │ │ │ ├── g711_interface.h
│ │ │ │ │ ├── OWNERS
│ │ │ │ │ └── test
│ │ │ │ │ └── testG711.cc
│ │ │ │ ├── g722
│ │ │ │ │ ├── audio_decoder_g722.cc
│ │ │ │ │ ├── audio_decoder_g722.h
│ │ │ │ │ ├── audio_encoder_g722.cc
│ │ │ │ │ ├── audio_encoder_g722.h
│ │ │ │ │ ├── g722_decode.c
│ │ │ │ │ ├── g722_enc_dec.h
│ │ │ │ │ ├── g722_encode.c
│ │ │ │ │ ├── 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_augmentation.c
│ │ │ │ │ ├── cb_mem_energy_augmentation.h
│ │ │ │ │ ├── cb_mem_energy.c
│ │ │ │ │ ├── cb_mem_energy_calc.c
│ │ │ │ │ ├── cb_mem_energy_calc.h
│ │ │ │ │ ├── cb_mem_energy.h
│ │ │ │ │ ├── cb_search.c
│ │ │ │ │ ├── cb_search_core.c
│ │ │ │ │ ├── cb_search_core.h
│ │ │ │ │ ├── cb_search.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
│ │ │ │ │ ├── enhancer.c
│ │ │ │ │ ├── enhancer.h
│ │ │ │ │ ├── enhancer_interface.c
│ │ │ │ │ ├── enhancer_interface.h
│ │ │ │ │ ├── enh_upsample.c
│ │ │ │ │ ├── enh_upsample.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
│ │ │ │ │ │ └── iLBCtestscript.txt
│ │ │ │ │ ├── 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_bwe.c
│ │ │ │ │ │ │ ├── decode.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
│ │ │ │ │ │ │ ├── filterbanks.c
│ │ │ │ │ │ │ ├── filterbanks_mips.c
│ │ │ │ │ │ │ ├── filterbanks_neon.c
│ │ │ │ │ │ │ ├── filterbanks_unittest.cc
│ │ │ │ │ │ │ ├── filterbank_tables.c
│ │ │ │ │ │ │ ├── filterbank_tables.h
│ │ │ │ │ │ │ ├── filters.c
│ │ │ │ │ │ │ ├── filters_mips.c
│ │ │ │ │ │ │ ├── filters_neon.c
│ │ │ │ │ │ │ ├── filters_unittest.cc
│ │ │ │ │ │ │ ├── initialize.c
│ │ │ │ │ │ │ ├── isacfix.c
│ │ │ │ │ │ │ ├── isac_fix_type.h
│ │ │ │ │ │ │ ├── lattice_armv7.S
│ │ │ │ │ │ │ ├── lattice.c
│ │ │ │ │ │ │ ├── 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_c.c
│ │ │ │ │ │ │ ├── pitch_estimator.h
│ │ │ │ │ │ │ ├── pitch_estimator_mips.c
│ │ │ │ │ │ │ ├── pitch_filter_armv6.S
│ │ │ │ │ │ │ ├── pitch_filter.c
│ │ │ │ │ │ │ ├── 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
│ │ │ │ │ │ └── QA
│ │ │ │ │ │ ├── ChannelFiles.txt
│ │ │ │ │ │ ├── diffiSACPLC.txt
│ │ │ │ │ │ ├── diffiSAC.txt
│ │ │ │ │ │ ├── InputFilesFew.txt
│ │ │ │ │ │ ├── InputFiles.txt
│ │ │ │ │ │ ├── ListOfTestCases.xls
│ │ │ │ │ │ ├── runiSACfault.txt
│ │ │ │ │ │ ├── runiSACfixfloat.txt
│ │ │ │ │ │ ├── runiSACLongtest.txt
│ │ │ │ │ │ ├── runiSACNB.txt
│ │ │ │ │ │ ├── runiSACPLC.txt
│ │ │ │ │ │ └── runiSACRate.txt
│ │ │ │ │ ├── locked_bandwidth_info.cc
│ │ │ │ │ ├── locked_bandwidth_info.h
│ │ │ │ │ ├── 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_bwe.c
│ │ │ │ │ │ │ ├── decode.c
│ │ │ │ │ │ │ ├── encode.c
│ │ │ │ │ │ │ ├── encode_lpc_swb.c
│ │ │ │ │ │ │ ├── encode_lpc_swb.h
│ │ │ │ │ │ │ ├── entropy_coding.c
│ │ │ │ │ │ │ ├── entropy_coding.h
│ │ │ │ │ │ │ ├── fft.c
│ │ │ │ │ │ │ ├── fft.h
│ │ │ │ │ │ │ ├── filterbanks.c
│ │ │ │ │ │ │ ├── filter_functions.c
│ │ │ │ │ │ │ ├── filter_functions.h
│ │ │ │ │ │ │ ├── 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
│ │ │ │ │ │ │ ├── QA
│ │ │ │ │ │ │ │ ├── runiSACfault.txt
│ │ │ │ │ │ │ │ ├── runiSACfixfloat.txt
│ │ │ │ │ │ │ │ └── runiSACLongtest.txt
│ │ │ │ │ │ │ ├── ReleaseTest-API
│ │ │ │ │ │ │ │ └── ReleaseTest-API.cc
│ │ │ │ │ │ │ ├── simpleKenny.c
│ │ │ │ │ │ │ └── SwitchingSampRate
│ │ │ │ │ │ │ └── SwitchingSampRate.cc
│ │ │ │ │ │ └── util
│ │ │ │ │ │ ├── utility.c
│ │ │ │ │ │ └── utility.h
│ │ │ │ │ └── unittest.cc
│ │ │ │ ├── legacy_encoded_audio_frame.cc
│ │ │ │ ├── legacy_encoded_audio_frame.h
│ │ │ │ ├── legacy_encoded_audio_frame_unittest.cc
│ │ │ │ ├── opus
│ │ │ │ │ ├── audio_decoder_opus.cc
│ │ │ │ │ ├── audio_decoder_opus.h
│ │ │ │ │ ├── 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.c
│ │ │ │ │ ├── opus_interface.h
│ │ │ │ │ ├── opus_speed_test.cc
│ │ │ │ │ └── opus_unittest.cc
│ │ │ │ ├── OWNERS
│ │ │ │ ├── pcm16b
│ │ │ │ │ ├── audio_decoder_pcm16b.cc
│ │ │ │ │ ├── audio_decoder_pcm16b.h
│ │ │ │ │ ├── audio_encoder_pcm16b.cc
│ │ │ │ │ ├── audio_encoder_pcm16b.h
│ │ │ │ │ ├── pcm16b.c
│ │ │ │ │ ├── pcm16b_common.cc
│ │ │ │ │ ├── pcm16b_common.h
│ │ │ │ │ └── pcm16b.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
│ │ │ ├── DEPS
│ │ │ ├── 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_fax.cc
│ │ │ │ ├── decision_logic_fax.h
│ │ │ │ ├── decision_logic.h
│ │ │ │ ├── decision_logic_normal.cc
│ │ │ │ ├── decision_logic_normal.h
│ │ │ │ ├── decision_logic_unittest.cc
│ │ │ │ ├── decoder_database.cc
│ │ │ │ ├── decoder_database.h
│ │ │ │ ├── decoder_database_unittest.cc
│ │ │ │ ├── defines.h
│ │ │ │ ├── delay_manager.cc
│ │ │ │ ├── delay_manager.h
│ │ │ │ ├── delay_manager_unittest.cc
│ │ │ │ ├── delay_peak_detector.cc
│ │ │ │ ├── delay_peak_detector.h
│ │ │ │ ├── delay_peak_detector_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
│ │ │ │ ├── include
│ │ │ │ │ └── neteq.h
│ │ │ │ ├── merge.cc
│ │ │ │ ├── merge.h
│ │ │ │ ├── merge_unittest.cc
│ │ │ │ ├── mock
│ │ │ │ │ ├── mock_buffer_level_filter.h
│ │ │ │ │ ├── mock_decoder_database.h
│ │ │ │ │ ├── mock_delay_manager.h
│ │ │ │ │ ├── mock_delay_peak_detector.h
│ │ │ │ │ ├── mock_dtmf_buffer.h
│ │ │ │ │ ├── mock_dtmf_tone_generator.h
│ │ │ │ │ ├── mock_expand.h
│ │ │ │ │ ├── mock_external_decoder_pcm16b.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.cc
│ │ │ │ ├── neteq_decoder_enum.cc
│ │ │ │ ├── neteq_decoder_enum.h
│ │ │ │ ├── neteq_external_decoder_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_buffer.cc
│ │ │ │ ├── packet_buffer.h
│ │ │ │ ├── packet_buffer_unittest.cc
│ │ │ │ ├── packet.cc
│ │ │ │ ├── packet.h
│ │ │ │ ├── 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
│ │ │ │ ├── rtcp.cc
│ │ │ │ ├── rtcp.h
│ │ │ │ ├── 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_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
│ │ │ │ ├── tick_timer.cc
│ │ │ │ ├── tick_timer.h
│ │ │ │ ├── tick_timer_unittest.cc
│ │ │ │ ├── timestamp_scaler.cc
│ │ │ │ ├── timestamp_scaler.h
│ │ │ │ ├── timestamp_scaler_unittest.cc
│ │ │ │ ├── time_stretch.cc
│ │ │ │ ├── time_stretch.h
│ │ │ │ ├── time_stretch_unittest.cc
│ │ │ │ └── tools
│ │ │ │ ├── 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
│ │ │ │ ├── DEPS
│ │ │ │ ├── encode_neteq_input.cc
│ │ │ │ ├── encode_neteq_input.h
│ │ │ │ ├── fake_decode_from_file.cc
│ │ │ │ ├── fake_decode_from_file.h
│ │ │ │ ├── input_audio_file.cc
│ │ │ │ ├── input_audio_file.h
│ │ │ │ ├── input_audio_file_unittest.cc
│ │ │ │ ├── neteq_delay_analyzer.cc
│ │ │ │ ├── neteq_delay_analyzer.h
│ │ │ │ ├── neteq_external_decoder_test.cc
│ │ │ │ ├── neteq_external_decoder_test.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_stats_getter.cc
│ │ │ │ ├── neteq_stats_getter.h
│ │ │ │ ├── neteq_test.cc
│ │ │ │ ├── neteq_test.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
│ │ │ │ ├── rtpcat.cc
│ │ │ │ ├── rtp_encode.cc
│ │ │ │ ├── rtp_file_source.cc
│ │ │ │ ├── rtp_file_source.h
│ │ │ │ ├── rtp_generator.cc
│ │ │ │ ├── rtp_generator.h
│ │ │ │ └── rtp_jitter.cc
│ │ │ ├── OWNERS
│ │ │ └── test
│ │ │ ├── ACMTest.h
│ │ │ ├── APITest.cc
│ │ │ ├── APITest.h
│ │ │ ├── Channel.cc
│ │ │ ├── Channel.h
│ │ │ ├── delay_test.cc
│ │ │ ├── EncodeDecodeTest.cc
│ │ │ ├── EncodeDecodeTest.h
│ │ │ ├── insert_packet_with_timing.cc
│ │ │ ├── iSACTest.cc
│ │ │ ├── iSACTest.h
│ │ │ ├── opus_test.cc
│ │ │ ├── opus_test.h
│ │ │ ├── PacketLossTest.cc
│ │ │ ├── PacketLossTest.h
│ │ │ ├── PCMFile.cc
│ │ │ ├── PCMFile.h
│ │ │ ├── RTPFile.cc
│ │ │ ├── RTPFile.h
│ │ │ ├── target_delay_unittest.cc
│ │ │ ├── TestAllCodecs.cc
│ │ │ ├── TestAllCodecs.h
│ │ │ ├── Tester.cc
│ │ │ ├── TestRedFec.cc
│ │ │ ├── TestRedFec.h
│ │ │ ├── TestStereo.cc
│ │ │ ├── TestStereo.h
│ │ │ ├── TestVADDTX.cc
│ │ │ ├── TestVADDTX.h
│ │ │ ├── TwoWayCommunication.cc
│ │ │ ├── TwoWayCommunication.h
│ │ │ ├── utility.cc
│ │ │ └── utility.h
│ │ ├── audio_device
│ │ │ ├── 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
│ │ │ ├── BUILD.gn
│ │ │ ├── DEPS
│ │ │ ├── dummy
│ │ │ │ ├── audio_device_dummy.cc
│ │ │ │ ├── audio_device_dummy.h
│ │ │ │ ├── file_audio_device.cc
│ │ │ │ ├── file_audio_device_factory.cc
│ │ │ │ ├── file_audio_device_factory.h
│ │ │ │ └── file_audio_device.h
│ │ │ ├── fine_audio_buffer.cc
│ │ │ ├── fine_audio_buffer.h
│ │ │ ├── fine_audio_buffer_unittest.cc
│ │ │ ├── include
│ │ │ │ ├── audio_device_data_observer.h
│ │ │ │ ├── audio_device_default.h
│ │ │ │ ├── audio_device_defines.h
│ │ │ │ ├── audio_device.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
│ │ │ ├── ios
│ │ │ │ ├── audio_device_ios.h
│ │ │ │ ├── audio_device_ios.mm
│ │ │ │ ├── audio_device_not_implemented_ios.mm
│ │ │ │ ├── audio_device_unittest_ios.mm
│ │ │ │ ├── audio_session_observer.h
│ │ │ │ ├── objc
│ │ │ │ │ ├── RTCAudioSessionConfiguration.h
│ │ │ │ │ ├── RTCAudioSessionDelegateAdapter.h
│ │ │ │ │ ├── RTCAudioSessionDelegateAdapter.mm
│ │ │ │ │ └── RTCAudioSession.h
│ │ │ │ ├── voice_processing_audio_unit.h
│ │ │ │ └── voice_processing_audio_unit.mm
│ │ │ ├── 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
│ │ │ │ └── portaudio
│ │ │ │ ├── pa_memorybarrier.h
│ │ │ │ ├── pa_ringbuffer.c
│ │ │ │ └── pa_ringbuffer.h
│ │ │ ├── mock_audio_device_buffer.h
│ │ │ ├── OWNERS
│ │ │ └── win
│ │ │ ├── audio_device_core_win.cc
│ │ │ ├── audio_device_core_win.h
│ │ │ ├── core_audio_utility_win.cc
│ │ │ ├── core_audio_utility_win.h
│ │ │ └── core_audio_utility_win_unittest.cc
│ │ ├── audio_mixer
│ │ │ ├── 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
│ │ │ ├── BUILD.gn
│ │ │ ├── default_output_rate_calculator.cc
│ │ │ ├── default_output_rate_calculator.h
│ │ │ ├── DEPS
│ │ │ ├── frame_combiner.cc
│ │ │ ├── frame_combiner.h
│ │ │ ├── frame_combiner_unittest.cc
│ │ │ ├── gain_change_calculator.cc
│ │ │ ├── gain_change_calculator.h
│ │ │ ├── output_rate_calculator.h
│ │ │ ├── OWNERS
│ │ │ ├── sine_wave_generator.cc
│ │ │ └── sine_wave_generator.h
│ │ ├── audio_processing
│ │ │ ├── aec
│ │ │ │ ├── aec_common.h
│ │ │ │ ├── aec_core.cc
│ │ │ │ ├── aec_core.h
│ │ │ │ ├── aec_core_mips.cc
│ │ │ │ ├── aec_core_neon.cc
│ │ │ │ ├── aec_core_optimized_methods.h
│ │ │ │ ├── aec_core_sse2.cc
│ │ │ │ ├── aec_resampler.cc
│ │ │ │ ├── aec_resampler.h
│ │ │ │ ├── echo_cancellation.cc
│ │ │ │ ├── echo_cancellation.h
│ │ │ │ ├── echo_cancellation_unittest.cc
│ │ │ │ └── system_delay_unittest.cc
│ │ │ ├── aec3
│ │ │ │ ├── adaptive_fir_filter.cc
│ │ │ │ ├── adaptive_fir_filter.h
│ │ │ │ ├── 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
│ │ │ │ ├── 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
│ │ │ │ ├── BUILD.gn
│ │ │ │ ├── cascaded_biquad_filter.cc
│ │ │ │ ├── cascaded_biquad_filter.h
│ │ │ │ ├── cascaded_biquad_filter_unittest.cc
│ │ │ │ ├── coherence_gain.cc
│ │ │ │ ├── coherence_gain.h
│ │ │ │ ├── comfort_noise_generator.cc
│ │ │ │ ├── comfort_noise_generator.h
│ │ │ │ ├── comfort_noise_generator_unittest.cc
│ │ │ │ ├── decimator.cc
│ │ │ │ ├── decimator.h
│ │ │ │ ├── decimator_unittest.cc
│ │ │ │ ├── delay_estimate.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
│ │ │ │ ├── erle_estimator.cc
│ │ │ │ ├── erle_estimator.h
│ │ │ │ ├── erle_estimator_unittest.cc
│ │ │ │ ├── erl_estimator.cc
│ │ │ │ ├── erl_estimator.h
│ │ │ │ ├── erl_estimator_unittest.cc
│ │ │ │ ├── fft_buffer.cc
│ │ │ │ ├── fft_buffer.h
│ │ │ │ ├── fft_data.h
│ │ │ │ ├── fft_data_unittest.cc
│ │ │ │ ├── filter_analyzer.cc
│ │ │ │ ├── filter_analyzer.h
│ │ │ │ ├── frame_blocker.cc
│ │ │ │ ├── frame_blocker.h
│ │ │ │ ├── frame_blocker_unittest.cc
│ │ │ │ ├── main_filter_update_gain.cc
│ │ │ │ ├── main_filter_update_gain.h
│ │ │ │ ├── main_filter_update_gain_unittest.cc
│ │ │ │ ├── matched_filter.cc
│ │ │ │ ├── matched_filter.h
│ │ │ │ ├── matched_filter_lag_aggregator.cc
│ │ │ │ ├── matched_filter_lag_aggregator.h
│ │ │ │ ├── matched_filter_lag_aggregator_unittest.cc
│ │ │ │ ├── matched_filter_unittest.cc
│ │ │ │ ├── matrix_buffer.cc
│ │ │ │ ├── matrix_buffer.h
│ │ │ │ ├── mock
│ │ │ │ │ ├── mock_block_processor.h
│ │ │ │ │ ├── mock_echo_remover.h
│ │ │ │ │ ├── mock_render_delay_buffer.h
│ │ │ │ │ └── mock_render_delay_controller.h
│ │ │ │ ├── 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
│ │ │ │ ├── shadow_filter_update_gain.cc
│ │ │ │ ├── shadow_filter_update_gain.h
│ │ │ │ ├── shadow_filter_update_gain_unittest.cc
│ │ │ │ ├── skew_estimator.cc
│ │ │ │ ├── skew_estimator.h
│ │ │ │ ├── skew_estimator_unittest.cc
│ │ │ │ ├── stationarity_estimator.cc
│ │ │ │ ├── stationarity_estimator.h
│ │ │ │ ├── subtractor.cc
│ │ │ │ ├── subtractor.h
│ │ │ │ ├── subtractor_output.h
│ │ │ │ ├── subtractor_unittest.cc
│ │ │ │ ├── suppression_filter.cc
│ │ │ │ ├── suppression_filter.h
│ │ │ │ ├── suppression_filter_unittest.cc
│ │ │ │ ├── suppression_gain.cc
│ │ │ │ ├── suppression_gain.h
│ │ │ │ ├── suppression_gain_limiter.cc
│ │ │ │ ├── suppression_gain_limiter.h
│ │ │ │ ├── suppression_gain_unittest.cc
│ │ │ │ ├── vector_buffer.cc
│ │ │ │ ├── vector_buffer.h
│ │ │ │ ├── vector_math.h
│ │ │ │ └── vector_math_unittest.cc
│ │ │ ├── aec_dump
│ │ │ │ ├── aec_dump_factory.h
│ │ │ │ ├── aec_dump_impl.cc
│ │ │ │ ├── aec_dump_impl.h
│ │ │ │ ├── aec_dump_integration_test.cc
│ │ │ │ ├── aec_dump_unittest.cc
│ │ │ │ ├── BUILD.gn
│ │ │ │ ├── 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
│ │ │ │ ├── aecm_core.cc
│ │ │ │ ├── aecm_core_c.cc
│ │ │ │ ├── aecm_core.h
│ │ │ │ ├── aecm_core_mips.cc
│ │ │ │ ├── aecm_core_neon.cc
│ │ │ │ ├── aecm_defines.h
│ │ │ │ ├── echo_control_mobile.cc
│ │ │ │ └── echo_control_mobile.h
│ │ │ ├── agc
│ │ │ │ ├── agc.cc
│ │ │ │ ├── agc.h
│ │ │ │ ├── agc_manager_direct.cc
│ │ │ │ ├── agc_manager_direct.h
│ │ │ │ ├── agc_manager_direct_unittest.cc
│ │ │ │ ├── gain_map_internal.h
│ │ │ │ ├── legacy
│ │ │ │ │ ├── analog_agc.c
│ │ │ │ │ ├── analog_agc.h
│ │ │ │ │ ├── digital_agc.c
│ │ │ │ │ ├── digital_agc.h
│ │ │ │ │ └── gain_control.h
│ │ │ │ ├── loudness_histogram.cc
│ │ │ │ ├── loudness_histogram.h
│ │ │ │ ├── loudness_histogram_unittest.cc
│ │ │ │ ├── mock_agc.h
│ │ │ │ ├── utility.cc
│ │ │ │ └── utility.h
│ │ │ ├── agc2
│ │ │ │ ├── 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
│ │ │ │ ├── BUILD.gn
│ │ │ │ ├── compute_interpolated_gain_curve.cc
│ │ │ │ ├── compute_interpolated_gain_curve.h
│ │ │ │ ├── down_sampler.cc
│ │ │ │ ├── down_sampler.h
│ │ │ │ ├── fixed_digital_level_estimator.cc
│ │ │ │ ├── fixed_digital_level_estimator.h
│ │ │ │ ├── fixed_digital_level_estimator_unittest.cc
│ │ │ │ ├── fixed_gain_controller.cc
│ │ │ │ ├── fixed_gain_controller.h
│ │ │ │ ├── fixed_gain_controller_unittest.cc
│ │ │ │ ├── gain_applier.cc
│ │ │ │ ├── gain_applier.h
│ │ │ │ ├── gain_applier_unittest.cc
│ │ │ │ ├── gain_curve_applier.cc
│ │ │ │ ├── gain_curve_applier.h
│ │ │ │ ├── gain_curve_applier_unittest.cc
│ │ │ │ ├── interpolated_gain_curve.cc
│ │ │ │ ├── interpolated_gain_curve.h
│ │ │ │ ├── interpolated_gain_curve_unittest.cc
│ │ │ │ ├── limiter.cc
│ │ │ │ ├── limiter.h
│ │ │ │ ├── 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
│ │ │ │ │ ├── common.h
│ │ │ │ │ ├── DEPS
│ │ │ │ │ ├── features_extraction.cc
│ │ │ │ │ ├── features_extraction.h
│ │ │ │ │ ├── features_extraction_unittest.cc
│ │ │ │ │ ├── fft_util.cc
│ │ │ │ │ ├── fft_util.h
│ │ │ │ │ ├── fft_util_unittest.cc
│ │ │ │ │ ├── lp_residual.cc
│ │ │ │ │ ├── lp_residual.h
│ │ │ │ │ ├── lp_residual_unittest.cc
│ │ │ │ │ ├── pitch_info.h
│ │ │ │ │ ├── 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_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
│ │ │ │ ├── saturation_protector.cc
│ │ │ │ ├── saturation_protector.h
│ │ │ │ ├── saturation_protector_unittest.cc
│ │ │ │ ├── signal_classifier.cc
│ │ │ │ ├── signal_classifier.h
│ │ │ │ ├── signal_classifier_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_generator
│ │ │ │ ├── file_audio_generator.cc
│ │ │ │ ├── file_audio_generator.h
│ │ │ │ └── file_audio_generator_unittest.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
│ │ │ ├── beamformer
│ │ │ │ ├── array_util.cc
│ │ │ │ ├── array_util.h
│ │ │ │ ├── array_util_unittest.cc
│ │ │ │ ├── complex_matrix.h
│ │ │ │ ├── complex_matrix_unittest.cc
│ │ │ │ ├── covariance_matrix_generator.cc
│ │ │ │ ├── covariance_matrix_generator.h
│ │ │ │ ├── covariance_matrix_generator_unittest.cc
│ │ │ │ ├── matrix.h
│ │ │ │ ├── matrix_test_helpers.h
│ │ │ │ ├── matrix_unittest.cc
│ │ │ │ ├── mock_nonlinear_beamformer.h
│ │ │ │ ├── nonlinear_beamformer.cc
│ │ │ │ ├── nonlinear_beamformer.h
│ │ │ │ ├── nonlinear_beamformer_test.cc
│ │ │ │ └── nonlinear_beamformer_unittest.cc
│ │ │ ├── BUILD.gn
│ │ │ ├── common.h
│ │ │ ├── config_unittest.cc
│ │ │ ├── debug.proto
│ │ │ ├── DEPS
│ │ │ ├── echo_cancellation_bit_exact_unittest.cc
│ │ │ ├── echo_cancellation_impl.cc
│ │ │ ├── echo_cancellation_impl.h
│ │ │ ├── echo_cancellation_impl_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
│ │ │ ├── gain_control_for_experimental_agc.cc
│ │ │ ├── gain_control_for_experimental_agc.h
│ │ │ ├── gain_control_impl.cc
│ │ │ ├── gain_control_impl.h
│ │ │ ├── gain_controller2.cc
│ │ │ ├── gain_controller2.h
│ │ │ ├── gain_controller2_unittest.cc
│ │ │ ├── gain_control_unittest.cc
│ │ │ ├── include
│ │ │ │ ├── aec_dump.cc
│ │ │ │ ├── aec_dump.h
│ │ │ │ ├── audio_frame_view.h
│ │ │ │ ├── audio_generator_factory.cc
│ │ │ │ ├── audio_generator_factory.h
│ │ │ │ ├── audio_generator.h
│ │ │ │ ├── audio_processing.cc
│ │ │ │ ├── audio_processing.h
│ │ │ │ ├── audio_processing_statistics.cc
│ │ │ │ ├── audio_processing_statistics.h
│ │ │ │ ├── config.cc
│ │ │ │ ├── config.h
│ │ │ │ └── mock_audio_processing.h
│ │ │ ├── intelligibility
│ │ │ │ ├── intelligibility_enhancer.cc
│ │ │ │ ├── intelligibility_enhancer.h
│ │ │ │ ├── intelligibility_enhancer_unittest.cc
│ │ │ │ ├── intelligibility_utils.cc
│ │ │ │ ├── intelligibility_utils.h
│ │ │ │ ├── intelligibility_utils_unittest.cc
│ │ │ │ └── test
│ │ │ │ └── intelligibility_proc.cc
│ │ │ ├── level_estimator_impl.cc
│ │ │ ├── level_estimator_impl.h
│ │ │ ├── level_estimator_unittest.cc
│ │ │ ├── logging
│ │ │ │ ├── apm_data_dumper.cc
│ │ │ │ └── apm_data_dumper.h
│ │ │ ├── low_cut_filter.cc
│ │ │ ├── low_cut_filter.h
│ │ │ ├── low_cut_filter_unittest.cc
│ │ │ ├── noise_suppression_impl.cc
│ │ │ ├── noise_suppression_impl.h
│ │ │ ├── noise_suppression_unittest.cc
│ │ │ ├── ns
│ │ │ │ ├── defines.h
│ │ │ │ ├── noise_suppression.c
│ │ │ │ ├── noise_suppression.h
│ │ │ │ ├── noise_suppression_x.c
│ │ │ │ ├── noise_suppression_x.h
│ │ │ │ ├── ns_core.c
│ │ │ │ ├── ns_core.h
│ │ │ │ ├── nsx_core.c
│ │ │ │ ├── nsx_core_c.c
│ │ │ │ ├── nsx_core.h
│ │ │ │ ├── nsx_core_mips.c
│ │ │ │ ├── nsx_core_neon.c
│ │ │ │ ├── nsx_defines.h
│ │ │ │ └── windows_private.h
│ │ │ ├── OWNERS
│ │ │ ├── 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
│ │ │ │ ├── apmtest.m
│ │ │ │ ├── audio_buffer_tools.cc
│ │ │ │ ├── audio_buffer_tools.h
│ │ │ │ ├── audio_processing_simulator.cc
│ │ │ │ ├── audio_processing_simulator.h
│ │ │ │ ├── audioproc_float_impl.cc
│ │ │ │ ├── audioproc_float_impl.h
│ │ │ │ ├── audioproc_float_main.cc
│ │ │ │ ├── bitexactness_tools.cc
│ │ │ │ ├── bitexactness_tools.h
│ │ │ │ ├── conversational_speech
│ │ │ │ │ ├── BUILD.gn
│ │ │ │ │ ├── config.cc
│ │ │ │ │ ├── config.h
│ │ │ │ │ ├── generator.cc
│ │ │ │ │ ├── generator_unittest.cc
│ │ │ │ │ ├── mock_wavreader.cc
│ │ │ │ │ ├── mock_wavreader_factory.cc
│ │ │ │ │ ├── mock_wavreader_factory.h
│ │ │ │ │ ├── mock_wavreader.h
│ │ │ │ │ ├── multiend_call.cc
│ │ │ │ │ ├── multiend_call.h
│ │ │ │ │ ├── OWNERS
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── 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
│ │ │ │ ├── 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
│ │ │ │ │ ├── apm_configs
│ │ │ │ │ │ └── default.json
│ │ │ │ │ ├── apm_quality_assessment_boxplot.py
│ │ │ │ │ ├── apm_quality_assessment_export.py
│ │ │ │ │ ├── apm_quality_assessment_gencfgs.py
│ │ │ │ │ ├── apm_quality_assessment_optimize.py
│ │ │ │ │ ├── apm_quality_assessment.py
│ │ │ │ │ ├── apm_quality_assessment.sh
│ │ │ │ │ ├── apm_quality_assessment_unittest.py
│ │ │ │ │ ├── BUILD.gn
│ │ │ │ │ ├── output
│ │ │ │ │ │ └── README.md
│ │ │ │ │ ├── OWNERS
│ │ │ │ │ ├── quality_assessment
│ │ │ │ │ │ ├── annotations.py
│ │ │ │ │ │ ├── annotations_unittest.py
│ │ │ │ │ │ ├── apm_configs
│ │ │ │ │ │ │ └── default.json
│ │ │ │ │ │ ├── apm_vad.cc
│ │ │ │ │ │ ├── audioproc_wrapper.py
│ │ │ │ │ │ ├── collect_data.py
│ │ │ │ │ │ ├── data_access.py
│ │ │ │ │ │ ├── echo_path_simulation_factory.py
│ │ │ │ │ │ ├── echo_path_simulation.py
│ │ │ │ │ │ ├── echo_path_simulation_unittest.py
│ │ │ │ │ │ ├── eval_scores_factory.py
│ │ │ │ │ │ ├── eval_scores.py
│ │ │ │ │ │ ├── eval_scores_unittest.py
│ │ │ │ │ │ ├── evaluation.py
│ │ │ │ │ │ ├── exceptions.py
│ │ │ │ │ │ ├── export.py
│ │ │ │ │ │ ├── export_unittest.py
│ │ │ │ │ │ ├── external_vad.py
│ │ │ │ │ │ ├── fake_external_vad.py
│ │ │ │ │ │ ├── fake_polqa.cc
│ │ │ │ │ │ ├── __init__.py
│ │ │ │ │ │ ├── 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_factory.py
│ │ │ │ │ │ ├── test_data_generation.py
│ │ │ │ │ │ ├── test_data_generation_unittest.py
│ │ │ │ │ │ └── vad.cc
│ │ │ │ │ └── README.md
│ │ │ │ ├── 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
│ │ │ │ ├── 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.cc
│ │ │ │ ├── transient_suppressor.h
│ │ │ │ ├── transient_suppressor_unittest.cc
│ │ │ │ ├── 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
│ │ │ │ ├── block_mean_calculator.cc
│ │ │ │ ├── block_mean_calculator.h
│ │ │ │ ├── block_mean_calculator_unittest.cc
│ │ │ │ ├── delay_estimator.cc
│ │ │ │ ├── delay_estimator.h
│ │ │ │ ├── delay_estimator_internal.h
│ │ │ │ ├── delay_estimator_unittest.cc
│ │ │ │ ├── delay_estimator_wrapper.cc
│ │ │ │ ├── delay_estimator_wrapper.h
│ │ │ │ ├── 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
│ │ │ ├── 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
│ │ │ │ ├── vad_with_level.h
│ │ │ │ ├── voice_activity_detector.cc
│ │ │ │ ├── voice_activity_detector.h
│ │ │ │ ├── voice_activity_detector_unittest.cc
│ │ │ │ └── voice_gmm_tables.h
│ │ │ ├── voice_detection_impl.cc
│ │ │ ├── voice_detection_impl.h
│ │ │ └── voice_detection_unittest.cc
│ │ ├── bitrate_controller
│ │ │ ├── bitrate_controller_impl.cc
│ │ │ ├── bitrate_controller_impl.h
│ │ │ ├── bitrate_controller_unittest.cc
│ │ │ ├── BUILD.gn
│ │ │ ├── DEPS
│ │ │ ├── include
│ │ │ │ ├── bitrate_controller.h
│ │ │ │ └── mock
│ │ │ │ └── mock_bitrate_controller.h
│ │ │ ├── OWNERS
│ │ │ ├── send_side_bandwidth_estimation.cc
│ │ │ ├── send_side_bandwidth_estimation.h
│ │ │ └── send_side_bandwidth_estimation_unittest.cc
│ │ ├── BUILD.gn
│ │ ├── congestion_controller
│ │ │ ├── acknowledged_bitrate_estimator.cc
│ │ │ ├── acknowledged_bitrate_estimator.h
│ │ │ ├── acknowledged_bitrate_estimator_unittest.cc
│ │ │ ├── bbr
│ │ │ │ ├── bandwidth_sampler.cc
│ │ │ │ ├── bandwidth_sampler.h
│ │ │ │ ├── bandwidth_sampler_unittest.cc
│ │ │ │ ├── bbr_factory.cc
│ │ │ │ ├── bbr_factory.h
│ │ │ │ ├── bbr_network_controller.cc
│ │ │ │ ├── bbr_network_controller.h
│ │ │ │ ├── bbr_network_controller_unittest.cc
│ │ │ │ ├── BUILD.gn
│ │ │ │ ├── data_transfer_tracker.cc
│ │ │ │ ├── data_transfer_tracker.h
│ │ │ │ ├── data_transfer_tracker_unittest.cc
│ │ │ │ ├── packet_number_indexed_queue.h
│ │ │ │ ├── packet_number_indexed_queue_unittest.cc
│ │ │ │ ├── rtt_stats.cc
│ │ │ │ ├── rtt_stats.h
│ │ │ │ ├── rtt_stats_unittest.cc
│ │ │ │ ├── windowed_filter.h
│ │ │ │ └── windowed_filter_unittest.cc
│ │ │ ├── bitrate_estimator.cc
│ │ │ ├── bitrate_estimator.h
│ │ │ ├── BUILD.gn
│ │ │ ├── congestion_controller_unittests_helper.cc
│ │ │ ├── congestion_controller_unittests_helper.h
│ │ │ ├── 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
│ │ │ ├── DEPS
│ │ │ ├── goog_cc
│ │ │ │ ├── acknowledged_bitrate_estimator.cc
│ │ │ │ ├── acknowledged_bitrate_estimator.h
│ │ │ │ ├── acknowledged_bitrate_estimator_unittest.cc
│ │ │ │ ├── alr_detector.cc
│ │ │ │ ├── alr_detector.h
│ │ │ │ ├── alr_detector_unittest.cc
│ │ │ │ ├── bitrate_estimator.cc
│ │ │ │ ├── bitrate_estimator.h
│ │ │ │ ├── BUILD.gn
│ │ │ │ ├── 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_factory.cc
│ │ │ │ ├── goog_cc_network_control.cc
│ │ │ │ ├── goog_cc_network_control.h
│ │ │ │ ├── include
│ │ │ │ │ └── goog_cc_factory.h
│ │ │ │ ├── median_slope_estimator.cc
│ │ │ │ ├── median_slope_estimator.h
│ │ │ │ ├── median_slope_estimator_unittest.cc
│ │ │ │ ├── probe_bitrate_estimator.cc
│ │ │ │ ├── probe_bitrate_estimator.h
│ │ │ │ ├── probe_bitrate_estimator_unittest.cc
│ │ │ │ ├── probe_controller.cc
│ │ │ │ ├── probe_controller.h
│ │ │ │ ├── probe_controller_unittest.cc
│ │ │ │ ├── trendline_estimator.cc
│ │ │ │ ├── trendline_estimator.h
│ │ │ │ └── trendline_estimator_unittest.cc
│ │ │ ├── include
│ │ │ │ ├── mock
│ │ │ │ │ └── mock_congestion_observer.h
│ │ │ │ ├── network_changed_observer.h
│ │ │ │ ├── receive_side_congestion_controller.h
│ │ │ │ ├── send_side_congestion_controller.h
│ │ │ │ └── send_side_congestion_controller_interface.h
│ │ │ ├── median_slope_estimator.cc
│ │ │ ├── median_slope_estimator.h
│ │ │ ├── median_slope_estimator_unittest.cc
│ │ │ ├── OWNERS
│ │ │ ├── probe_bitrate_estimator.cc
│ │ │ ├── probe_bitrate_estimator.h
│ │ │ ├── probe_bitrate_estimator_unittest.cc
│ │ │ ├── probe_controller.cc
│ │ │ ├── probe_controller.h
│ │ │ ├── probe_controller_unittest.cc
│ │ │ ├── receive_side_congestion_controller.cc
│ │ │ ├── receive_side_congestion_controller_unittest.cc
│ │ │ ├── rtp
│ │ │ │ ├── BUILD.gn
│ │ │ │ ├── congestion_controller_unittests_helper.cc
│ │ │ │ ├── congestion_controller_unittests_helper.h
│ │ │ │ ├── include
│ │ │ │ │ └── send_side_congestion_controller.h
│ │ │ │ ├── pacer_controller.cc
│ │ │ │ ├── pacer_controller.h
│ │ │ │ ├── send_side_congestion_controller.cc
│ │ │ │ ├── send_side_congestion_controller_unittest.cc
│ │ │ │ ├── send_time_history.cc
│ │ │ │ ├── send_time_history.h
│ │ │ │ ├── send_time_history_unittest.cc
│ │ │ │ ├── transport_feedback_adapter.cc
│ │ │ │ ├── transport_feedback_adapter.h
│ │ │ │ └── transport_feedback_adapter_unittest.cc
│ │ │ ├── send_side_congestion_controller.cc
│ │ │ ├── send_side_congestion_controller_unittest.cc
│ │ │ ├── send_time_history.cc
│ │ │ ├── send_time_history.h
│ │ │ ├── send_time_history_unittest.cc
│ │ │ ├── transport_feedback_adapter.cc
│ │ │ ├── transport_feedback_adapter.h
│ │ │ ├── transport_feedback_adapter_unittest.cc
│ │ │ ├── trendline_estimator.cc
│ │ │ ├── trendline_estimator.h
│ │ │ └── trendline_estimator_unittest.cc
│ │ ├── desktop_capture
│ │ │ ├── blank_detector_desktop_capturer_wrapper.cc
│ │ │ ├── blank_detector_desktop_capturer_wrapper.h
│ │ │ ├── blank_detector_desktop_capturer_wrapper_unittest.cc
│ │ │ ├── BUILD.gn
│ │ │ ├── capture_result_desktop_capturer_wrapper.cc
│ │ │ ├── capture_result_desktop_capturer_wrapper.h
│ │ │ ├── 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
│ │ │ ├── DEPS
│ │ │ ├── desktop_and_cursor_composer.cc
│ │ │ ├── desktop_and_cursor_composer.h
│ │ │ ├── desktop_and_cursor_composer_unittest.cc
│ │ │ ├── desktop_capture_options.cc
│ │ │ ├── desktop_capture_options.h
│ │ │ ├── desktop_capturer.cc
│ │ │ ├── desktop_capturer_differ_wrapper.cc
│ │ │ ├── desktop_capturer_differ_wrapper.h
│ │ │ ├── desktop_capturer_differ_wrapper_unittest.cc
│ │ │ ├── desktop_capturer.h
│ │ │ ├── desktop_capturer_wrapper.cc
│ │ │ ├── desktop_capturer_wrapper.h
│ │ │ ├── desktop_capture_types.h
│ │ │ ├── desktop_frame.cc
│ │ │ ├── desktop_frame_generator.cc
│ │ │ ├── desktop_frame_generator.h
│ │ │ ├── desktop_frame.h
│ │ │ ├── desktop_frame_rotation.cc
│ │ │ ├── desktop_frame_rotation.h
│ │ │ ├── desktop_frame_rotation_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
│ │ │ ├── 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_chrome_window_detector.cc
│ │ │ │ ├── full_screen_chrome_window_detector.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_mac.mm
│ │ │ ├── mouse_cursor_monitor_null.cc
│ │ │ ├── mouse_cursor_monitor_unittest.cc
│ │ │ ├── mouse_cursor_monitor_win.cc
│ │ │ ├── mouse_cursor_monitor_x11.cc
│ │ │ ├── OWNERS
│ │ │ ├── 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_mac_unittest.cc
│ │ │ ├── screen_capturer_null.cc
│ │ │ ├── screen_capturer_unittest.cc
│ │ │ ├── screen_capturer_win.cc
│ │ │ ├── screen_capturer_x11.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
│ │ │ │ ├── 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
│ │ │ │ ├── scoped_gdi_object.h
│ │ │ │ ├── scoped_thread_desktop.cc
│ │ │ │ ├── scoped_thread_desktop.h
│ │ │ │ ├── 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
│ │ │ │ ├── screen_capture_utils.cc
│ │ │ │ ├── screen_capture_utils.h
│ │ │ │ ├── screen_capture_utils_unittest.cc
│ │ │ │ ├── window_capture_utils.cc
│ │ │ │ └── window_capture_utils.h
│ │ │ ├── window_capturer_mac.mm
│ │ │ ├── window_capturer_null.cc
│ │ │ ├── window_capturer_unittest.cc
│ │ │ ├── window_capturer_win.cc
│ │ │ ├── window_capturer_x11.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
│ │ │ ├── window_finder_x11.cc
│ │ │ ├── window_finder_x11.h
│ │ │ └── x11
│ │ │ ├── shared_x_display.cc
│ │ │ ├── shared_x_display.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
│ │ ├── include
│ │ │ ├── DEPS
│ │ │ ├── module_common_types.h
│ │ │ ├── module_common_types_public.h
│ │ │ ├── module_fec_types.h
│ │ │ └── module.h
│ │ ├── module_common_types_unittest.cc
│ │ ├── OWNERS
│ │ ├── pacing
│ │ │ ├── alr_detector.cc
│ │ │ ├── alr_detector.h
│ │ │ ├── alr_detector_unittest.cc
│ │ │ ├── bitrate_prober.cc
│ │ │ ├── bitrate_prober.h
│ │ │ ├── bitrate_prober_unittest.cc
│ │ │ ├── BUILD.gn
│ │ │ ├── DEPS
│ │ │ ├── interval_budget.cc
│ │ │ ├── interval_budget.h
│ │ │ ├── interval_budget_unittest.cc
│ │ │ ├── mock
│ │ │ │ └── mock_paced_sender.h
│ │ │ ├── OWNERS
│ │ │ ├── paced_sender.cc
│ │ │ ├── paced_sender.h
│ │ │ ├── paced_sender_unittest.cc
│ │ │ ├── pacer.h
│ │ │ ├── packet_queue.cc
│ │ │ ├── packet_queue.h
│ │ │ ├── packet_queue_interface.cc
│ │ │ ├── packet_queue_interface.h
│ │ │ ├── packet_router.cc
│ │ │ ├── packet_router.h
│ │ │ ├── packet_router_unittest.cc
│ │ │ ├── round_robin_packet_queue.cc
│ │ │ └── round_robin_packet_queue.h
│ │ ├── remote_bitrate_estimator
│ │ │ ├── aimd_rate_control.cc
│ │ │ ├── aimd_rate_control.h
│ │ │ ├── aimd_rate_control_unittest.cc
│ │ │ ├── BUILD.gn
│ │ │ ├── bwe_defines.cc
│ │ │ ├── bwe_simulations.cc
│ │ │ ├── DEPS
│ │ │ ├── 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
│ │ │ ├── OWNERS
│ │ │ ├── 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_estimators_test.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
│ │ │ │ ├── bbr_paced_sender.cc
│ │ │ │ ├── bbr_paced_sender.h
│ │ │ │ ├── bwe.cc
│ │ │ │ ├── bwe.h
│ │ │ │ ├── bwe_test_baselinefile.cc
│ │ │ │ ├── bwe_test_baselinefile.h
│ │ │ │ ├── bwe_test.cc
│ │ │ │ ├── bwe_test_fileutils.cc
│ │ │ │ ├── bwe_test_fileutils.h
│ │ │ │ ├── bwe_test_framework.cc
│ │ │ │ ├── bwe_test_framework.h
│ │ │ │ ├── bwe_test_framework_unittest.cc
│ │ │ │ ├── bwe_test.h
│ │ │ │ ├── bwe_test_logging.cc
│ │ │ │ ├── bwe_test_logging.h
│ │ │ │ ├── bwe_unittest.cc
│ │ │ │ ├── estimators
│ │ │ │ │ ├── bbr.cc
│ │ │ │ │ ├── bbr.h
│ │ │ │ │ ├── congestion_window.cc
│ │ │ │ │ ├── congestion_window.h
│ │ │ │ │ ├── congestion_window_unittest.cc
│ │ │ │ │ ├── max_bandwidth_filter.cc
│ │ │ │ │ ├── max_bandwidth_filter.h
│ │ │ │ │ ├── max_bandwidth_filter_unittest.cc
│ │ │ │ │ ├── min_rtt_filter.h
│ │ │ │ │ ├── min_rtt_filter_unittest.cc
│ │ │ │ │ ├── nada.cc
│ │ │ │ │ ├── nada.h
│ │ │ │ │ ├── nada_unittest.cc
│ │ │ │ │ ├── remb.cc
│ │ │ │ │ ├── remb.h
│ │ │ │ │ ├── send_side.cc
│ │ │ │ │ ├── send_side.h
│ │ │ │ │ ├── tcp.cc
│ │ │ │ │ └── tcp.h
│ │ │ │ ├── metric_recorder.cc
│ │ │ │ ├── metric_recorder.h
│ │ │ │ ├── metric_recorder_unittest.cc
│ │ │ │ ├── packet.h
│ │ │ │ ├── packet_receiver.cc
│ │ │ │ ├── packet_receiver.h
│ │ │ │ ├── packet_sender.cc
│ │ │ │ ├── packet_sender.h
│ │ │ │ ├── plot_bars.sh
│ │ │ │ └── plot_dynamics.py
│ │ │ └── tools
│ │ │ ├── bwe_rtp.cc
│ │ │ ├── bwe_rtp.h
│ │ │ ├── bwe_rtp_play.cc
│ │ │ └── rtp_to_text.cc
│ │ ├── rtp_rtcp
│ │ │ ├── BUILD.gn
│ │ │ ├── DEPS
│ │ │ ├── include
│ │ │ │ ├── flexfec_receiver.h
│ │ │ │ ├── flexfec_sender.h
│ │ │ │ ├── receive_statistics.h
│ │ │ │ ├── remote_ntp_time_estimator.h
│ │ │ │ ├── rtp_cvo.h
│ │ │ │ ├── rtp_header_extension_map.h
│ │ │ │ ├── rtp_header_parser.h
│ │ │ │ ├── rtp_payload_registry.h
│ │ │ │ ├── rtp_receiver.h
│ │ │ │ ├── rtp_rtcp_defines.cc
│ │ │ │ ├── rtp_rtcp_defines.h
│ │ │ │ ├── rtp_rtcp.h
│ │ │ │ └── ulpfec_receiver.h
│ │ │ ├── mocks
│ │ │ │ ├── mock_recovered_packet_receiver.cc
│ │ │ │ ├── mock_recovered_packet_receiver.h
│ │ │ │ ├── mock_rtcp_bandwidth_observer.cc
│ │ │ │ ├── mock_rtcp_bandwidth_observer.h
│ │ │ │ ├── mock_rtcp_rtt_stats.cc
│ │ │ │ ├── mock_rtcp_rtt_stats.h
│ │ │ │ ├── mock_rtp_rtcp.cc
│ │ │ │ └── mock_rtp_rtcp.h
│ │ │ ├── OWNERS
│ │ │ ├── source
│ │ │ │ ├── byte_io.h
│ │ │ │ ├── byte_io_unittest.cc
│ │ │ │ ├── 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
│ │ │ │ ├── playout_delay_oracle.cc
│ │ │ │ ├── playout_delay_oracle.h
│ │ │ │ ├── playout_delay_oracle_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
│ │ │ │ │ ├── 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
│ │ │ │ │ ├── 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
│ │ │ │ │ ├── voip_metric.cc
│ │ │ │ │ ├── voip_metric.h
│ │ │ │ │ └── voip_metric_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_config.cc
│ │ │ │ ├── rtcp_transceiver_config.h
│ │ │ │ ├── rtcp_transceiver.h
│ │ │ │ ├── rtcp_transceiver_impl.cc
│ │ │ │ ├── rtcp_transceiver_impl.h
│ │ │ │ ├── rtcp_transceiver_impl_unittest.cc
│ │ │ │ ├── rtcp_transceiver_unittest.cc
│ │ │ │ ├── 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_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_header_extension_map.cc
│ │ │ │ ├── rtp_header_extension_map_unittest.cc
│ │ │ │ ├── rtp_header_extensions.cc
│ │ │ │ ├── rtp_header_extensions.h
│ │ │ │ ├── rtp_header_parser.cc
│ │ │ │ ├── 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_payload_registry.cc
│ │ │ │ ├── rtp_payload_registry_unittest.cc
│ │ │ │ ├── rtp_receiver_audio.cc
│ │ │ │ ├── rtp_receiver_audio.h
│ │ │ │ ├── rtp_receiver_impl.cc
│ │ │ │ ├── rtp_receiver_impl.h
│ │ │ │ ├── rtp_receiver_strategy.cc
│ │ │ │ ├── rtp_receiver_strategy.h
│ │ │ │ ├── rtp_receiver_unittest.cc
│ │ │ │ ├── rtp_receiver_video.cc
│ │ │ │ ├── rtp_receiver_video.h
│ │ │ │ ├── rtp_rtcp_config.h
│ │ │ │ ├── rtp_rtcp_impl.cc
│ │ │ │ ├── rtp_rtcp_impl.h
│ │ │ │ ├── rtp_rtcp_impl_unittest.cc
│ │ │ │ ├── rtp_sender_audio.cc
│ │ │ │ ├── rtp_sender_audio.h
│ │ │ │ ├── rtp_sender.cc
│ │ │ │ ├── rtp_sender.h
│ │ │ │ ├── rtp_sender_unittest.cc
│ │ │ │ ├── rtp_sender_video.cc
│ │ │ │ ├── rtp_sender_video.h
│ │ │ │ ├── rtp_utility.cc
│ │ │ │ ├── rtp_utility.h
│ │ │ │ ├── rtp_utility_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
│ │ │ └── test
│ │ │ ├── testAPI
│ │ │ │ ├── test_api_audio.cc
│ │ │ │ ├── test_api.cc
│ │ │ │ ├── test_api.h
│ │ │ │ ├── test_api_rtcp.cc
│ │ │ │ └── test_api_video.cc
│ │ │ └── testFec
│ │ │ ├── average_residual_loss_xor_codes.h
│ │ │ ├── test_fec.cc
│ │ │ └── test_packet_masks_metrics.cc
│ │ ├── utility
│ │ │ ├── BUILD.gn
│ │ │ ├── DEPS
│ │ │ ├── include
│ │ │ │ ├── helpers_android.h
│ │ │ │ ├── jvm_android.h
│ │ │ │ ├── mock
│ │ │ │ │ └── mock_process_thread.h
│ │ │ │ └── process_thread.h
│ │ │ ├── OWNERS
│ │ │ └── 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
│ │ │ ├── device_info_impl.cc
│ │ │ ├── device_info_impl.h
│ │ │ ├── external
│ │ │ │ ├── device_info_external.cc
│ │ │ │ └── video_capture_external.cc
│ │ │ ├── linux
│ │ │ │ ├── device_info_linux.cc
│ │ │ │ ├── device_info_linux.h
│ │ │ │ ├── video_capture_linux.cc
│ │ │ │ └── video_capture_linux.h
│ │ │ ├── objc
│ │ │ │ ├── device_info.h
│ │ │ │ ├── device_info.mm
│ │ │ │ ├── device_info_objc.h
│ │ │ │ ├── device_info_objc.mm
│ │ │ │ ├── rtc_video_capture_objc.h
│ │ │ │ ├── rtc_video_capture_objc.mm
│ │ │ │ ├── video_capture.h
│ │ │ │ └── video_capture.mm
│ │ │ ├── OWNERS
│ │ │ ├── test
│ │ │ │ ├── video_capture_main_mac.mm
│ │ │ │ └── video_capture_unittest.cc
│ │ │ ├── video_capture_config.h
│ │ │ ├── video_capture_defines.h
│ │ │ ├── video_capture_factory.cc
│ │ │ ├── video_capture_factory.h
│ │ │ ├── video_capture.h
│ │ │ ├── video_capture_impl.cc
│ │ │ ├── video_capture_impl.h
│ │ │ └── windows
│ │ │ ├── device_info_ds.cc
│ │ │ ├── device_info_ds.h
│ │ │ ├── device_info_mf.cc
│ │ │ ├── device_info_mf.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_capture_mf.cc
│ │ │ └── video_capture_mf.h
│ │ ├── video_coding
│ │ │ ├── BUILD.gn
│ │ │ ├── codecs
│ │ │ │ ├── h264
│ │ │ │ │ ├── DEPS
│ │ │ │ │ ├── h264.cc
│ │ │ │ │ ├── h264_decoder_impl.cc
│ │ │ │ │ ├── h264_decoder_impl.h
│ │ │ │ │ ├── h264_encoder_impl.cc
│ │ │ │ │ ├── h264_encoder_impl.h
│ │ │ │ │ ├── h264_encoder_impl_unittest.cc
│ │ │ │ │ ├── include
│ │ │ │ │ │ ├── h264_globals.h
│ │ │ │ │ │ └── h264.h
│ │ │ │ │ ├── OWNERS
│ │ │ │ │ └── test
│ │ │ │ │ └── h264_impl_unittest.cc
│ │ │ │ ├── i420
│ │ │ │ │ ├── i420.cc
│ │ │ │ │ └── include
│ │ │ │ │ └── i420.h
│ │ │ │ ├── interface
│ │ │ │ │ └── common_constants.h
│ │ │ │ ├── multiplex
│ │ │ │ │ ├── include
│ │ │ │ │ │ ├── multiplex_decoder_adapter.h
│ │ │ │ │ │ ├── multiplex_encoded_image_packer.h
│ │ │ │ │ │ └── multiplex_encoder_adapter.h
│ │ │ │ │ ├── multiplex_decoder_adapter.cc
│ │ │ │ │ ├── multiplex_encoded_image_packer.cc
│ │ │ │ │ ├── multiplex_encoder_adapter.cc
│ │ │ │ │ ├── OWNERS
│ │ │ │ │ └── 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
│ │ │ │ │ ├── objc_codec_factory_helper.h
│ │ │ │ │ ├── objc_codec_factory_helper.mm
│ │ │ │ │ ├── plot_webrtc_test_logs.py
│ │ │ │ │ ├── videocodec_test_fixture_config_unittest.cc
│ │ │ │ │ ├── videocodec_test_fixture_impl.cc
│ │ │ │ │ ├── videocodec_test_fixture_impl.h
│ │ │ │ │ ├── videocodec_test_libvpx.cc
│ │ │ │ │ ├── videocodec_test_mediacodec.cc
│ │ │ │ │ ├── videocodec_test_openh264.cc
│ │ │ │ │ ├── videocodec_test_parameterized.cc
│ │ │ │ │ ├── videocodec_test_stats_impl.cc
│ │ │ │ │ ├── videocodec_test_stats_impl.h
│ │ │ │ │ ├── videocodec_test_stats_impl_unittest.cc
│ │ │ │ │ ├── videocodec_test_videotoolbox.cc
│ │ │ │ │ ├── video_codec_unittest.cc
│ │ │ │ │ ├── video_codec_unittest.h
│ │ │ │ │ ├── video_encoder_decoder_instantiation_tests.cc
│ │ │ │ │ ├── videoprocessor.cc
│ │ │ │ │ ├── videoprocessor.h
│ │ │ │ │ └── videoprocessor_unittest.cc
│ │ │ │ ├── vp8
│ │ │ │ │ ├── default_temporal_layers.cc
│ │ │ │ │ ├── default_temporal_layers.h
│ │ │ │ │ ├── default_temporal_layers_unittest.cc
│ │ │ │ │ ├── include
│ │ │ │ │ │ ├── vp8_common_types.h
│ │ │ │ │ │ ├── vp8_globals.h
│ │ │ │ │ │ └── vp8.h
│ │ │ │ │ ├── libvpx_vp8_decoder.cc
│ │ │ │ │ ├── libvpx_vp8_decoder.h
│ │ │ │ │ ├── libvpx_vp8_encoder.cc
│ │ │ │ │ ├── libvpx_vp8_encoder.h
│ │ │ │ │ ├── screenshare_layers.cc
│ │ │ │ │ ├── screenshare_layers.h
│ │ │ │ │ ├── screenshare_layers_unittest.cc
│ │ │ │ │ ├── simulcast_rate_allocator.cc
│ │ │ │ │ ├── simulcast_rate_allocator.h
│ │ │ │ │ ├── simulcast_test_utility.h
│ │ │ │ │ ├── simulcast_unittest.cc
│ │ │ │ │ ├── temporal_layers.cc
│ │ │ │ │ ├── temporal_layers.h
│ │ │ │ │ └── test
│ │ │ │ │ └── vp8_impl_unittest.cc
│ │ │ │ └── vp9
│ │ │ │ ├── include
│ │ │ │ │ ├── vp9_globals.h
│ │ │ │ │ └── vp9.h
│ │ │ │ ├── svc_config.cc
│ │ │ │ ├── svc_config.h
│ │ │ │ ├── svc_config_unittest.cc
│ │ │ │ ├── svc_rate_allocator.cc
│ │ │ │ ├── svc_rate_allocator.h
│ │ │ │ ├── svc_rate_allocator_unittest.cc
│ │ │ │ ├── test
│ │ │ │ │ └── vp9_impl_unittest.cc
│ │ │ │ ├── vp9_frame_buffer_pool.cc
│ │ │ │ ├── vp9_frame_buffer_pool.h
│ │ │ │ ├── vp9_impl.cc
│ │ │ │ ├── vp9_impl.h
│ │ │ │ └── vp9_noop.cc
│ │ │ ├── codec_timer.cc
│ │ │ ├── codec_timer.h
│ │ │ ├── decoder_database.cc
│ │ │ ├── decoder_database.h
│ │ │ ├── decoding_state.cc
│ │ │ ├── decoding_state.h
│ │ │ ├── decoding_state_unittest.cc
│ │ │ ├── DEPS
│ │ │ ├── encoded_frame.cc
│ │ │ ├── encoded_frame.h
│ │ │ ├── encoder_database.cc
│ │ │ ├── encoder_database.h
│ │ │ ├── fec_controller_default.cc
│ │ │ ├── fec_controller_default.h
│ │ │ ├── fec_controller_unittest.cc
│ │ │ ├── fec_rate_table.h
│ │ │ ├── frame_buffer2.cc
│ │ │ ├── frame_buffer2.h
│ │ │ ├── frame_buffer2_unittest.cc
│ │ │ ├── frame_buffer.cc
│ │ │ ├── frame_buffer.h
│ │ │ ├── frame_object.cc
│ │ │ ├── frame_object.h
│ │ │ ├── generic_decoder.cc
│ │ │ ├── generic_decoder.h
│ │ │ ├── generic_encoder.cc
│ │ │ ├── generic_encoder.h
│ │ │ ├── generic_encoder_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
│ │ │ │ ├── mock
│ │ │ │ │ ├── mock_vcm_callbacks.h
│ │ │ │ │ └── mock_video_codec_interface.h
│ │ │ │ ├── video_codec_initializer.h
│ │ │ │ ├── video_codec_interface.h
│ │ │ │ ├── video_coding_defines.h
│ │ │ │ ├── video_coding.h
│ │ │ │ └── video_error_codes.h
│ │ │ ├── inter_frame_delay.cc
│ │ │ ├── inter_frame_delay.h
│ │ │ ├── internal_defines.h
│ │ │ ├── jitter_buffer.cc
│ │ │ ├── jitter_buffer_common.h
│ │ │ ├── jitter_buffer.h
│ │ │ ├── jitter_buffer_unittest.cc
│ │ │ ├── jitter_estimator.cc
│ │ │ ├── jitter_estimator.h
│ │ │ ├── jitter_estimator_tests.cc
│ │ │ ├── media_optimization.cc
│ │ │ ├── media_optimization.h
│ │ │ ├── media_opt_util.cc
│ │ │ ├── media_opt_util.h
│ │ │ ├── nack_fec_tables.h
│ │ │ ├── nack_module.cc
│ │ │ ├── nack_module.h
│ │ │ ├── nack_module_unittest.cc
│ │ │ ├── OWNERS
│ │ │ ├── packet_buffer.cc
│ │ │ ├── packet_buffer.h
│ │ │ ├── packet.cc
│ │ │ ├── packet.h
│ │ │ ├── qp_parser.cc
│ │ │ ├── qp_parser.h
│ │ │ ├── receiver.cc
│ │ │ ├── receiver.h
│ │ │ ├── receiver_unittest.cc
│ │ │ ├── rtp_frame_reference_finder.cc
│ │ │ ├── rtp_frame_reference_finder.h
│ │ │ ├── rtp_frame_reference_finder_unittest.cc
│ │ │ ├── rtt_filter.cc
│ │ │ ├── rtt_filter.h
│ │ │ ├── session_info.cc
│ │ │ ├── session_info.h
│ │ │ ├── session_info_unittest.cc
│ │ │ ├── test
│ │ │ │ ├── stream_generator.cc
│ │ │ │ ├── stream_generator.h
│ │ │ │ └── test_util.h
│ │ │ ├── timestamp_map.cc
│ │ │ ├── timestamp_map.h
│ │ │ ├── timing.cc
│ │ │ ├── timing.h
│ │ │ ├── timing_unittest.cc
│ │ │ ├── utility
│ │ │ │ ├── default_video_bitrate_allocator.cc
│ │ │ │ ├── default_video_bitrate_allocator.h
│ │ │ │ ├── default_video_bitrate_allocator_unittest.cc
│ │ │ │ ├── frame_dropper.cc
│ │ │ │ ├── frame_dropper.h
│ │ │ │ ├── frame_dropper_unittest.cc
│ │ │ │ ├── ivf_file_writer.cc
│ │ │ │ ├── ivf_file_writer.h
│ │ │ │ ├── ivf_file_writer_unittest.cc
│ │ │ │ ├── mock
│ │ │ │ │ └── mock_frame_dropper.h
│ │ │ │ ├── moving_average.cc
│ │ │ │ ├── moving_average.h
│ │ │ │ ├── moving_average_unittest.cc
│ │ │ │ ├── quality_scaler.cc
│ │ │ │ ├── quality_scaler.h
│ │ │ │ ├── quality_scaler_unittest.cc
│ │ │ │ ├── simulcast_rate_allocator_unittest.cc
│ │ │ │ ├── vp8_header_parser.cc
│ │ │ │ ├── vp8_header_parser.h
│ │ │ │ ├── vp9_uncompressed_header_parser.cc
│ │ │ │ └── vp9_uncompressed_header_parser.h
│ │ │ ├── video_codec_initializer.cc
│ │ │ ├── video_codec_initializer_unittest.cc
│ │ │ ├── video_coding_defines.cc
│ │ │ ├── video_coding_impl.cc
│ │ │ ├── video_coding_impl.h
│ │ │ ├── video_packet_buffer_unittest.cc
│ │ │ ├── video_receiver.cc
│ │ │ ├── video_receiver_unittest.cc
│ │ │ ├── video_sender.cc
│ │ │ └── video_sender_unittest.cc
│ │ └── video_processing
│ │ ├── BUILD.gn
│ │ ├── DEPS
│ │ ├── OWNERS
│ │ ├── test
│ │ │ └── denoiser_test.cc
│ │ ├── util
│ │ │ ├── denoiser_filter.cc
│ │ │ ├── denoiser_filter_c.cc
│ │ │ ├── denoiser_filter_c.h
│ │ │ ├── denoiser_filter.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
│ ├── ortc
│ │ ├── ortcfactory.h
│ │ ├── ortcrtpreceiveradapter.h
│ │ ├── ortcrtpsenderadapter.h
│ │ ├── rtpparametersconversion.h
│ │ ├── rtptransportadapter.h
│ │ └── testrtpparameters.h
│ ├── p2p
│ │ ├── base
│ │ │ ├── asyncstuntcpsocket.cc
│ │ │ ├── asyncstuntcpsocket.h
│ │ │ ├── asyncstuntcpsocket_unittest.cc
│ │ │ ├── basicpacketsocketfactory.cc
│ │ │ ├── basicpacketsocketfactory.h
│ │ │ ├── candidatepairinterface.h
│ │ │ ├── dtlstransport.cc
│ │ │ ├── dtlstransport.h
│ │ │ ├── dtlstransportinternal.cc
│ │ │ ├── dtlstransportinternal.h
│ │ │ ├── dtlstransport_unittest.cc
│ │ │ ├── fakecandidatepair.h
│ │ │ ├── fakedtlstransport.h
│ │ │ ├── fakeicetransport.h
│ │ │ ├── fakepackettransport.h
│ │ │ ├── fakeportallocator.h
│ │ │ ├── icetransportinternal.cc
│ │ │ ├── icetransportinternal.h
│ │ │ ├── mockicetransport.h
│ │ │ ├── p2pconstants.cc
│ │ │ ├── p2pconstants.h
│ │ │ ├── p2ptransportchannel.cc
│ │ │ ├── p2ptransportchannel.h
│ │ │ ├── p2ptransportchannel_unittest.cc
│ │ │ ├── packetlossestimator.cc
│ │ │ ├── packetlossestimator.h
│ │ │ ├── packetlossestimator_unittest.cc
│ │ │ ├── packetsocketfactory.cc
│ │ │ ├── packetsocketfactory.h
│ │ │ ├── packettransportinterface.h
│ │ │ ├── packettransportinternal.cc
│ │ │ ├── packettransportinternal.h
│ │ │ ├── portallocator.cc
│ │ │ ├── portallocator.h
│ │ │ ├── portallocator_unittest.cc
│ │ │ ├── port.cc
│ │ │ ├── port.h
│ │ │ ├── portinterface.cc
│ │ │ ├── portinterface.h
│ │ │ ├── port_unittest.cc
│ │ │ ├── pseudotcp.cc
│ │ │ ├── pseudotcp.h
│ │ │ ├── pseudotcp_unittest.cc
│ │ │ ├── relayport.cc
│ │ │ ├── relayport.h
│ │ │ ├── relayport_unittest.cc
│ │ │ ├── relayserver.cc
│ │ │ ├── relayserver.h
│ │ │ ├── relayserver_unittest.cc
│ │ │ ├── stun.cc
│ │ │ ├── stun.h
│ │ │ ├── stunport.cc
│ │ │ ├── stunport.h
│ │ │ ├── stunport_unittest.cc
│ │ │ ├── stunrequest.cc
│ │ │ ├── stunrequest.h
│ │ │ ├── stunrequest_unittest.cc
│ │ │ ├── stunserver.cc
│ │ │ ├── stunserver.h
│ │ │ ├── stunserver_unittest.cc
│ │ │ ├── stun_unittest.cc
│ │ │ ├── tcpport.cc
│ │ │ ├── tcpport.h
│ │ │ ├── tcpport_unittest.cc
│ │ │ ├── testrelayserver.h
│ │ │ ├── teststunserver.cc
│ │ │ ├── teststunserver.h
│ │ │ ├── testturncustomizer.h
│ │ │ ├── testturnserver.h
│ │ │ ├── transportdescription.cc
│ │ │ ├── transportdescriptionfactory.cc
│ │ │ ├── transportdescriptionfactory.h
│ │ │ ├── transportdescriptionfactory_unittest.cc
│ │ │ ├── transportdescription.h
│ │ │ ├── transportfactoryinterface.h
│ │ │ ├── transport.h
│ │ │ ├── transportinfo.h
│ │ │ ├── turnport.cc
│ │ │ ├── turnport.h
│ │ │ ├── turnport_unittest.cc
│ │ │ ├── turnserver.cc
│ │ │ ├── turnserver.h
│ │ │ ├── turnserver_unittest.cc
│ │ │ ├── udpport.h
│ │ │ ├── udptransport.cc
│ │ │ ├── udptransport.h
│ │ │ └── udptransport_unittest.cc
│ │ ├── BUILD.gn
│ │ ├── client
│ │ │ ├── basicportallocator.cc
│ │ │ ├── basicportallocator.h
│ │ │ ├── basicportallocator_unittest.cc
│ │ │ ├── relayportfactoryinterface.h
│ │ │ ├── turnportfactory.cc
│ │ │ └── turnportfactory.h
│ │ ├── DEPS
│ │ ├── OWNERS
│ │ └── stunprober
│ │ ├── stunprober.cc
│ │ ├── stunprober.h
│ │ └── stunprober_unittest.cc
│ ├── pc
│ │ ├── audiotrack.h
│ │ ├── bundlefilter.h
│ │ ├── channel.h
│ │ ├── datachannel.h
│ │ ├── dtlssrtptransport.h
│ │ ├── dtmfsender.h
│ │ ├── externalhmac.h
│ │ ├── iceserverparsing.h
│ │ ├── jseptransportcontroller.h
│ │ ├── jseptransport.h
│ │ ├── localaudiosource.h
│ │ ├── mediasession.h
│ │ ├── mediastream.h
│ │ ├── mediastreamobserver.h
│ │ ├── mediastreamtrack.h
│ │ ├── peerconnectionfactory.h
│ │ ├── peerconnection.h
│ │ ├── peerconnectioninternal.h
│ │ ├── peerconnectionwrapper.h
│ │ ├── remoteaudiosource.h
│ │ ├── rtcpmuxfilter.h
│ │ ├── rtcstatscollector.h
│ │ ├── rtcstatstraversal.h
│ │ ├── rtpmediautils.h
│ │ ├── rtpreceiver.h
│ │ ├── rtpsender.h
│ │ ├── rtptransceiver.h
│ │ ├── rtptransport.h
│ │ ├── rtptransportinternaladapter.h
│ │ ├── rtptransportinternal.h
│ │ ├── rtptransporttestutil.h
│ │ ├── sctputils.h
│ │ ├── sdputils.h
│ │ ├── srtpfilter.h
│ │ ├── srtpsession.h
│ │ ├── srtptestutil.h
│ │ ├── srtptransport.h
│ │ ├── statscollector.h
│ │ ├── streamcollection.h
│ │ ├── test
│ │ │ ├── androidtestinitializer.h
│ │ │ ├── fakeaudiocapturemodule.h
│ │ │ ├── fakedatachannelprovider.h
│ │ │ ├── fakepeerconnectionbase.h
│ │ │ ├── fakepeerconnectionforstats.h
│ │ │ ├── fakeperiodicvideocapturer.h
│ │ │ ├── fakeperiodicvideosource.h
│ │ │ ├── fakeperiodicvideotracksource.h
│ │ │ ├── fakertccertificategenerator.h
│ │ │ ├── fakesctptransport.h
│ │ │ ├── fakevideotrackrenderer.h
│ │ │ ├── fakevideotracksource.h
│ │ │ ├── mock_datachannel.h
│ │ │ ├── mock_peerconnection.h
│ │ │ ├── mockpeerconnectionobservers.h
│ │ │ ├── mock_rtpreceiverinternal.h
│ │ │ ├── mock_rtpsenderinternal.h
│ │ │ ├── peerconnectiontestwrapper.h
│ │ │ ├── rtcstatsobtainer.h
│ │ │ └── testsdpstrings.h
│ │ ├── trackmediainfomap.h
│ │ ├── transportstats.h
│ │ ├── videocapturertracksource.h
│ │ ├── videotrack.h
│ │ ├── videotracksource.h
│ │ ├── webrtcsdp.h
│ │ └── webrtcsessiondescriptionfactory.h
│ ├── rtc_base
│ │ ├── arraysize.h
│ │ ├── asyncinvoker.h
│ │ ├── asyncinvoker-inl.h
│ │ ├── asyncpacketsocket.h
│ │ ├── asyncresolverinterface.h
│ │ ├── asyncsocket.h
│ │ ├── asynctcpsocket.h
│ │ ├── asyncudpsocket.h
│ │ ├── atomicops.h
│ │ ├── base64.h
│ │ ├── basictypes.h
│ │ ├── bind.h
│ │ ├── bitbuffer.h
│ │ ├── bitrateallocationstrategy.h
│ │ ├── buffer.h
│ │ ├── bufferqueue.h
│ │ ├── bytebuffer.h
│ │ ├── byteorder.h
│ │ ├── callback.h
│ │ ├── callback.h.pump
│ │ ├── checks.h
│ │ ├── compile_assert_c.h
│ │ ├── constructormagic.h
│ │ ├── copyonwritebuffer.h
│ │ ├── cpu_time.h
│ │ ├── crc32.h
│ │ ├── criticalsection.h
│ │ ├── cryptstring.h
│ │ ├── data_rate_limiter.h
│ │ ├── deprecation.h
│ │ ├── dscp.h
│ │ ├── Dummy.java
│ │ ├── event.h
│ │ ├── event_tracer.h
│ │ ├── experiments
│ │ │ ├── alr_experiment.h
│ │ │ ├── congestion_controller_experiment.h
│ │ │ └── quality_scaling_experiment.h
│ │ ├── fakeclock.h
│ │ ├── fakenetwork.h
│ │ ├── fakesslidentity.h
│ │ ├── file.h
│ │ ├── filerotatingstream.h
│ │ ├── fileutils.h
│ │ ├── firewallsocketserver.h
│ │ ├── flags.h
│ │ ├── format_macros.h
│ │ ├── function_view.h
│ │ ├── gtest_prod_util.h
│ │ ├── gunit.h
│ │ ├── gunit_prod.h
│ │ ├── helpers.h
│ │ ├── httpbase.h
│ │ ├── httpcommon.h
│ │ ├── httpcommon-inl.h
│ │ ├── httpserver.h
│ │ ├── ifaddrs-android.h
│ │ ├── ifaddrs_converter.h
│ │ ├── ignore_wundef.h
│ │ ├── ipaddress.h
│ │ ├── java
│ │ │ └── src
│ │ │ └── org
│ │ │ └── webrtc
│ │ │ ├── ContextUtils.java
│ │ │ ├── Loggable.java
│ │ │ ├── Logging.java
│ │ │ ├── Size.java
│ │ │ └── ThreadUtils.java
│ │ ├── json.h
│ │ ├── keep_ref_until_done.h
│ │ ├── location.h
│ │ ├── logging.h
│ │ ├── logging_mac.mm
│ │ ├── logsinks.h
│ │ ├── macutils.h
│ │ ├── memory
│ │ │ ├── aligned_array.h
│ │ │ └── aligned_malloc.h
│ │ ├── memory_usage.h
│ │ ├── messagedigest.h
│ │ ├── messagehandler.h
│ │ ├── messagequeue.h
│ │ ├── natserver.h
│ │ ├── natsocketfactory.h
│ │ ├── nattypes.h
│ │ ├── nethelper.h
│ │ ├── nethelpers.h
│ │ ├── network_constants.h
│ │ ├── network.h
│ │ ├── networkmonitor.h
│ │ ├── networkroute.h
│ │ ├── noop.mm
│ │ ├── nullsocketserver.h
│ │ ├── numerics
│ │ │ ├── exp_filter.h
│ │ │ ├── histogram_percentile_counter.h
│ │ │ ├── mathutils.h
│ │ │ ├── mod_ops.h
│ │ │ ├── moving_max_counter.h
│ │ │ ├── moving_median_filter.h
│ │ │ ├── percentile_filter.h
│ │ │ ├── safe_compare.h
│ │ │ ├── safe_conversions.h
│ │ │ ├── safe_conversions_impl.h
│ │ │ ├── safe_minmax.h
│ │ │ ├── sample_counter.h
│ │ │ └── sequence_number_util.h
│ │ ├── onetimeevent.h
│ │ ├── openssladapter.h
│ │ ├── opensslcertificate.h
│ │ ├── openssldigest.h
│ │ ├── openssl.h
│ │ ├── opensslidentity.h
│ │ ├── opensslsessioncache.h
│ │ ├── opensslstreamadapter.h
│ │ ├── opensslutility.h
│ │ ├── optionsfile.h
│ │ ├── pathutils.h
│ │ ├── physicalsocketserver.h
│ │ ├── platform_file.h
│ │ ├── platform_thread.h
│ │ ├── platform_thread_types.h
│ │ ├── protobuf_utils.h
│ │ ├── proxyinfo.h
│ │ ├── proxyserver.h
│ │ ├── ptr_util.h
│ │ ├── race_checker.h
│ │ ├── random.h
│ │ ├── rate_limiter.h
│ │ ├── rate_statistics.h
│ │ ├── ratetracker.h
│ │ ├── refcountedobject.h
│ │ ├── refcounter.h
│ │ ├── refcount.h
│ │ ├── rollingaccumulator.h
│ │ ├── rtccertificategenerator.h
│ │ ├── rtccertificate.h
│ │ ├── sanitizer.h
│ │ ├── scoped_ref_ptr.h
│ │ ├── sequenced_task_checker.h
│ │ ├── sequenced_task_checker_impl.h
│ │ ├── signalthread.h
│ │ ├── sigslot.h
│ │ ├── sigslotrepeater.h
│ │ ├── sigslottester.h
│ │ ├── sigslottester.h.pump
│ │ ├── socketadapters.h
│ │ ├── socketaddress.h
│ │ ├── socketaddresspair.h
│ │ ├── socketfactory.h
│ │ ├── socket.h
│ │ ├── socketserver.h
│ │ ├── socketstream.h
│ │ ├── socket_unittest.h
│ │ ├── ssladapter.h
│ │ ├── sslcertificate.h
│ │ ├── sslfingerprint.h
│ │ ├── sslidentity.h
│ │ ├── sslroots.h
│ │ ├── sslstreamadapter.h
│ │ ├── stream.h
│ │ ├── stringencode.h
│ │ ├── stringize_macros.h
│ │ ├── strings
│ │ │ ├── audio_format_to_string.h
│ │ │ └── string_builder.h
│ │ ├── string_to_number.h
│ │ ├── stringutils.h
│ │ ├── swap_queue.h
│ │ ├── synchronization
│ │ │ ├── rw_lock_posix.h
│ │ │ ├── rw_lock_win.h
│ │ │ └── rw_lock_wrapper.h
│ │ ├── system
│ │ │ ├── asm_defines.h
│ │ │ ├── fallthrough.h
│ │ │ ├── ignore_warnings.h
│ │ │ └── no_inline.h
│ │ ├── task_queue_for_test.h
│ │ ├── task_queue.h
│ │ ├── task_queue_posix.h
│ │ ├── template_util.h
│ │ ├── testbase64.h
│ │ ├── testcertificateverifier.h
│ │ ├── testclient.h
│ │ ├── testechoserver.h
│ │ ├── testutils.h
│ │ ├── thread_annotations.h
│ │ ├── thread_checker.h
│ │ ├── thread_checker_impl.h
│ │ ├── thread_darwin.mm
│ │ ├── thread.h
│ │ ├── time
│ │ │ └── timestamp_extrapolator.h
│ │ ├── timestampaligner.h
│ │ ├── timeutils.h
│ │ ├── trace_event.h
│ │ ├── transformadapter.h
│ │ ├── type_traits.h
│ │ ├── unixfilesystem.h
│ │ ├── virtualsocketserver.h
│ │ ├── weak_ptr.h
│ │ ├── win
│ │ │ └── windows_version.h
│ │ ├── win32filesystem.h
│ │ ├── win32.h
│ │ ├── win32socketinit.h
│ │ ├── win32socketserver.h
│ │ ├── win32window.h
│ │ └── zero_memory.h
│ ├── rtc_tools
│ │ ├── agc
│ │ ├── author_line_count.sh
│ │ ├── barcode_tools
│ │ │ ├── barcode_decoder.py
│ │ │ ├── barcode_encoder.py
│ │ │ ├── build_zxing.py
│ │ │ ├── helper_functions.py
│ │ │ ├── README
│ │ │ └── yuv_cropper.py
│ │ ├── class_usage.sh
│ │ ├── compare_videos.py
│ │ ├── converter
│ │ │ └── converter.h
│ │ ├── event_log_visualizer
│ │ │ ├── analyzer.h
│ │ │ ├── chart.proto
│ │ │ ├── plot_base.h
│ │ │ ├── plot_protobuf.h
│ │ │ ├── plot_python.h
│ │ │ └── triage_notifications.h
│ │ ├── force_mic_volume_max
│ │ ├── frame_analyzer
│ │ │ ├── reference_less_video_analysis_lib.h
│ │ │ └── video_quality_analysis.h
│ │ ├── frame_editing
│ │ │ └── frame_editing_lib.h
│ │ ├── header_usage.sh
│ │ ├── loopback_test
│ │ │ ├── adapter.js
│ │ │ ├── loopback_test.html
│ │ │ ├── loopback_test.js
│ │ │ ├── README
│ │ │ ├── record-test.sh
│ │ │ ├── run-server.sh
│ │ │ └── stat_tracker.js
│ │ ├── network_tester
│ │ │ ├── androidapp
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── res
│ │ │ │ │ ├── layout
│ │ │ │ │ │ └── activity_main.xml
│ │ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── values
│ │ │ │ │ │ ├── colors.xml
│ │ │ │ │ │ ├── dimens.xml
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ ├── values-v17
│ │ │ │ │ │ └── styles.xml
│ │ │ │ │ └── values-w820dp
│ │ │ │ │ └── dimens.xml
│ │ │ │ └── src
│ │ │ │ └── com
│ │ │ │ └── media
│ │ │ │ └── networktester
│ │ │ │ ├── MainActivity.java
│ │ │ │ └── NetworkTester.java
│ │ │ ├── config_reader.h
│ │ │ ├── create_network_tester_config.py
│ │ │ ├── jni.cpp
│ │ │ ├── network_tester_config.proto
│ │ │ ├── network_tester_packet.proto
│ │ │ ├── packet_logger.h
│ │ │ ├── packet_sender.h
│ │ │ ├── parse_packet_log.py
│ │ │ ├── README
│ │ │ └── test_controller.h
│ │ ├── psnr_ssim_analyzer
│ │ ├── py_event_log_analyzer
│ │ │ ├── misc.py
│ │ │ ├── misc_test.py
│ │ │ ├── pb_parse.py
│ │ │ ├── README
│ │ │ ├── rtp_analyzer.py
│ │ │ ├── rtp_analyzer.sh
│ │ │ └── rtp_analyzer_test.py
│ │ ├── rtcbot
│ │ │ ├── bot
│ │ │ │ ├── api.js
│ │ │ │ └── browser
│ │ │ │ ├── bot.js
│ │ │ │ └── index.html
│ │ │ ├── botmanager.js
│ │ │ ├── main.js
│ │ │ ├── README
│ │ │ ├── rtcBotReportVisualizer
│ │ │ │ ├── index.html
│ │ │ │ └── main.js
│ │ │ ├── test
│ │ │ │ ├── oneWayVideoStreamingWithDownloadingFile.js
│ │ │ │ ├── ping_pong.js
│ │ │ │ ├── simple_offer_answer.js
│ │ │ │ ├── three_bots_video_conference.js
│ │ │ │ ├── two_way_video_streaming.js
│ │ │ │ └── webrtc_video_streaming.js
│ │ │ └── test.js
│ │ ├── simple_command_line_parser.h
│ │ ├── testing
│ │ │ ├── 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
│ │ │ ├── README.md
│ │ │ ├── setup_apprtc.py
│ │ │ └── utils.py
│ │ ├── unpack_aecdump
│ │ ├── video_analysis.py
│ │ └── video_analysis_test.py
│ ├── sdk
│ │ ├── android
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── api
│ │ │ │ └── org
│ │ │ │ └── webrtc
│ │ │ │ ├── audio
│ │ │ │ │ └── LegacyAudioDeviceModule.java
│ │ │ │ ├── AudioSource.java
│ │ │ │ ├── AudioTrack.java
│ │ │ │ ├── CallSessionFileRotatingLogSink.java
│ │ │ │ ├── Camera1Capturer.java
│ │ │ │ ├── Camera1Enumerator.java
│ │ │ │ ├── Camera2Capturer.java
│ │ │ │ ├── Camera2Enumerator.java
│ │ │ │ ├── CameraEnumerationAndroid.java
│ │ │ │ ├── CameraEnumerator.java
│ │ │ │ ├── CameraVideoCapturer.java
│ │ │ │ ├── DataChannel.java
│ │ │ │ ├── DefaultVideoDecoderFactory.java
│ │ │ │ ├── DefaultVideoEncoderFactory.java
│ │ │ │ ├── DtmfSender.java
│ │ │ │ ├── EglBase.java
│ │ │ │ ├── EglRenderer.java
│ │ │ │ ├── EncodedImage.java
│ │ │ │ ├── FileVideoCapturer.java
│ │ │ │ ├── GlRectDrawer.java
│ │ │ │ ├── GlShader.java
│ │ │ │ ├── GlTextureFrameBuffer.java
│ │ │ │ ├── GlUtil.java
│ │ │ │ ├── HardwareVideoDecoderFactory.java
│ │ │ │ ├── HardwareVideoEncoderFactory.java
│ │ │ │ ├── IceCandidate.java
│ │ │ │ ├── JavaI420Buffer.java
│ │ │ │ ├── MediaCodecVideoDecoder.java
│ │ │ │ ├── MediaCodecVideoEncoder.java
│ │ │ │ ├── MediaConstraints.java
│ │ │ │ ├── MediaSource.java
│ │ │ │ ├── MediaStream.java
│ │ │ │ ├── MediaStreamTrack.java
│ │ │ │ ├── Metrics.java
│ │ │ │ ├── NativeLibraryLoader.java
│ │ │ │ ├── NetworkMonitorAutoDetect.java
│ │ │ │ ├── NetworkMonitor.java
│ │ │ │ ├── RefCounted.java
│ │ │ │ ├── RendererCommon.java
│ │ │ │ ├── RTCStatsCollectorCallback.java
│ │ │ │ ├── RTCStats.java
│ │ │ │ ├── RTCStatsReport.java
│ │ │ │ ├── RtpParameters.java
│ │ │ │ ├── RtpReceiver.java
│ │ │ │ ├── RtpTransceiver.java
│ │ │ │ ├── ScreenCapturerAndroid.java
│ │ │ │ ├── SdpObserver.java
│ │ │ │ ├── SessionDescription.java
│ │ │ │ ├── SoftwareVideoDecoderFactory.java
│ │ │ │ ├── SoftwareVideoEncoderFactory.java
│ │ │ │ ├── StatsObserver.java
│ │ │ │ ├── StatsReport.java
│ │ │ │ ├── SurfaceEglRenderer.java
│ │ │ │ ├── SurfaceTextureHelper.java
│ │ │ │ ├── SurfaceViewRenderer.java
│ │ │ │ ├── TextureBufferImpl.java
│ │ │ │ ├── TurnCustomizer.java
│ │ │ │ ├── VideoCodecInfo.java
│ │ │ │ ├── VideoCodecStatus.java
│ │ │ │ ├── VideoDecoderFactory.java
│ │ │ │ ├── VideoDecoderFallback.java
│ │ │ │ ├── VideoDecoder.java
│ │ │ │ ├── VideoEncoderFactory.java
│ │ │ │ ├── VideoEncoderFallback.java
│ │ │ │ ├── VideoEncoder.java
│ │ │ │ ├── VideoFileRenderer.java
│ │ │ │ ├── VideoFrameDrawer.java
│ │ │ │ ├── VideoRenderer.java
│ │ │ │ ├── VideoSink.java
│ │ │ │ ├── VideoSource.java
│ │ │ │ ├── VideoTrack.java
│ │ │ │ ├── YuvConverter.java
│ │ │ │ └── YuvHelper.java
│ │ │ ├── instrumentationtests
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── ant.properties
│ │ │ │ ├── build.xml
│ │ │ │ ├── project.properties
│ │ │ │ └── src
│ │ │ │ └── org
│ │ │ │ └── webrtc
│ │ │ │ ├── Camera1CapturerUsingByteBufferTest.java
│ │ │ │ ├── Camera1CapturerUsingTextureTest.java
│ │ │ │ ├── Camera2CapturerTest.java
│ │ │ │ ├── CameraVideoCapturerTestFixtures.java
│ │ │ │ ├── capturetestvideo.y4m
│ │ │ │ ├── DefaultVideoEncoderFactoryTest.java
│ │ │ │ ├── EglRendererTest.java
│ │ │ │ ├── FileVideoCapturerTest.java
│ │ │ │ ├── GlRectDrawerTest.java
│ │ │ │ ├── HardwareVideoDecoderTest.java
│ │ │ │ ├── HardwareVideoEncoderTest.java
│ │ │ │ ├── MediaCodecVideoEncoderTest.java
│ │ │ │ ├── NetworkMonitorTest.java
│ │ │ │ ├── PeerConnectionFactoryTest.java
│ │ │ │ ├── RendererCommonTest.java
│ │ │ │ ├── SurfaceTextureHelperTest.java
│ │ │ │ ├── SurfaceViewRendererOnMeasureTest.java
│ │ │ │ ├── VideoFileRendererTest.java
│ │ │ │ ├── WebRtcJniBootTest.java
│ │ │ │ └── YuvHelperTest.java
│ │ │ ├── native_api
│ │ │ │ ├── audio_device_module
│ │ │ │ │ └── audio_device_android.h
│ │ │ │ ├── base
│ │ │ │ │ ├── init.h
│ │ │ │ │ └── networkmonitor.h
│ │ │ │ ├── codecs
│ │ │ │ │ └── wrapper.h
│ │ │ │ ├── jni
│ │ │ │ │ ├── class_loader.h
│ │ │ │ │ ├── java_types.h
│ │ │ │ │ ├── jni_int_wrapper.h
│ │ │ │ │ └── jvm.h
│ │ │ │ ├── peerconnection
│ │ │ │ │ └── peerconnectionfactory.h
│ │ │ │ └── video
│ │ │ │ ├── videosource.h
│ │ │ │ └── wrapper.h
│ │ │ ├── native_unittests
│ │ │ │ ├── audio_device
│ │ │ │ ├── org
│ │ │ │ │ └── webrtc
│ │ │ │ │ ├── ApplicationContextProvider.java
│ │ │ │ │ ├── BuildInfo.java
│ │ │ │ │ ├── JavaTypesTestHelper.java
│ │ │ │ │ ├── JavaVideoSourceTestHelper.java
│ │ │ │ │ └── PeerConnectionFactoryInitializationHelper.java
│ │ │ │ ├── peerconnection
│ │ │ │ └── video
│ │ │ ├── PRESUBMIT.py
│ │ │ ├── README
│ │ │ ├── src
│ │ │ │ ├── java
│ │ │ │ │ └── org
│ │ │ │ │ └── webrtc
│ │ │ │ │ ├── audio
│ │ │ │ │ │ ├── VolumeLogger.java
│ │ │ │ │ │ ├── WebRtcAudioEffects.java
│ │ │ │ │ │ ├── WebRtcAudioManager.java
│ │ │ │ │ │ ├── WebRtcAudioRecord.java
│ │ │ │ │ │ ├── WebRtcAudioTrack.java
│ │ │ │ │ │ └── WebRtcAudioUtils.java
│ │ │ │ │ ├── BaseBitrateAdjuster.java
│ │ │ │ │ ├── BitrateAdjuster.java
│ │ │ │ │ ├── CalledByNative.java
│ │ │ │ │ ├── CalledByNativeUnchecked.java
│ │ │ │ │ ├── Camera1Session.java
│ │ │ │ │ ├── Camera2Session.java
│ │ │ │ │ ├── CameraCapturer.java
│ │ │ │ │ ├── CameraSession.java
│ │ │ │ │ ├── DynamicBitrateAdjuster.java
│ │ │ │ │ ├── EglBase10.java
│ │ │ │ │ ├── EglBase14.java
│ │ │ │ │ ├── Empty.java
│ │ │ │ │ ├── FramerateBitrateAdjuster.java
│ │ │ │ │ ├── HardwareVideoDecoder.java
│ │ │ │ │ ├── HardwareVideoEncoder.java
│ │ │ │ │ ├── Histogram.java
│ │ │ │ │ ├── JniCommon.java
│ │ │ │ │ ├── JniHelper.java
│ │ │ │ │ ├── JNILogging.java
│ │ │ │ │ ├── MediaCodecUtils.java
│ │ │ │ │ ├── NativeCapturerObserver.java
│ │ │ │ │ ├── NativeLibrary.java
│ │ │ │ │ ├── NV12Buffer.java
│ │ │ │ │ ├── NV21Buffer.java
│ │ │ │ │ ├── RefCountDelegate.java
│ │ │ │ │ ├── VideoCodecType.java
│ │ │ │ │ ├── VideoDecoderWrapper.java
│ │ │ │ │ ├── VideoEncoderWrapper.java
│ │ │ │ │ ├── VP8Decoder.java
│ │ │ │ │ ├── VP8Encoder.java
│ │ │ │ │ ├── VP9Decoder.java
│ │ │ │ │ ├── VP9Encoder.java
│ │ │ │ │ ├── WebRtcClassLoader.java
│ │ │ │ │ ├── WrappedNativeI420Buffer.java
│ │ │ │ │ ├── WrappedNativeVideoDecoder.java
│ │ │ │ │ └── WrappedNativeVideoEncoder.java
│ │ │ │ └── jni
│ │ │ │ ├── androidmediacodeccommon.h
│ │ │ │ ├── androidmediadecoder_jni.h
│ │ │ │ ├── androidmediaencoder_jni.h
│ │ │ │ ├── androidnetworkmonitor.h
│ │ │ │ ├── androidnetworkmonitor_jni.h
│ │ │ │ ├── androidvideotracksource.h
│ │ │ │ ├── audio_device
│ │ │ │ │ ├── aaudio_player.h
│ │ │ │ │ ├── aaudio_recorder.h
│ │ │ │ │ ├── aaudio_wrapper.h
│ │ │ │ │ ├── audio_common.h
│ │ │ │ │ ├── audio_device_module.h
│ │ │ │ │ ├── audio_record_jni.h
│ │ │ │ │ ├── audio_track_jni.h
│ │ │ │ │ ├── opensles_common.h
│ │ │ │ │ ├── opensles_player.h
│ │ │ │ │ └── opensles_recorder.h
│ │ │ │ ├── class_loader.h
│ │ │ │ ├── classreferenceholder.h
│ │ │ │ ├── encodedimage.h
│ │ │ │ ├── jni_generator_helper.h
│ │ │ │ ├── jni_helpers.h
│ │ │ │ ├── jvm.h
│ │ │ │ ├── logging
│ │ │ │ │ └── logsink.h
│ │ │ │ ├── nativecapturerobserver.h
│ │ │ │ ├── pc
│ │ │ │ │ ├── androidnetworkmonitor.h
│ │ │ │ │ ├── audio.h
│ │ │ │ │ ├── datachannel.h
│ │ │ │ │ ├── icecandidate.h
│ │ │ │ │ ├── mediaconstraints.h
│ │ │ │ │ ├── media.h
│ │ │ │ │ ├── mediastream.h
│ │ │ │ │ ├── mediastreamtrack.h
│ │ │ │ │ ├── peerconnectionfactory.h
│ │ │ │ │ ├── rtcstatscollectorcallbackwrapper.h
│ │ │ │ │ ├── rtpparameters.h
│ │ │ │ │ ├── rtpsender.h
│ │ │ │ │ ├── sdpobserver.h
│ │ │ │ │ ├── sessiondescription.h
│ │ │ │ │ ├── statsobserver.h
│ │ │ │ │ ├── turncustomizer.h
│ │ │ │ │ └── video.h
│ │ │ │ ├── videocodecinfo.h
│ │ │ │ ├── videocodecstatus.h
│ │ │ │ ├── videodecoderfactorywrapper.h
│ │ │ │ ├── videodecoderwrapper.h
│ │ │ │ ├── videoencoderfactorywrapper.h
│ │ │ │ ├── videoencoderwrapper.h
│ │ │ │ ├── videosink.h
│ │ │ │ ├── wrappednativecodec.h
│ │ │ │ └── wrapped_native_i420_buffer.h
│ │ │ └── tests
│ │ │ └── src
│ │ │ └── org
│ │ │ └── webrtc
│ │ │ ├── CameraEnumerationTest.java
│ │ │ └── ScalingSettingsTest.java
│ │ └── objc
│ │ ├── Framework
│ │ │ ├── Classes
│ │ │ │ ├── Audio
│ │ │ │ │ ├── RTCAudioSessionConfiguration.m
│ │ │ │ │ ├── RTCAudioSession+Configuration.mm
│ │ │ │ │ ├── RTCAudioSession.mm
│ │ │ │ │ ├── RTCAudioSession+Private.h
│ │ │ │ │ ├── RTCNativeAudioSessionDelegateAdapter.h
│ │ │ │ │ └── RTCNativeAudioSessionDelegateAdapter.mm
│ │ │ │ ├── Common
│ │ │ │ │ ├── helpers.h
│ │ │ │ │ ├── helpers.mm
│ │ │ │ │ ├── noop.mm
│ │ │ │ │ ├── NSString+StdString.h
│ │ │ │ │ ├── NSString+StdString.mm
│ │ │ │ │ ├── RTCCallbackLogger.mm
│ │ │ │ │ ├── RTCDispatcher.m
│ │ │ │ │ ├── RTCDispatcher+Private.h
│ │ │ │ │ ├── RTCFieldTrials.mm
│ │ │ │ │ ├── RTCFileLogger.mm
│ │ │ │ │ ├── RTCLogging.mm
│ │ │ │ │ ├── RTCUIApplicationStatusObserver.h
│ │ │ │ │ ├── RTCUIApplicationStatusObserver.m
│ │ │ │ │ └── UIDevice+RTCDevice.mm
│ │ │ │ ├── Metal
│ │ │ │ │ ├── RTCMTLI420Renderer.h
│ │ │ │ │ ├── RTCMTLI420Renderer.mm
│ │ │ │ │ ├── RTCMTLNSVideoView.m
│ │ │ │ │ ├── RTCMTLNV12Renderer.h
│ │ │ │ │ ├── RTCMTLNV12Renderer.mm
│ │ │ │ │ ├── RTCMTLRenderer.h
│ │ │ │ │ ├── RTCMTLRenderer.mm
│ │ │ │ │ ├── RTCMTLRenderer+Private.h
│ │ │ │ │ ├── RTCMTLRGBRenderer.h
│ │ │ │ │ ├── RTCMTLRGBRenderer.mm
│ │ │ │ │ └── RTCMTLVideoView.m
│ │ │ │ ├── PeerConnection
│ │ │ │ │ ├── RTCAudioSource.mm
│ │ │ │ │ ├── RTCAudioSource+Private.h
│ │ │ │ │ ├── RTCAudioTrack.mm
│ │ │ │ │ ├── RTCAudioTrack+Private.h
│ │ │ │ │ ├── RTCCameraVideoCapturer.m
│ │ │ │ │ ├── RTCConfiguration.mm
│ │ │ │ │ ├── RTCConfiguration+Native.h
│ │ │ │ │ ├── RTCConfiguration+Private.h
│ │ │ │ │ ├── RTCDataChannelConfiguration.mm
│ │ │ │ │ ├── RTCDataChannelConfiguration+Private.h
│ │ │ │ │ ├── RTCDataChannel.mm
│ │ │ │ │ ├── RTCDataChannel+Private.h
│ │ │ │ │ ├── RTCDefaultVideoDecoderFactory.m
│ │ │ │ │ ├── RTCDefaultVideoEncoderFactory.m
│ │ │ │ │ ├── RTCDtmfSender.mm
│ │ │ │ │ ├── RTCDtmfSender+Private.h
│ │ │ │ │ ├── RTCEncodedImage.mm
│ │ │ │ │ ├── RTCFileVideoCapturer.m
│ │ │ │ │ ├── RTCIceCandidate.mm
│ │ │ │ │ ├── RTCIceServer.mm
│ │ │ │ │ ├── RTCIceServer+Private.h
│ │ │ │ │ ├── RTCIntervalRange.mm
│ │ │ │ │ ├── RTCIntervalRange+Private.h
│ │ │ │ │ ├── RTCLegacyStatsReport.mm
│ │ │ │ │ ├── RTCLegacyStatsReport+Private.h
│ │ │ │ │ ├── RTCMediaConstraints.mm
│ │ │ │ │ ├── RTCMediaConstraints+Private.h
│ │ │ │ │ ├── RTCMediaSource.mm
│ │ │ │ │ ├── RTCMediaSource+Private.h
│ │ │ │ │ ├── RTCMediaStream.mm
│ │ │ │ │ ├── RTCMediaStream+Private.h
│ │ │ │ │ ├── RTCMediaStreamTrack.mm
│ │ │ │ │ ├── RTCMediaStreamTrack+Private.h
│ │ │ │ │ ├── RTCMetrics.mm
│ │ │ │ │ ├── RTCMetricsSampleInfo.mm
│ │ │ │ │ ├── RTCMetricsSampleInfo+Private.h
│ │ │ │ │ ├── RTCPeerConnection+DataChannel.mm
│ │ │ │ │ ├── RTCPeerConnectionFactory.mm
│ │ │ │ │ ├── RTCPeerConnectionFactory+Native.h
│ │ │ │ │ ├── RTCPeerConnectionFactoryOptions.mm
│ │ │ │ │ ├── RTCPeerConnectionFactoryOptions+Private.h
│ │ │ │ │ ├── RTCPeerConnectionFactory+Private.h
│ │ │ │ │ ├── RTCPeerConnection.mm
│ │ │ │ │ ├── RTCPeerConnection+Native.h
│ │ │ │ │ ├── RTCPeerConnection+Private.h
│ │ │ │ │ ├── RTCPeerConnection+Stats.mm
│ │ │ │ │ ├── RTCRtpCodecParameters.mm
│ │ │ │ │ ├── RTCRtpCodecParameters+Private.h
│ │ │ │ │ ├── RTCRtpEncodingParameters.mm
│ │ │ │ │ ├── RTCRtpEncodingParameters+Private.h
│ │ │ │ │ ├── RTCRtpFragmentationHeader.mm
│ │ │ │ │ ├── RTCRtpParameters.mm
│ │ │ │ │ ├── RTCRtpParameters+Private.h
│ │ │ │ │ ├── RTCRtpReceiver.mm
│ │ │ │ │ ├── RTCRtpReceiver+Private.h
│ │ │ │ │ ├── RTCRtpSender.mm
│ │ │ │ │ ├── RTCRtpSender+Private.h
│ │ │ │ │ ├── RTCRtpTransceiver.mm
│ │ │ │ │ ├── RTCRtpTransceiver+Private.h
│ │ │ │ │ ├── RTCSessionDescription.mm
│ │ │ │ │ ├── RTCSSLAdapter.mm
│ │ │ │ │ ├── RTCTracing.mm
│ │ │ │ │ ├── RTCVideoCapturer.m
│ │ │ │ │ ├── RTCVideoCodecH264.mm
│ │ │ │ │ ├── RTCVideoCodec.mm
│ │ │ │ │ ├── RTCVideoCodec+Private.h
│ │ │ │ │ ├── RTCVideoCodecVP8.mm
│ │ │ │ │ ├── RTCVideoCodecVP9.mm
│ │ │ │ │ ├── RTCVideoEncoderSettings.mm
│ │ │ │ │ ├── RTCVideoFrame.mm
│ │ │ │ │ ├── RTCVideoRendererAdapter.h
│ │ │ │ │ ├── RTCVideoRendererAdapter.mm
│ │ │ │ │ ├── RTCVideoRendererAdapter+Private.h
│ │ │ │ │ ├── RTCVideoSource.mm
│ │ │ │ │ ├── RTCVideoSource+Private.h
│ │ │ │ │ ├── RTCVideoTrack.mm
│ │ │ │ │ ├── RTCVideoTrack+Private.h
│ │ │ │ │ ├── RTCWrappedNativeVideoDecoder.mm
│ │ │ │ │ └── RTCWrappedNativeVideoEncoder.mm
│ │ │ │ ├── UI
│ │ │ │ │ ├── RTCCameraPreviewView.m
│ │ │ │ │ ├── RTCEAGLVideoView.m
│ │ │ │ │ └── RTCNSGLVideoView.m
│ │ │ │ ├── Video
│ │ │ │ │ ├── AVCaptureSession+DevicePosition.h
│ │ │ │ │ ├── AVCaptureSession+DevicePosition.mm
│ │ │ │ │ ├── RTCCVPixelBuffer.mm
│ │ │ │ │ ├── RTCDefaultShader.h
│ │ │ │ │ ├── RTCDefaultShader.mm
│ │ │ │ │ ├── RTCI420Buffer.mm
│ │ │ │ │ ├── RTCI420Buffer+Private.h
│ │ │ │ │ ├── RTCI420TextureCache.h
│ │ │ │ │ ├── RTCI420TextureCache.mm
│ │ │ │ │ ├── RTCNV12TextureCache.h
│ │ │ │ │ ├── RTCNV12TextureCache.m
│ │ │ │ │ ├── RTCOpenGLDefines.h
│ │ │ │ │ ├── RTCShader.h
│ │ │ │ │ ├── RTCShader.mm
│ │ │ │ │ ├── UIDevice+H264Profile.h
│ │ │ │ │ └── UIDevice+H264Profile.mm
│ │ │ │ └── VideoToolbox
│ │ │ │ ├── helpers.h
│ │ │ │ ├── nalu_rewriter.h
│ │ │ │ ├── RTCVideoDecoderH264.mm
│ │ │ │ └── RTCVideoEncoderH264.mm
│ │ │ ├── Headers
│ │ │ │ └── WebRTC
│ │ │ │ ├── RTCAudioSessionConfiguration.h
│ │ │ │ ├── RTCAudioSession.h
│ │ │ │ ├── RTCAudioSource.h
│ │ │ │ ├── RTCAudioTrack.h
│ │ │ │ ├── RTCCallbackLogger.h
│ │ │ │ ├── RTCCameraPreviewView.h
│ │ │ │ ├── RTCCameraVideoCapturer.h
│ │ │ │ ├── RTCConfiguration.h
│ │ │ │ ├── RTCDataChannelConfiguration.h
│ │ │ │ ├── RTCDataChannel.h
│ │ │ │ ├── RTCDispatcher.h
│ │ │ │ ├── RTCDtmfSender.h
│ │ │ │ ├── RTCEAGLVideoView.h
│ │ │ │ ├── RTCFieldTrials.h
│ │ │ │ ├── RTCFileLogger.h
│ │ │ │ ├── RTCFileVideoCapturer.h
│ │ │ │ ├── RTCIceCandidate.h
│ │ │ │ ├── RTCIceServer.h
│ │ │ │ ├── RTCIntervalRange.h
│ │ │ │ ├── RTCLegacyStatsReport.h
│ │ │ │ ├── RTCLogging.h
│ │ │ │ ├── RTCMacros.h
│ │ │ │ ├── RTCMediaConstraints.h
│ │ │ │ ├── RTCMediaSource.h
│ │ │ │ ├── RTCMediaStream.h
│ │ │ │ ├── RTCMediaStreamTrack.h
│ │ │ │ ├── RTCMetrics.h
│ │ │ │ ├── RTCMetricsSampleInfo.h
│ │ │ │ ├── RTCMTLNSVideoView.h
│ │ │ │ ├── RTCMTLVideoView.h
│ │ │ │ ├── RTCNSGLVideoView.h
│ │ │ │ ├── RTCPeerConnectionFactory.h
│ │ │ │ ├── RTCPeerConnectionFactoryOptions.h
│ │ │ │ ├── RTCPeerConnection.h
│ │ │ │ ├── RTCRtpCodecParameters.h
│ │ │ │ ├── RTCRtpEncodingParameters.h
│ │ │ │ ├── RTCRtpParameters.h
│ │ │ │ ├── RTCRtpReceiver.h
│ │ │ │ ├── RTCRtpSender.h
│ │ │ │ ├── RTCRtpTransceiver.h
│ │ │ │ ├── RTCSessionDescription.h
│ │ │ │ ├── RTCSSLAdapter.h
│ │ │ │ ├── RTCTracing.h
│ │ │ │ ├── RTCVideoCapturer.h
│ │ │ │ ├── RTCVideoCodecFactory.h
│ │ │ │ ├── RTCVideoCodec.h
│ │ │ │ ├── RTCVideoCodecH264.h
│ │ │ │ ├── RTCVideoDecoderVP8.h
│ │ │ │ ├── RTCVideoDecoderVP9.h
│ │ │ │ ├── RTCVideoEncoderVP8.h
│ │ │ │ ├── RTCVideoEncoderVP9.h
│ │ │ │ ├── RTCVideoFrameBuffer.h
│ │ │ │ ├── RTCVideoFrame.h
│ │ │ │ ├── RTCVideoRenderer.h
│ │ │ │ ├── RTCVideoSource.h
│ │ │ │ ├── RTCVideoTrack.h
│ │ │ │ ├── RTCVideoViewShading.h
│ │ │ │ └── UIDevice+RTCDevice.h
│ │ │ ├── Info.plist
│ │ │ ├── Modules
│ │ │ │ └── module.modulemap
│ │ │ ├── Native
│ │ │ │ ├── api
│ │ │ │ │ ├── audio_device_module.h
│ │ │ │ │ ├── audio_device_module.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_buffer.h
│ │ │ │ │ ├── video_frame_buffer.mm
│ │ │ │ │ ├── video_frame.h
│ │ │ │ │ ├── video_frame.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
│ │ │ │ │ ├── voice_processing_audio_unit.h
│ │ │ │ │ └── voice_processing_audio_unit.mm
│ │ │ │ ├── objc_frame_buffer.h
│ │ │ │ ├── objc_frame_buffer.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
│ │ │ ├── audio_short16.pcm
│ │ │ ├── audio_short44.pcm
│ │ │ ├── audio_short48.pcm
│ │ │ ├── avformatmappertests.mm
│ │ │ ├── foreman.mp4
│ │ │ ├── frame_buffer_helpers.h
│ │ │ ├── frame_buffer_helpers.mm
│ │ │ ├── main.m
│ │ │ ├── objc_video_decoder_factory_tests.mm
│ │ │ ├── objc_video_encoder_factory_tests.mm
│ │ │ ├── ObjCVideoTrackSource_xctest.mm
│ │ │ ├── RTCAudioDeviceModule_xctest.mm
│ │ │ ├── RTCAudioDevice_xctest.mm
│ │ │ ├── RTCAudioSessionTest.mm
│ │ │ ├── RTCCallbackLogger_xctest.m
│ │ │ ├── RTCCameraVideoCapturerTests.mm
│ │ │ ├── RTCConfigurationTest.mm
│ │ │ ├── RTCCVPixelBuffer_xctest.mm
│ │ │ ├── RTCDataChannelConfigurationTest.mm
│ │ │ ├── RTCDoNotPutCPlusPlusInFrameworkHeaders_xctest.m
│ │ │ ├── RTCFileVideoCapturer_xctest.mm
│ │ │ ├── RTCIceCandidateTest.mm
│ │ │ ├── RTCIceServerTest.mm
│ │ │ ├── RTCIntervalRangeTests.mm
│ │ │ ├── RTCMediaConstraintsTest.mm
│ │ │ ├── RTCMTLVideoView_xctest.m
│ │ │ ├── RTCPeerConnectionTest.mm
│ │ │ ├── RTCSessionDescriptionTest.mm
│ │ │ ├── RTCTracingTest.mm
│ │ │ └── scoped_cftyperef_tests.mm
│ │ └── WebRTC.podspec
│ ├── stats
│ │ └── test
│ │ └── rtcteststats.h
│ ├── system_wrappers
│ │ ├── include
│ │ │ ├── clock.h
│ │ │ ├── cpu_features_wrapper.h
│ │ │ ├── cpu_info.h
│ │ │ ├── event_wrapper.h
│ │ │ ├── field_trial_default.h
│ │ │ ├── field_trial.h
│ │ │ ├── metrics_default.h
│ │ │ ├── metrics.h
│ │ │ ├── ntp_time.h
│ │ │ ├── rtp_to_ntp_estimator.h
│ │ │ ├── runtime_enabled_features.h
│ │ │ └── sleep.h
│ │ └── source
│ │ ├── cpu_features_android.c
│ │ ├── cpu_features_linux.c
│ │ ├── event_timer_posix.h
│ │ └── event_timer_win.h
│ ├── typedefs.h
│ └── video
│ ├── call_stats.h
│ ├── encoder_rtcp_feedback.h
│ ├── end_to_end_tests
│ │ └── multi_stream_tester.h
│ ├── full_stack_tests_plot.py
│ ├── overuse_frame_detector.h
│ ├── payload_router.h
│ ├── quality_threshold.h
│ ├── report_block_stats.h
│ ├── rtp_streams_synchronizer.h
│ ├── send_delay_stats.h
│ ├── send_statistics_proxy.h
│ ├── stream_synchronization.h
│ ├── test
│ │ └── mock_video_stream_encoder.h
│ ├── transport_adapter.h
│ ├── video_quality_test.h
│ ├── video_stream_decoder.h
│ ├── video_stream_decoder_impl.h
│ └── video_stream_encoder.h
└── webrtc_release_libs
├── aec3.lib
├── alr_experiment.lib
├── ana_config_proto.lib
├── ana_debug_dump_proto.lib
├── audio_coding.lib
├── audio_decoder_g711.lib
├── audio_decoder_g722.lib
├── audio_decoder_ilbc.lib
├── audio_decoder_isac_fix.lib
├── audio_decoder_isac_float.lib
├── audio_decoder_L16.lib
├── audio_decoder_opus.lib
├── audio_encoder_g711.lib
├── audio_encoder_g722.lib
├── audio_encoder_ilbc.lib
├── audio_encoder_isac_fix.lib
├── audio_encoder_isac_float.lib
├── audio_encoder_L16.lib
├── audio_encoder_opus_config.lib
├── audio_format_conversion.lib
├── audio_frame_manipulator.lib
├── audio_frame_operations.lib
├── audio.lib
├── audio_mixer_impl.lib
├── audio_network_adaptor_config.lib
├── audio_network_adaptor.lib
├── audioproc_debug_proto.lib
├── audio_processing.lib
├── audioproc_protobuf_utils.lib
├── audioproc_unittest_proto.lib
├── bbr.lib
├── bitrate_controller.lib
├── boringssl_asm.lib
├── boringssl.lib
├── builtin_audio_decoder_factory.lib
├── builtin_audio_encoder_factory.lib
├── builtin_video_decoder_factory.lib
├── builtin_video_encoder_factory.lib
├── bwe_simulator_lib.lib
├── call.lib
├── chart_proto.lib
├── cng.lib
├── command_line_parser.lib
├── common_audio.lib
├── common_audio_sse2.lib
├── common_video.lib
├── congestion_controller_experiment.lib
├── congestion_controller.lib
├── create_pc_factory.lib
├── desktop_capture_differ_sse2.lib
├── desktop_capture_generic.lib
├── encoded_frame.lib
├── event_log_visualizer_utils.lib
├── frame_editing_lib.lib
├── g711.lib
├── g722.lib
├── gmock_main.lib
├── goog_cc.lib
├── gtest.lib
├── icui18n.lib
├── icuuc.lib
├── ilbc.lib
├── isac_c.lib
├── isac_common.lib
├── isac_fix.lib
├── isac.lib
├── legacy_encoded_audio_frame.lib
├── libjingle_peerconnection_api.lib
├── libjpeg.lib
├── lib.lib
├── libsrtp.lib
├── libstunprober.lib
├── libvpx.lib
├── libvpx_yasm.lib
├── libyuv_internal.lib
├── minizip.lib
├── neteq.lib
├── neteq_unittest_proto.lib
├── network_control.lib
├── network_tester_config_proto.lib
├── network_tester.lib
├── network_tester_packet_proto.lib
├── opus.lib
├── ortc.lib
├── pacing.lib
├── pcm16b.lib
├── peerconnection_client.exe
├── peerconnection.lib
├── peerconnection_server.exe
├── primitives.lib
├── protobuf_full.lib
├── protobuf_lite.lib
├── protoc_lib.lib
├── quality_scaling_experiment.lib
├── red.lib
├── reference_less_video_analysis_lib.lib
├── remote_bitrate_estimator.lib
├── rent_a_codec.lib
├── rtc_audio_video.lib
├── rtc_base_generic.lib
├── rtc_base.lib
├── rtc_constants.lib
├── rtc_data.lib
├── rtc_event_log2_proto.lib
├── rtc_event_log_impl_base.lib
├── rtc_event_log_impl_encoder.lib
├── rtc_event_log_parser.lib
├── rtc_event_log_proto.lib
├── rtc_event_log_source.lib
├── rtc_internal_video_codecs.lib
├── rtc_media_base.lib
├── rtc_numerics.lib
├── rtc_p2p.lib
├── rtc_pc_base.lib
├── rtc_software_fallback_wrappers.lib
├── rtc_stats.lib
├── rtp_rtcp.lib
├── simd_asm.lib
├── simd.lib
├── system_wrappers.lib
├── transport_feedback.lib
├── usrsctp.lib
├── utility.lib
├── vad.lib
├── vad_unittests.lib
├── video_capture.lib
├── video_capture_module.lib
├── video_coding.lib
├── video.lib
├── video_processing.lib
├── video_processing_sse2.lib
├── video_quality_analysis.lib
├── weak_ptr.lib
├── webrtc_common.lib
├── webrtc_h264.lib
├── webrtc_i420.lib
├── webrtc.lib
├── webrtc_multiplex.lib
├── webrtc_opus.lib
├── webrtc_unity_plugin.dll.lib
├── webrtc_vp8_helpers.lib
├── webrtc_vp8.lib
├── webrtc_vp9_helpers.lib
├── webrtc_vp9.lib
├── winsdk_samples.lib
├── yasm_utils.lib
├── zlib.lib
└── zlib_x86_simd.lib
540 directories, 5157 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论