在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → WebRTC学习之三:录音和播放

WebRTC学习之三:录音和播放

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:43.35M
  • 下载次数:10
  • 浏览次数:640
  • 发布时间:2020-06-04
  • 实例类别:一般编程问题
  • 发 布 人:robot666
  • 文件格式:.rar
  • 所需积分:2
 

实例介绍

【实例简介】
使用WebRTC C++实现的录音与播放功能,界面用的Qt。 详见博客:http://blog.csdn.net/caoshangpa/article/details/53446916
【实例截图】
【核心代码】
45460662TestWebRTCRecodAndPlayout
└── TestWebRTCRecodAndPlayout
├── Makefile
├── Makefile.Debug
├── Makefile.Release
├── RecordingMicrophone.pcm
├── TestWebRTCRecodAndPlayout.pro
├── TestWebRTCRecodAndPlayout.pro.user
├── TestWebRTCRecodAndPlayout.pro.user.9b9e1e5
├── TestWebRTCRecodAndPlayout.pro.user.ca7a4d0
├── debug
│   ├── TestWebRTCRecodAndPlayout.exe
│   ├── TestWebRTCRecodAndPlayout.ilk
│   ├── TestWebRTCRecodAndPlayout.pdb
│   ├── main.obj
│   ├── mainwindow.obj
│   ├── moc_mainwindow.cpp
│   ├── moc_mainwindow.obj
│   └── myobserver.obj
├── lib
│   ├── audio_coding_module.lib
│   ├── audio_conference_mixer.lib
│   ├── audio_decoder_factory_interface.lib
│   ├── audio_decoder_interface.lib
│   ├── audio_device.lib
│   ├── audio_encoder_interface.lib
│   ├── audio_processing.lib
│   ├── audio_processing_sse2.lib
│   ├── audioproc_debug_proto.lib
│   ├── bitrate_controller.lib
│   ├── boringssl.lib
│   ├── boringssl_asm.lib
│   ├── builtin_audio_decoder_factory.lib
│   ├── cng.lib
│   ├── command_line_parser.lib
│   ├── common_audio.lib
│   ├── common_audio_sse2.lib
│   ├── common_video.lib
│   ├── congestion_controller.lib
│   ├── desktop_capture.lib
│   ├── desktop_capture_differ_sse2.lib
│   ├── directshow_baseclasses.lib
│   ├── field_trial_default.lib
│   ├── frame_editing_lib.lib
│   ├── g711.lib
│   ├── g722.lib
│   ├── genperf_libs.lib
│   ├── ilbc.lib
│   ├── isac.lib
│   ├── isac_common.lib
│   ├── isac_fix.lib
│   ├── jsoncpp.lib
│   ├── libjingle_peerconnection.lib
│   ├── libjpeg.lib
│   ├── libsrtp.lib
│   ├── libstunprober.lib
│   ├── libvpx.lib
│   ├── libvpx_intrinsics_avx.lib
│   ├── libvpx_intrinsics_avx2.lib
│   ├── libvpx_intrinsics_mmx.lib
│   ├── libvpx_intrinsics_sse2.lib
│   ├── libvpx_intrinsics_sse4_1.lib
│   ├── libvpx_intrinsics_ssse3.lib
│   ├── media_file.lib
│   ├── metrics_default.lib
│   ├── neteq.lib
│   ├── openmax_dl.lib
│   ├── opus.lib
│   ├── paced_sender.lib
│   ├── pcm16b.lib
│   ├── protobuf_full_do_not_use.lib
│   ├── protobuf_lite.lib
│   ├── protoc_lib.lib
│   ├── red.lib
│   ├── remote_bitrate_estimator.lib
│   ├── rent_a_codec.lib
│   ├── rtc_base.lib
│   ├── rtc_base_approved.lib
│   ├── rtc_event_log.lib
│   ├── rtc_event_log_parser.lib
│   ├── rtc_event_log_proto.lib
│   ├── rtc_media.lib
│   ├── rtc_p2p.lib
│   ├── rtc_pc.lib
│   ├── rtc_task_queue.lib
│   ├── rtp_rtcp.lib
│   ├── system_wrappers.lib
│   ├── usrsctplib.lib
│   ├── video_capture.lib
│   ├── video_capture_module.lib
│   ├── video_capture_module_internal_impl.lib
│   ├── video_coding_utility.lib
│   ├── video_processing.lib
│   ├── video_processing_sse2.lib
│   ├── video_quality_analysis.lib
│   ├── voice_engine.lib
│   ├── webrtc.lib
│   ├── webrtc_common.lib
│   ├── webrtc_h264.lib
│   ├── webrtc_i420.lib
│   ├── webrtc_opus.lib
│   ├── webrtc_utility.lib
│   ├── webrtc_video_coding.lib
│   ├── webrtc_vp8.lib
│   └── webrtc_vp9.lib
├── main.cpp
├── mainwindow.cpp
├── mainwindow.h
├── mainwindow.ui
├── myobserver.cpp
├── myobserver.h
├── ui_mainwindow.h
└── webrtc
├── BUILD.gn
├── DEPS
├── LICENSE
├── LICENSE_THIRD_PARTY
├── OWNERS
├── PATENTS
├── PRESUBMIT.py
├── README.chromium
├── androidjunit
│   ├── OWNERS
│   └── src
│   └── org
│   └── webrtc
│   └── CameraEnumerationTest.java
├── api
│   ├── BUILD.gn
│   ├── DEPS
│   ├── OWNERS
│   ├── androidtests
│   │   ├── AndroidManifest.xml
│   │   ├── OWNERS
│   │   ├── ant.properties
│   │   ├── build.xml
│   │   ├── project.properties
│   │   ├── res
│   │   │   ├── drawable-hdpi
│   │   │   │   └── ic_launcher.png
│   │   │   ├── drawable-ldpi
│   │   │   │   └── ic_launcher.png
│   │   │   ├── drawable-mdpi
│   │   │   │   └── ic_launcher.png
│   │   │   ├── drawable-xhdpi
│   │   │   │   └── ic_launcher.png
│   │   │   └── values
│   │   │   └── strings.xml
│   │   └── src
│   │   └── org
│   │   └── webrtc
│   │   ├── Camera1CapturerUsingByteBufferTest.java
│   │   ├── Camera1CapturerUsingTextureTest.java
│   │   ├── CameraVideoCapturerTestFixtures.java
│   │   ├── GlRectDrawerTest.java
│   │   ├── MediaCodecVideoEncoderTest.java
│   │   ├── NetworkMonitorTest.java
│   │   ├── PeerConnectionTest.java
│   │   ├── RendererCommonTest.java
│   │   ├── SurfaceTextureHelperTest.java
│   │   └── SurfaceViewRendererOnMeasureTest.java
│   ├── androidvideocapturer.cc
│   ├── androidvideocapturer.h
│   ├── api.gyp
│   ├── api.sln
│   ├── api_java.gyp
│   ├── api_tests.gyp
│   ├── audiotrack.cc
│   ├── audiotrack.h
│   ├── datachannel.cc
│   ├── datachannel.h
│   ├── datachannel_unittest.cc
│   ├── datachannelinterface.h
│   ├── dtlsidentitystore.h
│   ├── dtmfsender.cc
│   ├── dtmfsender.h
│   ├── dtmfsender_unittest.cc
│   ├── dtmfsenderinterface.h
│   ├── fakemediacontroller.h
│   ├── fakemetricsobserver.cc
│   ├── fakemetricsobserver.h
│   ├── java
│   │   ├── README
│   │   ├── android
│   │   │   └── org
│   │   │   └── webrtc
│   │   │   ├── Camera1Enumerator.java
│   │   │   ├── Camera2Enumerator.java
│   │   │   ├── CameraEnumerationAndroid.java
│   │   │   ├── CameraEnumerator.java
│   │   │   ├── CameraVideoCapturer.java
│   │   │   ├── EglBase.java
│   │   │   ├── EglBase10.java
│   │   │   ├── EglBase14.java
│   │   │   ├── GlRectDrawer.java
│   │   │   ├── GlShader.java
│   │   │   ├── GlTextureFrameBuffer.java
│   │   │   ├── GlUtil.java
│   │   │   ├── NetworkMonitor.java
│   │   │   ├── NetworkMonitorAutoDetect.java
│   │   │   ├── OWNERS
│   │   │   ├── RendererCommon.java
│   │   │   ├── SurfaceTextureHelper.java
│   │   │   ├── SurfaceViewRenderer.java
│   │   │   ├── VideoCapturerAndroid.java
│   │   │   └── VideoRendererGui.java
│   │   ├── jni
│   │   │   ├── OWNERS
│   │   │   ├── androidmediacodeccommon.h
│   │   │   ├── androidmediadecoder_jni.cc
│   │   │   ├── androidmediadecoder_jni.h
│   │   │   ├── androidmediaencoder_jni.cc
│   │   │   ├── androidmediaencoder_jni.h
│   │   │   ├── androidmetrics_jni.cc
│   │   │   ├── androidnetworkmonitor_jni.cc
│   │   │   ├── androidnetworkmonitor_jni.h
│   │   │   ├── androidvideocapturer_jni.cc
│   │   │   ├── androidvideocapturer_jni.h
│   │   │   ├── classreferenceholder.cc
│   │   │   ├── classreferenceholder.h
│   │   │   ├── jni_helpers.cc
│   │   │   ├── jni_helpers.h
│   │   │   ├── jni_onload.cc
│   │   │   ├── native_handle_impl.cc
│   │   │   ├── native_handle_impl.h
│   │   │   ├── peerconnection_jni.cc
│   │   │   ├── surfacetexturehelper_jni.cc
│   │   │   └── surfacetexturehelper_jni.h
│   │   └── src
│   │   └── org
│   │   └── webrtc
│   │   ├── AudioSource.java
│   │   ├── AudioTrack.java
│   │   ├── CallSessionFileRotatingLogSink.java
│   │   ├── DataChannel.java
│   │   ├── IceCandidate.java
│   │   ├── MediaCodecVideoDecoder.java
│   │   ├── MediaCodecVideoEncoder.java
│   │   ├── MediaConstraints.java
│   │   ├── MediaSource.java
│   │   ├── MediaStream.java
│   │   ├── MediaStreamTrack.java
│   │   ├── Metrics.java
│   │   ├── PeerConnection.java
│   │   ├── PeerConnectionFactory.java
│   │   ├── RtpParameters.java
│   │   ├── RtpReceiver.java
│   │   ├── RtpSender.java
│   │   ├── SdpObserver.java
│   │   ├── SessionDescription.java
│   │   ├── StatsObserver.java
│   │   ├── StatsReport.java
│   │   ├── VideoCapturer.java
│   │   ├── VideoRenderer.java
│   │   ├── VideoSource.java
│   │   └── VideoTrack.java
│   ├── jsep.h
│   ├── jsepicecandidate.cc
│   ├── jsepicecandidate.h
│   ├── jsepsessiondescription.cc
│   ├── jsepsessiondescription.h
│   ├── jsepsessiondescription_unittest.cc
│   ├── libjingle_peerconnection.vcxproj
│   ├── localaudiosource.cc
│   ├── localaudiosource.h
│   ├── localaudiosource_unittest.cc
│   ├── mediaconstraintsinterface.cc
│   ├── mediaconstraintsinterface.h
│   ├── mediaconstraintsinterface_unittest.cc
│   ├── mediacontroller.cc
│   ├── mediacontroller.h
│   ├── mediastream.cc
│   ├── mediastream.h
│   ├── mediastream_unittest.cc
│   ├── mediastreaminterface.h
│   ├── mediastreamobserver.cc
│   ├── mediastreamobserver.h
│   ├── mediastreamprovider.h
│   ├── mediastreamproxy.h
│   ├── mediastreamtrack.h
│   ├── mediastreamtrackproxy.h
│   ├── notifier.h
│   ├── peerconnection.cc
│   ├── peerconnection.h
│   ├── peerconnection_unittest.cc
│   ├── peerconnection_unittests.isolate
│   ├── peerconnection_unittests_apk.isolate
│   ├── peerconnectionendtoend_unittest.cc
│   ├── peerconnectionfactory.cc
│   ├── peerconnectionfactory.h
│   ├── peerconnectionfactory_unittest.cc
│   ├── peerconnectionfactoryproxy.h
│   ├── peerconnectioninterface.h
│   ├── peerconnectioninterface_unittest.cc
│   ├── peerconnectionproxy.h
│   ├── proxy.h
│   ├── proxy_unittest.cc
│   ├── quicdatachannel.cc
│   ├── quicdatachannel.h
│   ├── quicdatachannel_unittest.cc
│   ├── quicdatatransport.cc
│   ├── quicdatatransport.h
│   ├── quicdatatransport_unittest.cc
│   ├── remoteaudiosource.cc
│   ├── remoteaudiosource.h
│   ├── rtpparameters.h
│   ├── rtpreceiver.cc
│   ├── rtpreceiver.h
│   ├── rtpreceiverinterface.h
│   ├── rtpsender.cc
│   ├── rtpsender.h
│   ├── rtpsenderinterface.h
│   ├── rtpsenderreceiver_unittest.cc
│   ├── sctputils.cc
│   ├── sctputils.h
│   ├── sctputils_unittest.cc
│   ├── stFail
│   ├── statscollector.cc
│   ├── statscollector.h
│   ├── statscollector_unittest.cc
│   ├── statstypes.cc
│   ├── statstypes.h
│   ├── streamcollection.h
│   ├── test
│   │   ├── DEPS
│   │   ├── androidtestinitializer.cc
│   │   ├── androidtestinitializer.h
│   │   ├── fakeaudiocapturemodule.cc
│   │   ├── fakeaudiocapturemodule.h
│   │   ├── fakeaudiocapturemodule_unittest.cc
│   │   ├── fakeconstraints.h
│   │   ├── fakedatachannelprovider.h
│   │   ├── fakeperiodicvideocapturer.h
│   │   ├── fakertccertificategenerator.h
│   │   ├── fakevideotrackrenderer.h
│   │   ├── fakevideotracksource.h
│   │   ├── mockpeerconnectionobservers.h
│   │   ├── peerconnectiontestwrapper.cc
│   │   ├── peerconnectiontestwrapper.h
│   │   └── testsdpstrings.h
│   ├── umametrics.h
│   ├── videocapturertracksource.cc
│   ├── videocapturertracksource.h
│   ├── videocapturertracksource_unittest.cc
│   ├── videosourceproxy.h
│   ├── videotrack.cc
│   ├── videotrack.h
│   ├── videotrack_unittest.cc
│   ├── videotracksource.cc
│   ├── videotracksource.h
│   ├── webrtcsdp.cc
│   ├── webrtcsdp.h
│   ├── webrtcsdp_unittest.cc
│   ├── webrtcsession.cc
│   ├── webrtcsession.h
│   ├── webrtcsession_unittest.cc
│   ├── webrtcsessiondescriptionfactory.cc
│   └── webrtcsessiondescriptionfactory.h
├── audio
│   ├── BUILD.gn
│   ├── DEPS
│   ├── OWNERS
│   ├── audio_receive_stream.cc
│   ├── audio_receive_stream.h
│   ├── audio_receive_stream_unittest.cc
│   ├── audio_send_stream.cc
│   ├── audio_send_stream.h
│   ├── audio_send_stream_unittest.cc
│   ├── audio_state.cc
│   ├── audio_state.h
│   ├── audio_state_unittest.cc
│   ├── conversion.h
│   ├── scoped_voe_interface.h
│   └── webrtc_audio.gypi
├── audio_receive_stream.h
├── audio_send_stream.h
├── audio_sink.h
├── audio_state.h
├── base
│   ├── BUILD.gn
│   ├── DEPS
│   ├── OWNERS
│   ├── array_view.h
│   ├── array_view_unittest.cc
│   ├── arraysize.h
│   ├── asyncfile.cc
│   ├── asyncfile.h
│   ├── asyncinvoker-inl.h
│   ├── asyncinvoker.cc
│   ├── asyncinvoker.h
│   ├── asyncpacketsocket.cc
│   ├── asyncpacketsocket.h
│   ├── asyncresolverinterface.cc
│   ├── asyncresolverinterface.h
│   ├── asyncsocket.cc
│   ├── asyncsocket.h
│   ├── asynctcpsocket.cc
│   ├── asynctcpsocket.h
│   ├── asynctcpsocket_unittest.cc
│   ├── asyncudpsocket.cc
│   ├── asyncudpsocket.h
│   ├── asyncudpsocket_unittest.cc
│   ├── atomicops.h
│   ├── atomicops_unittest.cc
│   ├── autodetectproxy.cc
│   ├── autodetectproxy.h
│   ├── autodetectproxy_unittest.cc
│   ├── bandwidthsmoother.cc
│   ├── bandwidthsmoother.h
│   ├── bandwidthsmoother_unittest.cc
│   ├── base.gyp
│   ├── base.sln
│   ├── base64.cc
│   ├── base64.h
│   ├── base64_unittest.cc
│   ├── base_tests.gyp
│   ├── basictypes.h
│   ├── basictypes_unittest.cc
│   ├── bind.h
│   ├── bind.h.pump
│   ├── bind_unittest.cc
│   ├── bitbuffer.cc
│   ├── bitbuffer.h
│   ├── bitbuffer_unittest.cc
│   ├── buffer.cc
│   ├── buffer.h
│   ├── buffer_unittest.cc
│   ├── bufferqueue.cc
│   ├── bufferqueue.h
│   ├── bufferqueue_unittest.cc
│   ├── bytebuffer.cc
│   ├── bytebuffer.h
│   ├── bytebuffer_unittest.cc
│   ├── byteorder.h
│   ├── byteorder_unittest.cc
│   ├── callback.h
│   ├── callback.h.pump
│   ├── callback_unittest.cc
│   ├── checks.cc
│   ├── checks.h
│   ├── common.cc
│   ├── common.h
│   ├── constructormagic.h
│   ├── copyonwritebuffer.cc
│   ├── copyonwritebuffer.h
│   ├── copyonwritebuffer_unittest.cc
│   ├── crc32.cc
│   ├── crc32.h
│   ├── crc32_unittest.cc
│   ├── criticalsection.cc
│   ├── criticalsection.h
│   ├── criticalsection_unittest.cc
│   ├── cryptstring.cc
│   ├── cryptstring.h
│   ├── dbus.cc
│   ├── dbus.h
│   ├── dbus_unittest.cc
│   ├── deprecation.h
│   ├── diskcache.cc
│   ├── diskcache.h
│   ├── diskcache_win32.cc
│   ├── diskcache_win32.h
│   ├── dscp.h
│   ├── event.cc
│   ├── event.h
│   ├── event_tracer.cc
│   ├── event_tracer.h
│   ├── event_tracer_unittest.cc
│   ├── event_unittest.cc
│   ├── exp_filter.cc
│   ├── exp_filter.h
│   ├── exp_filter_unittest.cc
│   ├── fakeclock.cc
│   ├── fakeclock.h
│   ├── fakenetwork.h
│   ├── fakesslidentity.h
│   ├── faketaskrunner.h
│   ├── filerotatingstream.cc
│   ├── filerotatingstream.h
│   ├── filerotatingstream_unittest.cc
│   ├── fileutils.cc
│   ├── fileutils.h
│   ├── fileutils_mock.h
│   ├── fileutils_unittest.cc
│   ├── firewallsocketserver.cc
│   ├── firewallsocketserver.h
│   ├── flags.cc
│   ├── flags.h
│   ├── format_macros.h
│   ├── gtest_prod.vcxproj
│   ├── gtest_prod_util.h
│   ├── gunit.h
│   ├── gunit_prod.h
│   ├── helpers.cc
│   ├── helpers.h
│   ├── helpers_unittest.cc
│   ├── httpbase.cc
│   ├── httpbase.h
│   ├── httpbase_unittest.cc
│   ├── httpclient.cc
│   ├── httpclient.h
│   ├── httpcommon-inl.h
│   ├── httpcommon.cc
│   ├── httpcommon.h
│   ├── httpcommon_unittest.cc
│   ├── httprequest.cc
│   ├── httprequest.h
│   ├── httpserver.cc
│   ├── httpserver.h
│   ├── httpserver_unittest.cc
│   ├── ifaddrs-android.cc
│   ├── ifaddrs-android.h
│   ├── ifaddrs_converter.cc
│   ├── ifaddrs_converter.h
│   ├── iosfilesystem.mm
│   ├── ipaddress.cc
│   ├── ipaddress.h
│   ├── ipaddress_unittest.cc
│   ├── java
│   │   └── src
│   │   └── org
│   │   └── webrtc
│   │   ├── Logging.java
│   │   ├── Size.java
│   │   └── ThreadUtils.java
│   ├── json.cc
│   ├── json.h
│   ├── json_unittest.cc
│   ├── keep_ref_until_done.h
│   ├── latebindingsymboltable.cc
│   ├── latebindingsymboltable.cc.def
│   ├── latebindingsymboltable.h
│   ├── latebindingsymboltable.h.def
│   ├── latebindingsymboltable_unittest.cc
│   ├── libdbusglibsymboltable.cc
│   ├── libdbusglibsymboltable.h
│   ├── linked_ptr.h
│   ├── linux.cc
│   ├── linux.h
│   ├── linux_unittest.cc
│   ├── linuxfdwalk.c
│   ├── linuxfdwalk.h
│   ├── linuxfdwalk_unittest.cc
│   ├── location.cc
│   ├── location.h
│   ├── logging.cc
│   ├── logging.h
│   ├── logging_mac.mm
│   ├── logging_unittest.cc
│   ├── logsinks.cc
│   ├── logsinks.h
│   ├── macasyncsocket.cc
│   ├── macasyncsocket.h
│   ├── maccocoasocketserver.h
│   ├── maccocoasocketserver.mm
│   ├── maccocoasocketserver_unittest.mm
│   ├── maccocoathreadhelper.h
│   ├── maccocoathreadhelper.mm
│   ├── macconversion.cc
│   ├── macconversion.h
│   ├── macifaddrs_converter.cc
│   ├── macsocketserver.cc
│   ├── macsocketserver.h
│   ├── macsocketserver_unittest.cc
│   ├── macutils.cc
│   ├── macutils.h
│   ├── macutils_unittest.cc
│   ├── macwindowpicker.cc
│   ├── macwindowpicker.h
│   ├── macwindowpicker_unittest.cc
│   ├── mathutils.h
│   ├── md5.cc
│   ├── md5.h
│   ├── md5digest.cc
│   ├── md5digest.h
│   ├── md5digest_unittest.cc
│   ├── messagedigest.cc
│   ├── messagedigest.h
│   ├── messagedigest_unittest.cc
│   ├── messagehandler.cc
│   ├── messagehandler.h
│   ├── messagequeue.cc
│   ├── messagequeue.h
│   ├── messagequeue_unittest.cc
│   ├── mod_ops.h
│   ├── mod_ops_unittest.cc
│   ├── multipart.cc
│   ├── multipart.h
│   ├── multipart_unittest.cc
│   ├── nat_unittest.cc
│   ├── natserver.cc
│   ├── natserver.h
│   ├── natsocketfactory.cc
│   ├── natsocketfactory.h
│   ├── nattypes.cc
│   ├── nattypes.h
│   ├── nethelpers.cc
│   ├── nethelpers.h
│   ├── network.cc
│   ├── network.h
│   ├── network_unittest.cc
│   ├── networkmonitor.cc
│   ├── networkmonitor.h
│   ├── networkroute.h
│   ├── nullsocketserver.cc
│   ├── nullsocketserver.h
│   ├── nullsocketserver_unittest.cc
│   ├── onetimeevent.h
│   ├── onetimeevent_unittest.cc
│   ├── openssl.h
│   ├── openssladapter.cc
│   ├── openssladapter.h
│   ├── openssldigest.cc
│   ├── openssldigest.h
│   ├── opensslidentity.cc
│   ├── opensslidentity.h
│   ├── opensslstreamadapter.cc
│   ├── opensslstreamadapter.h
│   ├── optional.h
│   ├── optional_unittest.cc
│   ├── optionsfile.cc
│   ├── optionsfile.h
│   ├── optionsfile_unittest.cc
│   ├── pathutils.cc
│   ├── pathutils.h
│   ├── pathutils_unittest.cc
│   ├── physicalsocketserver.cc
│   ├── physicalsocketserver.h
│   ├── physicalsocketserver_unittest.cc
│   ├── platform_file.cc
│   ├── platform_file.h
│   ├── platform_thread.cc
│   ├── platform_thread.h
│   ├── platform_thread_types.h
│   ├── platform_thread_unittest.cc
│   ├── posix.cc
│   ├── posix.h
│   ├── profiler.cc
│   ├── profiler.h
│   ├── profiler_unittest.cc
│   ├── proxy_unittest.cc
│   ├── proxydetect.cc
│   ├── proxydetect.h
│   ├── proxydetect_unittest.cc
│   ├── proxyinfo.cc
│   ├── proxyinfo.h
│   ├── proxyserver.cc
│   ├── proxyserver.h
│   ├── random.cc
│   ├── random.h
│   ├── random_unittest.cc
│   ├── rate_statistics.cc
│   ├── rate_statistics.h
│   ├── rate_statistics_unittest.cc
│   ├── ratelimiter.cc
│   ├── ratelimiter.h
│   ├── ratelimiter_unittest.cc
│   ├── ratetracker.cc
│   ├── ratetracker.h
│   ├── ratetracker_unittest.cc
│   ├── refcount.h
│   ├── referencecountedsingletonfactory.h
│   ├── referencecountedsingletonfactory_unittest.cc
│   ├── rollingaccumulator.h
│   ├── rollingaccumulator_unittest.cc
│   ├── rtc_base.vcxproj
│   ├── rtc_base.vcxproj.filters
│   ├── rtc_base_approved.vcxproj
│   ├── rtc_base_approved.vcxproj.filters
│   ├── rtc_task_queue.vcxproj
│   ├── rtc_task_queue.vcxproj.filters
│   ├── rtccertificate.cc
│   ├── rtccertificate.h
│   ├── rtccertificate_unittest.cc
│   ├── rtccertificategenerator.cc
│   ├── rtccertificategenerator.h
│   ├── rtccertificategenerator_unittest.cc
│   ├── safe_conversions.h
│   ├── safe_conversions_impl.h
│   ├── scoped_autorelease_pool.h
│   ├── scoped_autorelease_pool.mm
│   ├── scoped_ref_ptr.h
│   ├── scopedptrcollection.h
│   ├── scopedptrcollection_unittest.cc
│   ├── sec_buffer.h
│   ├── sha1.cc
│   ├── sha1.h
│   ├── sha1digest.cc
│   ├── sha1digest.h
│   ├── sha1digest_unittest.cc
│   ├── sharedexclusivelock.cc
│   ├── sharedexclusivelock.h
│   ├── sharedexclusivelock_unittest.cc
│   ├── signalthread.cc
│   ├── signalthread.h
│   ├── signalthread_unittest.cc
│   ├── sigslot.cc
│   ├── sigslot.h
│   ├── sigslot_unittest.cc
│   ├── sigslotrepeater.h
│   ├── sigslottester.h
│   ├── sigslottester.h.pump
│   ├── sigslottester_unittest.cc
│   ├── socket.h
│   ├── socket_unittest.cc
│   ├── socket_unittest.h
│   ├── socketadapters.cc
│   ├── socketadapters.h
│   ├── socketaddress.cc
│   ├── socketaddress.h
│   ├── socketaddress_unittest.cc
│   ├── socketaddresspair.cc
│   ├── socketaddresspair.h
│   ├── socketfactory.h
│   ├── socketpool.cc
│   ├── socketpool.h
│   ├── socketserver.h
│   ├── socketstream.cc
│   ├── socketstream.h
│   ├── ssladapter.cc
│   ├── ssladapter.h
│   ├── ssladapter_unittest.cc
│   ├── sslconfig.h
│   ├── sslfingerprint.cc
│   ├── sslfingerprint.h
│   ├── sslidentity.cc
│   ├── sslidentity.h
│   ├── sslidentity_unittest.cc
│   ├── sslroots.h
│   ├── sslsocketfactory.cc
│   ├── sslsocketfactory.h
│   ├── sslstreamadapter.cc
│   ├── sslstreamadapter.h
│   ├── sslstreamadapter_unittest.cc
│   ├── stFail
│   ├── stream.cc
│   ├── stream.h
│   ├── stream_unittest.cc
│   ├── stringencode.cc
│   ├── stringencode.h
│   ├── stringencode_unittest.cc
│   ├── stringutils.cc
│   ├── stringutils.h
│   ├── stringutils_unittest.cc
│   ├── swap_queue.h
│   ├── swap_queue_unittest.cc
│   ├── systeminfo.cc
│   ├── systeminfo.h
│   ├── systeminfo_unittest.cc
│   ├── task.cc
│   ├── task.h
│   ├── task_queue.h
│   ├── task_queue_gcd.cc
│   ├── task_queue_libevent.cc
│   ├── task_queue_posix.cc
│   ├── task_queue_posix.h
│   ├── task_queue_unittest.cc
│   ├── task_queue_win.cc
│   ├── task_unittest.cc
│   ├── taskparent.cc
│   ├── taskparent.h
│   ├── taskrunner.cc
│   ├── taskrunner.h
│   ├── template_util.h
│   ├── testbase64.h
│   ├── testclient.cc
│   ├── testclient.h
│   ├── testclient_unittest.cc
│   ├── testechoserver.h
│   ├── testutils.h
│   ├── thread.cc
│   ├── thread.h
│   ├── thread_annotations.h
│   ├── thread_checker.h
│   ├── thread_checker_impl.cc
│   ├── thread_checker_impl.h
│   ├── thread_checker_unittest.cc
│   ├── thread_unittest.cc
│   ├── timedelta.h
│   ├── timeutils.cc
│   ├── timeutils.h
│   ├── timeutils_unittest.cc
│   ├── timing.cc
│   ├── timing.h
│   ├── trace_event.h
│   ├── transformadapter.cc
│   ├── transformadapter.h
│   ├── unittest_main.cc
│   ├── unixfilesystem.cc
│   ├── unixfilesystem.h
│   ├── urlencode.cc
│   ├── urlencode.h
│   ├── urlencode_unittest.cc
│   ├── versionparsing.cc
│   ├── versionparsing.h
│   ├── versionparsing_unittest.cc
│   ├── virtualsocket_unittest.cc
│   ├── virtualsocketserver.cc
│   ├── virtualsocketserver.h
│   ├── win32.cc
│   ├── win32.h
│   ├── win32_unittest.cc
│   ├── win32filesystem.cc
│   ├── win32filesystem.h
│   ├── win32regkey.cc
│   ├── win32regkey.h
│   ├── win32regkey_unittest.cc
│   ├── win32securityerrors.cc
│   ├── win32socketinit.cc
│   ├── win32socketinit.h
│   ├── win32socketserver.cc
│   ├── win32socketserver.h
│   ├── win32socketserver_unittest.cc
│   ├── win32window.cc
│   ├── win32window.h
│   ├── win32window_unittest.cc
│   ├── win32windowpicker.cc
│   ├── win32windowpicker.h
│   ├── win32windowpicker_unittest.cc
│   ├── window.h
│   ├── windowpicker.h
│   ├── windowpicker_unittest.cc
│   ├── windowpickerfactory.h
│   ├── winfirewall.cc
│   ├── winfirewall.h
│   ├── winfirewall_unittest.cc
│   ├── winping.cc
│   ├── winping.h
│   ├── worker.cc
│   ├── worker.h
│   ├── x11windowpicker.cc
│   ├── x11windowpicker.h
│   └── x11windowpicker_unittest.cc
├── build
│   ├── OWNERS
│   ├── PRESUBMIT.py
│   ├── adb_shell.sh
│   ├── android
│   │   ├── AndroidManifest.xml
│   │   ├── suppressions.xml
│   │   └── test_runner.py
│   ├── android_tests.gyp
│   ├── android_tests_noop.gyp
│   ├── arm_neon.gypi
│   ├── common.gypi
│   ├── download_vs_toolchain.py
│   ├── extra_gitignore.py
│   ├── find_directx_sdk.py
│   ├── get_landmines.py
│   ├── gyp_webrtc
│   ├── gyp_webrtc.py
│   ├── gyp_webrtc.pyc
│   ├── ios
│   │   ├── OWNERS
│   │   ├── SDK
│   │   │   └── PodTest
│   │   │   ├── PodTest
│   │   │   │   ├── AppDelegate.h
│   │   │   │   ├── AppDelegate.m
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── Info.plist
│   │   │   │   ├── ViewController.h
│   │   │   │   ├── ViewController.m
│   │   │   │   └── main.m
│   │   │   ├── PodTest.xcodeproj
│   │   │   │   ├── project.pbxproj
│   │   │   │   └── project.xcworkspace
│   │   │   │   └── contents.xcworkspacedata
│   │   │   └── Podfile
│   │   ├── build_ios_libs.sh
│   │   ├── client.webrtc
│   │   │   ├── iOS32_Debug.json
│   │   │   ├── iOS32_Release.json
│   │   │   ├── iOS32_Simulator_Debug.json
│   │   │   ├── iOS64_Debug.json
│   │   │   ├── iOS64_Debug_(GN).json
│   │   │   ├── iOS64_Release.json
│   │   │   ├── iOS64_Release_(GN).json
│   │   │   └── iOS64_Simulator_Debug.json
│   │   ├── generate_licenses.py
│   │   ├── merge_ios_libs.gyp
│   │   ├── merge_ios_libs.py
│   │   ├── no_op.cc
│   │   ├── objc_app.gypi
│   │   ├── objc_app.plist
│   │   ├── tests
│   │   │   └── common_tests.json
│   │   └── tryserver.webrtc
│   │   ├── ios32_sim_dbg.json
│   │   ├── ios64_gn_dbg.json
│   │   ├── ios64_gn_rel.json
│   │   ├── ios64_sim_dbg.json
│   │   ├── ios_arm64_dbg.json
│   │   ├── ios_arm64_rel.json
│   │   ├── ios_dbg.json
│   │   └── ios_rel.json
│   ├── isolate.gypi
│   ├── mb_config.pyl
│   ├── merge_libs.gyp
│   ├── merge_libs.py
│   ├── merge_libs_voice.gyp
│   ├── merge_voice_libs.gyp
│   ├── no_op.cc
│   ├── objc_common.gypi
│   ├── protoc.gypi
│   ├── sanitizers
│   │   ├── OWNERS
│   │   ├── README
│   │   ├── lsan_suppressions_webrtc.cc
│   │   └── tsan_suppressions_webrtc.cc
│   ├── webrtc.gni
│   └── whitespace.txt
├── call
│   ├── BUILD.gn
│   ├── DEPS
│   ├── OWNERS
│   ├── bitrate_allocator.cc
│   ├── bitrate_allocator.h
│   ├── bitrate_allocator_unittest.cc
│   ├── bitrate_estimator_tests.cc
│   ├── call.cc
│   ├── call_perf_tests.cc
│   ├── call_unittest.cc
│   ├── mock
│   │   └── mock_rtc_event_log.h
│   ├── packet_injection_tests.cc
│   ├── rampup_tests.cc
│   ├── rampup_tests.h
│   ├── ringbuffer.h
│   ├── ringbuffer_unittest.cc
│   ├── rtc_event_log.cc
│   ├── rtc_event_log.h
│   ├── rtc_event_log.proto
│   ├── rtc_event_log2rtp_dump.cc
│   ├── rtc_event_log_helper_thread.cc
│   ├── rtc_event_log_helper_thread.h
│   ├── rtc_event_log_parser.cc
│   ├── rtc_event_log_parser.h
│   ├── rtc_event_log_unittest.cc
│   ├── rtc_event_log_unittest_helper.cc
│   ├── rtc_event_log_unittest_helper.h
│   ├── transport_adapter.cc
│   ├── transport_adapter.h
│   └── webrtc_call.gypi
├── call.h
├── codereview.settings
├── common.gyp
├── common.h
├── common.sln
├── common_audio
│   ├── BUILD.gn
│   ├── DEPS
│   ├── OWNERS
│   ├── audio_converter.cc
│   ├── audio_converter.h
│   ├── audio_converter_unittest.cc
│   ├── audio_ring_buffer.cc
│   ├── audio_ring_buffer.h
│   ├── audio_ring_buffer_unittest.cc
│   ├── audio_util.cc
│   ├── audio_util_unittest.cc
│   ├── blocker.cc
│   ├── blocker.h
│   ├── blocker_unittest.cc
│   ├── channel_buffer.cc
│   ├── channel_buffer.h
│   ├── common_audio.gyp
│   ├── common_audio.sln
│   ├── common_audio.vcxproj
│   ├── common_audio.vcxproj.filters
│   ├── common_audio_sse2.vcxproj
│   ├── common_audio_sse2.vcxproj.filters
│   ├── common_audio_unittests.isolate
│   ├── common_audio_unittests_apk.isolate
│   ├── fft4g.c
│   ├── fft4g.h
│   ├── fir_filter.cc
│   ├── fir_filter.h
│   ├── fir_filter_neon.cc
│   ├── fir_filter_neon.h
│   ├── fir_filter_sse.cc
│   ├── fir_filter_sse.h
│   ├── fir_filter_unittest.cc
│   ├── include
│   │   └── audio_util.h
│   ├── lapped_transform.cc
│   ├── lapped_transform.h
│   ├── lapped_transform_unittest.cc
│   ├── real_fourier.cc
│   ├── real_fourier.h
│   ├── real_fourier_ooura.cc
│   ├── real_fourier_ooura.h
│   ├── real_fourier_openmax.cc
│   ├── real_fourier_openmax.h
│   ├── real_fourier_unittest.cc
│   ├── resampler
│   │   ├── include
│   │   │   ├── push_resampler.h
│   │   │   └── resampler.h
│   │   ├── push_resampler.cc
│   │   ├── push_resampler_unittest.cc
│   │   ├── push_sinc_resampler.cc
│   │   ├── push_sinc_resampler.h
│   │   ├── push_sinc_resampler_unittest.cc
│   │   ├── resampler.cc
│   │   ├── resampler_unittest.cc
│   │   ├── sinc_resampler.cc
│   │   ├── sinc_resampler.h
│   │   ├── sinc_resampler_neon.cc
│   │   ├── sinc_resampler_sse.cc
│   │   ├── sinc_resampler_unittest.cc
│   │   ├── sinusoidal_linear_chirp_source.cc
│   │   └── sinusoidal_linear_chirp_source.h
│   ├── ring_buffer.c
│   ├── ring_buffer.h
│   ├── ring_buffer_unittest.cc
│   ├── signal_processing
│   │   ├── auto_corr_to_refl_coef.c
│   │   ├── auto_correlation.c
│   │   ├── complex_bit_reverse.c
│   │   ├── complex_bit_reverse_arm.S
│   │   ├── complex_bit_reverse_mips.c
│   │   ├── complex_fft.c
│   │   ├── complex_fft_mips.c
│   │   ├── complex_fft_tables.h
│   │   ├── copy_set_operations.c
│   │   ├── cross_correlation.c
│   │   ├── cross_correlation_mips.c
│   │   ├── cross_correlation_neon.c
│   │   ├── division_operations.c
│   │   ├── dot_product_with_scale.c
│   │   ├── downsample_fast.c
│   │   ├── downsample_fast_mips.c
│   │   ├── downsample_fast_neon.c
│   │   ├── energy.c
│   │   ├── filter_ar.c
│   │   ├── filter_ar_fast_q12.c
│   │   ├── filter_ar_fast_q12_armv7.S
│   │   ├── filter_ar_fast_q12_mips.c
│   │   ├── filter_ma_fast_q12.c
│   │   ├── get_hanning_window.c
│   │   ├── get_scaling_square.c
│   │   ├── ilbc_specific_functions.c
│   │   ├── include
│   │   │   ├── real_fft.h
│   │   │   ├── signal_processing_library.h
│   │   │   ├── spl_inl.h
│   │   │   ├── spl_inl_armv7.h
│   │   │   └── spl_inl_mips.h
│   │   ├── levinson_durbin.c
│   │   ├── lpc_to_refl_coef.c
│   │   ├── min_max_operations.c
│   │   ├── min_max_operations_mips.c
│   │   ├── min_max_operations_neon.c
│   │   ├── randomization_functions.c
│   │   ├── real_fft.c
│   │   ├── real_fft_unittest.cc
│   │   ├── refl_coef_to_lpc.c
│   │   ├── resample.c
│   │   ├── resample_48khz.c
│   │   ├── resample_by_2.c
│   │   ├── resample_by_2_internal.c
│   │   ├── resample_by_2_internal.h
│   │   ├── resample_by_2_mips.c
│   │   ├── resample_fractional.c
│   │   ├── signal_processing_unittest.cc
│   │   ├── spl_init.c
│   │   ├── spl_inl.c
│   │   ├── spl_sqrt.c
│   │   ├── spl_sqrt_floor.c
│   │   ├── spl_sqrt_floor_arm.S
│   │   ├── spl_sqrt_floor_mips.c
│   │   ├── splitting_filter.c
│   │   ├── sqrt_of_one_minus_x_squared.c
│   │   ├── vector_scaling_operations.c
│   │   └── vector_scaling_operations_mips.c
│   ├── sparse_fir_filter.cc
│   ├── sparse_fir_filter.h
│   ├── sparse_fir_filter_unittest.cc
│   ├── stFail
│   ├── vad
│   │   ├── include
│   │   │   ├── vad.h
│   │   │   └── webrtc_vad.h
│   │   ├── mock
│   │   │   └── mock_vad.h
│   │   ├── vad.cc
│   │   ├── vad_core.c
│   │   ├── vad_core.h
│   │   ├── vad_core_unittest.cc
│   │   ├── vad_filterbank.c
│   │   ├── vad_filterbank.h
│   │   ├── vad_filterbank_unittest.cc
│   │   ├── vad_gmm.c
│   │   ├── vad_gmm.h
│   │   ├── vad_gmm_unittest.cc
│   │   ├── vad_sp.c
│   │   ├── vad_sp.h
│   │   ├── vad_sp_unittest.cc
│   │   ├── vad_unittest.cc
│   │   ├── vad_unittest.h
│   │   └── webrtc_vad.c
│   ├── wav_file.cc
│   ├── wav_file.h
│   ├── wav_file_unittest.cc
│   ├── wav_header.cc
│   ├── wav_header.h
│   ├── wav_header_unittest.cc
│   ├── window_generator.cc
│   ├── window_generator.h
│   └── window_generator_unittest.cc
├── common_types.cc
├── common_types.h
├── common_video
│   ├── BUILD.gn
│   ├── DEPS
│   ├── OWNERS
│   ├── bitrate_adjuster.cc
│   ├── bitrate_adjuster_unittest.cc
│   ├── common_video.gyp
│   ├── common_video.sln
│   ├── common_video.vcxproj
│   ├── common_video.vcxproj.filters
│   ├── common_video.vcxproj.user
│   ├── common_video_unittests.gyp
│   ├── common_video_unittests.isolate
│   ├── common_video_unittests_apk.isolate
│   ├── corevideo_frame_buffer.cc
│   ├── h264
│   │   ├── h264_common.cc
│   │   ├── h264_common.h
│   │   ├── pps_parser.cc
│   │   ├── pps_parser.h
│   │   ├── pps_parser_unittest.cc
│   │   ├── sps_parser.cc
│   │   ├── sps_parser.h
│   │   ├── sps_parser_unittest.cc
│   │   ├── sps_vui_rewriter.cc
│   │   ├── sps_vui_rewriter.h
│   │   └── sps_vui_rewriter_unittest.cc
│   ├── i420_buffer_pool.cc
│   ├── i420_buffer_pool_unittest.cc
│   ├── i420_video_frame_unittest.cc
│   ├── include
│   │   ├── bitrate_adjuster.h
│   │   ├── corevideo_frame_buffer.h
│   │   ├── frame_callback.h
│   │   ├── i420_buffer_pool.h
│   │   ├── incoming_video_stream.h
│   │   ├── video_frame_buffer.h
│   │   └── video_image.h
│   ├── incoming_video_stream.cc
│   ├── libyuv
│   │   ├── include
│   │   │   └── webrtc_libyuv.h
│   │   ├── libyuv_unittest.cc
│   │   └── webrtc_libyuv.cc
│   ├── rotation.h
│   ├── stFail
│   ├── video_frame.cc
│   ├── video_frame_buffer.cc
│   ├── video_render_frames.cc
│   └── video_render_frames.h
├── config.cc
├── config.h
├── engine_configurations.h
├── examples
│   ├── DEPS
│   ├── OWNERS
│   ├── androidapp
│   │   ├── AndroidManifest.xml
│   │   ├── README
│   │   ├── ant.properties
│   │   ├── build.xml
│   │   ├── project.properties
│   │   ├── 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
│   │   │   ├── AppRTCClient.java
│   │   │   ├── AppRTCProximitySensor.java
│   │   │   ├── CallActivity.java
│   │   │   ├── CallFragment.java
│   │   │   ├── CaptureQualityController.java
│   │   │   ├── ConnectActivity.java
│   │   │   ├── CpuMonitor.java
│   │   │   ├── DirectRTCClient.java
│   │   │   ├── HudFragment.java
│   │   │   ├── PeerConnectionClient.java
│   │   │   ├── PercentFrameLayout.java
│   │   │   ├── RoomParametersFetcher.java
│   │   │   ├── SettingsActivity.java
│   │   │   ├── SettingsFragment.java
│   │   │   ├── TCPChannelClient.java
│   │   │   ├── UnhandledExceptionHandler.java
│   │   │   ├── WebSocketChannelClient.java
│   │   │   ├── WebSocketRTCClient.java
│   │   │   └── util
│   │   │   ├── AppRTCUtils.java
│   │   │   ├── AsyncHttpURLConnection.java
│   │   │   └── LooperExecutor.java
│   │   └── third_party
│   │   └── autobanh
│   │   ├── LICENSE
│   │   ├── LICENSE.md
│   │   ├── NOTICE
│   │   └── autobanh.jar
│   ├── androidjunit
│   │   ├── README
│   │   └── src
│   │   └── org
│   │   └── appspot
│   │   └── apprtc
│   │   ├── DirectRTCClientTest.java
│   │   ├── TCPChannelClientTest.java
│   │   └── util
│   │   └── LooperExecutorTest.java
│   ├── androidtests
│   │   ├── AndroidManifest.xml
│   │   ├── README
│   │   ├── ant.properties
│   │   ├── build.xml
│   │   ├── project.properties
│   │   └── src
│   │   └── org
│   │   └── appspot
│   │   └── apprtc
│   │   └── test
│   │   └── PeerConnectionClientTest.java
│   ├── objc
│   │   ├── AppRTCDemo
│   │   │   ├── ARDAppClient+Internal.h
│   │   │   ├── ARDAppClient.h
│   │   │   ├── ARDAppClient.m
│   │   │   ├── ARDAppEngineClient.h
│   │   │   ├── ARDAppEngineClient.m
│   │   │   ├── ARDBitrateTracker.h
│   │   │   ├── ARDBitrateTracker.m
│   │   │   ├── ARDCEODTURNClient.h
│   │   │   ├── ARDCEODTURNClient.m
│   │   │   ├── ARDJoinResponse+Internal.h
│   │   │   ├── ARDJoinResponse.h
│   │   │   ├── ARDJoinResponse.m
│   │   │   ├── ARDMessageResponse+Internal.h
│   │   │   ├── ARDMessageResponse.h
│   │   │   ├── ARDMessageResponse.m
│   │   │   ├── ARDRoomServerClient.h
│   │   │   ├── ARDSDPUtils.h
│   │   │   ├── ARDSDPUtils.m
│   │   │   ├── ARDSignalingChannel.h
│   │   │   ├── ARDSignalingMessage.h
│   │   │   ├── ARDSignalingMessage.m
│   │   │   ├── ARDStatsBuilder.h
│   │   │   ├── ARDStatsBuilder.m
│   │   │   ├── ARDTURNClient.h
│   │   │   ├── ARDWebSocketChannel.h
│   │   │   ├── ARDWebSocketChannel.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
│   │   │   ├── common
│   │   │   │   ├── ARDUtilities.h
│   │   │   │   └── ARDUtilities.m
│   │   │   ├── ios
│   │   │   │   ├── ARDAppDelegate.h
│   │   │   │   ├── ARDAppDelegate.m
│   │   │   │   ├── ARDMainView.h
│   │   │   │   ├── ARDMainView.m
│   │   │   │   ├── ARDMainViewController.h
│   │   │   │   ├── ARDMainViewController.m
│   │   │   │   ├── ARDStatsView.h
│   │   │   │   ├── ARDStatsView.m
│   │   │   │   ├── ARDVideoCallView.h
│   │   │   │   ├── ARDVideoCallView.m
│   │   │   │   ├── ARDVideoCallViewController.h
│   │   │   │   ├── ARDVideoCallViewController.m
│   │   │   │   ├── AppRTCDemo-Prefix.pch
│   │   │   │   ├── Info.plist
│   │   │   │   ├── UIImage+ARDUtilities.h
│   │   │   │   ├── UIImage+ARDUtilities.m
│   │   │   │   ├── main.m
│   │   │   │   └── resources
│   │   │   │   ├── Roboto-Regular.ttf
│   │   │   │   ├── iPhone5@2x.png
│   │   │   │   ├── iPhone6@2x.png
│   │   │   │   ├── iPhone6p@3x.png
│   │   │   │   ├── ic_call_end_black_24dp.png
│   │   │   │   ├── ic_call_end_black_24dp@2x.png
│   │   │   │   ├── ic_clear_black_24dp.png
│   │   │   │   ├── ic_clear_black_24dp@2x.png
│   │   │   │   ├── ic_surround_sound_black_24dp.png
│   │   │   │   ├── ic_surround_sound_black_24dp@2x.png
│   │   │   │   ├── ic_switch_video_black_24dp.png
│   │   │   │   ├── ic_switch_video_black_24dp@2x.png
│   │   │   │   └── mozart.mp3
│   │   │   ├── mac
│   │   │   │   ├── APPRTCAppDelegate.h
│   │   │   │   ├── APPRTCAppDelegate.m
│   │   │   │   ├── APPRTCViewController.h
│   │   │   │   ├── APPRTCViewController.m
│   │   │   │   ├── Info.plist
│   │   │   │   └── main.m
│   │   │   ├── tests
│   │   │   │   └── ARDAppClientTest.mm
│   │   │   └── third_party
│   │   │   └── SocketRocket
│   │   │   ├── LICENSE
│   │   │   ├── SRWebSocket.h
│   │   │   └── SRWebSocket.m
│   │   ├── Icon.png
│   │   └── README
│   ├── peerconnection
│   │   ├── OWNERS
│   │   ├── client
│   │   │   ├── conductor.cc
│   │   │   ├── conductor.h
│   │   │   ├── defaults.cc
│   │   │   ├── defaults.h
│   │   │   ├── flagdefs.h
│   │   │   ├── linux
│   │   │   │   ├── main.cc
│   │   │   │   ├── main_wnd.cc
│   │   │   │   └── main_wnd.h
│   │   │   ├── main.cc
│   │   │   ├── main_wnd.cc
│   │   │   ├── main_wnd.h
│   │   │   ├── peer_connection_client.cc
│   │   │   └── peer_connection_client.h
│   │   └── server
│   │   ├── data_socket.cc
│   │   ├── data_socket.h
│   │   ├── main.cc
│   │   ├── peer_channel.cc
│   │   ├── peer_channel.h
│   │   ├── server_test.html
│   │   ├── utils.cc
│   │   └── utils.h
│   ├── relayserver
│   │   └── relayserver_main.cc
│   ├── stunserver
│   │   └── stunserver_main.cc
│   └── turnserver
│   └── turnserver_main.cc
├── libjingle
│   ├── DEPS
│   ├── OWNERS
│   ├── xmllite
│   │   ├── BUILD.gn
│   │   ├── qname.cc
│   │   ├── qname.h
│   │   ├── qname_unittest.cc
│   │   ├── xmlbuilder.cc
│   │   ├── xmlbuilder.h
│   │   ├── xmlbuilder_unittest.cc
│   │   ├── xmlconstants.cc
│   │   ├── xmlconstants.h
│   │   ├── xmlelement.cc
│   │   ├── xmlelement.h
│   │   ├── xmlelement_unittest.cc
│   │   ├── xmllite.gyp
│   │   ├── xmlnsstack.cc
│   │   ├── xmlnsstack.h
│   │   ├── xmlnsstack_unittest.cc
│   │   ├── xmlparser.cc
│   │   ├── xmlparser.h
│   │   ├── xmlparser_unittest.cc
│   │   ├── xmlprinter.cc
│   │   ├── xmlprinter.h
│   │   └── xmlprinter_unittest.cc
│   └── xmpp
│   ├── BUILD.gn
│   ├── asyncsocket.h
│   ├── chatroommodule.h
│   ├── chatroommoduleimpl.cc
│   ├── constants.cc
│   ├── constants.h
│   ├── discoitemsquerytask.cc
│   ├── discoitemsquerytask.h
│   ├── fakexmppclient.h
│   ├── hangoutpubsubclient.cc
│   ├── hangoutpubsubclient.h
│   ├── hangoutpubsubclient_unittest.cc
│   ├── iqtask.cc
│   ├── iqtask.h
│   ├── jid.cc
│   ├── jid.h
│   ├── jid_unittest.cc
│   ├── module.h
│   ├── moduleimpl.cc
│   ├── moduleimpl.h
│   ├── mucroomconfigtask.cc
│   ├── mucroomconfigtask.h
│   ├── mucroomconfigtask_unittest.cc
│   ├── mucroomdiscoverytask.cc
│   ├── mucroomdiscoverytask.h
│   ├── mucroomdiscoverytask_unittest.cc
│   ├── mucroomlookuptask.cc
│   ├── mucroomlookuptask.h
│   ├── mucroomlookuptask_unittest.cc
│   ├── mucroomuniquehangoutidtask.cc
│   ├── mucroomuniquehangoutidtask.h
│   ├── mucroomuniquehangoutidtask_unittest.cc
│   ├── pingtask.cc
│   ├── pingtask.h
│   ├── pingtask_unittest.cc
│   ├── plainsaslhandler.h
│   ├── presenceouttask.cc
│   ├── presenceouttask.h
│   ├── presencereceivetask.cc
│   ├── presencereceivetask.h
│   ├── presencestatus.cc
│   ├── presencestatus.h
│   ├── prexmppauth.h
│   ├── pubsub_task.cc
│   ├── pubsub_task.h
│   ├── pubsubclient.cc
│   ├── pubsubclient.h
│   ├── pubsubclient_unittest.cc
│   ├── pubsubstateclient.cc
│   ├── pubsubstateclient.h
│   ├── pubsubtasks.cc
│   ├── pubsubtasks.h
│   ├── pubsubtasks_unittest.cc
│   ├── receivetask.cc
│   ├── receivetask.h
│   ├── rostermodule.h
│   ├── rostermodule_unittest.cc
│   ├── rostermoduleimpl.cc
│   ├── rostermoduleimpl.h
│   ├── saslcookiemechanism.h
│   ├── saslhandler.h
│   ├── saslmechanism.cc
│   ├── saslmechanism.h
│   ├── saslplainmechanism.h
│   ├── util_unittest.cc
│   ├── util_unittest.h
│   ├── xmpp.gyp
│   ├── xmppauth.cc
│   ├── xmppauth.h
│   ├── xmppclient.cc
│   ├── xmppclient.h
│   ├── xmppclientsettings.h
│   ├── xmppengine.h
│   ├── xmppengine_unittest.cc
│   ├── xmppengineimpl.cc
│   ├── xmppengineimpl.h
│   ├── xmppengineimpl_iq.cc
│   ├── xmpplogintask.cc
│   ├── xmpplogintask.h
│   ├── xmpplogintask_unittest.cc
│   ├── xmpppump.cc
│   ├── xmpppump.h
│   ├── xmppsocket.cc
│   ├── xmppsocket.h
│   ├── xmppstanzaparser.cc
│   ├── xmppstanzaparser.h
│   ├── xmppstanzaparser_unittest.cc
│   ├── xmpptask.cc
│   ├── xmpptask.h
│   ├── xmppthread.cc
│   └── xmppthread.h
├── media
│   ├── BUILD.gn
│   ├── DEPS
│   ├── OWNERS
│   ├── base
│   │   ├── audiosource.h
│   │   ├── codec.cc
│   │   ├── codec.h
│   │   ├── codec_unittest.cc
│   │   ├── cpuid.cc
│   │   ├── cpuid.h
│   │   ├── cpuid_unittest.cc
│   │   ├── cryptoparams.h
│   │   ├── device.h
│   │   ├── fakemediaengine.h
│   │   ├── fakenetworkinterface.h
│   │   ├── fakertp.h
│   │   ├── fakescreencapturerfactory.h
│   │   ├── fakevideocapturer.h
│   │   ├── fakevideorenderer.h
│   │   ├── hybriddataengine.h
│   │   ├── mediachannel.h
│   │   ├── mediacommon.h
│   │   ├── mediaconstants.cc
│   │   ├── mediaconstants.h
│   │   ├── mediaengine.cc
│   │   ├── mediaengine.h
│   │   ├── rtpdataengine.cc
│   │   ├── rtpdataengine.h
│   │   ├── rtpdataengine_unittest.cc
│   │   ├── rtpdump.cc
│   │   ├── rtpdump.h
│   │   ├── rtpdump_unittest.cc
│   │   ├── rtputils.cc
│   │   ├── rtputils.h
│   │   ├── rtputils_unittest.cc
│   │   ├── screencastid.h
│   │   ├── streamparams.cc
│   │   ├── streamparams.h
│   │   ├── streamparams_unittest.cc
│   │   ├── testutils.cc
│   │   ├── testutils.h
│   │   ├── turnutils.cc
│   │   ├── turnutils.h
│   │   ├── turnutils_unittest.cc
│   │   ├── videoadapter.cc
│   │   ├── videoadapter.h
│   │   ├── videoadapter_unittest.cc
│   │   ├── videobroadcaster.cc
│   │   ├── videobroadcaster.h
│   │   ├── videobroadcaster_unittest.cc
│   │   ├── videocapturer.cc
│   │   ├── videocapturer.h
│   │   ├── videocapturer_unittest.cc
│   │   ├── videocapturerfactory.h
│   │   ├── videocommon.cc
│   │   ├── videocommon.h
│   │   ├── videocommon_unittest.cc
│   │   ├── videoengine_unittest.h
│   │   ├── videoframe.cc
│   │   ├── videoframe.h
│   │   ├── videoframe_unittest.h
│   │   ├── videoframefactory.cc
│   │   ├── videoframefactory.h
│   │   ├── videosinkinterface.h
│   │   ├── videosourcebase.cc
│   │   ├── videosourcebase.h
│   │   └── videosourceinterface.h
│   ├── devices
│   │   ├── carbonvideorenderer.cc
│   │   ├── carbonvideorenderer.h
│   │   ├── gdivideorenderer.cc
│   │   ├── gdivideorenderer.h
│   │   ├── gtkvideorenderer.cc
│   │   ├── gtkvideorenderer.h
│   │   └── videorendererfactory.h
│   ├── engine
│   │   ├── constants.h
│   │   ├── fakewebrtccall.cc
│   │   ├── fakewebrtccall.h
│   │   ├── fakewebrtccommon.h
│   │   ├── fakewebrtcdeviceinfo.h
│   │   ├── fakewebrtcvcmfactory.h
│   │   ├── fakewebrtcvideocapturemodule.h
│   │   ├── fakewebrtcvideoengine.h
│   │   ├── fakewebrtcvoiceengine.h
│   │   ├── nullwebrtcvideoengine.h
│   │   ├── nullwebrtcvideoengine_unittest.cc
│   │   ├── simulcast.cc
│   │   ├── simulcast.h
│   │   ├── simulcast_unittest.cc
│   │   ├── webrtccommon.h
│   │   ├── webrtcmediaengine.cc
│   │   ├── webrtcmediaengine.h
│   │   ├── webrtcmediaengine_unittest.cc
│   │   ├── webrtcvideocapturer.cc
│   │   ├── webrtcvideocapturer.h
│   │   ├── webrtcvideocapturer_unittest.cc
│   │   ├── webrtcvideocapturerfactory.cc
│   │   ├── webrtcvideocapturerfactory.h
│   │   ├── webrtcvideochannelfactory.h
│   │   ├── webrtcvideodecoderfactory.h
│   │   ├── webrtcvideoencoderfactory.h
│   │   ├── webrtcvideoengine2.cc
│   │   ├── webrtcvideoengine2.h
│   │   ├── webrtcvideoengine2_unittest.cc
│   │   ├── webrtcvideoframe.cc
│   │   ├── webrtcvideoframe.h
│   │   ├── webrtcvideoframe_unittest.cc
│   │   ├── webrtcvideoframefactory.cc
│   │   ├── webrtcvideoframefactory.h
│   │   ├── webrtcvideoframefactory_unittest.cc
│   │   ├── webrtcvoe.h
│   │   ├── webrtcvoiceengine.cc
│   │   ├── webrtcvoiceengine.h
│   │   └── webrtcvoiceengine_unittest.cc
│   ├── media.gyp
│   ├── media.sln
│   ├── rtc_media.vcxproj
│   ├── rtc_media.vcxproj.filters
│   ├── rtc_media_unittests.isolate
│   ├── sctp
│   │   ├── sctpdataengine.cc
│   │   ├── sctpdataengine.h
│   │   └── sctpdataengine_unittest.cc
│   └── stFail
├── modules
│   ├── BUILD.gn
│   ├── OWNERS
│   ├── audio_codec_speed_tests.isolate
│   ├── audio_codec_speed_tests_apk.isolate
│   ├── audio_coding
│   │   ├── BUILD.gn
│   │   ├── DEPS
│   │   ├── OWNERS
│   │   ├── acm2
│   │   │   ├── acm_codec_database.cc
│   │   │   ├── acm_codec_database.h
│   │   │   ├── acm_common_defs.h
│   │   │   ├── acm_receive_test_oldapi.cc
│   │   │   ├── acm_receive_test_oldapi.h
│   │   │   ├── acm_receiver.cc
│   │   │   ├── acm_receiver.h
│   │   │   ├── acm_receiver_unittest_oldapi.cc
│   │   │   ├── acm_resampler.cc
│   │   │   ├── acm_resampler.h
│   │   │   ├── acm_send_test_oldapi.cc
│   │   │   ├── acm_send_test_oldapi.h
│   │   │   ├── audio_coding_module.cc
│   │   │   ├── audio_coding_module_unittest_oldapi.cc
│   │   │   ├── call_statistics.cc
│   │   │   ├── call_statistics.h
│   │   │   ├── call_statistics_unittest.cc
│   │   │   ├── codec_manager.cc
│   │   │   ├── codec_manager.h
│   │   │   ├── codec_manager_unittest.cc
│   │   │   ├── initial_delay_manager.cc
│   │   │   ├── initial_delay_manager.h
│   │   │   ├── initial_delay_manager_unittest.cc
│   │   │   ├── rent_a_codec.cc
│   │   │   ├── rent_a_codec.h
│   │   │   └── rent_a_codec_unittest.cc
│   │   ├── audio_coding.gni
│   │   ├── audio_coding.gypi
│   │   ├── audio_coding_tests.gypi
│   │   ├── codecs
│   │   │   ├── OWNERS
│   │   │   ├── audio_decoder.cc
│   │   │   ├── audio_decoder.h
│   │   │   ├── audio_decoder_factory.h
│   │   │   ├── audio_decoder_factory_unittest.cc
│   │   │   ├── audio_encoder.cc
│   │   │   ├── audio_encoder.h
│   │   │   ├── audio_format.cc
│   │   │   ├── audio_format.h
│   │   │   ├── builtin_audio_decoder_factory.cc
│   │   │   ├── builtin_audio_decoder_factory.h
│   │   │   ├── cng
│   │   │   │   ├── OWNERS
│   │   │   │   ├── audio_encoder_cng.cc
│   │   │   │   ├── audio_encoder_cng.h
│   │   │   │   ├── audio_encoder_cng_unittest.cc
│   │   │   │   ├── cng.gypi
│   │   │   │   ├── cng_unittest.cc
│   │   │   │   ├── webrtc_cng.cc
│   │   │   │   └── webrtc_cng.h
│   │   │   ├── g711
│   │   │   │   ├── OWNERS
│   │   │   │   ├── audio_decoder_pcm.cc
│   │   │   │   ├── audio_decoder_pcm.h
│   │   │   │   ├── audio_encoder_pcm.cc
│   │   │   │   ├── audio_encoder_pcm.h
│   │   │   │   ├── g711.c
│   │   │   │   ├── g711.gypi
│   │   │   │   ├── g711.h
│   │   │   │   ├── g711_interface.c
│   │   │   │   ├── g711_interface.h
│   │   │   │   └── test
│   │   │   │   └── testG711.cc
│   │   │   ├── g722
│   │   │   │   ├── OWNERS
│   │   │   │   ├── audio_decoder_g722.cc
│   │   │   │   ├── audio_decoder_g722.h
│   │   │   │   ├── audio_encoder_g722.cc
│   │   │   │   ├── audio_encoder_g722.h
│   │   │   │   ├── g722.gypi
│   │   │   │   ├── g722_decode.c
│   │   │   │   ├── g722_enc_dec.h
│   │   │   │   ├── g722_encode.c
│   │   │   │   ├── g722_interface.c
│   │   │   │   ├── g722_interface.h
│   │   │   │   └── test
│   │   │   │   └── testG722.cc
│   │   │   ├── ilbc
│   │   │   │   ├── OWNERS
│   │   │   │   ├── abs_quant.c
│   │   │   │   ├── abs_quant.h
│   │   │   │   ├── abs_quant_loop.c
│   │   │   │   ├── abs_quant_loop.h
│   │   │   │   ├── audio_decoder_ilbc.cc
│   │   │   │   ├── audio_decoder_ilbc.h
│   │   │   │   ├── audio_encoder_ilbc.cc
│   │   │   │   ├── audio_encoder_ilbc.h
│   │   │   │   ├── augmented_cb_corr.c
│   │   │   │   ├── augmented_cb_corr.h
│   │   │   │   ├── bw_expand.c
│   │   │   │   ├── bw_expand.h
│   │   │   │   ├── cb_construct.c
│   │   │   │   ├── cb_construct.h
│   │   │   │   ├── cb_mem_energy.c
│   │   │   │   ├── cb_mem_energy.h
│   │   │   │   ├── cb_mem_energy_augmentation.c
│   │   │   │   ├── cb_mem_energy_augmentation.h
│   │   │   │   ├── cb_mem_energy_calc.c
│   │   │   │   ├── cb_mem_energy_calc.h
│   │   │   │   ├── cb_search.c
│   │   │   │   ├── cb_search.h
│   │   │   │   ├── cb_search_core.c
│   │   │   │   ├── cb_search_core.h
│   │   │   │   ├── cb_update_best_index.c
│   │   │   │   ├── cb_update_best_index.h
│   │   │   │   ├── chebyshev.c
│   │   │   │   ├── chebyshev.h
│   │   │   │   ├── comp_corr.c
│   │   │   │   ├── comp_corr.h
│   │   │   │   ├── complexityMeasures.m
│   │   │   │   ├── constants.c
│   │   │   │   ├── constants.h
│   │   │   │   ├── create_augmented_vec.c
│   │   │   │   ├── create_augmented_vec.h
│   │   │   │   ├── decode.c
│   │   │   │   ├── decode.h
│   │   │   │   ├── decode_residual.c
│   │   │   │   ├── decode_residual.h
│   │   │   │   ├── decoder_interpolate_lsf.c
│   │   │   │   ├── decoder_interpolate_lsf.h
│   │   │   │   ├── defines.h
│   │   │   │   ├── do_plc.c
│   │   │   │   ├── do_plc.h
│   │   │   │   ├── encode.c
│   │   │   │   ├── encode.h
│   │   │   │   ├── energy_inverse.c
│   │   │   │   ├── energy_inverse.h
│   │   │   │   ├── enh_upsample.c
│   │   │   │   ├── enh_upsample.h
│   │   │   │   ├── enhancer.c
│   │   │   │   ├── enhancer.h
│   │   │   │   ├── enhancer_interface.c
│   │   │   │   ├── enhancer_interface.h
│   │   │   │   ├── filtered_cb_vecs.c
│   │   │   │   ├── filtered_cb_vecs.h
│   │   │   │   ├── frame_classify.c
│   │   │   │   ├── frame_classify.h
│   │   │   │   ├── gain_dequant.c
│   │   │   │   ├── gain_dequant.h
│   │   │   │   ├── gain_quant.c
│   │   │   │   ├── gain_quant.h
│   │   │   │   ├── get_cd_vec.c
│   │   │   │   ├── get_cd_vec.h
│   │   │   │   ├── get_lsp_poly.c
│   │   │   │   ├── get_lsp_poly.h
│   │   │   │   ├── get_sync_seq.c
│   │   │   │   ├── get_sync_seq.h
│   │   │   │   ├── hp_input.c
│   │   │   │   ├── hp_input.h
│   │   │   │   ├── hp_output.c
│   │   │   │   ├── hp_output.h
│   │   │   │   ├── ilbc.c
│   │   │   │   ├── ilbc.gypi
│   │   │   │   ├── ilbc.h
│   │   │   │   ├── 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
│   │   │   │   │   ├── 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
│   │   │   ├── interfaces.gypi
│   │   │   ├── isac
│   │   │   │   ├── OWNERS
│   │   │   │   ├── 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
│   │   │   │   ├── fix
│   │   │   │   │   ├── include
│   │   │   │   │   │   ├── audio_decoder_isacfix.h
│   │   │   │   │   │   ├── audio_encoder_isacfix.h
│   │   │   │   │   │   └── isacfix.h
│   │   │   │   │   ├── source
│   │   │   │   │   │   ├── OWNERS
│   │   │   │   │   │   ├── arith_routines.c
│   │   │   │   │   │   ├── arith_routines_hist.c
│   │   │   │   │   │   ├── arith_routines_logist.c
│   │   │   │   │   │   ├── arith_routins.h
│   │   │   │   │   │   ├── audio_decoder_isacfix.cc
│   │   │   │   │   │   ├── audio_encoder_isacfix.cc
│   │   │   │   │   │   ├── bandwidth_estimator.c
│   │   │   │   │   │   ├── bandwidth_estimator.h
│   │   │   │   │   │   ├── codec.h
│   │   │   │   │   │   ├── decode.c
│   │   │   │   │   │   ├── decode_bwe.c
│   │   │   │   │   │   ├── decode_plc.c
│   │   │   │   │   │   ├── encode.c
│   │   │   │   │   │   ├── entropy_coding.c
│   │   │   │   │   │   ├── entropy_coding.h
│   │   │   │   │   │   ├── entropy_coding_mips.c
│   │   │   │   │   │   ├── entropy_coding_neon.c
│   │   │   │   │   │   ├── fft.c
│   │   │   │   │   │   ├── fft.h
│   │   │   │   │   │   ├── filterbank_internal.h
│   │   │   │   │   │   ├── filterbank_tables.c
│   │   │   │   │   │   ├── filterbank_tables.h
│   │   │   │   │   │   ├── filterbanks.c
│   │   │   │   │   │   ├── filterbanks_mips.c
│   │   │   │   │   │   ├── filterbanks_neon.c
│   │   │   │   │   │   ├── filterbanks_unittest.cc
│   │   │   │   │   │   ├── filters.c
│   │   │   │   │   │   ├── filters_mips.c
│   │   │   │   │   │   ├── filters_neon.c
│   │   │   │   │   │   ├── filters_unittest.cc
│   │   │   │   │   │   ├── initialize.c
│   │   │   │   │   │   ├── isac_fix_type.h
│   │   │   │   │   │   ├── isacfix.c
│   │   │   │   │   │   ├── lattice.c
│   │   │   │   │   │   ├── lattice_armv7.S
│   │   │   │   │   │   ├── lattice_c.c
│   │   │   │   │   │   ├── lattice_mips.c
│   │   │   │   │   │   ├── lattice_neon.c
│   │   │   │   │   │   ├── lpc_masking_model.c
│   │   │   │   │   │   ├── lpc_masking_model.h
│   │   │   │   │   │   ├── lpc_masking_model_mips.c
│   │   │   │   │   │   ├── lpc_masking_model_unittest.cc
│   │   │   │   │   │   ├── lpc_tables.c
│   │   │   │   │   │   ├── lpc_tables.h
│   │   │   │   │   │   ├── pitch_estimator.c
│   │   │   │   │   │   ├── pitch_estimator.h
│   │   │   │   │   │   ├── pitch_estimator_c.c
│   │   │   │   │   │   ├── pitch_estimator_mips.c
│   │   │   │   │   │   ├── pitch_filter.c
│   │   │   │   │   │   ├── pitch_filter_armv6.S
│   │   │   │   │   │   ├── pitch_filter_c.c
│   │   │   │   │   │   ├── pitch_filter_mips.c
│   │   │   │   │   │   ├── pitch_gain_tables.c
│   │   │   │   │   │   ├── pitch_gain_tables.h
│   │   │   │   │   │   ├── pitch_lag_tables.c
│   │   │   │   │   │   ├── pitch_lag_tables.h
│   │   │   │   │   │   ├── settings.h
│   │   │   │   │   │   ├── spectrum_ar_model_tables.c
│   │   │   │   │   │   ├── spectrum_ar_model_tables.h
│   │   │   │   │   │   ├── structs.h
│   │   │   │   │   │   ├── transform.c
│   │   │   │   │   │   ├── transform_mips.c
│   │   │   │   │   │   ├── transform_neon.c
│   │   │   │   │   │   ├── transform_tables.c
│   │   │   │   │   │   └── transform_unittest.cc
│   │   │   │   │   └── test
│   │   │   │   │   ├── QA
│   │   │   │   │   │   ├── ChannelFiles.txt
│   │   │   │   │   │   ├── InputFiles.txt
│   │   │   │   │   │   ├── InputFilesFew.txt
│   │   │   │   │   │   ├── ListOfTestCases.xls
│   │   │   │   │   │   ├── diffiSAC.txt
│   │   │   │   │   │   ├── diffiSACPLC.txt
│   │   │   │   │   │   ├── runiSACLongtest.txt
│   │   │   │   │   │   ├── runiSACNB.txt
│   │   │   │   │   │   ├── runiSACPLC.txt
│   │   │   │   │   │   ├── runiSACRate.txt
│   │   │   │   │   │   ├── runiSACfault.txt
│   │   │   │   │   │   └── runiSACfixfloat.txt
│   │   │   │   │   ├── isac_speed_test.cc
│   │   │   │   │   ├── kenny.cc
│   │   │   │   │   └── test_iSACfixfloat.c
│   │   │   │   ├── isac.gypi
│   │   │   │   ├── isac_common.gypi
│   │   │   │   ├── isac_test.gypi
│   │   │   │   ├── isacfix.gypi
│   │   │   │   ├── isacfix_test.gypi
│   │   │   │   ├── locked_bandwidth_info.cc
│   │   │   │   ├── locked_bandwidth_info.h
│   │   │   │   ├── main
│   │   │   │   │   ├── include
│   │   │   │   │   │   ├── audio_decoder_isac.h
│   │   │   │   │   │   ├── audio_encoder_isac.h
│   │   │   │   │   │   └── isac.h
│   │   │   │   │   ├── source
│   │   │   │   │   │   ├── OWNERS
│   │   │   │   │   │   ├── arith_routines.c
│   │   │   │   │   │   ├── arith_routines.h
│   │   │   │   │   │   ├── arith_routines_hist.c
│   │   │   │   │   │   ├── arith_routines_logist.c
│   │   │   │   │   │   ├── audio_decoder_isac.cc
│   │   │   │   │   │   ├── audio_encoder_isac.cc
│   │   │   │   │   │   ├── audio_encoder_isac_unittest.cc
│   │   │   │   │   │   ├── bandwidth_estimator.c
│   │   │   │   │   │   ├── bandwidth_estimator.h
│   │   │   │   │   │   ├── codec.h
│   │   │   │   │   │   ├── crc.c
│   │   │   │   │   │   ├── crc.h
│   │   │   │   │   │   ├── decode.c
│   │   │   │   │   │   ├── decode_bwe.c
│   │   │   │   │   │   ├── encode.c
│   │   │   │   │   │   ├── encode_lpc_swb.c
│   │   │   │   │   │   ├── encode_lpc_swb.h
│   │   │   │   │   │   ├── entropy_coding.c
│   │   │   │   │   │   ├── entropy_coding.h
│   │   │   │   │   │   ├── fft.c
│   │   │   │   │   │   ├── fft.h
│   │   │   │   │   │   ├── filter_functions.c
│   │   │   │   │   │   ├── filterbank_tables.c
│   │   │   │   │   │   ├── filterbank_tables.h
│   │   │   │   │   │   ├── filterbanks.c
│   │   │   │   │   │   ├── intialize.c
│   │   │   │   │   │   ├── isac.c
│   │   │   │   │   │   ├── isac_float_type.h
│   │   │   │   │   │   ├── isac_unittest.cc
│   │   │   │   │   │   ├── 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_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
│   │   │   │   │   │   │   ├── runiSACLongtest.txt
│   │   │   │   │   │   │   ├── runiSACfault.txt
│   │   │   │   │   │   │   └── runiSACfixfloat.txt
│   │   │   │   │   │   ├── ReleaseTest-API
│   │   │   │   │   │   │   └── ReleaseTest-API.cc
│   │   │   │   │   │   ├── SwitchingSampRate
│   │   │   │   │   │   │   └── SwitchingSampRate.cc
│   │   │   │   │   │   └── simpleKenny.c
│   │   │   │   │   └── util
│   │   │   │   │   ├── utility.c
│   │   │   │   │   └── utility.h
│   │   │   │   └── unittest.cc
│   │   │   ├── mock
│   │   │   │   ├── mock_audio_decoder_factory.h
│   │   │   │   ├── mock_audio_encoder.cc
│   │   │   │   └── mock_audio_encoder.h
│   │   │   ├── opus
│   │   │   │   ├── OWNERS
│   │   │   │   ├── audio_decoder_opus.cc
│   │   │   │   ├── audio_decoder_opus.h
│   │   │   │   ├── audio_encoder_opus.cc
│   │   │   │   ├── audio_encoder_opus.h
│   │   │   │   ├── audio_encoder_opus_unittest.cc
│   │   │   │   ├── opus.gypi
│   │   │   │   ├── opus_fec_test.cc
│   │   │   │   ├── opus_inst.h
│   │   │   │   ├── opus_interface.c
│   │   │   │   ├── opus_interface.h
│   │   │   │   ├── opus_speed_test.cc
│   │   │   │   └── opus_unittest.cc
│   │   │   ├── pcm16b
│   │   │   │   ├── OWNERS
│   │   │   │   ├── audio_decoder_pcm16b.cc
│   │   │   │   ├── audio_decoder_pcm16b.h
│   │   │   │   ├── audio_encoder_pcm16b.cc
│   │   │   │   ├── audio_encoder_pcm16b.h
│   │   │   │   ├── pcm16b.c
│   │   │   │   ├── pcm16b.gypi
│   │   │   │   └── pcm16b.h
│   │   │   ├── red
│   │   │   │   ├── audio_encoder_copy_red.cc
│   │   │   │   ├── audio_encoder_copy_red.h
│   │   │   │   ├── audio_encoder_copy_red_unittest.cc
│   │   │   │   └── red.gypi
│   │   │   └── tools
│   │   │   ├── OWNERS
│   │   │   ├── audio_codec_speed_test.cc
│   │   │   └── audio_codec_speed_test.h
│   │   ├── include
│   │   │   ├── audio_coding_module.h
│   │   │   └── audio_coding_module_typedefs.h
│   │   ├── neteq
│   │   │   ├── OWNERS
│   │   │   ├── accelerate.cc
│   │   │   ├── accelerate.h
│   │   │   ├── audio_classifier.cc
│   │   │   ├── audio_classifier.h
│   │   │   ├── audio_classifier_unittest.cc
│   │   │   ├── audio_decoder_impl.cc
│   │   │   ├── audio_decoder_impl.h
│   │   │   ├── audio_decoder_unittest.cc
│   │   │   ├── audio_multi_vector.cc
│   │   │   ├── audio_multi_vector.h
│   │   │   ├── audio_multi_vector_unittest.cc
│   │   │   ├── audio_vector.cc
│   │   │   ├── audio_vector.h
│   │   │   ├── audio_vector_unittest.cc
│   │   │   ├── background_noise.cc
│   │   │   ├── background_noise.h
│   │   │   ├── background_noise_unittest.cc
│   │   │   ├── buffer_level_filter.cc
│   │   │   ├── buffer_level_filter.h
│   │   │   ├── buffer_level_filter_unittest.cc
│   │   │   ├── comfort_noise.cc
│   │   │   ├── comfort_noise.h
│   │   │   ├── comfort_noise_unittest.cc
│   │   │   ├── cross_correlation.cc
│   │   │   ├── cross_correlation.h
│   │   │   ├── decision_logic.cc
│   │   │   ├── decision_logic.h
│   │   │   ├── decision_logic_fax.cc
│   │   │   ├── decision_logic_fax.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_unittest.cc
│   │   │   ├── include
│   │   │   │   └── neteq.h
│   │   │   ├── merge.cc
│   │   │   ├── merge.h
│   │   │   ├── merge_unittest.cc
│   │   │   ├── mock
│   │   │   │   ├── mock_audio_decoder.h
│   │   │   │   ├── mock_audio_vector.h
│   │   │   │   ├── 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_payload_splitter.h
│   │   │   ├── nack_tracker.cc
│   │   │   ├── nack_tracker.h
│   │   │   ├── nack_tracker_unittest.cc
│   │   │   ├── neteq.cc
│   │   │   ├── neteq.gypi
│   │   │   ├── 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_tests.gypi
│   │   │   ├── neteq_unittest.cc
│   │   │   ├── neteq_unittest.proto
│   │   │   ├── normal.cc
│   │   │   ├── normal.h
│   │   │   ├── normal_unittest.cc
│   │   │   ├── packet.cc
│   │   │   ├── packet.h
│   │   │   ├── packet_buffer.cc
│   │   │   ├── packet_buffer.h
│   │   │   ├── packet_buffer_unittest.cc
│   │   │   ├── payload_splitter.cc
│   │   │   ├── payload_splitter.h
│   │   │   ├── payload_splitter_unittest.cc
│   │   │   ├── post_decode_vad.cc
│   │   │   ├── post_decode_vad.h
│   │   │   ├── post_decode_vad_unittest.cc
│   │   │   ├── preemptive_expand.cc
│   │   │   ├── preemptive_expand.h
│   │   │   ├── random_vector.cc
│   │   │   ├── random_vector.h
│   │   │   ├── random_vector_unittest.cc
│   │   │   ├── rtcp.cc
│   │   │   ├── rtcp.h
│   │   │   ├── statistics_calculator.cc
│   │   │   ├── statistics_calculator.h
│   │   │   ├── sync_buffer.cc
│   │   │   ├── sync_buffer.h
│   │   │   ├── sync_buffer_unittest.cc
│   │   │   ├── test
│   │   │   │   ├── NETEQTEST_DummyRTPpacket.cc
│   │   │   │   ├── NETEQTEST_DummyRTPpacket.h
│   │   │   │   ├── NETEQTEST_RTPpacket.cc
│   │   │   │   ├── NETEQTEST_RTPpacket.h
│   │   │   │   ├── PayloadTypes.h
│   │   │   │   ├── RTPchange.cc
│   │   │   │   ├── RTPencode.cc
│   │   │   │   ├── RTPjitter.cc
│   │   │   │   ├── RTPtimeshift.cc
│   │   │   │   ├── audio_classifier_test.cc
│   │   │   │   ├── 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_pcmu_quality_test.cc
│   │   │   │   ├── neteq_performance_unittest.cc
│   │   │   │   ├── neteq_speed_test.cc
│   │   │   │   └── rtp_to_text.cc
│   │   │   ├── tick_timer.cc
│   │   │   ├── tick_timer.h
│   │   │   ├── tick_timer_unittest.cc
│   │   │   ├── time_stretch.cc
│   │   │   ├── time_stretch.h
│   │   │   ├── time_stretch_unittest.cc
│   │   │   ├── timestamp_scaler.cc
│   │   │   ├── timestamp_scaler.h
│   │   │   ├── timestamp_scaler_unittest.cc
│   │   │   └── tools
│   │   │   ├── audio_checksum.h
│   │   │   ├── audio_loop.cc
│   │   │   ├── audio_loop.h
│   │   │   ├── audio_sink.h
│   │   │   ├── constant_pcm_packet_source.cc
│   │   │   ├── constant_pcm_packet_source.h
│   │   │   ├── input_audio_file.cc
│   │   │   ├── input_audio_file.h
│   │   │   ├── input_audio_file_unittest.cc
│   │   │   ├── neteq_external_decoder_test.cc
│   │   │   ├── neteq_external_decoder_test.h
│   │   │   ├── neteq_performance_test.cc
│   │   │   ├── neteq_performance_test.h
│   │   │   ├── neteq_quality_test.cc
│   │   │   ├── neteq_quality_test.h
│   │   │   ├── neteq_rtpplay.cc
│   │   │   ├── output_audio_file.h
│   │   │   ├── output_wav_file.h
│   │   │   ├── packet.cc
│   │   │   ├── packet.h
│   │   │   ├── packet_source.h
│   │   │   ├── packet_unittest.cc
│   │   │   ├── resample_input_audio_file.cc
│   │   │   ├── resample_input_audio_file.h
│   │   │   ├── rtc_event_log_source.cc
│   │   │   ├── rtc_event_log_source.h
│   │   │   ├── rtp_analyze.cc
│   │   │   ├── rtp_file_source.cc
│   │   │   ├── rtp_file_source.h
│   │   │   ├── rtp_generator.cc
│   │   │   ├── rtp_generator.h
│   │   │   └── rtpcat.cc
│   │   └── test
│   │   ├── ACMTest.h
│   │   ├── APITest.cc
│   │   ├── APITest.h
│   │   ├── Channel.cc
│   │   ├── Channel.h
│   │   ├── EncodeDecodeTest.cc
│   │   ├── EncodeDecodeTest.h
│   │   ├── PCMFile.cc
│   │   ├── PCMFile.h
│   │   ├── PacketLossTest.cc
│   │   ├── PacketLossTest.h
│   │   ├── RTPFile.cc
│   │   ├── RTPFile.h
│   │   ├── TestAllCodecs.cc
│   │   ├── TestAllCodecs.h
│   │   ├── TestRedFec.cc
│   │   ├── TestRedFec.h
│   │   ├── TestStereo.cc
│   │   ├── TestStereo.h
│   │   ├── TestVADDTX.cc
│   │   ├── TestVADDTX.h
│   │   ├── Tester.cc
│   │   ├── TwoWayCommunication.cc
│   │   ├── TwoWayCommunication.h
│   │   ├── delay_test.cc
│   │   ├── iSACTest.cc
│   │   ├── iSACTest.h
│   │   ├── insert_packet_with_timing.cc
│   │   ├── opus_test.cc
│   │   ├── opus_test.h
│   │   ├── target_delay_unittest.cc
│   │   ├── utility.cc
│   │   └── utility.h
│   ├── audio_coding_module.vcxproj
│   ├── audio_coding_module.vcxproj.filters
│   ├── audio_conference_mixer
│   │   ├── BUILD.gn
│   │   ├── DEPS
│   │   ├── OWNERS
│   │   ├── audio_conference_mixer.gypi
│   │   ├── include
│   │   │   ├── audio_conference_mixer.h
│   │   │   └── audio_conference_mixer_defines.h
│   │   ├── source
│   │   │   ├── OWNERS
│   │   │   ├── audio_conference_mixer_impl.cc
│   │   │   ├── audio_conference_mixer_impl.h
│   │   │   ├── audio_frame_manipulator.cc
│   │   │   ├── audio_frame_manipulator.h
│   │   │   ├── memory_pool.h
│   │   │   ├── memory_pool_posix.h
│   │   │   ├── memory_pool_win.h
│   │   │   ├── time_scheduler.cc
│   │   │   └── time_scheduler.h
│   │   └── test
│   │   └── audio_conference_mixer_unittest.cc
│   ├── audio_conference_mixer.vcxproj
│   ├── audio_conference_mixer.vcxproj.filters
│   ├── audio_decoder_factory_interface.vcxproj
│   ├── audio_decoder_factory_interface.vcxproj.filters
│   ├── audio_decoder_interface.vcxproj
│   ├── audio_decoder_interface.vcxproj.filters
│   ├── audio_decoder_unittests.isolate
│   ├── audio_decoder_unittests_apk.isolate
│   ├── audio_device
│   │   ├── BUILD.gn
│   │   ├── DEPS
│   │   ├── OWNERS
│   │   ├── android
│   │   │   ├── 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
│   │   ├── audio_device.gypi
│   │   ├── audio_device_buffer.cc
│   │   ├── audio_device_buffer.h
│   │   ├── audio_device_config.h
│   │   ├── audio_device_generic.cc
│   │   ├── audio_device_generic.h
│   │   ├── audio_device_impl.cc
│   │   ├── audio_device_impl.h
│   │   ├── dummy
│   │   │   ├── audio_device_dummy.cc
│   │   │   ├── audio_device_dummy.h
│   │   │   ├── file_audio_device.cc
│   │   │   ├── file_audio_device.h
│   │   │   ├── file_audio_device_factory.cc
│   │   │   └── file_audio_device_factory.h
│   │   ├── fine_audio_buffer.cc
│   │   ├── fine_audio_buffer.h
│   │   ├── fine_audio_buffer_unittest.cc
│   │   ├── include
│   │   │   ├── audio_device.h
│   │   │   ├── audio_device_defines.h
│   │   │   ├── fake_audio_device.h
│   │   │   └── mock_audio_device.h
│   │   ├── ios
│   │   │   ├── audio_device_ios.h
│   │   │   ├── audio_device_ios.mm
│   │   │   ├── audio_device_not_implemented_ios.mm
│   │   │   ├── audio_device_unittest_ios.cc
│   │   │   ├── audio_session_observer.h
│   │   │   ├── objc
│   │   │   │   ├── RTCAudioSession+Configuration.mm
│   │   │   │   ├── RTCAudioSession+Private.h
│   │   │   │   ├── RTCAudioSession.h
│   │   │   │   ├── RTCAudioSession.mm
│   │   │   │   ├── RTCAudioSessionConfiguration.h
│   │   │   │   ├── RTCAudioSessionConfiguration.m
│   │   │   │   ├── RTCAudioSessionDelegateAdapter.h
│   │   │   │   ├── RTCAudioSessionDelegateAdapter.mm
│   │   │   │   └── RTCAudioSessionTest.mm
│   │   │   ├── 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
│   │   ├── test
│   │   │   ├── README.txt
│   │   │   ├── android
│   │   │   │   └── audio_device_android_test
│   │   │   │   ├── AndroidManifest.xml
│   │   │   │   ├── default.properties
│   │   │   │   ├── gen
│   │   │   │   │   └── org
│   │   │   │   │   └── webrtc
│   │   │   │   │   └── voiceengine
│   │   │   │   │   └── test
│   │   │   │   │   └── R.java
│   │   │   │   ├── res
│   │   │   │   │   ├── drawable
│   │   │   │   │   │   └── icon.png
│   │   │   │   │   ├── layout
│   │   │   │   │   │   └── main.xml
│   │   │   │   │   └── values
│   │   │   │   │   └── strings.xml
│   │   │   │   └── src
│   │   │   │   └── org
│   │   │   │   └── webrtc
│   │   │   │   └── voiceengine
│   │   │   │   ├── AudioDeviceAndroid.java
│   │   │   │   └── test
│   │   │   │   └── AudioDeviceAndroidTest.java
│   │   │   ├── audio_device_test_api.cc
│   │   │   ├── audio_device_test_defines.h
│   │   │   ├── audio_device_test_func.cc
│   │   │   ├── func_test_manager.cc
│   │   │   └── func_test_manager.h
│   │   └── win
│   │   ├── audio_device_core_win.cc
│   │   ├── audio_device_core_win.h
│   │   ├── audio_device_wave_win.cc
│   │   ├── audio_device_wave_win.h
│   │   ├── audio_mixer_manager_win.cc
│   │   └── audio_mixer_manager_win.h
│   ├── audio_device.vcxproj
│   ├── audio_device.vcxproj.filters
│   ├── audio_device_tests.isolate
│   ├── audio_encoder_interface.vcxproj
│   ├── audio_encoder_interface.vcxproj.filters
│   ├── audio_processing
│   │   ├── BUILD.gn
│   │   ├── DEPS
│   │   ├── OWNERS
│   │   ├── 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_rdft.cc
│   │   │   ├── aec_rdft.h
│   │   │   ├── aec_rdft_mips.cc
│   │   │   ├── aec_rdft_neon.cc
│   │   │   ├── aec_rdft_sse2.cc
│   │   │   ├── aec_resampler.cc
│   │   │   ├── aec_resampler.h
│   │   │   ├── echo_cancellation.cc
│   │   │   ├── echo_cancellation.h
│   │   │   ├── echo_cancellation_unittest.cc
│   │   │   └── system_delay_unittest.cc
│   │   ├── aecm
│   │   │   ├── aecm_core.cc
│   │   │   ├── aecm_core.h
│   │   │   ├── aecm_core_c.cc
│   │   │   ├── aecm_core_mips.cc
│   │   │   ├── aecm_core_neon.cc
│   │   │   ├── aecm_defines.h
│   │   │   ├── echo_control_mobile.cc
│   │   │   └── echo_control_mobile.h
│   │   ├── agc
│   │   │   ├── agc.cc
│   │   │   ├── agc.h
│   │   │   ├── agc_manager_direct.cc
│   │   │   ├── agc_manager_direct.h
│   │   │   ├── agc_manager_direct_unittest.cc
│   │   │   ├── agc_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
│   │   ├── audio_buffer.cc
│   │   ├── audio_buffer.h
│   │   ├── audio_processing.gypi
│   │   ├── 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_tests.gypi
│   │   ├── audio_processing_unittest.cc
│   │   ├── beamformer
│   │   │   ├── array_util.cc
│   │   │   ├── array_util.h
│   │   │   ├── array_util_unittest.cc
│   │   │   ├── beamformer.h
│   │   │   ├── 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
│   │   ├── common.h
│   │   ├── debug.proto
│   │   ├── 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
│   │   ├── gain_control_for_experimental_agc.cc
│   │   ├── gain_control_for_experimental_agc.h
│   │   ├── gain_control_impl.cc
│   │   ├── gain_control_impl.h
│   │   ├── gain_control_unittest.cc
│   │   ├── high_pass_filter_impl.cc
│   │   ├── high_pass_filter_impl.h
│   │   ├── high_pass_filter_unittest.cc
│   │   ├── include
│   │   │   ├── audio_processing.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
│   │   ├── 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.h
│   │   │   ├── nsx_core_c.c
│   │   │   ├── nsx_core_mips.c
│   │   │   ├── nsx_core_neon.c
│   │   │   ├── nsx_defines.h
│   │   │   └── windows_private.h
│   │   ├── render_queue_item_verifier.h
│   │   ├── rms_level.cc
│   │   ├── rms_level.h
│   │   ├── 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.cc
│   │   │   ├── bitexactness_tools.cc
│   │   │   ├── bitexactness_tools.h
│   │   │   ├── debug_dump_replayer.cc
│   │   │   ├── debug_dump_replayer.h
│   │   │   ├── debug_dump_test.cc
│   │   │   ├── process_test.cc
│   │   │   ├── protobuf_utils.cc
│   │   │   ├── protobuf_utils.h
│   │   │   ├── test_utils.cc
│   │   │   ├── test_utils.h
│   │   │   ├── unittest.proto
│   │   │   ├── unpack.cc
│   │   │   ├── 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
│   │   ├── vad
│   │   │   ├── common.h
│   │   │   ├── gmm.cc
│   │   │   ├── gmm.h
│   │   │   ├── gmm_unittest.cc
│   │   │   ├── noise_gmm_tables.h
│   │   │   ├── pitch_based_vad.cc
│   │   │   ├── pitch_based_vad.h
│   │   │   ├── pitch_based_vad_unittest.cc
│   │   │   ├── pitch_internal.cc
│   │   │   ├── pitch_internal.h
│   │   │   ├── pitch_internal_unittest.cc
│   │   │   ├── pole_zero_filter.cc
│   │   │   ├── pole_zero_filter.h
│   │   │   ├── pole_zero_filter_unittest.cc
│   │   │   ├── standalone_vad.cc
│   │   │   ├── standalone_vad.h
│   │   │   ├── standalone_vad_unittest.cc
│   │   │   ├── vad_audio_proc.cc
│   │   │   ├── vad_audio_proc.h
│   │   │   ├── vad_audio_proc_internal.h
│   │   │   ├── vad_audio_proc_unittest.cc
│   │   │   ├── vad_circular_buffer.cc
│   │   │   ├── vad_circular_buffer.h
│   │   │   ├── vad_circular_buffer_unittest.cc
│   │   │   ├── voice_activity_detector.cc
│   │   │   ├── voice_activity_detector.h
│   │   │   ├── voice_activity_detector_unittest.cc
│   │   │   └── voice_gmm_tables.h
│   │   ├── voice_detection_impl.cc
│   │   ├── voice_detection_impl.h
│   │   └── voice_detection_unittest.cc
│   ├── audio_processing.vcxproj
│   ├── audio_processing.vcxproj.filters
│   ├── audio_processing_sse2.vcxproj
│   ├── audio_processing_sse2.vcxproj.filters
│   ├── audioproc_debug_proto.props
│   ├── audioproc_debug_proto.targets
│   ├── audioproc_debug_proto.vcxproj
│   ├── audioproc_debug_proto.vcxproj.filters
│   ├── audioproc_debug_proto.xml
│   ├── bitrate_controller
│   │   ├── BUILD.gn
│   │   ├── DEPS
│   │   ├── OWNERS
│   │   ├── bitrate_controller.gypi
│   │   ├── bitrate_controller_impl.cc
│   │   ├── bitrate_controller_impl.h
│   │   ├── bitrate_controller_unittest.cc
│   │   ├── include
│   │   │   ├── bitrate_controller.h
│   │   │   └── mock
│   │   │   └── mock_bitrate_controller.h
│   │   ├── send_side_bandwidth_estimation.cc
│   │   ├── send_side_bandwidth_estimation.h
│   │   └── send_side_bandwidth_estimation_unittest.cc
│   ├── bitrate_controller.vcxproj
│   ├── bitrate_controller.vcxproj.filters
│   ├── builtin_audio_decoder_factory.vcxproj
│   ├── builtin_audio_decoder_factory.vcxproj.filters
│   ├── cng.vcxproj
│   ├── cng.vcxproj.filters
│   ├── congestion_controller
│   │   ├── BUILD.gn
│   │   ├── DEPS
│   │   ├── OWNERS
│   │   ├── congestion_controller.cc
│   │   ├── congestion_controller.gypi
│   │   ├── congestion_controller_unittest.cc
│   │   ├── delay_based_bwe.cc
│   │   ├── delay_based_bwe.h
│   │   ├── delay_based_bwe_unittest.cc
│   │   └── include
│   │   ├── congestion_controller.h
│   │   └── mock
│   │   └── mock_congestion_controller.h
│   ├── congestion_controller.vcxproj
│   ├── congestion_controller.vcxproj.filters
│   ├── desktop_capture
│   │   ├── BUILD.gn
│   │   ├── DEPS
│   │   ├── OWNERS
│   │   ├── cropped_desktop_frame.cc
│   │   ├── cropped_desktop_frame.h
│   │   ├── cropping_window_capturer.cc
│   │   ├── cropping_window_capturer.h
│   │   ├── cropping_window_capturer_win.cc
│   │   ├── desktop_and_cursor_composer.cc
│   │   ├── desktop_and_cursor_composer.h
│   │   ├── desktop_and_cursor_composer_unittest.cc
│   │   ├── desktop_capture.gypi
│   │   ├── desktop_capture_options.cc
│   │   ├── desktop_capture_options.h
│   │   ├── desktop_capture_types.h
│   │   ├── desktop_capturer.h
│   │   ├── desktop_frame.cc
│   │   ├── desktop_frame.h
│   │   ├── desktop_frame_win.cc
│   │   ├── desktop_frame_win.h
│   │   ├── desktop_geometry.cc
│   │   ├── desktop_geometry.h
│   │   ├── desktop_region.cc
│   │   ├── desktop_region.h
│   │   ├── desktop_region_unittest.cc
│   │   ├── differ.cc
│   │   ├── differ.h
│   │   ├── differ_block.cc
│   │   ├── differ_block.h
│   │   ├── differ_block_sse2.cc
│   │   ├── differ_block_sse2.h
│   │   ├── differ_block_unittest.cc
│   │   ├── differ_unittest.cc
│   │   ├── mac
│   │   │   ├── desktop_configuration.h
│   │   │   ├── desktop_configuration.mm
│   │   │   ├── desktop_configuration_monitor.cc
│   │   │   ├── desktop_configuration_monitor.h
│   │   │   ├── full_screen_chrome_window_detector.cc
│   │   │   ├── full_screen_chrome_window_detector.h
│   │   │   ├── scoped_pixel_buffer_object.cc
│   │   │   ├── scoped_pixel_buffer_object.h
│   │   │   ├── window_list_utils.cc
│   │   │   └── window_list_utils.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
│   │   ├── screen_capture_frame_queue.h
│   │   ├── screen_capturer.h
│   │   ├── screen_capturer_helper.cc
│   │   ├── screen_capturer_helper.h
│   │   ├── screen_capturer_helper_unittest.cc
│   │   ├── screen_capturer_mac.mm
│   │   ├── screen_capturer_mac_unittest.cc
│   │   ├── screen_capturer_mock_objects.h
│   │   ├── screen_capturer_null.cc
│   │   ├── screen_capturer_unittest.cc
│   │   ├── screen_capturer_win.cc
│   │   ├── screen_capturer_x11.cc
│   │   ├── shared_desktop_frame.cc
│   │   ├── shared_desktop_frame.h
│   │   ├── shared_memory.cc
│   │   ├── shared_memory.h
│   │   ├── 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
│   │   │   ├── desktop.cc
│   │   │   ├── desktop.h
│   │   │   ├── scoped_gdi_object.h
│   │   │   ├── scoped_thread_desktop.cc
│   │   │   ├── scoped_thread_desktop.h
│   │   │   ├── screen_capture_utils.cc
│   │   │   ├── screen_capture_utils.h
│   │   │   ├── screen_capturer_win_directx.cc
│   │   │   ├── screen_capturer_win_directx.h
│   │   │   ├── screen_capturer_win_gdi.cc
│   │   │   ├── screen_capturer_win_gdi.h
│   │   │   ├── screen_capturer_win_magnifier.cc
│   │   │   ├── screen_capturer_win_magnifier.h
│   │   │   ├── window_capture_utils.cc
│   │   │   └── window_capture_utils.h
│   │   ├── window_capturer.h
│   │   ├── window_capturer_mac.mm
│   │   ├── window_capturer_null.cc
│   │   ├── window_capturer_unittest.cc
│   │   ├── window_capturer_win.cc
│   │   ├── window_capturer_x11.cc
│   │   └── x11
│   │   ├── shared_x_display.cc
│   │   ├── shared_x_display.h
│   │   ├── x_error_trap.cc
│   │   ├── x_error_trap.h
│   │   ├── x_server_pixel_buffer.cc
│   │   └── x_server_pixel_buffer.h
│   ├── desktop_capture.vcxproj
│   ├── desktop_capture.vcxproj.filters
│   ├── desktop_capture_differ_sse2.vcxproj
│   ├── desktop_capture_differ_sse2.vcxproj.filters
│   ├── g711.vcxproj
│   ├── g711.vcxproj.filters
│   ├── g722.vcxproj
│   ├── g722.vcxproj.filters
│   ├── ilbc.vcxproj
│   ├── ilbc.vcxproj.filters
│   ├── include
│   │   ├── DEPS
│   │   ├── module.h
│   │   └── module_common_types.h
│   ├── isac.vcxproj
│   ├── isac.vcxproj.filters
│   ├── isac_common.vcxproj
│   ├── isac_common.vcxproj.filters
│   ├── isac_fix.vcxproj
│   ├── isac_fix.vcxproj.filters
│   ├── media_file
│   │   ├── BUILD.gn
│   │   ├── DEPS
│   │   ├── OWNERS
│   │   ├── media_file.gypi
│   │   ├── media_file.h
│   │   ├── media_file_defines.h
│   │   ├── media_file_impl.cc
│   │   ├── media_file_impl.h
│   │   ├── media_file_unittest.cc
│   │   ├── media_file_utility.cc
│   │   └── media_file_utility.h
│   ├── media_file.vcxproj
│   ├── media_file.vcxproj.filters
│   ├── module_common_types_unittest.cc
│   ├── modules.gyp
│   ├── modules.sln
│   ├── modules_tests.isolate
│   ├── modules_tests_apk.isolate
│   ├── modules_unittests.isolate
│   ├── modules_unittests_apk.isolate
│   ├── neteq.vcxproj
│   ├── neteq.vcxproj.filters
│   ├── paced_sender.vcxproj
│   ├── paced_sender.vcxproj.filters
│   ├── pacing
│   │   ├── BUILD.gn
│   │   ├── DEPS
│   │   ├── OWNERS
│   │   ├── bitrate_prober.cc
│   │   ├── bitrate_prober.h
│   │   ├── bitrate_prober_unittest.cc
│   │   ├── mock
│   │   │   └── mock_paced_sender.h
│   │   ├── paced_sender.cc
│   │   ├── paced_sender.h
│   │   ├── paced_sender_unittest.cc
│   │   ├── pacing.gypi
│   │   ├── packet_router.cc
│   │   ├── packet_router.h
│   │   └── packet_router_unittest.cc
│   ├── pcm16b.vcxproj
│   ├── pcm16b.vcxproj.filters
│   ├── red.vcxproj
│   ├── red.vcxproj.filters
│   ├── remote_bitrate_estimator
│   │   ├── BUILD.gn
│   │   ├── DEPS
│   │   ├── OWNERS
│   │   ├── aimd_rate_control.cc
│   │   ├── aimd_rate_control.h
│   │   ├── bwe_simulations.cc
│   │   ├── include
│   │   │   ├── bwe_defines.h
│   │   │   ├── mock
│   │   │   │   ├── mock_remote_bitrate_estimator.h
│   │   │   │   └── mock_remote_bitrate_observer.h
│   │   │   ├── remote_bitrate_estimator.h
│   │   │   └── send_time_history.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
│   │   ├── remote_bitrate_estimator.gypi
│   │   ├── remote_bitrate_estimator_abs_send_time.cc
│   │   ├── remote_bitrate_estimator_abs_send_time.h
│   │   ├── remote_bitrate_estimator_abs_send_time_unittest.cc
│   │   ├── remote_bitrate_estimator_single_stream.cc
│   │   ├── remote_bitrate_estimator_single_stream.h
│   │   ├── remote_bitrate_estimator_single_stream_unittest.cc
│   │   ├── remote_bitrate_estimator_unittest_helper.cc
│   │   ├── remote_bitrate_estimator_unittest_helper.h
│   │   ├── remote_bitrate_estimators_test.cc
│   │   ├── remote_estimator_proxy.cc
│   │   ├── remote_estimator_proxy.h
│   │   ├── remote_estimator_proxy_unittest.cc
│   │   ├── send_time_history.cc
│   │   ├── send_time_history_unittest.cc
│   │   ├── test
│   │   │   ├── bwe.cc
│   │   │   ├── bwe.h
│   │   │   ├── bwe_test.cc
│   │   │   ├── bwe_test.h
│   │   │   ├── bwe_test_baselinefile.cc
│   │   │   ├── bwe_test_baselinefile.h
│   │   │   ├── bwe_test_fileutils.cc
│   │   │   ├── bwe_test_fileutils.h
│   │   │   ├── bwe_test_framework.cc
│   │   │   ├── bwe_test_framework.h
│   │   │   ├── bwe_test_framework_unittest.cc
│   │   │   ├── bwe_test_logging.cc
│   │   │   ├── bwe_test_logging.h
│   │   │   ├── bwe_unittest.cc
│   │   │   ├── estimators
│   │   │   │   ├── 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
│   │   │   └── plot_dynamics.sh
│   │   ├── tools
│   │   │   ├── bwe_rtp.cc
│   │   │   ├── bwe_rtp.h
│   │   │   ├── bwe_rtp_play.cc
│   │   │   └── rtp_to_text.cc
│   │   ├── transport_feedback_adapter.cc
│   │   ├── transport_feedback_adapter.h
│   │   └── transport_feedback_adapter_unittest.cc
│   ├── remote_bitrate_estimator.vcxproj
│   ├── remote_bitrate_estimator.vcxproj.filters
│   ├── rent_a_codec.vcxproj
│   ├── rent_a_codec.vcxproj.filters
│   ├── rtp_rtcp
│   │   ├── BUILD.gn
│   │   ├── DEPS
│   │   ├── OWNERS
│   │   ├── include
│   │   │   ├── fec_receiver.h
│   │   │   ├── receive_statistics.h
│   │   │   ├── remote_ntp_time_estimator.h
│   │   │   ├── rtp_cvo.h
│   │   │   ├── rtp_header_parser.h
│   │   │   ├── rtp_payload_registry.h
│   │   │   ├── rtp_receiver.h
│   │   │   ├── rtp_rtcp.h
│   │   │   └── rtp_rtcp_defines.h
│   │   ├── mocks
│   │   │   └── mock_rtp_rtcp.h
│   │   ├── rtp_rtcp.gypi
│   │   ├── source
│   │   │   ├── CPPLINT.cfg
│   │   │   ├── OWNERS
│   │   │   ├── bitrate.cc
│   │   │   ├── bitrate.h
│   │   │   ├── byte_io.h
│   │   │   ├── byte_io_unittest.cc
│   │   │   ├── dtmf_queue.cc
│   │   │   ├── dtmf_queue.h
│   │   │   ├── fec_private_tables_bursty.h
│   │   │   ├── fec_private_tables_random.h
│   │   │   ├── fec_receiver_impl.cc
│   │   │   ├── fec_receiver_impl.h
│   │   │   ├── fec_receiver_unittest.cc
│   │   │   ├── fec_test_helper.cc
│   │   │   ├── fec_test_helper.h
│   │   │   ├── forward_error_correction.cc
│   │   │   ├── forward_error_correction.h
│   │   │   ├── forward_error_correction_internal.cc
│   │   │   ├── forward_error_correction_internal.h
│   │   │   ├── mock
│   │   │   │   └── mock_rtp_payload_strategy.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
│   │   │   ├── producer_fec.cc
│   │   │   ├── producer_fec.h
│   │   │   ├── producer_fec_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_format_remb_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
│   │   │   │   ├── rpsi.cc
│   │   │   │   ├── rpsi.h
│   │   │   │   ├── rpsi_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
│   │   │   │   ├── sli.cc
│   │   │   │   ├── sli.h
│   │   │   │   ├── sli_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_help.cc
│   │   │   ├── rtcp_receiver_help.h
│   │   │   ├── rtcp_receiver_unittest.cc
│   │   │   ├── rtcp_sender.cc
│   │   │   ├── rtcp_sender.h
│   │   │   ├── rtcp_sender_unittest.cc
│   │   │   ├── rtcp_utility.cc
│   │   │   ├── rtcp_utility.h
│   │   │   ├── rtcp_utility_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_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.cc
│   │   │   ├── rtp_header_extension.h
│   │   │   ├── rtp_header_extension_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.h
│   │   │   ├── 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_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.cc
│   │   │   ├── rtp_sender.h
│   │   │   ├── rtp_sender_audio.cc
│   │   │   ├── rtp_sender_audio.h
│   │   │   ├── rtp_sender_unittest.cc
│   │   │   ├── rtp_sender_video.cc
│   │   │   ├── rtp_sender_video.h
│   │   │   ├── rtp_utility.cc
│   │   │   ├── rtp_utility.h
│   │   │   ├── ssrc_database.cc
│   │   │   ├── ssrc_database.h
│   │   │   ├── time_util.cc
│   │   │   ├── time_util.h
│   │   │   ├── time_util_unittest.cc
│   │   │   ├── tmmbr_help.cc
│   │   │   ├── tmmbr_help.h
│   │   │   ├── video_codec_information.h
│   │   │   ├── vp8_partition_aggregator.cc
│   │   │   ├── vp8_partition_aggregator.h
│   │   │   └── vp8_partition_aggregator_unittest.cc
│   │   └── test
│   │   ├── OWNERS
│   │   ├── testAPI
│   │   │   ├── test_api.cc
│   │   │   ├── test_api.h
│   │   │   ├── test_api_audio.cc
│   │   │   ├── test_api_rtcp.cc
│   │   │   └── test_api_video.cc
│   │   └── testFec
│   │   ├── OWNERS
│   │   ├── average_residual_loss_xor_codes.h
│   │   ├── test_fec.cc
│   │   ├── test_fec.gypi
│   │   └── test_packet_masks_metrics.cc
│   ├── rtp_rtcp.vcxproj
│   ├── rtp_rtcp.vcxproj.filters
│   ├── stFail
│   ├── utility
│   │   ├── BUILD.gn
│   │   ├── DEPS
│   │   ├── OWNERS
│   │   ├── include
│   │   │   ├── audio_frame_operations.h
│   │   │   ├── file_player.h
│   │   │   ├── file_recorder.h
│   │   │   ├── helpers_android.h
│   │   │   ├── helpers_ios.h
│   │   │   ├── jvm_android.h
│   │   │   ├── mock
│   │   │   │   └── mock_process_thread.h
│   │   │   └── process_thread.h
│   │   ├── source
│   │   │   ├── OWNERS
│   │   │   ├── audio_frame_operations.cc
│   │   │   ├── audio_frame_operations_unittest.cc
│   │   │   ├── coder.cc
│   │   │   ├── coder.h
│   │   │   ├── file_player_impl.cc
│   │   │   ├── file_player_impl.h
│   │   │   ├── file_player_unittests.cc
│   │   │   ├── file_recorder_impl.cc
│   │   │   ├── file_recorder_impl.h
│   │   │   ├── helpers_android.cc
│   │   │   ├── helpers_ios.mm
│   │   │   ├── jvm_android.cc
│   │   │   ├── process_thread_impl.cc
│   │   │   ├── process_thread_impl.h
│   │   │   └── process_thread_impl_unittest.cc
│   │   └── utility.gypi
│   ├── video_capture
│   │   ├── BUILD.gn
│   │   ├── DEPS
│   │   ├── OWNERS
│   │   ├── device_info_impl.cc
│   │   ├── device_info_impl.h
│   │   ├── external
│   │   │   ├── device_info_external.cc
│   │   │   └── video_capture_external.cc
│   │   ├── ios
│   │   │   ├── device_info_ios.h
│   │   │   ├── device_info_ios.mm
│   │   │   ├── device_info_ios_objc.h
│   │   │   ├── device_info_ios_objc.mm
│   │   │   ├── rtc_video_capture_ios_objc.h
│   │   │   ├── rtc_video_capture_ios_objc.mm
│   │   │   ├── video_capture_ios.h
│   │   │   └── video_capture_ios.mm
│   │   ├── linux
│   │   │   ├── device_info_linux.cc
│   │   │   ├── device_info_linux.h
│   │   │   ├── video_capture_linux.cc
│   │   │   └── video_capture_linux.h
│   │   ├── mac
│   │   │   ├── qtkit
│   │   │   │   ├── video_capture_qtkit.h
│   │   │   │   ├── video_capture_qtkit.mm
│   │   │   │   ├── video_capture_qtkit_info.h
│   │   │   │   ├── video_capture_qtkit_info.mm
│   │   │   │   ├── video_capture_qtkit_info_objc.h
│   │   │   │   ├── video_capture_qtkit_info_objc.mm
│   │   │   │   ├── video_capture_qtkit_objc.h
│   │   │   │   ├── video_capture_qtkit_objc.mm
│   │   │   │   └── video_capture_qtkit_utility.h
│   │   │   └── video_capture_mac.mm
│   │   ├── test
│   │   │   ├── video_capture_main_mac.mm
│   │   │   └── video_capture_unittest.cc
│   │   ├── video_capture.gypi
│   │   ├── video_capture.h
│   │   ├── video_capture_config.h
│   │   ├── video_capture_defines.h
│   │   ├── video_capture_delay.h
│   │   ├── video_capture_factory.cc
│   │   ├── video_capture_factory.h
│   │   ├── video_capture_impl.cc
│   │   ├── video_capture_impl.h
│   │   ├── video_capture_tests.isolate
│   │   └── 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_capture.vcxproj
│   ├── video_capture.vcxproj.filters
│   ├── video_capture_module.vcxproj
│   ├── video_capture_module.vcxproj.filters
│   ├── video_capture_module_internal_impl.vcxproj
│   ├── video_capture_module_internal_impl.vcxproj.filters
│   ├── video_coding
│   │   ├── BUILD.gn
│   │   ├── DEPS
│   │   ├── OWNERS
│   │   ├── codec_database.cc
│   │   ├── codec_database.h
│   │   ├── codec_timer.cc
│   │   ├── codec_timer.h
│   │   ├── codecs
│   │   │   ├── OWNERS
│   │   │   ├── h264
│   │   │   │   ├── h264.cc
│   │   │   │   ├── h264.gypi
│   │   │   │   ├── h264_decoder_impl.cc
│   │   │   │   ├── h264_decoder_impl.h
│   │   │   │   ├── h264_encoder_impl.cc
│   │   │   │   ├── h264_encoder_impl.h
│   │   │   │   ├── h264_objc.mm
│   │   │   │   ├── h264_video_toolbox_decoder.cc
│   │   │   │   ├── h264_video_toolbox_decoder.h
│   │   │   │   ├── h264_video_toolbox_encoder.cc
│   │   │   │   ├── h264_video_toolbox_encoder.h
│   │   │   │   ├── h264_video_toolbox_nalu.cc
│   │   │   │   ├── h264_video_toolbox_nalu.h
│   │   │   │   ├── h264_video_toolbox_nalu_unittest.cc
│   │   │   │   └── include
│   │   │   │   └── h264.h
│   │   │   ├── i420
│   │   │   │   ├── OWNERS
│   │   │   │   ├── i420.cc
│   │   │   │   ├── i420.gypi
│   │   │   │   └── include
│   │   │   │   └── i420.h
│   │   │   ├── interface
│   │   │   │   ├── mock
│   │   │   │   │   └── mock_video_codec_interface.h
│   │   │   │   ├── video_codec_interface.h
│   │   │   │   └── video_error_codes.h
│   │   │   ├── test
│   │   │   │   ├── OWNERS
│   │   │   │   ├── mock
│   │   │   │   │   └── mock_packet_manipulator.h
│   │   │   │   ├── packet_manipulator.cc
│   │   │   │   ├── packet_manipulator.h
│   │   │   │   ├── packet_manipulator_unittest.cc
│   │   │   │   ├── predictive_packet_manipulator.cc
│   │   │   │   ├── predictive_packet_manipulator.h
│   │   │   │   ├── stats.cc
│   │   │   │   ├── stats.h
│   │   │   │   ├── stats_unittest.cc
│   │   │   │   ├── video_codecs_test_framework.gypi
│   │   │   │   ├── videoprocessor.cc
│   │   │   │   ├── videoprocessor.h
│   │   │   │   ├── videoprocessor_integrationtest.cc
│   │   │   │   └── videoprocessor_unittest.cc
│   │   │   ├── tools
│   │   │   │   ├── OWNERS
│   │   │   │   ├── video_codecs_tools.gypi
│   │   │   │   └── video_quality_measurement.cc
│   │   │   ├── vp8
│   │   │   │   ├── OWNERS
│   │   │   │   ├── default_temporal_layers.cc
│   │   │   │   ├── default_temporal_layers.h
│   │   │   │   ├── default_temporal_layers_unittest.cc
│   │   │   │   ├── include
│   │   │   │   │   ├── vp8.h
│   │   │   │   │   └── vp8_common_types.h
│   │   │   │   ├── realtime_temporal_layers.cc
│   │   │   │   ├── reference_picture_selection.cc
│   │   │   │   ├── reference_picture_selection.h
│   │   │   │   ├── reference_picture_selection_unittest.cc
│   │   │   │   ├── screenshare_layers.cc
│   │   │   │   ├── screenshare_layers.h
│   │   │   │   ├── screenshare_layers_unittest.cc
│   │   │   │   ├── simulcast_encoder_adapter.cc
│   │   │   │   ├── simulcast_encoder_adapter.h
│   │   │   │   ├── simulcast_encoder_adapter_unittest.cc
│   │   │   │   ├── simulcast_unittest.cc
│   │   │   │   ├── simulcast_unittest.h
│   │   │   │   ├── stFail
│   │   │   │   ├── temporal_layers.h
│   │   │   │   ├── test
│   │   │   │   │   └── vp8_impl_unittest.cc
│   │   │   │   ├── vp8.gyp
│   │   │   │   ├── vp8.sln
│   │   │   │   ├── vp8_impl.cc
│   │   │   │   ├── vp8_impl.h
│   │   │   │   ├── vp8_sequence_coder.cc
│   │   │   │   ├── webrtc_vp8.vcxproj
│   │   │   │   └── webrtc_vp8.vcxproj.filters
│   │   │   └── vp9
│   │   │   ├── include
│   │   │   │   └── vp9.h
│   │   │   ├── screenshare_layers.cc
│   │   │   ├── screenshare_layers.h
│   │   │   ├── vp9.gyp
│   │   │   ├── vp9.sln
│   │   │   ├── vp9_frame_buffer_pool.cc
│   │   │   ├── vp9_frame_buffer_pool.h
│   │   │   ├── vp9_impl.cc
│   │   │   ├── vp9_impl.h
│   │   │   ├── vp9_noop.cc
│   │   │   ├── vp9_screenshare_layers_unittest.cc
│   │   │   ├── webrtc_vp9.vcxproj
│   │   │   └── webrtc_vp9.vcxproj.filters
│   │   ├── decoding_state.cc
│   │   ├── decoding_state.h
│   │   ├── decoding_state_unittest.cc
│   │   ├── encoded_frame.cc
│   │   ├── encoded_frame.h
│   │   ├── fec_tables_xor.h
│   │   ├── frame_buffer.cc
│   │   ├── frame_buffer.h
│   │   ├── frame_buffer2.cc
│   │   ├── frame_buffer2.h
│   │   ├── frame_buffer2_unittest.cc
│   │   ├── frame_object.cc
│   │   ├── frame_object.h
│   │   ├── generic_decoder.cc
│   │   ├── generic_decoder.h
│   │   ├── generic_encoder.cc
│   │   ├── generic_encoder.h
│   │   ├── histogram.cc
│   │   ├── histogram.h
│   │   ├── histogram_unittest.cc
│   │   ├── include
│   │   │   ├── mock
│   │   │   │   ├── mock_vcm_callbacks.h
│   │   │   │   └── mock_video_codec_interface.h
│   │   │   ├── video_codec_interface.h
│   │   │   ├── video_coding.h
│   │   │   ├── video_coding_defines.h
│   │   │   └── video_error_codes.h
│   │   ├── inter_frame_delay.cc
│   │   ├── inter_frame_delay.h
│   │   ├── internal_defines.h
│   │   ├── jitter_buffer.cc
│   │   ├── jitter_buffer.h
│   │   ├── jitter_buffer_common.h
│   │   ├── jitter_buffer_unittest.cc
│   │   ├── jitter_estimator.cc
│   │   ├── jitter_estimator.h
│   │   ├── jitter_estimator_tests.cc
│   │   ├── media_opt_util.cc
│   │   ├── media_opt_util.h
│   │   ├── media_optimization.cc
│   │   ├── media_optimization.h
│   │   ├── media_optimization_unittest.cc
│   │   ├── nack_fec_tables.h
│   │   ├── nack_module.cc
│   │   ├── nack_module.h
│   │   ├── nack_module_unittest.cc
│   │   ├── packet.cc
│   │   ├── packet.h
│   │   ├── packet_buffer.cc
│   │   ├── packet_buffer.h
│   │   ├── percentile_filter.cc
│   │   ├── percentile_filter.h
│   │   ├── percentile_filter_unittest.cc
│   │   ├── protection_bitrate_calculator.cc
│   │   ├── protection_bitrate_calculator.h
│   │   ├── protection_bitrate_calculator_unittest.cc
│   │   ├── receiver.cc
│   │   ├── receiver.h
│   │   ├── receiver_unittest.cc
│   │   ├── rtp_frame_reference_finder.cc
│   │   ├── rtp_frame_reference_finder.h
│   │   ├── rtt_filter.cc
│   │   ├── rtt_filter.h
│   │   ├── sequence_number_util.h
│   │   ├── sequence_number_util_unittest.cc
│   │   ├── session_info.cc
│   │   ├── session_info.h
│   │   ├── session_info_unittest.cc
│   │   ├── test
│   │   │   ├── plotJitterEstimate.m
│   │   │   ├── plotReceiveTrace.m
│   │   │   ├── plotTimingTest.m
│   │   │   ├── receiver_tests.h
│   │   │   ├── rtp_player.cc
│   │   │   ├── rtp_player.h
│   │   │   ├── stream_generator.cc
│   │   │   ├── stream_generator.h
│   │   │   ├── subfigure.m
│   │   │   ├── test_util.cc
│   │   │   ├── test_util.h
│   │   │   ├── tester_main.cc
│   │   │   ├── vcm_payload_sink_factory.cc
│   │   │   ├── vcm_payload_sink_factory.h
│   │   │   └── video_rtp_play.cc
│   │   ├── timestamp_map.cc
│   │   ├── timestamp_map.h
│   │   ├── timing.cc
│   │   ├── timing.h
│   │   ├── timing_unittest.cc
│   │   ├── utility
│   │   │   ├── OWNERS
│   │   │   ├── frame_dropper.cc
│   │   │   ├── frame_dropper.h
│   │   │   ├── frame_dropper_unittest.cc
│   │   │   ├── h264_bitstream_parser.cc
│   │   │   ├── h264_bitstream_parser.h
│   │   │   ├── h264_bitstream_parser_unittest.cc
│   │   │   ├── ivf_file_writer.cc
│   │   │   ├── ivf_file_writer.h
│   │   │   ├── ivf_file_writer_unittest.cc
│   │   │   ├── mock
│   │   │   │   └── mock_frame_dropper.h
│   │   │   ├── moving_average.h
│   │   │   ├── qp_parser.cc
│   │   │   ├── qp_parser.h
│   │   │   ├── quality_scaler.cc
│   │   │   ├── quality_scaler.h
│   │   │   ├── quality_scaler_unittest.cc
│   │   │   ├── stFail
│   │   │   ├── video_coding_utility.gyp
│   │   │   ├── video_coding_utility.sln
│   │   │   ├── video_coding_utility.vcxproj
│   │   │   ├── vp8_header_parser.cc
│   │   │   └── vp8_header_parser.h
│   │   ├── video_coding.gypi
│   │   ├── video_coding_impl.cc
│   │   ├── video_coding_impl.h
│   │   ├── video_coding_robustness_unittest.cc
│   │   ├── video_coding_test.gypi
│   │   ├── 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
│   │   ├── frame_preprocessor.cc
│   │   ├── frame_preprocessor.h
│   │   ├── include
│   │   │   ├── video_processing.h
│   │   │   └── video_processing_defines.h
│   │   ├── spatial_resampler.cc
│   │   ├── spatial_resampler.h
│   │   ├── test
│   │   │   ├── createTable.m
│   │   │   ├── denoiser_test.cc
│   │   │   ├── readYUV420file.m
│   │   │   ├── video_processing_unittest.cc
│   │   │   ├── video_processing_unittest.h
│   │   │   └── writeYUV420file.m
│   │   ├── util
│   │   │   ├── denoiser_filter.cc
│   │   │   ├── denoiser_filter.h
│   │   │   ├── denoiser_filter_c.cc
│   │   │   ├── denoiser_filter_c.h
│   │   │   ├── denoiser_filter_neon.cc
│   │   │   ├── denoiser_filter_neon.h
│   │   │   ├── denoiser_filter_sse2.cc
│   │   │   ├── denoiser_filter_sse2.h
│   │   │   ├── noise_estimation.cc
│   │   │   ├── noise_estimation.h
│   │   │   ├── skin_detection.cc
│   │   │   └── skin_detection.h
│   │   ├── video_decimator.cc
│   │   ├── video_decimator.h
│   │   ├── video_denoiser.cc
│   │   ├── video_denoiser.h
│   │   ├── video_processing.gypi
│   │   ├── video_processing_impl.cc
│   │   └── video_processing_impl.h
│   ├── video_processing.vcxproj
│   ├── video_processing.vcxproj.filters
│   ├── video_processing_sse2.vcxproj
│   ├── video_processing_sse2.vcxproj.filters
│   ├── video_render_tests.isolate
│   ├── webrtc_h264.vcxproj
│   ├── webrtc_h264.vcxproj.filters
│   ├── webrtc_i420.vcxproj
│   ├── webrtc_i420.vcxproj.filters
│   ├── webrtc_opus.vcxproj
│   ├── webrtc_opus.vcxproj.filters
│   ├── webrtc_utility.vcxproj
│   ├── webrtc_utility.vcxproj.filters
│   ├── webrtc_video_coding.vcxproj
│   └── webrtc_video_coding.vcxproj.filters
├── p2p
│   ├── BUILD.gn
│   ├── DEPS
│   ├── OWNERS
│   ├── base
│   │   ├── asyncstuntcpsocket.cc
│   │   ├── asyncstuntcpsocket.h
│   │   ├── asyncstuntcpsocket_unittest.cc
│   │   ├── basicpacketsocketfactory.cc
│   │   ├── basicpacketsocketfactory.h
│   │   ├── candidate.h
│   │   ├── candidatepairinterface.h
│   │   ├── common.h
│   │   ├── dtlstransport.h
│   │   ├── dtlstransportchannel.cc
│   │   ├── dtlstransportchannel.h
│   │   ├── dtlstransportchannel_unittest.cc
│   │   ├── fakeportallocator.h
│   │   ├── faketransportcontroller.h
│   │   ├── p2pconstants.cc
│   │   ├── p2pconstants.h
│   │   ├── p2ptransport.cc
│   │   ├── p2ptransport.h
│   │   ├── p2ptransportchannel.cc
│   │   ├── p2ptransportchannel.h
│   │   ├── p2ptransportchannel_unittest.cc
│   │   ├── packetsocketfactory.h
│   │   ├── port.cc
│   │   ├── port.h
│   │   ├── port_unittest.cc
│   │   ├── portallocator.cc
│   │   ├── portallocator.h
│   │   ├── portallocator_unittest.cc
│   │   ├── portinterface.h
│   │   ├── pseudotcp.cc
│   │   ├── pseudotcp.h
│   │   ├── pseudotcp_unittest.cc
│   │   ├── relayport.cc
│   │   ├── relayport.h
│   │   ├── relayport_unittest.cc
│   │   ├── relayserver.cc
│   │   ├── relayserver.h
│   │   ├── relayserver_unittest.cc
│   │   ├── session.cc
│   │   ├── session.h
│   │   ├── sessiondescription.cc
│   │   ├── sessiondescription.h
│   │   ├── sessionid.h
│   │   ├── stun.cc
│   │   ├── stun.h
│   │   ├── stun_unittest.cc
│   │   ├── stunport.cc
│   │   ├── stunport.h
│   │   ├── stunport_unittest.cc
│   │   ├── stunrequest.cc
│   │   ├── stunrequest.h
│   │   ├── stunrequest_unittest.cc
│   │   ├── stunserver.cc
│   │   ├── stunserver.h
│   │   ├── stunserver_unittest.cc
│   │   ├── tcpport.cc
│   │   ├── tcpport.h
│   │   ├── tcpport_unittest.cc
│   │   ├── testrelayserver.h
│   │   ├── teststunserver.h
│   │   ├── testturnserver.h
│   │   ├── transport.cc
│   │   ├── transport.h
│   │   ├── transport_unittest.cc
│   │   ├── transportchannel.cc
│   │   ├── transportchannel.h
│   │   ├── transportchannelimpl.h
│   │   ├── transportcontroller.cc
│   │   ├── transportcontroller.h
│   │   ├── transportcontroller_unittest.cc
│   │   ├── transportdescription.cc
│   │   ├── transportdescription.h
│   │   ├── transportdescriptionfactory.cc
│   │   ├── transportdescriptionfactory.h
│   │   ├── transportdescriptionfactory_unittest.cc
│   │   ├── transportinfo.h
│   │   ├── turnport.cc
│   │   ├── turnport.h
│   │   ├── turnport_unittest.cc
│   │   ├── turnserver.cc
│   │   ├── turnserver.h
│   │   └── udpport.h
│   ├── client
│   │   ├── basicportallocator.cc
│   │   ├── basicportallocator.h
│   │   ├── basicportallocator_unittest.cc
│   │   ├── httpportallocator.cc
│   │   ├── httpportallocator.h
│   │   ├── socketmonitor.cc
│   │   └── socketmonitor.h
│   ├── libstunprober.vcxproj
│   ├── libstunprober.vcxproj.filters
│   ├── p2p.gyp
│   ├── p2p.sln
│   ├── quic
│   │   ├── quicconnectionhelper.cc
│   │   ├── quicconnectionhelper.h
│   │   ├── quicconnectionhelper_unittest.cc
│   │   ├── quicsession.cc
│   │   ├── quicsession.h
│   │   ├── quicsession_unittest.cc
│   │   ├── quictransport.cc
│   │   ├── quictransport.h
│   │   ├── quictransport_unittest.cc
│   │   ├── quictransportchannel.cc
│   │   ├── quictransportchannel.h
│   │   ├── quictransportchannel_unittest.cc
│   │   ├── reliablequicstream.cc
│   │   ├── reliablequicstream.h
│   │   └── reliablequicstream_unittest.cc
│   ├── rtc_p2p.vcxproj
│   ├── rtc_p2p.vcxproj.filters
│   ├── stFail
│   ├── stun_prober.vcxproj
│   ├── stun_prober.vcxproj.filters
│   └── stunprober
│   ├── main.cc
│   ├── stunprober.cc
│   ├── stunprober.h
│   └── stunprober_unittest.cc
├── pc
│   ├── BUILD.gn
│   ├── DEPS
│   ├── OWNERS
│   ├── audiomonitor.cc
│   ├── audiomonitor.h
│   ├── bundlefilter.cc
│   ├── bundlefilter.h
│   ├── bundlefilter_unittest.cc
│   ├── channel.cc
│   ├── channel.h
│   ├── channel_unittest.cc
│   ├── channelmanager.cc
│   ├── channelmanager.h
│   ├── channelmanager_unittest.cc
│   ├── currentspeakermonitor.cc
│   ├── currentspeakermonitor.h
│   ├── currentspeakermonitor_unittest.cc
│   ├── externalhmac.cc
│   ├── externalhmac.h
│   ├── mediamonitor.cc
│   ├── mediamonitor.h
│   ├── mediasession.cc
│   ├── mediasession.h
│   ├── mediasession_unittest.cc
│   ├── mediasink.h
│   ├── pc.gyp
│   ├── pc.sln
│   ├── rtc_pc.vcxproj
│   ├── rtc_pc_unittests.isolate
│   ├── rtcpmuxfilter.cc
│   ├── rtcpmuxfilter.h
│   ├── rtcpmuxfilter_unittest.cc
│   ├── srtpfilter.cc
│   ├── srtpfilter.h
│   ├── srtpfilter_unittest.cc
│   ├── stFail
│   ├── typewrapping.h.pump
│   └── voicechannel.h
├── peerconnection_client.vcxproj
├── peerconnection_client.vcxproj.filters
├── peerconnection_server.vcxproj
├── peerconnection_server.vcxproj.filters
├── relayserver.vcxproj
├── relayserver.vcxproj.filters
├── rtc_event_log.vcxproj
├── rtc_event_log.vcxproj.filters
├── rtc_event_log_parser.vcxproj
├── rtc_event_log_parser.vcxproj.filters
├── rtc_event_log_proto.props
├── rtc_event_log_proto.targets
├── rtc_event_log_proto.vcxproj
├── rtc_event_log_proto.vcxproj.filters
├── rtc_event_log_proto.xml
├── rtc_unittests.isolate
├── rtc_unittests_apk.isolate
├── sdk
│   ├── BUILD.gn
│   ├── DEPS
│   ├── OWNERS
│   ├── objc
│   │   ├── Framework
│   │   │   ├── Classes
│   │   │   │   ├── NSString+StdString.h
│   │   │   │   ├── NSString+StdString.mm
│   │   │   │   ├── RTCAVFoundationVideoSource+Private.h
│   │   │   │   ├── RTCAVFoundationVideoSource.mm
│   │   │   │   ├── RTCAudioTrack+Private.h
│   │   │   │   ├── RTCAudioTrack.mm
│   │   │   │   ├── RTCCameraPreviewView.m
│   │   │   │   ├── RTCConfiguration+Private.h
│   │   │   │   ├── RTCConfiguration.mm
│   │   │   │   ├── RTCDataChannel+Private.h
│   │   │   │   ├── RTCDataChannel.mm
│   │   │   │   ├── RTCDataChannelConfiguration+Private.h
│   │   │   │   ├── RTCDataChannelConfiguration.mm
│   │   │   │   ├── RTCDispatcher+Private.h
│   │   │   │   ├── RTCDispatcher.m
│   │   │   │   ├── RTCEAGLVideoView.m
│   │   │   │   ├── RTCFieldTrials.mm
│   │   │   │   ├── RTCFileLogger.mm
│   │   │   │   ├── RTCIceCandidate+Private.h
│   │   │   │   ├── RTCIceCandidate.mm
│   │   │   │   ├── RTCIceServer+Private.h
│   │   │   │   ├── RTCIceServer.mm
│   │   │   │   ├── RTCLogging.mm
│   │   │   │   ├── RTCMediaConstraints+Private.h
│   │   │   │   ├── RTCMediaConstraints.mm
│   │   │   │   ├── RTCMediaStream+Private.h
│   │   │   │   ├── RTCMediaStream.mm
│   │   │   │   ├── RTCMediaStreamTrack+Private.h
│   │   │   │   ├── RTCMediaStreamTrack.mm
│   │   │   │   ├── RTCMetrics.mm
│   │   │   │   ├── RTCMetricsSampleInfo+Private.h
│   │   │   │   ├── RTCMetricsSampleInfo.mm
│   │   │   │   ├── RTCNSGLVideoView.m
│   │   │   │   ├── RTCOpenGLVideoRenderer.h
│   │   │   │   ├── RTCOpenGLVideoRenderer.mm
│   │   │   │   ├── RTCPeerConnection+DataChannel.mm
│   │   │   │   ├── RTCPeerConnection+Private.h
│   │   │   │   ├── RTCPeerConnection+Stats.mm
│   │   │   │   ├── RTCPeerConnection.mm
│   │   │   │   ├── RTCPeerConnectionFactory+Private.h
│   │   │   │   ├── RTCPeerConnectionFactory.mm
│   │   │   │   ├── RTCRtpCodecParameters+Private.h
│   │   │   │   ├── RTCRtpCodecParameters.mm
│   │   │   │   ├── RTCRtpEncodingParameters+Private.h
│   │   │   │   ├── RTCRtpEncodingParameters.mm
│   │   │   │   ├── RTCRtpParameters+Private.h
│   │   │   │   ├── RTCRtpParameters.mm
│   │   │   │   ├── RTCRtpReceiver+Private.h
│   │   │   │   ├── RTCRtpReceiver.mm
│   │   │   │   ├── RTCRtpSender+Private.h
│   │   │   │   ├── RTCRtpSender.mm
│   │   │   │   ├── RTCSSLAdapter.mm
│   │   │   │   ├── RTCSessionDescription+Private.h
│   │   │   │   ├── RTCSessionDescription.mm
│   │   │   │   ├── RTCStatsReport+Private.h
│   │   │   │   ├── RTCStatsReport.mm
│   │   │   │   ├── RTCTracing.mm
│   │   │   │   ├── RTCUIApplication.h
│   │   │   │   ├── RTCUIApplication.mm
│   │   │   │   ├── RTCVideoFrame+Private.h
│   │   │   │   ├── RTCVideoFrame.mm
│   │   │   │   ├── RTCVideoRendererAdapter+Private.h
│   │   │   │   ├── RTCVideoRendererAdapter.h
│   │   │   │   ├── RTCVideoRendererAdapter.mm
│   │   │   │   ├── RTCVideoSource+Private.h
│   │   │   │   ├── RTCVideoSource.mm
│   │   │   │   ├── RTCVideoTrack+Private.h
│   │   │   │   ├── RTCVideoTrack.mm
│   │   │   │   ├── avfoundationvideocapturer.h
│   │   │   │   └── avfoundationvideocapturer.mm
│   │   │   ├── Headers
│   │   │   │   └── WebRTC
│   │   │   │   ├── RTCAVFoundationVideoSource.h
│   │   │   │   ├── RTCAudioTrack.h
│   │   │   │   ├── RTCCameraPreviewView.h
│   │   │   │   ├── RTCConfiguration.h
│   │   │   │   ├── RTCDataChannel.h
│   │   │   │   ├── RTCDataChannelConfiguration.h
│   │   │   │   ├── RTCDispatcher.h
│   │   │   │   ├── RTCEAGLVideoView.h
│   │   │   │   ├── RTCFieldTrials.h
│   │   │   │   ├── RTCFileLogger.h
│   │   │   │   ├── RTCIceCandidate.h
│   │   │   │   ├── RTCIceServer.h
│   │   │   │   ├── RTCLogging.h
│   │   │   │   ├── RTCMacros.h
│   │   │   │   ├── RTCMediaConstraints.h
│   │   │   │   ├── RTCMediaStream.h
│   │   │   │   ├── RTCMediaStreamTrack.h
│   │   │   │   ├── RTCMetrics.h
│   │   │   │   ├── RTCMetricsSampleInfo.h
│   │   │   │   ├── RTCNSGLVideoView.h
│   │   │   │   ├── RTCPeerConnection.h
│   │   │   │   ├── RTCPeerConnectionFactory.h
│   │   │   │   ├── RTCRtpCodecParameters.h
│   │   │   │   ├── RTCRtpEncodingParameters.h
│   │   │   │   ├── RTCRtpParameters.h
│   │   │   │   ├── RTCRtpReceiver.h
│   │   │   │   ├── RTCRtpSender.h
│   │   │   │   ├── RTCSSLAdapter.h
│   │   │   │   ├── RTCSessionDescription.h
│   │   │   │   ├── RTCStatsReport.h
│   │   │   │   ├── RTCTracing.h
│   │   │   │   ├── RTCVideoFrame.h
│   │   │   │   ├── RTCVideoRenderer.h
│   │   │   │   ├── RTCVideoSource.h
│   │   │   │   ├── RTCVideoTrack.h
│   │   │   │   └── WebRTC.h
│   │   │   ├── Info.plist
│   │   │   ├── Modules
│   │   │   │   └── module.modulemap
│   │   │   └── UnitTests
│   │   │   ├── RTCConfigurationTest.mm
│   │   │   ├── RTCDataChannelConfigurationTest.mm
│   │   │   ├── RTCIceCandidateTest.mm
│   │   │   ├── RTCIceServerTest.mm
│   │   │   ├── RTCMediaConstraintsTest.mm
│   │   │   └── RTCSessionDescriptionTest.mm
│   │   ├── WebRTC-Prefix.pch
│   │   └── WebRTC.podspec
│   ├── sdk.gyp
│   └── sdk.gypi
├── stFail
├── stunserver.vcxproj
├── stunserver.vcxproj.filters
├── supplement.gypi
├── system_wrappers
│   ├── BUILD.gn
│   ├── DEPS
│   ├── OWNERS
│   ├── cpu_features_chromium.gyp
│   ├── cpu_features_webrtc.gyp
│   ├── field_trial_default.vcxproj
│   ├── field_trial_default.vcxproj.filters
│   ├── include
│   │   ├── aligned_array.h
│   │   ├── aligned_malloc.h
│   │   ├── asm_defines.h
│   │   ├── atomic32.h
│   │   ├── clock.h
│   │   ├── compile_assert_c.h
│   │   ├── cpu_features_wrapper.h
│   │   ├── cpu_info.h
│   │   ├── critical_section_wrapper.h
│   │   ├── data_log.h
│   │   ├── data_log_c.h
│   │   ├── data_log_impl.h
│   │   ├── event_wrapper.h
│   │   ├── field_trial.h
│   │   ├── field_trial_default.h
│   │   ├── file_wrapper.h
│   │   ├── fix_interlocked_exchange_pointer_win.h
│   │   ├── logcat_trace_context.h
│   │   ├── logging.h
│   │   ├── metrics.h
│   │   ├── metrics_default.h
│   │   ├── ntp_time.h
│   │   ├── rtp_to_ntp.h
│   │   ├── rw_lock_wrapper.h
│   │   ├── sleep.h
│   │   ├── sort.h
│   │   ├── static_instance.h
│   │   ├── stl_util.h
│   │   ├── stringize_macros.h
│   │   ├── timestamp_extrapolator.h
│   │   ├── trace.h
│   │   └── utf_util_win.h
│   ├── metrics_default.vcxproj
│   ├── metrics_default.vcxproj.filters
│   ├── source
│   │   ├── OWNERS
│   │   ├── aligned_array_unittest.cc
│   │   ├── aligned_malloc.cc
│   │   ├── aligned_malloc_unittest.cc
│   │   ├── atomic32_darwin.cc
│   │   ├── atomic32_non_darwin_unix.cc
│   │   ├── atomic32_win.cc
│   │   ├── clock.cc
│   │   ├── clock_unittest.cc
│   │   ├── condition_variable_event_win.cc
│   │   ├── condition_variable_event_win.h
│   │   ├── condition_variable_unittest.cc
│   │   ├── cpu_features.cc
│   │   ├── cpu_features_android.c
│   │   ├── cpu_features_linux.c
│   │   ├── cpu_info.cc
│   │   ├── critical_section_unittest.cc
│   │   ├── data_log.cc
│   │   ├── data_log_c.cc
│   │   ├── data_log_c_helpers_unittest.c
│   │   ├── data_log_c_helpers_unittest.h
│   │   ├── data_log_helpers_unittest.cc
│   │   ├── data_log_no_op.cc
│   │   ├── data_log_unittest.cc
│   │   ├── data_log_unittest_disabled.cc
│   │   ├── event.cc
│   │   ├── event_timer_posix.cc
│   │   ├── event_timer_posix.h
│   │   ├── event_timer_posix_unittest.cc
│   │   ├── event_timer_win.cc
│   │   ├── event_timer_win.h
│   │   ├── field_trial_default.cc
│   │   ├── file_impl.cc
│   │   ├── logcat_trace_context.cc
│   │   ├── logging.cc
│   │   ├── logging_unittest.cc
│   │   ├── metrics_default.cc
│   │   ├── metrics_default_unittest.cc
│   │   ├── metrics_unittest.cc
│   │   ├── ntp_time_unittest.cc
│   │   ├── rtp_to_ntp.cc
│   │   ├── rtp_to_ntp_unittest.cc
│   │   ├── rw_lock.cc
│   │   ├── rw_lock_posix.cc
│   │   ├── rw_lock_posix.h
│   │   ├── rw_lock_win.cc
│   │   ├── rw_lock_win.h
│   │   ├── rw_lock_winxp_win.cc
│   │   ├── rw_lock_winxp_win.h
│   │   ├── sleep.cc
│   │   ├── sort.cc
│   │   ├── spreadsortlib
│   │   │   ├── constants.hpp
│   │   │   └── spreadsort.hpp
│   │   ├── stl_util_unittest.cc
│   │   ├── stringize_macros_unittest.cc
│   │   ├── timestamp_extrapolator.cc
│   │   ├── trace_impl.cc
│   │   ├── trace_impl.h
│   │   ├── trace_posix.cc
│   │   ├── trace_posix.h
│   │   ├── trace_win.cc
│   │   └── trace_win.h
│   ├── stFail
│   ├── system_wrappers.gyp
│   ├── system_wrappers.sln
│   ├── system_wrappers.vcxproj
│   ├── system_wrappers.vcxproj.filters
│   ├── system_wrappers_default.vcxproj
│   ├── system_wrappers_tests.gyp
│   ├── system_wrappers_unittests.isolate
│   ├── system_wrappers_unittests_apk.isolate
│   └── test
│   └── TestSort
│   └── TestSort.cc
├── test
│   ├── BUILD.gn
│   ├── DEPS
│   ├── OWNERS
│   ├── call_test.cc
│   ├── call_test.h
│   ├── channel_transport
│   │   ├── OWNERS
│   │   ├── channel_transport.cc
│   │   ├── channel_transport.h
│   │   ├── traffic_control_win.cc
│   │   ├── traffic_control_win.h
│   │   ├── udp_socket2_manager_win.cc
│   │   ├── udp_socket2_manager_win.h
│   │   ├── udp_socket2_win.cc
│   │   ├── udp_socket2_win.h
│   │   ├── udp_socket_manager_posix.cc
│   │   ├── udp_socket_manager_posix.h
│   │   ├── udp_socket_manager_unittest.cc
│   │   ├── udp_socket_manager_wrapper.cc
│   │   ├── udp_socket_manager_wrapper.h
│   │   ├── udp_socket_posix.cc
│   │   ├── udp_socket_posix.h
│   │   ├── udp_socket_wrapper.cc
│   │   ├── udp_socket_wrapper.h
│   │   ├── udp_socket_wrapper_unittest.cc
│   │   ├── udp_transport.h
│   │   ├── udp_transport_impl.cc
│   │   ├── udp_transport_impl.h
│   │   └── udp_transport_unittest.cc
│   ├── common_unittest.cc
│   ├── configurable_frame_size_encoder.cc
│   ├── configurable_frame_size_encoder.h
│   ├── constants.cc
│   ├── constants.h
│   ├── direct_transport.cc
│   ├── direct_transport.h
│   ├── drifting_clock.cc
│   ├── drifting_clock.h
│   ├── encoder_settings.cc
│   ├── encoder_settings.h
│   ├── fake_audio_device.cc
│   ├── fake_audio_device.h
│   ├── fake_decoder.cc
│   ├── fake_decoder.h
│   ├── fake_encoder.cc
│   ├── fake_encoder.h
│   ├── fake_network_pipe.cc
│   ├── fake_network_pipe.h
│   ├── fake_network_pipe_unittest.cc
│   ├── fake_texture_frame.cc
│   ├── fake_texture_frame.h
│   ├── field_trial.cc
│   ├── field_trial.h
│   ├── frame_generator.cc
│   ├── frame_generator.h
│   ├── frame_generator_capturer.cc
│   ├── frame_generator_capturer.h
│   ├── frame_generator_unittest.cc
│   ├── frame_utils.cc
│   ├── frame_utils.h
│   ├── fuzzers
│   │   ├── BUILD.gn
│   │   ├── DEPS
│   │   ├── OWNERS
│   │   ├── audio_decoder_fuzzer.cc
│   │   ├── audio_decoder_fuzzer.h
│   │   ├── audio_decoder_ilbc_fuzzer.cc
│   │   ├── audio_decoder_isac_fuzzer.cc
│   │   ├── audio_decoder_isac_incoming_packet_fuzzer.cc
│   │   ├── audio_decoder_isacfix_fuzzer.cc
│   │   ├── audio_decoder_opus_fuzzer.cc
│   │   ├── audio_decoder_opus_redundant_fuzzer.cc
│   │   ├── h264_depacketizer_fuzzer.cc
│   │   ├── producer_fec_fuzzer.cc
│   │   ├── rtcp_receiver_fuzzer.cc
│   │   ├── rtp_packet_fuzzer.cc
│   │   ├── vp8_depacketizer_fuzzer.cc
│   │   ├── vp8_qp_parser_fuzzer.cc
│   │   ├── vp9_depacketizer_fuzzer.cc
│   │   └── webrtc_fuzzer_main.cc
│   ├── gl
│   │   ├── gl_renderer.cc
│   │   └── gl_renderer.h
│   ├── layer_filtering_transport.cc
│   ├── layer_filtering_transport.h
│   ├── linux
│   │   ├── glx_renderer.cc
│   │   ├── glx_renderer.h
│   │   └── video_renderer_linux.cc
│   ├── mac
│   │   ├── run_test.mm
│   │   ├── video_renderer_mac.h
│   │   └── video_renderer_mac.mm
│   ├── metrics.gyp
│   ├── mock_transport.h
│   ├── mock_voe_channel_proxy.h
│   ├── mock_voice_engine.h
│   ├── null_platform_renderer.cc
│   ├── null_transport.cc
│   ├── null_transport.h
│   ├── rtcp_packet_parser.cc
│   ├── rtcp_packet_parser.h
│   ├── rtp_file_reader.cc
│   ├── rtp_file_reader.h
│   ├── rtp_file_reader_unittest.cc
│   ├── rtp_file_writer.cc
│   ├── rtp_file_writer.h
│   ├── rtp_file_writer_unittest.cc
│   ├── rtp_rtcp_observer.h
│   ├── run_all_unittests.cc
│   ├── run_loop.cc
│   ├── run_loop.h
│   ├── run_test.cc
│   ├── run_test.h
│   ├── statistics.cc
│   ├── statistics.h
│   ├── test.gyp
│   ├── test_main.cc
│   ├── test_suite.cc
│   ├── test_suite.h
│   ├── test_support_unittests.isolate
│   ├── test_support_unittests_apk.isolate
│   ├── testsupport
│   │   ├── always_passing_unittest.cc
│   │   ├── fileutils.cc
│   │   ├── fileutils.h
│   │   ├── fileutils_unittest.cc
│   │   ├── frame_reader.cc
│   │   ├── frame_reader.h
│   │   ├── frame_reader_unittest.cc
│   │   ├── frame_writer.cc
│   │   ├── frame_writer.h
│   │   ├── frame_writer_unittest.cc
│   │   ├── iosfileutils.mm
│   │   ├── mac
│   │   │   ├── run_threaded_main_mac.h
│   │   │   └── run_threaded_main_mac.mm
│   │   ├── metrics
│   │   │   ├── video_metrics.cc
│   │   │   ├── video_metrics.h
│   │   │   └── video_metrics_unittest.cc
│   │   ├── mock
│   │   │   ├── mock_frame_reader.h
│   │   │   └── mock_frame_writer.h
│   │   ├── packet_reader.cc
│   │   ├── packet_reader.h
│   │   ├── packet_reader_unittest.cc
│   │   ├── perf_test.cc
│   │   ├── perf_test.h
│   │   ├── perf_test_unittest.cc
│   │   ├── trace_to_stderr.cc
│   │   ├── trace_to_stderr.h
│   │   └── unittest_utils.h
│   ├── vcm_capturer.cc
│   ├── vcm_capturer.h
│   ├── video_capturer.cc
│   ├── video_capturer.h
│   ├── video_renderer.cc
│   ├── video_renderer.h
│   └── win
│   ├── d3d_renderer.cc
│   ├── d3d_renderer.h
│   └── run_loop_win.cc
├── tools
│   ├── BUILD.gn
│   ├── DEPS
│   ├── OWNERS
│   ├── agc
│   │   ├── activity_metric.cc
│   │   ├── agc_harness.cc
│   │   ├── test_utils.cc
│   │   └── test_utils.h
│   ├── author_line_count.sh
│   ├── barcode_tools
│   │   ├── DEPS
│   │   ├── README
│   │   ├── barcode_decoder.py
│   │   ├── barcode_encoder.py
│   │   ├── build_zxing.py
│   │   ├── helper_functions.py
│   │   └── yuv_cropper.py
│   ├── command_line_parser.vcxproj
│   ├── compare_videos.py
│   ├── converter
│   │   ├── converter.cc
│   │   ├── converter.h
│   │   └── rgba_to_i420_converter.cc
│   ├── e2e_quality
│   │   └── audio
│   │   ├── README
│   │   ├── audio_e2e_harness.cc
│   │   ├── daemon.conf
│   │   ├── default.pa
│   │   ├── perf
│   │   └── run_audio_test.py
│   ├── force_mic_volume_max
│   │   └── force_mic_volume_max.cc
│   ├── force_mic_volume_max.vcxproj
│   ├── force_mic_volume_max.vcxproj.filters
│   ├── frame_analyzer
│   │   ├── frame_analyzer.cc
│   │   ├── video_quality_analysis.cc
│   │   ├── video_quality_analysis.h
│   │   └── video_quality_analysis_unittest.cc
│   ├── frame_analyzer.vcxproj
│   ├── frame_analyzer.vcxproj.filters
│   ├── frame_editing
│   │   ├── frame_editing.cc
│   │   ├── frame_editing_lib.cc
│   │   ├── frame_editing_lib.h
│   │   └── frame_editing_unittest.cc
│   ├── frame_editing_lib.vcxproj
│   ├── frame_editing_lib.vcxproj.filters
│   ├── frame_editor.vcxproj
│   ├── frame_editor.vcxproj.filters
│   ├── header_usage.sh
│   ├── internal_tools.gyp
│   ├── internal_tools.sln
│   ├── loopback_test
│   │   ├── OWNERS
│   │   ├── README
│   │   ├── adapter.js
│   │   ├── loopback_test.html
│   │   ├── loopback_test.js
│   │   ├── record-test.sh
│   │   ├── run-server.sh
│   │   └── stat_tracker.js
│   ├── psnr_ssim_analyzer
│   │   └── psnr_ssim_analyzer.cc
│   ├── psnr_ssim_analyzer.vcxproj
│   ├── psnr_ssim_analyzer.vcxproj.filters
│   ├── py_event_log_analyzer
│   │   ├── README
│   │   ├── misc.py
│   │   ├── misc_test.py
│   │   ├── pb_parse.py
│   │   ├── rtp_analyzer.py
│   │   └── rtp_analyzer.sh
│   ├── rgba_to_i420_converter.vcxproj
│   ├── rgba_to_i420_converter.vcxproj.filters
│   ├── rtcbot
│   │   ├── OWNERS
│   │   ├── README
│   │   ├── bot
│   │   │   ├── api.js
│   │   │   └── browser
│   │   │   ├── bot.js
│   │   │   └── index.html
│   │   ├── botmanager.js
│   │   ├── main.js
│   │   ├── 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.cc
│   ├── simple_command_line_parser.h
│   ├── simple_command_line_parser_unittest.cc
│   ├── stFail
│   ├── tools.gyp
│   ├── tools.sln
│   ├── tools_unittests.isolate
│   ├── tools_unittests_apk.isolate
│   ├── video_quality_analysis.vcxproj
│   └── video_quality_analysis.vcxproj.filters
├── transport.h
├── turnserver.vcxproj
├── turnserver.vcxproj.filters
├── typedefs.h
├── video
│   ├── BUILD.gn
│   ├── DEPS
│   ├── OWNERS
│   ├── call_stats.cc
│   ├── call_stats.h
│   ├── call_stats_unittest.cc
│   ├── encoder_state_feedback.cc
│   ├── encoder_state_feedback.h
│   ├── encoder_state_feedback_unittest.cc
│   ├── end_to_end_tests.cc
│   ├── full_stack.cc
│   ├── full_stack_plot.py
│   ├── overuse_frame_detector.cc
│   ├── overuse_frame_detector.h
│   ├── overuse_frame_detector_unittest.cc
│   ├── payload_router.cc
│   ├── payload_router.h
│   ├── payload_router_unittest.cc
│   ├── receive_statistics_proxy.cc
│   ├── receive_statistics_proxy.h
│   ├── replay.cc
│   ├── report_block_stats.cc
│   ├── report_block_stats.h
│   ├── report_block_stats_unittest.cc
│   ├── rtp_stream_receiver.cc
│   ├── rtp_stream_receiver.h
│   ├── screenshare_loopback.cc
│   ├── send_delay_stats.cc
│   ├── send_delay_stats.h
│   ├── send_delay_stats_unittest.cc
│   ├── send_statistics_proxy.cc
│   ├── send_statistics_proxy.h
│   ├── send_statistics_proxy_unittest.cc
│   ├── stats_counter.cc
│   ├── stats_counter.h
│   ├── stats_counter_unittest.cc
│   ├── stream_synchronization.cc
│   ├── stream_synchronization.h
│   ├── stream_synchronization_unittest.cc
│   ├── video_capture_input.cc
│   ├── video_capture_input.h
│   ├── video_capture_input_unittest.cc
│   ├── video_decoder.cc
│   ├── video_decoder_unittest.cc
│   ├── video_encoder.cc
│   ├── video_encoder_unittest.cc
│   ├── video_loopback.cc
│   ├── video_quality_test.cc
│   ├── video_quality_test.h
│   ├── video_receive_stream.cc
│   ├── video_receive_stream.h
│   ├── video_send_stream.cc
│   ├── video_send_stream.h
│   ├── video_send_stream_tests.cc
│   ├── video_stream_decoder.cc
│   ├── video_stream_decoder.h
│   ├── vie_encoder.cc
│   ├── vie_encoder.h
│   ├── vie_remb.cc
│   ├── vie_remb.h
│   ├── vie_remb_unittest.cc
│   ├── vie_sync_module.cc
│   ├── vie_sync_module.h
│   └── webrtc_video.gypi
├── video_decoder.h
├── video_encoder.h
├── video_engine_tests.isolate
├── video_engine_tests_apk.isolate
├── video_frame.h
├── video_receive_stream.h
├── video_send_stream.h
├── voice_engine
│   ├── BUILD.gn
│   ├── DEPS
│   ├── OWNERS
│   ├── channel.cc
│   ├── channel.h
│   ├── channel_manager.cc
│   ├── channel_manager.h
│   ├── channel_proxy.cc
│   ├── channel_proxy.h
│   ├── channel_unittest.cc
│   ├── include
│   │   ├── voe_audio_processing.h
│   │   ├── voe_base.h
│   │   ├── voe_codec.h
│   │   ├── voe_errors.h
│   │   ├── voe_external_media.h
│   │   ├── voe_file.h
│   │   ├── voe_hardware.h
│   │   ├── voe_neteq_stats.h
│   │   ├── voe_network.h
│   │   ├── voe_rtp_rtcp.h
│   │   ├── voe_video_sync.h
│   │   └── voe_volume_control.h
│   ├── level_indicator.cc
│   ├── level_indicator.h
│   ├── mock
│   │   └── mock_voe_observer.h
│   ├── monitor_module.cc
│   ├── monitor_module.h
│   ├── network_predictor.cc
│   ├── network_predictor.h
│   ├── network_predictor_unittest.cc
│   ├── output_mixer.cc
│   ├── output_mixer.h
│   ├── shared_data.cc
│   ├── shared_data.h
│   ├── stFail
│   ├── statistics.cc
│   ├── statistics.h
│   ├── test
│   │   ├── auto_test
│   │   │   ├── automated_mode.cc
│   │   │   ├── automated_mode.h
│   │   │   ├── extended
│   │   │   │   ├── agc_config_test.cc
│   │   │   │   └── ec_metrics_test.cc
│   │   │   ├── fakes
│   │   │   │   ├── conference_transport.cc
│   │   │   │   ├── conference_transport.h
│   │   │   │   ├── fake_media_process.h
│   │   │   │   ├── loudest_filter.cc
│   │   │   │   └── loudest_filter.h
│   │   │   ├── fixtures
│   │   │   │   ├── after_initialization_fixture.cc
│   │   │   │   ├── after_initialization_fixture.h
│   │   │   │   ├── after_streaming_fixture.cc
│   │   │   │   ├── after_streaming_fixture.h
│   │   │   │   ├── before_initialization_fixture.cc
│   │   │   │   ├── before_initialization_fixture.h
│   │   │   │   ├── before_streaming_fixture.cc
│   │   │   │   └── before_streaming_fixture.h
│   │   │   ├── resource_manager.cc
│   │   │   ├── resource_manager.h
│   │   │   ├── standard
│   │   │   │   ├── audio_processing_test.cc
│   │   │   │   ├── codec_before_streaming_test.cc
│   │   │   │   ├── codec_test.cc
│   │   │   │   ├── dtmf_test.cc
│   │   │   │   ├── external_media_test.cc
│   │   │   │   ├── file_before_streaming_test.cc
│   │   │   │   ├── file_test.cc
│   │   │   │   ├── hardware_before_initializing_test.cc
│   │   │   │   ├── hardware_before_streaming_test.cc
│   │   │   │   ├── hardware_test.cc
│   │   │   │   ├── mixing_test.cc
│   │   │   │   ├── neteq_stats_test.cc
│   │   │   │   ├── rtp_rtcp_before_streaming_test.cc
│   │   │   │   ├── rtp_rtcp_extensions.cc
│   │   │   │   ├── rtp_rtcp_test.cc
│   │   │   │   ├── video_sync_test.cc
│   │   │   │   ├── voe_base_misc_test.cc
│   │   │   │   └── volume_test.cc
│   │   │   ├── voe_conference_test.cc
│   │   │   ├── voe_cpu_test.cc
│   │   │   ├── voe_cpu_test.h
│   │   │   ├── voe_output_test.cc
│   │   │   ├── voe_standard_test.cc
│   │   │   ├── voe_standard_test.h
│   │   │   ├── voe_stress_test.cc
│   │   │   ├── voe_stress_test.h
│   │   │   ├── voe_test_common.h
│   │   │   ├── voe_test_defines.h
│   │   │   └── voe_test_interface.h
│   │   └── cmd_test
│   │   └── voe_cmd_test.cc
│   ├── transmit_mixer.cc
│   ├── transmit_mixer.h
│   ├── transmit_mixer_unittest.cc
│   ├── utility.cc
│   ├── utility.h
│   ├── utility_unittest.cc
│   ├── voe_audio_processing_impl.cc
│   ├── voe_audio_processing_impl.h
│   ├── voe_audio_processing_unittest.cc
│   ├── voe_auto_test.isolate
│   ├── voe_base_impl.cc
│   ├── voe_base_impl.h
│   ├── voe_base_unittest.cc
│   ├── voe_codec_impl.cc
│   ├── voe_codec_impl.h
│   ├── voe_codec_unittest.cc
│   ├── voe_external_media_impl.cc
│   ├── voe_external_media_impl.h
│   ├── voe_file_impl.cc
│   ├── voe_file_impl.h
│   ├── voe_hardware_impl.cc
│   ├── voe_hardware_impl.h
│   ├── voe_neteq_stats_impl.cc
│   ├── voe_neteq_stats_impl.h
│   ├── voe_network_impl.cc
│   ├── voe_network_impl.h
│   ├── voe_network_unittest.cc
│   ├── voe_rtp_rtcp_impl.cc
│   ├── voe_rtp_rtcp_impl.h
│   ├── voe_video_sync_impl.cc
│   ├── voe_video_sync_impl.h
│   ├── voe_volume_control_impl.cc
│   ├── voe_volume_control_impl.h
│   ├── voice_engine.gyp
│   ├── voice_engine.sln
│   ├── voice_engine.vcxproj
│   ├── voice_engine.vcxproj.filters
│   ├── voice_engine_defines.h
│   ├── voice_engine_fixture.cc
│   ├── voice_engine_fixture.h
│   ├── voice_engine_impl.cc
│   ├── voice_engine_impl.h
│   ├── voice_engine_unittests.isolate
│   └── voice_engine_unittests_apk.isolate
├── webrtc.gyp
├── webrtc.sln
├── webrtc.vcxproj
├── webrtc.vcxproj.filters
├── webrtc_all.vcxproj
├── webrtc_common.vcxproj
├── webrtc_examples.gyp
├── webrtc_examples.sln
├── webrtc_nonparallel_tests.isolate
├── webrtc_nonparallel_tests_apk.isolate
├── webrtc_perf_tests.isolate
├── webrtc_perf_tests_apk.isolate
└── webrtc_tests.gypi

342 directories, 4233 files

标签:

实例下载地址

WebRTC学习之三:录音和播放

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警