实例介绍
使用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
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论