├── .gitignore ├── LICENSE ├── README.md ├── android_project ├── .gitignore └── AudioMixer │ ├── .gitignore │ ├── CMakeLists.txt │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ ├── debug │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── piasy │ │ │ └── audio_mixer │ │ │ ├── MainActivity.java │ │ │ └── MyApp.java │ └── res │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── github │ │ └── piasy │ │ └── audio_mixer │ │ ├── AudioBuffer.java │ │ ├── AudioFileDecoder.java │ │ ├── AudioFileSource.java │ │ ├── AudioMixer.java │ │ └── AudioResampler.java │ └── jni │ └── audio_mixer_jni.cpp ├── build.gradle ├── djinni ├── audio_mixer.djinni └── support-lib │ ├── djinni_common.hpp │ ├── java │ └── com │ │ └── dropbox │ │ └── djinni │ │ └── NativeLibLoader.java │ ├── jni │ ├── Marshal.hpp │ ├── djinni_main.cpp │ ├── djinni_support.cpp │ └── djinni_support.hpp │ ├── objc │ ├── DJICppWrapperCache+Private.h │ ├── DJIError.h │ ├── DJIError.mm │ ├── DJIMarshal+Private.h │ ├── DJIObjcWrapperCache+Private.h │ └── DJIProxyCaches.mm │ ├── proxy_cache_impl.hpp │ └── proxy_cache_interface.hpp ├── extract_libs.sh ├── generated_src ├── cpp │ ├── audio_mixer_api.cpp │ ├── audio_mixer_api.hpp │ ├── mixer_config.hpp │ ├── mixer_source.cpp │ └── mixer_source.hpp ├── java │ └── com │ │ └── github │ │ └── piasy │ │ └── audio_mixer │ │ ├── AudioMixerApi.java │ │ ├── MixerConfig.java │ │ └── MixerSource.java ├── jni │ ├── NativeAudioMixerApi.cpp │ ├── NativeAudioMixerApi.hpp │ ├── NativeMixerConfig.cpp │ ├── NativeMixerConfig.hpp │ ├── NativeMixerSource.cpp │ └── NativeMixerSource.hpp └── objc │ ├── PYAAudioMixerApi+Private.h │ ├── PYAAudioMixerApi+Private.mm │ ├── PYAAudioMixerApi.h │ ├── PYAAudioMixerApi.mm │ ├── PYAMixerConfig+Private.h │ ├── PYAMixerConfig+Private.mm │ ├── PYAMixerConfig.h │ ├── PYAMixerConfig.mm │ ├── PYAMixerSource+Private.h │ ├── PYAMixerSource+Private.mm │ ├── PYAMixerSource.h │ └── PYAMixerSource.mm ├── gradle.properties ├── gradle ├── bintray.gradle ├── publish-maven-central.gradle ├── simple_lib_android_maven.gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── ios_project ├── .gitignore ├── AudioMixer.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── Info.plist ├── example │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── AudioMixerTestController.h │ ├── AudioMixerTestController.mm │ ├── Info.plist │ ├── LaunchScreen.storyboard │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── objc │ ├── AudioMixer.h │ ├── PYAAudioBuffer.h │ ├── PYAAudioBuffer.mm │ ├── PYAAudioMixer.h │ └── PYAAudioMixer.mm ├── project.yml └── setup_xcode_project.sh ├── libs ├── ffmpeg │ └── include │ │ ├── libavcodec │ │ ├── avcodec.h │ │ ├── avdct.h │ │ ├── avfft.h │ │ ├── d3d11va.h │ │ ├── dirac.h │ │ ├── dv_profile.h │ │ ├── dxva2.h │ │ ├── jni.h │ │ ├── mediacodec.h │ │ ├── qsv.h │ │ ├── vaapi.h │ │ ├── vda.h │ │ ├── vdpau.h │ │ ├── version.h │ │ ├── videotoolbox.h │ │ ├── vorbis_parser.h │ │ └── xvmc.h │ │ ├── libavdevice │ │ ├── avdevice.h │ │ └── version.h │ │ ├── libavfilter │ │ ├── avfilter.h │ │ ├── avfiltergraph.h │ │ ├── buffersink.h │ │ ├── buffersrc.h │ │ └── version.h │ │ ├── libavformat │ │ ├── avformat.h │ │ ├── avio.h │ │ └── version.h │ │ ├── libavutil │ │ ├── adler32.h │ │ ├── aes.h │ │ ├── aes_ctr.h │ │ ├── attributes.h │ │ ├── audio_fifo.h │ │ ├── avassert.h │ │ ├── avconfig.h │ │ ├── avstring.h │ │ ├── avutil.h │ │ ├── base64.h │ │ ├── blowfish.h │ │ ├── bprint.h │ │ ├── bswap.h │ │ ├── buffer.h │ │ ├── camellia.h │ │ ├── cast5.h │ │ ├── channel_layout.h │ │ ├── common.h │ │ ├── cpu.h │ │ ├── crc.h │ │ ├── des.h │ │ ├── dict.h │ │ ├── display.h │ │ ├── downmix_info.h │ │ ├── error.h │ │ ├── eval.h │ │ ├── ffversion.h │ │ ├── fifo.h │ │ ├── file.h │ │ ├── frame.h │ │ ├── hash.h │ │ ├── hmac.h │ │ ├── hwcontext.h │ │ ├── hwcontext_cuda.h │ │ ├── hwcontext_d3d11va.h │ │ ├── hwcontext_drm.h │ │ ├── hwcontext_dxva2.h │ │ ├── hwcontext_qsv.h │ │ ├── hwcontext_vaapi.h │ │ ├── hwcontext_vdpau.h │ │ ├── hwcontext_videotoolbox.h │ │ ├── imgutils.h │ │ ├── intfloat.h │ │ ├── intreadwrite.h │ │ ├── lfg.h │ │ ├── log.h │ │ ├── lzo.h │ │ ├── macros.h │ │ ├── mastering_display_metadata.h │ │ ├── mathematics.h │ │ ├── md5.h │ │ ├── mem.h │ │ ├── motion_vector.h │ │ ├── murmur3.h │ │ ├── opt.h │ │ ├── parseutils.h │ │ ├── pixdesc.h │ │ ├── pixelutils.h │ │ ├── pixfmt.h │ │ ├── random_seed.h │ │ ├── rational.h │ │ ├── rc4.h │ │ ├── replaygain.h │ │ ├── ripemd.h │ │ ├── samplefmt.h │ │ ├── sha.h │ │ ├── sha512.h │ │ ├── spherical.h │ │ ├── stereo3d.h │ │ ├── tea.h │ │ ├── threadmessage.h │ │ ├── time.h │ │ ├── timecode.h │ │ ├── timestamp.h │ │ ├── tree.h │ │ ├── twofish.h │ │ ├── version.h │ │ └── xtea.h │ │ ├── libswresample │ │ ├── swresample.h │ │ └── version.h │ │ └── libswscale │ │ ├── swscale.h │ │ └── version.h └── webrtc │ └── include │ ├── api │ ├── array_view.h │ ├── audio │ │ ├── audio_frame.h │ │ ├── audio_mixer.h │ │ ├── echo_canceller3_config.h │ │ ├── echo_canceller3_factory.h │ │ └── echo_control.h │ ├── audio_codecs │ │ ├── L16 │ │ │ ├── audio_decoder_L16.h │ │ │ └── audio_encoder_L16.h │ │ ├── audio_codec_pair_id.h │ │ ├── audio_decoder.h │ │ ├── audio_decoder_factory.h │ │ ├── audio_decoder_factory_template.h │ │ ├── audio_encoder.h │ │ ├── audio_encoder_factory.h │ │ ├── audio_encoder_factory_template.h │ │ ├── audio_format.h │ │ ├── builtin_audio_decoder_factory.h │ │ ├── builtin_audio_encoder_factory.h │ │ ├── g711 │ │ │ ├── audio_decoder_g711.h │ │ │ └── audio_encoder_g711.h │ │ ├── g722 │ │ │ ├── audio_decoder_g722.h │ │ │ ├── audio_encoder_g722.h │ │ │ └── audio_encoder_g722_config.h │ │ ├── ilbc │ │ │ ├── audio_decoder_ilbc.h │ │ │ ├── audio_encoder_ilbc.h │ │ │ └── audio_encoder_ilbc_config.h │ │ ├── isac │ │ │ ├── audio_decoder_isac.h │ │ │ ├── audio_decoder_isac_fix.h │ │ │ ├── audio_decoder_isac_float.h │ │ │ ├── audio_encoder_isac.h │ │ │ ├── audio_encoder_isac_fix.h │ │ │ └── audio_encoder_isac_float.h │ │ └── opus │ │ │ ├── audio_decoder_opus.h │ │ │ ├── audio_encoder_opus.h │ │ │ └── audio_encoder_opus_config.h │ ├── audio_options.h │ ├── bitrate_constraints.h │ ├── call │ │ ├── audio_sink.h │ │ ├── callfactoryinterface.h │ │ └── transport.h │ ├── candidate.h │ ├── cryptoparams.h │ ├── datachannelinterface.h │ ├── dtmfsenderinterface.h │ ├── fakemetricsobserver.h │ ├── fec_controller.h │ ├── jsep.h │ ├── jsepicecandidate.h │ ├── jsepsessiondescription.h │ ├── mediaconstraintsinterface.h │ ├── mediastreaminterface.h │ ├── mediastreamproxy.h │ ├── mediastreamtrackproxy.h │ ├── mediatypes.h │ ├── notifier.h │ ├── optional.h │ ├── ortc │ │ ├── mediadescription.h │ │ ├── ortcfactoryinterface.h │ │ ├── ortcrtpreceiverinterface.h │ │ ├── ortcrtpsenderinterface.h │ │ ├── packettransportinterface.h │ │ ├── rtptransportcontrollerinterface.h │ │ ├── rtptransportinterface.h │ │ ├── sessiondescription.h │ │ ├── srtptransportinterface.h │ │ └── udptransportinterface.h │ ├── peerconnectionfactoryproxy.h │ ├── peerconnectioninterface.h │ ├── peerconnectionproxy.h │ ├── proxy.h │ ├── refcountedbase.h │ ├── rtcerror.h │ ├── rtceventlogoutput.h │ ├── rtp_headers.h │ ├── rtpparameters.h │ ├── rtpreceiverinterface.h │ ├── rtpsenderinterface.h │ ├── rtptransceiverinterface.h │ ├── setremotedescriptionobserverinterface.h │ ├── stats │ │ ├── rtcstats.h │ │ ├── rtcstats_objects.h │ │ ├── rtcstatscollectorcallback.h │ │ └── rtcstatsreport.h │ ├── statstypes.h │ ├── test │ │ ├── audioproc_float.h │ │ ├── create_simulcast_test_fixture.h │ │ ├── create_video_quality_test_fixture.h │ │ ├── create_videocodec_test_fixture.h │ │ ├── fakeconstraints.h │ │ ├── mock_audio_mixer.h │ │ ├── mock_rtpreceiver.h │ │ ├── mock_rtpsender.h │ │ ├── mock_video_decoder_factory.h │ │ ├── mock_video_encoder_factory.h │ │ ├── simulated_network.h │ │ ├── simulcast_test_fixture.h │ │ ├── video_quality_test_fixture.h │ │ ├── videocodec_test_fixture.h │ │ └── videocodec_test_stats.h │ ├── transport │ │ ├── bitrate_settings.h │ │ ├── network_control.h │ │ ├── network_types.h │ │ └── test │ │ │ ├── mock_network_control.h │ │ │ └── network_control_tester.h │ ├── turncustomizer.h │ ├── umametrics.h │ ├── units │ │ ├── data_rate.h │ │ ├── data_size.h │ │ ├── time_delta.h │ │ └── timestamp.h │ ├── video │ │ ├── encoded_frame.h │ │ ├── i010_buffer.h │ │ ├── i420_buffer.h │ │ ├── video_bitrate_allocation.h │ │ ├── video_content_type.h │ │ ├── video_frame.h │ │ ├── video_frame_buffer.h │ │ ├── video_rotation.h │ │ ├── video_sink_interface.h │ │ ├── video_source_interface.h │ │ ├── video_stream_decoder.h │ │ ├── video_stream_decoder_create.h │ │ ├── video_stream_encoder_interface.h │ │ └── video_timing.h │ ├── video_codecs │ │ ├── builtin_video_decoder_factory.h │ │ ├── builtin_video_encoder_factory.h │ │ ├── sdp_video_format.h │ │ ├── video_codec.h │ │ ├── video_decoder.h │ │ ├── video_decoder_factory.h │ │ ├── video_decoder_software_fallback_wrapper.h │ │ ├── video_encoder.h │ │ ├── video_encoder_config.h │ │ ├── video_encoder_factory.h │ │ └── video_encoder_software_fallback_wrapper.h │ ├── videosourceinterface.h │ └── videosourceproxy.h │ ├── audio │ ├── audio_level.h │ ├── audio_receive_stream.h │ ├── audio_send_stream.h │ ├── audio_state.h │ ├── audio_transport_impl.h │ ├── channel.h │ ├── channel_proxy.h │ ├── conversion.h │ ├── mock_voe_channel_proxy.h │ ├── null_audio_poller.h │ ├── remix_resample.h │ ├── test │ │ ├── audio_bwe_integration_test.h │ │ └── audio_end_to_end_test.h │ ├── time_interval.h │ ├── transport_feedback_packet_loss_tracker.h │ └── utility │ │ └── audio_frame_operations.h │ ├── base │ ├── allocator │ │ ├── allocator_check.h │ │ ├── allocator_extension.h │ │ ├── allocator_interception_mac.h │ │ ├── allocator_shim.h │ │ ├── allocator_shim_default_dispatch_to_mac_zoned_malloc.h │ │ ├── allocator_shim_internals.h │ │ ├── allocator_shim_override_cpp_symbols.h │ │ ├── allocator_shim_override_glibc_weak_symbols.h │ │ ├── allocator_shim_override_libc_symbols.h │ │ ├── allocator_shim_override_linker_wrapped_symbols.h │ │ ├── allocator_shim_override_mac_symbols.h │ │ ├── allocator_shim_override_ucrt_symbols_win.h │ │ ├── malloc_zone_functions_mac.h │ │ ├── partition_allocator │ │ │ ├── address_space_randomization.h │ │ │ ├── oom.h │ │ │ ├── page_allocator.h │ │ │ ├── page_allocator_constants.h │ │ │ ├── page_allocator_internal.h │ │ │ ├── page_allocator_internals_posix.h │ │ │ ├── page_allocator_internals_win.h │ │ │ ├── partition_alloc.h │ │ │ ├── partition_alloc_constants.h │ │ │ ├── partition_bucket.h │ │ │ ├── partition_cookie.h │ │ │ ├── partition_direct_map_extent.h │ │ │ ├── partition_freelist_entry.h │ │ │ ├── partition_oom.h │ │ │ ├── partition_page.h │ │ │ ├── partition_root_base.h │ │ │ └── spin_lock.h │ │ └── winheap_stubs_win.h │ ├── android │ │ ├── android_hardware_buffer_abi.h │ │ ├── android_hardware_buffer_compat.h │ │ ├── apk_assets.h │ │ ├── application_status_listener.h │ │ ├── base_jni_onload.h │ │ ├── build_info.h │ │ ├── callback_android.h │ │ ├── child_process_binding_types.h │ │ ├── content_uri_utils.h │ │ ├── event_log.h │ │ ├── java_exception_reporter.h │ │ ├── java_handler_thread.h │ │ ├── java_runtime.h │ │ ├── jni_android.h │ │ ├── jni_array.h │ │ ├── jni_generator │ │ │ ├── jni_generator_helper.h │ │ │ └── sample_for_tests.h │ │ ├── jni_int_wrapper.h │ │ ├── jni_registrar.h │ │ ├── jni_string.h │ │ ├── jni_utils.h │ │ ├── jni_weak_ref.h │ │ ├── library_loader │ │ │ ├── anchor_functions.h │ │ │ ├── library_load_from_apk_status_codes.h │ │ │ ├── library_loader_hooks.h │ │ │ └── library_prefetcher.h │ │ ├── locale_utils.h │ │ ├── memory_pressure_listener_android.h │ │ ├── orderfile │ │ │ └── orderfile_instrumentation.h │ │ ├── path_utils.h │ │ ├── scoped_hardware_buffer_handle.h │ │ ├── scoped_java_ref.h │ │ ├── sys_utils.h │ │ ├── throw_uncaught_exception.h │ │ ├── timezone_utils.h │ │ └── unguessable_token_android.h │ ├── at_exit.h │ ├── atomic_ref_count.h │ ├── atomic_sequence_num.h │ ├── atomicops.h │ ├── atomicops_internals_atomicword_compat.h │ ├── atomicops_internals_portable.h │ ├── atomicops_internals_x86_msvc.h │ ├── auto_reset.h │ ├── barrier_closure.h │ ├── base64.h │ ├── base64url.h │ ├── base_export.h │ ├── base_paths.h │ ├── base_paths_android.h │ ├── base_paths_fuchsia.h │ ├── base_paths_mac.h │ ├── base_paths_posix.h │ ├── base_paths_win.h │ ├── base_switches.h │ ├── big_endian.h │ ├── bind.h │ ├── bind_helpers.h │ ├── bind_internal.h │ ├── bit_cast.h │ ├── bits.h │ ├── build_time.h │ ├── callback.h │ ├── callback_forward.h │ ├── callback_helpers.h │ ├── callback_internal.h │ ├── callback_list.h │ ├── cancelable_callback.h │ ├── command_line.h │ ├── compiler_specific.h │ ├── component_export.h │ ├── containers │ │ ├── adapters.h │ │ ├── circular_deque.h │ │ ├── flat_map.h │ │ ├── flat_set.h │ │ ├── flat_tree.h │ │ ├── hash_tables.h │ │ ├── id_map.h │ │ ├── linked_list.h │ │ ├── mru_cache.h │ │ ├── queue.h │ │ ├── ring_buffer.h │ │ ├── small_map.h │ │ ├── span.h │ │ ├── stack.h │ │ ├── stack_container.h │ │ ├── unique_ptr_adapters.h │ │ └── vector_buffer.h │ ├── cpu.h │ ├── critical_closure.h │ ├── debug │ │ ├── activity_analyzer.h │ │ ├── activity_tracker.h │ │ ├── alias.h │ │ ├── asan_invalid_access.h │ │ ├── close_handle_hook_win.h │ │ ├── crash_logging.h │ │ ├── debugger.h │ │ ├── dump_without_crashing.h │ │ ├── elf_reader_linux.h │ │ ├── gdi_debug_util_win.h │ │ ├── leak_annotations.h │ │ ├── leak_tracker.h │ │ ├── proc_maps_linux.h │ │ ├── profiler.h │ │ ├── stack_trace.h │ │ ├── task_annotator.h │ │ └── thread_heap_usage_tracker.h │ ├── deferred_sequenced_task_runner.h │ ├── environment.h │ ├── export_template.h │ ├── feature_list.h │ ├── file_descriptor_posix.h │ ├── file_descriptor_store.h │ ├── file_version_info.h │ ├── file_version_info_mac.h │ ├── file_version_info_win.h │ ├── files │ │ ├── dir_reader_fallback.h │ │ ├── dir_reader_linux.h │ │ ├── dir_reader_posix.h │ │ ├── file.h │ │ ├── file_descriptor_watcher_posix.h │ │ ├── file_enumerator.h │ │ ├── file_path.h │ │ ├── file_path_watcher.h │ │ ├── file_path_watcher_fsevents.h │ │ ├── file_path_watcher_kqueue.h │ │ ├── file_proxy.h │ │ ├── file_tracing.h │ │ ├── file_util.h │ │ ├── important_file_writer.h │ │ ├── memory_mapped_file.h │ │ ├── platform_file.h │ │ ├── scoped_file.h │ │ └── scoped_temp_dir.h │ ├── format_macros.h │ ├── fuchsia │ │ ├── async_dispatcher.h │ │ ├── component_context.h │ │ ├── default_job.h │ │ ├── fidl_interface_request.h │ │ ├── file_utils.h │ │ ├── fuchsia_logging.h │ │ ├── scoped_service_binding.h │ │ ├── scoped_zx_handle.h │ │ └── service_directory.h │ ├── gtest_prod_util.h │ ├── guid.h │ ├── hash.h │ ├── i18n │ │ ├── base_i18n_export.h │ │ ├── base_i18n_switches.h │ │ ├── bidi_line_iterator.h │ │ ├── break_iterator.h │ │ ├── case_conversion.h │ │ ├── char_iterator.h │ │ ├── character_encoding.h │ │ ├── encoding_detection.h │ │ ├── file_util_icu.h │ │ ├── i18n_constants.h │ │ ├── icu_string_conversions.h │ │ ├── icu_util.h │ │ ├── message_formatter.h │ │ ├── number_formatting.h │ │ ├── rtl.h │ │ ├── streaming_utf8_validator.h │ │ ├── string_compare.h │ │ ├── string_search.h │ │ ├── time_formatting.h │ │ ├── timezone.h │ │ ├── unicodestring.h │ │ └── utf8_validator_tables.h │ ├── ios │ │ ├── block_types.h │ │ ├── crb_protocol_observers.h │ │ ├── device_util.h │ │ ├── ios_util.h │ │ ├── ns_error_util.h │ │ ├── scoped_critical_action.h │ │ └── weak_nsobject.h │ ├── json │ │ ├── json_file_value_serializer.h │ │ ├── json_parser.h │ │ ├── json_reader.h │ │ ├── json_string_value_serializer.h │ │ ├── json_value_converter.h │ │ ├── json_writer.h │ │ └── string_escape.h │ ├── lazy_instance.h │ ├── lazy_instance_helpers.h │ ├── linux_util.h │ ├── location.h │ ├── logging.h │ ├── logging_win.h │ ├── mac │ │ ├── authorization_util.h │ │ ├── availability.h │ │ ├── bundle_locations.h │ │ ├── call_with_eh_frame.h │ │ ├── dispatch_source_mach.h │ │ ├── foundation_util.h │ │ ├── launch_services_util.h │ │ ├── launchd.h │ │ ├── mac_logging.h │ │ ├── mac_util.h │ │ ├── mach_logging.h │ │ ├── mach_port_broker.h │ │ ├── mach_port_util.h │ │ ├── objc_release_properties.h │ │ ├── os_crash_dumps.h │ │ ├── scoped_aedesc.h │ │ ├── scoped_authorizationref.h │ │ ├── scoped_block.h │ │ ├── scoped_cffiledescriptorref.h │ │ ├── scoped_cftyperef.h │ │ ├── scoped_dispatch_object.h │ │ ├── scoped_ionotificationportref.h │ │ ├── scoped_ioobject.h │ │ ├── scoped_ioplugininterface.h │ │ ├── scoped_launch_data.h │ │ ├── scoped_mach_port.h │ │ ├── scoped_mach_vm.h │ │ ├── scoped_nsautorelease_pool.h │ │ ├── scoped_nsobject.h │ │ ├── scoped_objc_class_swizzler.h │ │ ├── scoped_sending_event.h │ │ ├── scoped_typeref.h │ │ └── sdk_forward_declarations.h │ ├── macros.h │ ├── md5.h │ ├── memory │ │ ├── aligned_memory.h │ │ ├── discardable_memory.h │ │ ├── discardable_memory_allocator.h │ │ ├── discardable_shared_memory.h │ │ ├── free_deleter.h │ │ ├── linked_ptr.h │ │ ├── memory_coordinator_client.h │ │ ├── memory_coordinator_client_registry.h │ │ ├── memory_coordinator_proxy.h │ │ ├── memory_pressure_listener.h │ │ ├── memory_pressure_monitor.h │ │ ├── memory_pressure_monitor_chromeos.h │ │ ├── memory_pressure_monitor_mac.h │ │ ├── memory_pressure_monitor_win.h │ │ ├── platform_shared_memory_region.h │ │ ├── protected_memory.h │ │ ├── protected_memory_cfi.h │ │ ├── ptr_util.h │ │ ├── raw_scoped_refptr_mismatch_checker.h │ │ ├── read_only_shared_memory_region.h │ │ ├── ref_counted.h │ │ ├── ref_counted_delete_on_sequence.h │ │ ├── ref_counted_memory.h │ │ ├── scoped_policy.h │ │ ├── scoped_refptr.h │ │ ├── shared_memory.h │ │ ├── shared_memory_handle.h │ │ ├── shared_memory_helper.h │ │ ├── shared_memory_mapping.h │ │ ├── shared_memory_tracker.h │ │ ├── singleton.h │ │ ├── unsafe_shared_memory_region.h │ │ ├── weak_ptr.h │ │ └── writable_shared_memory_region.h │ ├── message_loop │ │ ├── incoming_task_queue.h │ │ ├── message_loop.h │ │ ├── message_loop_current.h │ │ ├── message_loop_task_runner.h │ │ ├── message_pump.h │ │ ├── message_pump_android.h │ │ ├── message_pump_default.h │ │ ├── message_pump_for_io.h │ │ ├── message_pump_for_ui.h │ │ ├── message_pump_fuchsia.h │ │ ├── message_pump_glib.h │ │ ├── message_pump_io_ios.h │ │ ├── message_pump_libevent.h │ │ ├── message_pump_mac.h │ │ ├── message_pump_win.h │ │ ├── timer_slack.h │ │ └── watchable_io_message_pump_posix.h │ ├── metrics │ │ ├── bucket_ranges.h │ │ ├── dummy_histogram.h │ │ ├── field_trial.h │ │ ├── field_trial_param_associator.h │ │ ├── field_trial_params.h │ │ ├── histogram.h │ │ ├── histogram_base.h │ │ ├── histogram_delta_serialization.h │ │ ├── histogram_flattener.h │ │ ├── histogram_functions.h │ │ ├── histogram_macros.h │ │ ├── histogram_macros_internal.h │ │ ├── histogram_macros_local.h │ │ ├── histogram_samples.h │ │ ├── histogram_snapshot_manager.h │ │ ├── metrics_hashes.h │ │ ├── persistent_histogram_allocator.h │ │ ├── persistent_histogram_storage.h │ │ ├── persistent_memory_allocator.h │ │ ├── persistent_sample_map.h │ │ ├── record_histogram_checker.h │ │ ├── sample_map.h │ │ ├── sample_vector.h │ │ ├── single_sample_metrics.h │ │ ├── sparse_histogram.h │ │ ├── statistics_recorder.h │ │ ├── user_metrics.h │ │ └── user_metrics_action.h │ ├── native_library.h │ ├── nix │ │ ├── mime_util_xdg.h │ │ └── xdg_util.h │ ├── no_destructor.h │ ├── numerics │ │ ├── checked_math.h │ │ ├── checked_math_impl.h │ │ ├── clamped_math.h │ │ ├── clamped_math_impl.h │ │ ├── math_constants.h │ │ ├── ranges.h │ │ ├── safe_conversions.h │ │ ├── safe_conversions_arm_impl.h │ │ ├── safe_conversions_impl.h │ │ ├── safe_math.h │ │ ├── safe_math_arm_impl.h │ │ ├── safe_math_clang_gcc_impl.h │ │ └── safe_math_shared_impl.h │ ├── observer_list.h │ ├── observer_list_threadsafe.h │ ├── optional.h │ ├── os_compat_android.h │ ├── os_compat_nacl.h │ ├── path_service.h │ ├── pending_task.h │ ├── pickle.h │ ├── posix │ │ ├── eintr_wrapper.h │ │ ├── file_descriptor_shuffle.h │ │ ├── global_descriptors.h │ │ ├── safe_strerror.h │ │ └── unix_domain_socket.h │ ├── post_task_and_reply_with_result_internal.h │ ├── power_monitor │ │ ├── power_monitor.h │ │ ├── power_monitor_device_source.h │ │ ├── power_monitor_source.h │ │ └── power_observer.h │ ├── process │ │ ├── internal_aix.h │ │ ├── internal_linux.h │ │ ├── kill.h │ │ ├── launch.h │ │ ├── memory.h │ │ ├── memory_unittest_mac.h │ │ ├── port_provider_mac.h │ │ ├── process.h │ │ ├── process_handle.h │ │ ├── process_info.h │ │ ├── process_iterator.h │ │ ├── process_metrics.h │ │ └── process_metrics_iocounters.h │ ├── profiler │ │ ├── native_stack_sampler.h │ │ ├── stack_sampling_profiler.h │ │ └── win32_stack_frame_unwinder.h │ ├── rand_util.h │ ├── run_loop.h │ ├── sampling_heap_profiler │ │ └── sampling_heap_profiler.h │ ├── scoped_clear_errno.h │ ├── scoped_generic.h │ ├── scoped_native_library.h │ ├── scoped_observer.h │ ├── sequence_checker.h │ ├── sequence_checker_impl.h │ ├── sequence_token.h │ ├── sequenced_task_runner.h │ ├── sequenced_task_runner_helpers.h │ ├── sha1.h │ ├── single_thread_task_runner.h │ ├── stl_util.h │ ├── strings │ │ ├── char_traits.h │ │ ├── latin1_string_conversions.h │ │ ├── nullable_string16.h │ │ ├── old_utf_string_conversions.h │ │ ├── pattern.h │ │ ├── safe_sprintf.h │ │ ├── strcat.h │ │ ├── string16.h │ │ ├── string_number_conversions.h │ │ ├── string_piece.h │ │ ├── string_piece_forward.h │ │ ├── string_split.h │ │ ├── string_tokenizer.h │ │ ├── string_util.h │ │ ├── string_util_posix.h │ │ ├── string_util_win.h │ │ ├── stringize_macros.h │ │ ├── stringprintf.h │ │ ├── sys_string_conversions.h │ │ ├── utf_offset_string_conversions.h │ │ ├── utf_string_conversion_utils.h │ │ └── utf_string_conversions.h │ ├── supports_user_data.h │ ├── sync_socket.h │ ├── synchronization │ │ ├── atomic_flag.h │ │ ├── cancellation_flag.h │ │ ├── condition_variable.h │ │ ├── lock.h │ │ ├── lock_impl.h │ │ ├── spin_wait.h │ │ ├── waitable_event.h │ │ └── waitable_event_watcher.h │ ├── sys_byteorder.h │ ├── sys_info.h │ ├── sys_info_internal.h │ ├── syslog_logging.h │ ├── system_monitor │ │ └── system_monitor.h │ ├── task │ │ ├── cancelable_task_tracker.h │ │ └── sequence_manager │ │ │ ├── enqueue_order.h │ │ │ ├── intrusive_heap.h │ │ │ ├── lazily_deallocated_deque.h │ │ │ ├── lazy_now.h │ │ │ ├── moveable_auto_lock.h │ │ │ ├── sequence_manager.h │ │ │ ├── sequenced_task_source.h │ │ │ ├── task_queue.h │ │ │ ├── task_queue_impl.h │ │ │ ├── task_time_observer.h │ │ │ ├── thread_controller.h │ │ │ └── time_domain.h │ ├── task_runner.h │ ├── task_runner_util.h │ ├── task_scheduler │ │ ├── can_schedule_sequence_observer.h │ │ ├── delayed_task_manager.h │ │ ├── environment_config.h │ │ ├── initialization_util.h │ │ ├── lazy_task_runner.h │ │ ├── platform_native_worker_pool_win.h │ │ ├── post_task.h │ │ ├── priority_queue.h │ │ ├── scheduler_lock.h │ │ ├── scheduler_lock_impl.h │ │ ├── scheduler_single_thread_task_runner_manager.h │ │ ├── scheduler_worker.h │ │ ├── scheduler_worker_observer.h │ │ ├── scheduler_worker_params.h │ │ ├── scheduler_worker_pool.h │ │ ├── scheduler_worker_pool_impl.h │ │ ├── scheduler_worker_pool_params.h │ │ ├── scheduler_worker_stack.h │ │ ├── scoped_set_task_priority_for_current_thread.h │ │ ├── sequence.h │ │ ├── sequence_sort_key.h │ │ ├── service_thread.h │ │ ├── single_thread_task_runner_thread_mode.h │ │ ├── task.h │ │ ├── task_scheduler.h │ │ ├── task_scheduler_impl.h │ │ ├── task_tracker.h │ │ ├── task_tracker_posix.h │ │ ├── task_traits.h │ │ ├── task_traits_details.h │ │ ├── test_task_factory.h │ │ ├── test_utils.h │ │ └── tracked_ref.h │ ├── template_util.h │ ├── test │ │ ├── android │ │ │ ├── java_handler_thread_helpers.h │ │ │ └── url_utils.h │ │ ├── bind_test_util.h │ │ ├── copy_only_int.h │ │ ├── fontconfig_util_linux.h │ │ ├── fuzzed_data_provider.h │ │ ├── gtest_util.h │ │ ├── gtest_xml_unittest_result_printer.h │ │ ├── gtest_xml_util.h │ │ ├── icu_test_util.h │ │ ├── ios │ │ │ └── wait_util.h │ │ ├── launcher │ │ │ ├── test_launcher.h │ │ │ ├── test_launcher_nacl_nonsfi.h │ │ │ ├── test_launcher_tracer.h │ │ │ ├── test_result.h │ │ │ ├── test_results_tracker.h │ │ │ └── unit_test_launcher.h │ │ ├── malloc_wrapper.h │ │ ├── metrics │ │ │ ├── histogram_enum_reader.h │ │ │ ├── histogram_tester.h │ │ │ └── user_action_tester.h │ │ ├── mock_callback.h │ │ ├── mock_chrome_application_mac.h │ │ ├── mock_devices_changed_observer.h │ │ ├── mock_entropy_provider.h │ │ ├── mock_log.h │ │ ├── move_only_int.h │ │ ├── multiprocess_test.h │ │ ├── native_library_test_utils.h │ │ ├── null_task_runner.h │ │ ├── perf_log.h │ │ ├── perf_test_suite.h │ │ ├── perf_time_logger.h │ │ ├── power_monitor_test_base.h │ │ ├── scoped_command_line.h │ │ ├── scoped_environment_variable_override.h │ │ ├── scoped_feature_list.h │ │ ├── scoped_locale.h │ │ ├── scoped_mock_time_message_loop_task_runner.h │ │ ├── scoped_path_override.h │ │ ├── scoped_task_environment.h │ │ ├── sequenced_task_runner_test_template.h │ │ ├── simple_test_clock.h │ │ ├── simple_test_tick_clock.h │ │ ├── task_runner_test_template.h │ │ ├── test_discardable_memory_allocator.h │ │ ├── test_file_util.h │ │ ├── test_io_thread.h │ │ ├── test_listener_ios.h │ │ ├── test_message_loop.h │ │ ├── test_mock_time_task_runner.h │ │ ├── test_pending_task.h │ │ ├── test_reg_util_win.h │ │ ├── test_shared_memory_util.h │ │ ├── test_shortcut_win.h │ │ ├── test_simple_task_runner.h │ │ ├── test_suite.h │ │ ├── test_support_android.h │ │ ├── test_support_ios.h │ │ ├── test_switches.h │ │ ├── test_timeouts.h │ │ ├── test_ui_thread_android.h │ │ ├── thread_test_helper.h │ │ ├── trace_event_analyzer.h │ │ ├── trace_to_file.h │ │ └── values_test_util.h │ ├── third_party │ │ ├── dmg_fp │ │ │ └── dmg_fp.h │ │ ├── dynamic_annotations │ │ │ └── dynamic_annotations.h │ │ ├── icu │ │ │ └── icu_utf.h │ │ ├── libevent │ │ │ ├── aix │ │ │ │ ├── config.h │ │ │ │ └── event-config.h │ │ │ ├── android │ │ │ │ ├── config.h │ │ │ │ └── event-config.h │ │ │ ├── compat │ │ │ │ └── sys │ │ │ │ │ ├── _libevent_time.h │ │ │ │ │ └── queue.h │ │ │ ├── evdns.h │ │ │ ├── event-config.h │ │ │ ├── event-internal.h │ │ │ ├── event.h │ │ │ ├── evhttp.h │ │ │ ├── evrpc-internal.h │ │ │ ├── evrpc.h │ │ │ ├── evsignal.h │ │ │ ├── evutil.h │ │ │ ├── freebsd │ │ │ │ ├── config.h │ │ │ │ └── event-config.h │ │ │ ├── http-internal.h │ │ │ ├── linux │ │ │ │ ├── config.h │ │ │ │ └── event-config.h │ │ │ ├── log.h │ │ │ ├── mac │ │ │ │ ├── config.h │ │ │ │ └── event-config.h │ │ │ ├── min_heap.h │ │ │ ├── nacl_nonsfi │ │ │ │ ├── config.h │ │ │ │ └── event-config.h │ │ │ ├── solaris │ │ │ │ ├── config.h │ │ │ │ └── event-config.h │ │ │ ├── strlcpy-internal.h │ │ │ └── test │ │ │ │ └── regress.h │ │ ├── nspr │ │ │ └── prtime.h │ │ ├── symbolize │ │ │ ├── config.h │ │ │ ├── demangle.h │ │ │ ├── glog │ │ │ │ ├── logging.h │ │ │ │ └── raw_logging.h │ │ │ ├── symbolize.h │ │ │ └── utilities.h │ │ ├── valgrind │ │ │ ├── memcheck.h │ │ │ └── valgrind.h │ │ ├── xdg_mime │ │ │ ├── xdgmime.h │ │ │ ├── xdgmimealias.h │ │ │ ├── xdgmimecache.h │ │ │ ├── xdgmimeglob.h │ │ │ ├── xdgmimeicon.h │ │ │ ├── xdgmimeint.h │ │ │ ├── xdgmimemagic.h │ │ │ └── xdgmimeparent.h │ │ └── xdg_user_dirs │ │ │ └── xdg_user_dir_lookup.h │ ├── thread_annotations.h │ ├── threading │ │ ├── platform_thread.h │ │ ├── platform_thread_internal_posix.h │ │ ├── post_task_and_reply_impl.h │ │ ├── scoped_blocking_call.h │ │ ├── sequence_local_storage_map.h │ │ ├── sequence_local_storage_slot.h │ │ ├── sequenced_task_runner_handle.h │ │ ├── simple_thread.h │ │ ├── thread.h │ │ ├── thread_checker.h │ │ ├── thread_checker_impl.h │ │ ├── thread_collision_warner.h │ │ ├── thread_id_name_manager.h │ │ ├── thread_local.h │ │ ├── thread_local_storage.h │ │ ├── thread_restrictions.h │ │ ├── thread_task_runner_handle.h │ │ └── watchdog.h │ ├── time │ │ ├── clock.h │ │ ├── default_clock.h │ │ ├── default_tick_clock.h │ │ ├── tick_clock.h │ │ ├── time.h │ │ ├── time_override.h │ │ └── time_to_iso8601.h │ ├── timer │ │ ├── elapsed_timer.h │ │ ├── hi_res_timer_manager.h │ │ ├── mock_timer.h │ │ └── timer.h │ ├── trace_event │ │ ├── auto_open_close_event.h │ │ ├── blame_context.h │ │ ├── category_registry.h │ │ ├── cfi_backtrace_android.h │ │ ├── common │ │ │ └── trace_event_common.h │ │ ├── event_name_filter.h │ │ ├── heap_profiler.h │ │ ├── heap_profiler_allocation_context.h │ │ ├── heap_profiler_allocation_context_tracker.h │ │ ├── heap_profiler_event_filter.h │ │ ├── java_heap_dump_provider_android.h │ │ ├── malloc_dump_provider.h │ │ ├── memory_allocator_dump.h │ │ ├── memory_allocator_dump_guid.h │ │ ├── memory_dump_manager.h │ │ ├── memory_dump_manager_test_utils.h │ │ ├── memory_dump_provider.h │ │ ├── memory_dump_provider_info.h │ │ ├── memory_dump_request_args.h │ │ ├── memory_dump_scheduler.h │ │ ├── memory_infra_background_whitelist.h │ │ ├── memory_usage_estimator.h │ │ ├── process_memory_dump.h │ │ ├── trace_buffer.h │ │ ├── trace_category.h │ │ ├── trace_config.h │ │ ├── trace_config_category_filter.h │ │ ├── trace_config_memory_test_util.h │ │ ├── trace_event.h │ │ ├── trace_event_argument.h │ │ ├── trace_event_etw_export_win.h │ │ ├── trace_event_filter.h │ │ ├── trace_event_filter_test_utils.h │ │ ├── trace_event_impl.h │ │ ├── trace_event_memory_overhead.h │ │ ├── trace_event_system_stats_monitor.h │ │ ├── trace_log.h │ │ └── tracing_agent.h │ ├── tuple.h │ ├── unguessable_token.h │ ├── value_conversions.h │ ├── value_iterators.h │ ├── values.h │ ├── version.h │ ├── vlog.h │ └── win │ │ ├── async_operation.h │ │ ├── com_init_check_hook.h │ │ ├── com_init_util.h │ │ ├── core_winrt_util.h │ │ ├── current_module.h │ │ ├── enum_variant.h │ │ ├── event_trace_consumer.h │ │ ├── event_trace_controller.h │ │ ├── event_trace_provider.h │ │ ├── i18n.h │ │ ├── iat_patch_function.h │ │ ├── iunknown_impl.h │ │ ├── message_window.h │ │ ├── object_watcher.h │ │ ├── patch_util.h │ │ ├── pe_image.h │ │ ├── process_startup_helper.h │ │ ├── reference.h │ │ ├── registry.h │ │ ├── resource_util.h │ │ ├── scoped_bstr.h │ │ ├── scoped_co_mem.h │ │ ├── scoped_com_initializer.h │ │ ├── scoped_gdi_object.h │ │ ├── scoped_handle.h │ │ ├── scoped_handle_verifier.h │ │ ├── scoped_hdc.h │ │ ├── scoped_hglobal.h │ │ ├── scoped_hstring.h │ │ ├── scoped_process_information.h │ │ ├── scoped_propvariant.h │ │ ├── scoped_select_object.h │ │ ├── scoped_variant.h │ │ ├── scoped_windows_thread_environment.h │ │ ├── scoped_winrt_initializer.h │ │ ├── shortcut.h │ │ ├── startup_information.h │ │ ├── typed_event_handler.h │ │ ├── vector.h │ │ ├── wait_chain.h │ │ ├── win_client_metrics.h │ │ ├── win_util.h │ │ ├── windows_full.h │ │ ├── windows_types.h │ │ ├── windows_version.h │ │ ├── winrt_storage_util.h │ │ └── wrapped_window_proc.h │ ├── call │ ├── audio_receive_stream.h │ ├── audio_send_stream.h │ ├── audio_state.h │ ├── bitrate_allocator.h │ ├── call.h │ ├── call_config.h │ ├── callfactory.h │ ├── degraded_call.h │ ├── fake_network_pipe.h │ ├── flexfec_receive_stream.h │ ├── flexfec_receive_stream_impl.h │ ├── rampup_tests.h │ ├── receive_time_calculator.h │ ├── rtcp_demuxer.h │ ├── rtcp_packet_sink_interface.h │ ├── rtp_bitrate_configurator.h │ ├── rtp_config.h │ ├── rtp_demuxer.h │ ├── rtp_packet_sink_interface.h │ ├── rtp_rtcp_demuxer_helper.h │ ├── rtp_stream_receiver_controller.h │ ├── rtp_stream_receiver_controller_interface.h │ ├── rtp_transport_controller_send.h │ ├── rtp_transport_controller_send_interface.h │ ├── rtx_receive_stream.h │ ├── ssrc_binding_observer.h │ ├── syncable.h │ ├── test │ │ ├── mock_audio_send_stream.h │ │ ├── mock_bitrate_allocator.h │ │ ├── mock_rtp_packet_sink_interface.h │ │ └── mock_rtp_transport_controller_send.h │ ├── video_config.h │ ├── video_receive_stream.h │ └── video_send_stream.h │ ├── common_audio │ ├── audio_converter.h │ ├── audio_ring_buffer.h │ ├── blocker.h │ ├── channel_buffer.h │ ├── fft4g.h │ ├── fir_filter.h │ ├── fir_filter_c.h │ ├── fir_filter_factory.h │ ├── fir_filter_neon.h │ ├── fir_filter_sse.h │ ├── include │ │ └── audio_util.h │ ├── lapped_transform.h │ ├── mocks │ │ └── mock_smoothing_filter.h │ ├── real_fourier.h │ ├── real_fourier_ooura.h │ ├── resampler │ │ ├── include │ │ │ ├── push_resampler.h │ │ │ └── resampler.h │ │ ├── push_sinc_resampler.h │ │ ├── sinc_resampler.h │ │ └── sinusoidal_linear_chirp_source.h │ ├── ring_buffer.h │ ├── signal_processing │ │ ├── complex_fft_tables.h │ │ ├── dot_product_with_scale.h │ │ ├── include │ │ │ ├── real_fft.h │ │ │ ├── signal_processing_library.h │ │ │ ├── spl_inl.h │ │ │ ├── spl_inl_armv7.h │ │ │ └── spl_inl_mips.h │ │ └── resample_by_2_internal.h │ ├── smoothing_filter.h │ ├── sparse_fir_filter.h │ ├── vad │ │ ├── include │ │ │ ├── vad.h │ │ │ └── webrtc_vad.h │ │ ├── mock │ │ │ └── mock_vad.h │ │ ├── vad_core.h │ │ ├── vad_filterbank.h │ │ ├── vad_gmm.h │ │ ├── vad_sp.h │ │ └── vad_unittest.h │ ├── wav_file.h │ ├── wav_header.h │ └── window_generator.h │ ├── common_types.h │ ├── common_video │ ├── h264 │ │ ├── h264_bitstream_parser.h │ │ ├── h264_common.h │ │ ├── pps_parser.h │ │ ├── profile_level_id.h │ │ ├── sps_parser.h │ │ └── sps_vui_rewriter.h │ ├── include │ │ ├── bitrate_adjuster.h │ │ ├── frame_callback.h │ │ ├── i420_buffer_pool.h │ │ ├── incoming_video_stream.h │ │ ├── video_bitrate_allocator.h │ │ ├── video_frame.h │ │ └── video_frame_buffer.h │ ├── libyuv │ │ └── include │ │ │ └── webrtc_libyuv.h │ └── video_render_frames.h │ ├── logging │ └── rtc_event_log │ │ ├── encoder │ │ ├── rtc_event_log_encoder.h │ │ └── rtc_event_log_encoder_legacy.h │ │ ├── events │ │ ├── rtc_event.h │ │ ├── rtc_event_alr_state.h │ │ ├── rtc_event_audio_network_adaptation.h │ │ ├── rtc_event_audio_playout.h │ │ ├── rtc_event_audio_receive_stream_config.h │ │ ├── rtc_event_audio_send_stream_config.h │ │ ├── rtc_event_bwe_update_delay_based.h │ │ ├── rtc_event_bwe_update_loss_based.h │ │ ├── rtc_event_ice_candidate_pair.h │ │ ├── rtc_event_ice_candidate_pair_config.h │ │ ├── rtc_event_probe_cluster_created.h │ │ ├── rtc_event_probe_result_failure.h │ │ ├── rtc_event_probe_result_success.h │ │ ├── rtc_event_rtcp_packet_incoming.h │ │ ├── rtc_event_rtcp_packet_outgoing.h │ │ ├── rtc_event_rtp_packet_incoming.h │ │ ├── rtc_event_rtp_packet_outgoing.h │ │ ├── rtc_event_video_receive_stream_config.h │ │ └── rtc_event_video_send_stream_config.h │ │ ├── fake_rtc_event_log.h │ │ ├── fake_rtc_event_log_factory.h │ │ ├── icelogger.h │ │ ├── mock │ │ └── mock_rtc_event_log.h │ │ ├── output │ │ └── rtc_event_log_output_file.h │ │ ├── rtc_event_log.h │ │ ├── rtc_event_log_factory.h │ │ ├── rtc_event_log_factory_interface.h │ │ ├── rtc_event_log_parser.h │ │ ├── rtc_event_log_parser_new.h │ │ ├── rtc_event_log_unittest_helper.h │ │ └── rtc_stream_config.h │ ├── media │ ├── base │ │ ├── adaptedvideotracksource.h │ │ ├── audiosource.h │ │ ├── codec.h │ │ ├── cryptoparams.h │ │ ├── device.h │ │ ├── fakeframesource.h │ │ ├── fakemediaengine.h │ │ ├── fakenetworkinterface.h │ │ ├── fakertp.h │ │ ├── fakevideocapturer.h │ │ ├── fakevideorenderer.h │ │ ├── h264_profile_level_id.h │ │ ├── mediachannel.h │ │ ├── mediaconfig.h │ │ ├── mediaconstants.h │ │ ├── mediaengine.h │ │ ├── rtpdataengine.h │ │ ├── rtputils.h │ │ ├── streamparams.h │ │ ├── testutils.h │ │ ├── turnutils.h │ │ ├── videoadapter.h │ │ ├── videobroadcaster.h │ │ ├── videocapturer.h │ │ ├── videocapturerfactory.h │ │ ├── videocommon.h │ │ └── videosourcebase.h │ ├── engine │ │ ├── adm_helpers.h │ │ ├── apm_helpers.h │ │ ├── constants.h │ │ ├── convert_legacy_video_factory.h │ │ ├── fakewebrtccall.h │ │ ├── fakewebrtcdeviceinfo.h │ │ ├── fakewebrtcvcmfactory.h │ │ ├── fakewebrtcvideocapturemodule.h │ │ ├── fakewebrtcvideoengine.h │ │ ├── internaldecoderfactory.h │ │ ├── internalencoderfactory.h │ │ ├── multiplexcodecfactory.h │ │ ├── nullwebrtcvideoengine.h │ │ ├── payload_type_mapper.h │ │ ├── scopedvideodecoder.h │ │ ├── scopedvideoencoder.h │ │ ├── simulcast.h │ │ ├── simulcast_encoder_adapter.h │ │ ├── vp8_encoder_simulcast_proxy.h │ │ ├── webrtcmediaengine.h │ │ ├── webrtcvideocapturer.h │ │ ├── webrtcvideocapturerfactory.h │ │ ├── webrtcvideodecoderfactory.h │ │ ├── webrtcvideoencoderfactory.h │ │ ├── webrtcvideoengine.h │ │ └── webrtcvoiceengine.h │ └── sctp │ │ ├── sctptransport.h │ │ └── sctptransportinternal.h │ ├── modules │ ├── audio_coding │ │ ├── acm2 │ │ │ ├── acm_codec_database.h │ │ │ ├── acm_receive_test.h │ │ │ ├── acm_receiver.h │ │ │ ├── acm_resampler.h │ │ │ ├── acm_send_test.h │ │ │ ├── call_statistics.h │ │ │ ├── codec_manager.h │ │ │ └── rent_a_codec.h │ │ ├── audio_network_adaptor │ │ │ ├── audio_network_adaptor_impl.h │ │ │ ├── bitrate_controller.h │ │ │ ├── channel_controller.h │ │ │ ├── controller.h │ │ │ ├── controller_manager.h │ │ │ ├── debug_dump_writer.h │ │ │ ├── dtx_controller.h │ │ │ ├── event_log_writer.h │ │ │ ├── fec_controller_plr_based.h │ │ │ ├── fec_controller_rplr_based.h │ │ │ ├── frame_length_controller.h │ │ │ ├── include │ │ │ │ ├── audio_network_adaptor.h │ │ │ │ └── audio_network_adaptor_config.h │ │ │ ├── mock │ │ │ │ ├── mock_audio_network_adaptor.h │ │ │ │ ├── mock_controller.h │ │ │ │ ├── mock_controller_manager.h │ │ │ │ └── mock_debug_dump_writer.h │ │ │ └── util │ │ │ │ └── threshold_curve.h │ │ ├── codecs │ │ │ ├── audio_decoder.h │ │ │ ├── audio_encoder.h │ │ │ ├── audio_format_conversion.h │ │ │ ├── cng │ │ │ │ ├── audio_encoder_cng.h │ │ │ │ └── webrtc_cng.h │ │ │ ├── g711 │ │ │ │ ├── audio_decoder_pcm.h │ │ │ │ ├── audio_encoder_pcm.h │ │ │ │ ├── g711.h │ │ │ │ └── g711_interface.h │ │ │ ├── g722 │ │ │ │ ├── audio_decoder_g722.h │ │ │ │ ├── audio_encoder_g722.h │ │ │ │ ├── g722_enc_dec.h │ │ │ │ └── g722_interface.h │ │ │ ├── ilbc │ │ │ │ ├── abs_quant.h │ │ │ │ ├── abs_quant_loop.h │ │ │ │ ├── audio_decoder_ilbc.h │ │ │ │ ├── audio_encoder_ilbc.h │ │ │ │ ├── augmented_cb_corr.h │ │ │ │ ├── bw_expand.h │ │ │ │ ├── cb_construct.h │ │ │ │ ├── cb_mem_energy.h │ │ │ │ ├── cb_mem_energy_augmentation.h │ │ │ │ ├── cb_mem_energy_calc.h │ │ │ │ ├── cb_search.h │ │ │ │ ├── cb_search_core.h │ │ │ │ ├── cb_update_best_index.h │ │ │ │ ├── chebyshev.h │ │ │ │ ├── comp_corr.h │ │ │ │ ├── constants.h │ │ │ │ ├── create_augmented_vec.h │ │ │ │ ├── decode.h │ │ │ │ ├── decode_residual.h │ │ │ │ ├── decoder_interpolate_lsf.h │ │ │ │ ├── defines.h │ │ │ │ ├── do_plc.h │ │ │ │ ├── encode.h │ │ │ │ ├── energy_inverse.h │ │ │ │ ├── enh_upsample.h │ │ │ │ ├── enhancer.h │ │ │ │ ├── enhancer_interface.h │ │ │ │ ├── filtered_cb_vecs.h │ │ │ │ ├── frame_classify.h │ │ │ │ ├── gain_dequant.h │ │ │ │ ├── gain_quant.h │ │ │ │ ├── get_cd_vec.h │ │ │ │ ├── get_lsp_poly.h │ │ │ │ ├── get_sync_seq.h │ │ │ │ ├── hp_input.h │ │ │ │ ├── hp_output.h │ │ │ │ ├── ilbc.h │ │ │ │ ├── index_conv_dec.h │ │ │ │ ├── index_conv_enc.h │ │ │ │ ├── init_decode.h │ │ │ │ ├── init_encode.h │ │ │ │ ├── interpolate.h │ │ │ │ ├── interpolate_samples.h │ │ │ │ ├── lpc_encode.h │ │ │ │ ├── lsf_check.h │ │ │ │ ├── lsf_interpolate_to_poly_dec.h │ │ │ │ ├── lsf_interpolate_to_poly_enc.h │ │ │ │ ├── lsf_to_lsp.h │ │ │ │ ├── lsf_to_poly.h │ │ │ │ ├── lsp_to_lsf.h │ │ │ │ ├── my_corr.h │ │ │ │ ├── nearest_neighbor.h │ │ │ │ ├── pack_bits.h │ │ │ │ ├── poly_to_lsf.h │ │ │ │ ├── poly_to_lsp.h │ │ │ │ ├── refiner.h │ │ │ │ ├── simple_interpolate_lsf.h │ │ │ │ ├── simple_lpc_analysis.h │ │ │ │ ├── simple_lsf_dequant.h │ │ │ │ ├── simple_lsf_quant.h │ │ │ │ ├── smooth.h │ │ │ │ ├── smooth_out_data.h │ │ │ │ ├── sort_sq.h │ │ │ │ ├── split_vq.h │ │ │ │ ├── state_construct.h │ │ │ │ ├── state_search.h │ │ │ │ ├── swap_bytes.h │ │ │ │ ├── unpack_bits.h │ │ │ │ ├── vq3.h │ │ │ │ ├── vq4.h │ │ │ │ ├── window32_w32.h │ │ │ │ └── xcorr_coef.h │ │ │ ├── isac │ │ │ │ ├── audio_decoder_isac_t.h │ │ │ │ ├── audio_decoder_isac_t_impl.h │ │ │ │ ├── audio_encoder_isac_t.h │ │ │ │ ├── audio_encoder_isac_t_impl.h │ │ │ │ ├── bandwidth_info.h │ │ │ │ ├── fix │ │ │ │ │ ├── include │ │ │ │ │ │ ├── audio_decoder_isacfix.h │ │ │ │ │ │ ├── audio_encoder_isacfix.h │ │ │ │ │ │ └── isacfix.h │ │ │ │ │ └── source │ │ │ │ │ │ ├── arith_routins.h │ │ │ │ │ │ ├── bandwidth_estimator.h │ │ │ │ │ │ ├── codec.h │ │ │ │ │ │ ├── entropy_coding.h │ │ │ │ │ │ ├── fft.h │ │ │ │ │ │ ├── filterbank_internal.h │ │ │ │ │ │ ├── filterbank_tables.h │ │ │ │ │ │ ├── isac_fix_type.h │ │ │ │ │ │ ├── lpc_masking_model.h │ │ │ │ │ │ ├── lpc_tables.h │ │ │ │ │ │ ├── pitch_estimator.h │ │ │ │ │ │ ├── pitch_gain_tables.h │ │ │ │ │ │ ├── pitch_lag_tables.h │ │ │ │ │ │ ├── settings.h │ │ │ │ │ │ ├── spectrum_ar_model_tables.h │ │ │ │ │ │ └── structs.h │ │ │ │ ├── locked_bandwidth_info.h │ │ │ │ └── main │ │ │ │ │ ├── include │ │ │ │ │ ├── audio_decoder_isac.h │ │ │ │ │ ├── audio_encoder_isac.h │ │ │ │ │ └── isac.h │ │ │ │ │ ├── source │ │ │ │ │ ├── arith_routines.h │ │ │ │ │ ├── bandwidth_estimator.h │ │ │ │ │ ├── codec.h │ │ │ │ │ ├── crc.h │ │ │ │ │ ├── encode_lpc_swb.h │ │ │ │ │ ├── entropy_coding.h │ │ │ │ │ ├── fft.h │ │ │ │ │ ├── filter_functions.h │ │ │ │ │ ├── isac_float_type.h │ │ │ │ │ ├── isac_vad.h │ │ │ │ │ ├── lpc_analysis.h │ │ │ │ │ ├── lpc_gain_swb_tables.h │ │ │ │ │ ├── lpc_shape_swb12_tables.h │ │ │ │ │ ├── lpc_shape_swb16_tables.h │ │ │ │ │ ├── lpc_tables.h │ │ │ │ │ ├── os_specific_inline.h │ │ │ │ │ ├── pitch_estimator.h │ │ │ │ │ ├── pitch_filter.h │ │ │ │ │ ├── pitch_gain_tables.h │ │ │ │ │ ├── pitch_lag_tables.h │ │ │ │ │ ├── settings.h │ │ │ │ │ ├── spectrum_ar_model_tables.h │ │ │ │ │ └── structs.h │ │ │ │ │ └── util │ │ │ │ │ └── utility.h │ │ │ ├── legacy_encoded_audio_frame.h │ │ │ ├── opus │ │ │ │ ├── audio_decoder_opus.h │ │ │ │ ├── audio_encoder_opus.h │ │ │ │ ├── opus_inst.h │ │ │ │ └── opus_interface.h │ │ │ ├── pcm16b │ │ │ │ ├── audio_decoder_pcm16b.h │ │ │ │ ├── audio_encoder_pcm16b.h │ │ │ │ ├── pcm16b.h │ │ │ │ └── pcm16b_common.h │ │ │ ├── red │ │ │ │ └── audio_encoder_copy_red.h │ │ │ └── tools │ │ │ │ └── audio_codec_speed_test.h │ │ ├── include │ │ │ ├── audio_coding_module.h │ │ │ └── audio_coding_module_typedefs.h │ │ ├── neteq │ │ │ ├── accelerate.h │ │ │ ├── audio_multi_vector.h │ │ │ ├── audio_vector.h │ │ │ ├── background_noise.h │ │ │ ├── buffer_level_filter.h │ │ │ ├── comfort_noise.h │ │ │ ├── cross_correlation.h │ │ │ ├── decision_logic.h │ │ │ ├── decision_logic_fax.h │ │ │ ├── decision_logic_normal.h │ │ │ ├── decoder_database.h │ │ │ ├── defines.h │ │ │ ├── delay_manager.h │ │ │ ├── delay_peak_detector.h │ │ │ ├── dsp_helper.h │ │ │ ├── dtmf_buffer.h │ │ │ ├── dtmf_tone_generator.h │ │ │ ├── expand.h │ │ │ ├── expand_uma_logger.h │ │ │ ├── include │ │ │ │ └── neteq.h │ │ │ ├── merge.h │ │ │ ├── mock │ │ │ │ ├── mock_buffer_level_filter.h │ │ │ │ ├── mock_decoder_database.h │ │ │ │ ├── mock_delay_manager.h │ │ │ │ ├── mock_delay_peak_detector.h │ │ │ │ ├── mock_dtmf_buffer.h │ │ │ │ ├── mock_dtmf_tone_generator.h │ │ │ │ ├── mock_expand.h │ │ │ │ ├── mock_external_decoder_pcm16b.h │ │ │ │ ├── mock_packet_buffer.h │ │ │ │ ├── mock_red_payload_splitter.h │ │ │ │ └── mock_statistics_calculator.h │ │ │ ├── nack_tracker.h │ │ │ ├── neteq_decoder_enum.h │ │ │ ├── neteq_impl.h │ │ │ ├── normal.h │ │ │ ├── packet.h │ │ │ ├── packet_buffer.h │ │ │ ├── post_decode_vad.h │ │ │ ├── preemptive_expand.h │ │ │ ├── random_vector.h │ │ │ ├── red_payload_splitter.h │ │ │ ├── rtcp.h │ │ │ ├── statistics_calculator.h │ │ │ ├── sync_buffer.h │ │ │ ├── tick_timer.h │ │ │ ├── time_stretch.h │ │ │ ├── timestamp_scaler.h │ │ │ └── tools │ │ │ │ ├── audio_checksum.h │ │ │ │ ├── audio_loop.h │ │ │ │ ├── audio_sink.h │ │ │ │ ├── constant_pcm_packet_source.h │ │ │ │ ├── encode_neteq_input.h │ │ │ │ ├── fake_decode_from_file.h │ │ │ │ ├── input_audio_file.h │ │ │ │ ├── neteq_delay_analyzer.h │ │ │ │ ├── neteq_external_decoder_test.h │ │ │ │ ├── neteq_input.h │ │ │ │ ├── neteq_packet_source_input.h │ │ │ │ ├── neteq_performance_test.h │ │ │ │ ├── neteq_quality_test.h │ │ │ │ ├── neteq_replacement_input.h │ │ │ │ ├── neteq_stats_getter.h │ │ │ │ ├── neteq_test.h │ │ │ │ ├── output_audio_file.h │ │ │ │ ├── output_wav_file.h │ │ │ │ ├── packet.h │ │ │ │ ├── packet_source.h │ │ │ │ ├── resample_input_audio_file.h │ │ │ │ ├── rtc_event_log_source.h │ │ │ │ ├── rtp_file_source.h │ │ │ │ └── rtp_generator.h │ │ └── test │ │ │ ├── ACMTest.h │ │ │ ├── Channel.h │ │ │ ├── EncodeDecodeTest.h │ │ │ ├── PCMFile.h │ │ │ ├── PacketLossTest.h │ │ │ ├── RTPFile.h │ │ │ ├── TestAllCodecs.h │ │ │ ├── TestRedFec.h │ │ │ ├── TestStereo.h │ │ │ ├── TestVADDTX.h │ │ │ ├── TwoWayCommunication.h │ │ │ ├── iSACTest.h │ │ │ ├── opus_test.h │ │ │ └── utility.h │ ├── audio_device │ │ ├── android │ │ │ ├── aaudio_player.h │ │ │ ├── aaudio_recorder.h │ │ │ ├── aaudio_wrapper.h │ │ │ ├── audio_common.h │ │ │ ├── audio_device_template.h │ │ │ ├── audio_manager.h │ │ │ ├── audio_record_jni.h │ │ │ ├── audio_track_jni.h │ │ │ ├── build_info.h │ │ │ ├── ensure_initialized.h │ │ │ ├── opensles_common.h │ │ │ ├── opensles_player.h │ │ │ └── opensles_recorder.h │ │ ├── audio_device_buffer.h │ │ ├── audio_device_config.h │ │ ├── audio_device_generic.h │ │ ├── audio_device_impl.h │ │ ├── audio_device_name.h │ │ ├── dummy │ │ │ ├── audio_device_dummy.h │ │ │ ├── file_audio_device.h │ │ │ └── file_audio_device_factory.h │ │ ├── fine_audio_buffer.h │ │ ├── include │ │ │ ├── audio_device.h │ │ │ ├── audio_device_data_observer.h │ │ │ ├── audio_device_default.h │ │ │ ├── audio_device_defines.h │ │ │ ├── audio_device_factory.h │ │ │ ├── fake_audio_device.h │ │ │ ├── mock_audio_device.h │ │ │ ├── mock_audio_transport.h │ │ │ └── test_audio_device.h │ │ ├── ios │ │ │ ├── audio_device_ios.h │ │ │ ├── audio_session_observer.h │ │ │ ├── objc │ │ │ │ ├── RTCAudioSession.h │ │ │ │ ├── RTCAudioSessionConfiguration.h │ │ │ │ └── RTCAudioSessionDelegateAdapter.h │ │ │ └── voice_processing_audio_unit.h │ │ ├── linux │ │ │ ├── alsasymboltable_linux.h │ │ │ ├── audio_device_alsa_linux.h │ │ │ ├── audio_device_pulse_linux.h │ │ │ ├── audio_mixer_manager_alsa_linux.h │ │ │ ├── audio_mixer_manager_pulse_linux.h │ │ │ ├── latebindingsymboltable_linux.h │ │ │ └── pulseaudiosymboltable_linux.h │ │ ├── mac │ │ │ ├── audio_device_mac.h │ │ │ ├── audio_mixer_manager_mac.h │ │ │ └── portaudio │ │ │ │ ├── pa_memorybarrier.h │ │ │ │ └── pa_ringbuffer.h │ │ ├── mock_audio_device_buffer.h │ │ └── win │ │ │ ├── audio_device_core_win.h │ │ │ ├── audio_device_module_win.h │ │ │ ├── core_audio_base_win.h │ │ │ ├── core_audio_input_win.h │ │ │ ├── core_audio_output_win.h │ │ │ └── core_audio_utility_win.h │ ├── audio_mixer │ │ ├── audio_frame_manipulator.h │ │ ├── audio_mixer_impl.h │ │ ├── default_output_rate_calculator.h │ │ ├── frame_combiner.h │ │ ├── gain_change_calculator.h │ │ ├── output_rate_calculator.h │ │ └── sine_wave_generator.h │ ├── audio_processing │ │ ├── aec │ │ │ ├── aec_common.h │ │ │ ├── aec_core.h │ │ │ ├── aec_core_optimized_methods.h │ │ │ ├── aec_resampler.h │ │ │ └── echo_cancellation.h │ │ ├── aec3 │ │ │ ├── adaptive_fir_filter.h │ │ │ ├── aec3_common.h │ │ │ ├── aec3_fft.h │ │ │ ├── aec_state.h │ │ │ ├── block_framer.h │ │ │ ├── block_processor.h │ │ │ ├── block_processor_metrics.h │ │ │ ├── cascaded_biquad_filter.h │ │ │ ├── coherence_gain.h │ │ │ ├── comfort_noise_generator.h │ │ │ ├── decimator.h │ │ │ ├── delay_estimate.h │ │ │ ├── downsampled_render_buffer.h │ │ │ ├── echo_audibility.h │ │ │ ├── echo_canceller3.h │ │ │ ├── echo_path_delay_estimator.h │ │ │ ├── echo_path_variability.h │ │ │ ├── echo_remover.h │ │ │ ├── echo_remover_metrics.h │ │ │ ├── erl_estimator.h │ │ │ ├── erle_estimator.h │ │ │ ├── fft_buffer.h │ │ │ ├── fft_data.h │ │ │ ├── filter_analyzer.h │ │ │ ├── frame_blocker.h │ │ │ ├── main_filter_update_gain.h │ │ │ ├── matched_filter.h │ │ │ ├── matched_filter_lag_aggregator.h │ │ │ ├── matrix_buffer.h │ │ │ ├── mock │ │ │ │ ├── mock_block_processor.h │ │ │ │ ├── mock_echo_remover.h │ │ │ │ ├── mock_render_delay_buffer.h │ │ │ │ └── mock_render_delay_controller.h │ │ │ ├── moving_average.h │ │ │ ├── render_buffer.h │ │ │ ├── render_delay_buffer.h │ │ │ ├── render_delay_controller.h │ │ │ ├── render_delay_controller_metrics.h │ │ │ ├── render_signal_analyzer.h │ │ │ ├── residual_echo_estimator.h │ │ │ ├── reverb_model.h │ │ │ ├── reverb_model_fallback.h │ │ │ ├── shadow_filter_update_gain.h │ │ │ ├── skew_estimator.h │ │ │ ├── stationarity_estimator.h │ │ │ ├── subtractor.h │ │ │ ├── subtractor_output.h │ │ │ ├── suppression_filter.h │ │ │ ├── suppression_gain.h │ │ │ ├── suppression_gain_limiter.h │ │ │ ├── vector_buffer.h │ │ │ └── vector_math.h │ │ ├── aec_dump │ │ │ ├── aec_dump_factory.h │ │ │ ├── aec_dump_impl.h │ │ │ ├── capture_stream_info.h │ │ │ ├── mock_aec_dump.h │ │ │ └── write_to_file_task.h │ │ ├── aecm │ │ │ ├── aecm_core.h │ │ │ ├── aecm_defines.h │ │ │ └── echo_control_mobile.h │ │ ├── agc │ │ │ ├── agc.h │ │ │ ├── agc_manager_direct.h │ │ │ ├── gain_map_internal.h │ │ │ ├── legacy │ │ │ │ ├── analog_agc.h │ │ │ │ ├── digital_agc.h │ │ │ │ └── gain_control.h │ │ │ ├── loudness_histogram.h │ │ │ ├── mock_agc.h │ │ │ └── utility.h │ │ ├── agc2 │ │ │ ├── adaptive_agc.h │ │ │ ├── adaptive_digital_gain_applier.h │ │ │ ├── adaptive_mode_level_estimator.h │ │ │ ├── agc2_common.h │ │ │ ├── agc2_testing_common.h │ │ │ ├── biquad_filter.h │ │ │ ├── compute_interpolated_gain_curve.h │ │ │ ├── down_sampler.h │ │ │ ├── fixed_digital_level_estimator.h │ │ │ ├── fixed_gain_controller.h │ │ │ ├── gain_applier.h │ │ │ ├── gain_curve_applier.h │ │ │ ├── interpolated_gain_curve.h │ │ │ ├── limiter.h │ │ │ ├── noise_level_estimator.h │ │ │ ├── noise_spectrum_estimator.h │ │ │ ├── rnn_vad │ │ │ │ ├── common.h │ │ │ │ ├── features_extraction.h │ │ │ │ ├── fft_util.h │ │ │ │ ├── lp_residual.h │ │ │ │ ├── pitch_info.h │ │ │ │ ├── pitch_search.h │ │ │ │ ├── pitch_search_internal.h │ │ │ │ ├── ring_buffer.h │ │ │ │ ├── rnn.h │ │ │ │ ├── sequence_buffer.h │ │ │ │ ├── spectral_features.h │ │ │ │ ├── spectral_features_internal.h │ │ │ │ ├── symmetric_matrix_buffer.h │ │ │ │ └── test_utils.h │ │ │ ├── saturation_protector.h │ │ │ ├── signal_classifier.h │ │ │ ├── vad_with_level.h │ │ │ └── vector_float_frame.h │ │ ├── audio_buffer.h │ │ ├── audio_generator │ │ │ └── file_audio_generator.h │ │ ├── audio_processing_impl.h │ │ ├── common.h │ │ ├── echo_cancellation_impl.h │ │ ├── echo_control_mobile_impl.h │ │ ├── echo_detector │ │ │ ├── circular_buffer.h │ │ │ ├── mean_variance_estimator.h │ │ │ ├── moving_max.h │ │ │ └── normalized_covariance_estimator.h │ │ ├── gain_control_for_experimental_agc.h │ │ ├── gain_control_impl.h │ │ ├── gain_controller2.h │ │ ├── include │ │ │ ├── aec_dump.h │ │ │ ├── audio_frame_view.h │ │ │ ├── audio_generator.h │ │ │ ├── audio_generator_factory.h │ │ │ ├── audio_processing.h │ │ │ ├── audio_processing_statistics.h │ │ │ ├── config.h │ │ │ └── mock_audio_processing.h │ │ ├── intelligibility │ │ │ ├── intelligibility_enhancer.h │ │ │ └── intelligibility_utils.h │ │ ├── level_estimator_impl.h │ │ ├── logging │ │ │ └── apm_data_dumper.h │ │ ├── low_cut_filter.h │ │ ├── noise_suppression_impl.h │ │ ├── ns │ │ │ ├── defines.h │ │ │ ├── noise_suppression.h │ │ │ ├── noise_suppression_x.h │ │ │ ├── ns_core.h │ │ │ ├── nsx_core.h │ │ │ ├── nsx_defines.h │ │ │ └── windows_private.h │ │ ├── render_queue_item_verifier.h │ │ ├── residual_echo_detector.h │ │ ├── rms_level.h │ │ ├── splitting_filter.h │ │ ├── test │ │ │ ├── aec_dump_based_simulator.h │ │ │ ├── audio_buffer_tools.h │ │ │ ├── audio_processing_simulator.h │ │ │ ├── audioproc_float_impl.h │ │ │ ├── bitexactness_tools.h │ │ │ ├── conversational_speech │ │ │ │ ├── config.h │ │ │ │ ├── mock_wavreader.h │ │ │ │ ├── mock_wavreader_factory.h │ │ │ │ ├── multiend_call.h │ │ │ │ ├── simulator.h │ │ │ │ ├── timing.h │ │ │ │ ├── wavreader_abstract_factory.h │ │ │ │ ├── wavreader_factory.h │ │ │ │ └── wavreader_interface.h │ │ │ ├── debug_dump_replayer.h │ │ │ ├── echo_canceller_test_tools.h │ │ │ ├── fake_recording_device.h │ │ │ ├── performance_timer.h │ │ │ ├── protobuf_utils.h │ │ │ ├── simulator_buffers.h │ │ │ ├── test_utils.h │ │ │ └── wav_based_simulator.h │ │ ├── three_band_filter_bank.h │ │ ├── transient │ │ │ ├── common.h │ │ │ ├── daubechies_8_wavelet_coeffs.h │ │ │ ├── dyadic_decimator.h │ │ │ ├── file_utils.h │ │ │ ├── moving_moments.h │ │ │ ├── transient_detector.h │ │ │ ├── transient_suppressor.h │ │ │ ├── wpd_node.h │ │ │ └── wpd_tree.h │ │ ├── typing_detection.h │ │ ├── utility │ │ │ ├── block_mean_calculator.h │ │ │ ├── delay_estimator.h │ │ │ ├── delay_estimator_internal.h │ │ │ ├── delay_estimator_wrapper.h │ │ │ ├── ooura_fft.h │ │ │ ├── ooura_fft_tables_common.h │ │ │ └── ooura_fft_tables_neon_sse2.h │ │ ├── vad │ │ │ ├── common.h │ │ │ ├── gmm.h │ │ │ ├── noise_gmm_tables.h │ │ │ ├── pitch_based_vad.h │ │ │ ├── pitch_internal.h │ │ │ ├── pole_zero_filter.h │ │ │ ├── standalone_vad.h │ │ │ ├── vad_audio_proc.h │ │ │ ├── vad_audio_proc_internal.h │ │ │ ├── vad_circular_buffer.h │ │ │ ├── voice_activity_detector.h │ │ │ └── voice_gmm_tables.h │ │ └── voice_detection_impl.h │ ├── bitrate_controller │ │ ├── bitrate_controller_impl.h │ │ ├── include │ │ │ ├── bitrate_controller.h │ │ │ └── mock │ │ │ │ └── mock_bitrate_controller.h │ │ └── send_side_bandwidth_estimation.h │ ├── congestion_controller │ │ ├── bbr │ │ │ ├── bandwidth_sampler.h │ │ │ ├── bbr_factory.h │ │ │ ├── bbr_network_controller.h │ │ │ ├── data_transfer_tracker.h │ │ │ ├── loss_rate_filter.h │ │ │ ├── packet_number_indexed_queue.h │ │ │ ├── rtt_stats.h │ │ │ └── windowed_filter.h │ │ ├── delay_based_bwe.h │ │ ├── delay_based_bwe_unittest_helper.h │ │ ├── goog_cc │ │ │ ├── acknowledged_bitrate_estimator.h │ │ │ ├── alr_detector.h │ │ │ ├── bitrate_estimator.h │ │ │ ├── delay_based_bwe.h │ │ │ ├── delay_based_bwe_unittest_helper.h │ │ │ ├── delay_increase_detector_interface.h │ │ │ ├── goog_cc_network_control.h │ │ │ ├── include │ │ │ │ └── goog_cc_factory.h │ │ │ ├── median_slope_estimator.h │ │ │ ├── probe_bitrate_estimator.h │ │ │ ├── probe_controller.h │ │ │ └── trendline_estimator.h │ │ ├── include │ │ │ ├── mock │ │ │ │ └── mock_congestion_observer.h │ │ │ ├── network_changed_observer.h │ │ │ ├── receive_side_congestion_controller.h │ │ │ ├── send_side_congestion_controller.h │ │ │ └── send_side_congestion_controller_interface.h │ │ ├── probe_controller.h │ │ ├── rtp │ │ │ ├── congestion_controller_unittests_helper.h │ │ │ ├── include │ │ │ │ └── send_side_congestion_controller.h │ │ │ ├── pacer_controller.h │ │ │ ├── send_time_history.h │ │ │ └── transport_feedback_adapter.h │ │ └── transport_feedback_adapter.h │ ├── desktop_capture │ │ ├── blank_detector_desktop_capturer_wrapper.h │ │ ├── capture_result_desktop_capturer_wrapper.h │ │ ├── cropped_desktop_frame.h │ │ ├── cropping_window_capturer.h │ │ ├── desktop_and_cursor_composer.h │ │ ├── desktop_capture_options.h │ │ ├── desktop_capture_types.h │ │ ├── desktop_capturer.h │ │ ├── desktop_capturer_differ_wrapper.h │ │ ├── desktop_capturer_wrapper.h │ │ ├── desktop_frame.h │ │ ├── desktop_frame_generator.h │ │ ├── desktop_frame_rotation.h │ │ ├── desktop_frame_win.h │ │ ├── desktop_geometry.h │ │ ├── desktop_region.h │ │ ├── differ_block.h │ │ ├── differ_vector_sse2.h │ │ ├── fake_desktop_capturer.h │ │ ├── fallback_desktop_capturer_wrapper.h │ │ ├── mac │ │ │ ├── desktop_configuration.h │ │ │ ├── desktop_configuration_monitor.h │ │ │ ├── desktop_frame_cgimage.h │ │ │ ├── desktop_frame_iosurface.h │ │ │ ├── desktop_frame_provider.h │ │ │ ├── full_screen_chrome_window_detector.h │ │ │ ├── screen_capturer_mac.h │ │ │ └── window_list_utils.h │ │ ├── mock_desktop_capturer_callback.h │ │ ├── mouse_cursor.h │ │ ├── mouse_cursor_monitor.h │ │ ├── resolution_tracker.h │ │ ├── rgba_color.h │ │ ├── screen_capture_frame_queue.h │ │ ├── screen_capturer_helper.h │ │ ├── screen_drawer.h │ │ ├── screen_drawer_lock_posix.h │ │ ├── shared_desktop_frame.h │ │ ├── shared_memory.h │ │ ├── test_utils.h │ │ ├── win │ │ │ ├── cursor.h │ │ │ ├── cursor_unittest_resources.h │ │ │ ├── d3d_device.h │ │ │ ├── desktop.h │ │ │ ├── display_configuration_monitor.h │ │ │ ├── dxgi_adapter_duplicator.h │ │ │ ├── dxgi_context.h │ │ │ ├── dxgi_duplicator_controller.h │ │ │ ├── dxgi_frame.h │ │ │ ├── dxgi_output_duplicator.h │ │ │ ├── dxgi_texture.h │ │ │ ├── dxgi_texture_mapping.h │ │ │ ├── dxgi_texture_staging.h │ │ │ ├── scoped_gdi_object.h │ │ │ ├── scoped_thread_desktop.h │ │ │ ├── screen_capture_utils.h │ │ │ ├── screen_capturer_win_directx.h │ │ │ ├── screen_capturer_win_gdi.h │ │ │ ├── screen_capturer_win_magnifier.h │ │ │ └── window_capture_utils.h │ │ ├── window_finder.h │ │ ├── window_finder_mac.h │ │ ├── window_finder_win.h │ │ ├── window_finder_x11.h │ │ └── x11 │ │ │ ├── shared_x_display.h │ │ │ ├── window_list_utils.h │ │ │ ├── x_atom_cache.h │ │ │ ├── x_error_trap.h │ │ │ └── x_server_pixel_buffer.h │ ├── include │ │ ├── module.h │ │ ├── module_common_types.h │ │ ├── module_common_types_public.h │ │ └── module_fec_types.h │ ├── pacing │ │ ├── bitrate_prober.h │ │ ├── interval_budget.h │ │ ├── mock │ │ │ └── mock_paced_sender.h │ │ ├── paced_sender.h │ │ ├── pacer.h │ │ ├── packet_queue.h │ │ ├── packet_queue_interface.h │ │ ├── packet_router.h │ │ └── round_robin_packet_queue.h │ ├── remote_bitrate_estimator │ │ ├── aimd_rate_control.h │ │ ├── include │ │ │ ├── bwe_defines.h │ │ │ └── remote_bitrate_estimator.h │ │ ├── inter_arrival.h │ │ ├── overuse_detector.h │ │ ├── overuse_estimator.h │ │ ├── remote_bitrate_estimator_abs_send_time.h │ │ ├── remote_bitrate_estimator_single_stream.h │ │ ├── remote_bitrate_estimator_unittest_helper.h │ │ ├── remote_estimator_proxy.h │ │ ├── test │ │ │ ├── bbr_paced_sender.h │ │ │ ├── bwe.h │ │ │ ├── bwe_test.h │ │ │ ├── bwe_test_baselinefile.h │ │ │ ├── bwe_test_fileutils.h │ │ │ ├── bwe_test_framework.h │ │ │ ├── bwe_test_logging.h │ │ │ ├── estimators │ │ │ │ ├── bbr.h │ │ │ │ ├── congestion_window.h │ │ │ │ ├── max_bandwidth_filter.h │ │ │ │ ├── min_rtt_filter.h │ │ │ │ ├── nada.h │ │ │ │ ├── remb.h │ │ │ │ ├── send_side.h │ │ │ │ └── tcp.h │ │ │ ├── metric_recorder.h │ │ │ ├── packet.h │ │ │ ├── packet_receiver.h │ │ │ └── packet_sender.h │ │ └── tools │ │ │ └── bwe_rtp.h │ ├── rtp_rtcp │ │ ├── include │ │ │ ├── flexfec_receiver.h │ │ │ ├── flexfec_sender.h │ │ │ ├── receive_statistics.h │ │ │ ├── remote_ntp_time_estimator.h │ │ │ ├── rtp_cvo.h │ │ │ ├── rtp_header_extension_map.h │ │ │ ├── rtp_header_parser.h │ │ │ ├── rtp_payload_registry.h │ │ │ ├── rtp_receiver.h │ │ │ ├── rtp_rtcp.h │ │ │ ├── rtp_rtcp_defines.h │ │ │ └── ulpfec_receiver.h │ │ ├── mocks │ │ │ ├── mock_recovered_packet_receiver.h │ │ │ ├── mock_rtcp_bandwidth_observer.h │ │ │ ├── mock_rtcp_rtt_stats.h │ │ │ └── mock_rtp_rtcp.h │ │ ├── source │ │ │ ├── byte_io.h │ │ │ ├── dtmf_queue.h │ │ │ ├── fec_private_tables_bursty.h │ │ │ ├── fec_private_tables_random.h │ │ │ ├── fec_test_helper.h │ │ │ ├── flexfec_header_reader_writer.h │ │ │ ├── forward_error_correction.h │ │ │ ├── forward_error_correction_internal.h │ │ │ ├── packet_loss_stats.h │ │ │ ├── playout_delay_oracle.h │ │ │ ├── receive_statistics_impl.h │ │ │ ├── rtcp_nack_stats.h │ │ │ ├── rtcp_packet.h │ │ │ ├── rtcp_packet │ │ │ │ ├── app.h │ │ │ │ ├── bye.h │ │ │ │ ├── common_header.h │ │ │ │ ├── compound_packet.h │ │ │ │ ├── dlrr.h │ │ │ │ ├── extended_jitter_report.h │ │ │ │ ├── extended_reports.h │ │ │ │ ├── fir.h │ │ │ │ ├── nack.h │ │ │ │ ├── pli.h │ │ │ │ ├── psfb.h │ │ │ │ ├── rapid_resync_request.h │ │ │ │ ├── receiver_report.h │ │ │ │ ├── remb.h │ │ │ │ ├── report_block.h │ │ │ │ ├── rrtr.h │ │ │ │ ├── rtpfb.h │ │ │ │ ├── sdes.h │ │ │ │ ├── sender_report.h │ │ │ │ ├── target_bitrate.h │ │ │ │ ├── tmmb_item.h │ │ │ │ ├── tmmbn.h │ │ │ │ ├── tmmbr.h │ │ │ │ ├── transport_feedback.h │ │ │ │ └── voip_metric.h │ │ │ ├── rtcp_receiver.h │ │ │ ├── rtcp_sender.h │ │ │ ├── rtcp_transceiver.h │ │ │ ├── rtcp_transceiver_config.h │ │ │ ├── rtcp_transceiver_impl.h │ │ │ ├── rtp_format.h │ │ │ ├── rtp_format_h264.h │ │ │ ├── rtp_format_video_generic.h │ │ │ ├── rtp_format_vp8.h │ │ │ ├── rtp_format_vp8_test_helper.h │ │ │ ├── rtp_format_vp9.h │ │ │ ├── rtp_generic_frame_descriptor.h │ │ │ ├── rtp_generic_frame_descriptor_extension.h │ │ │ ├── rtp_header_extensions.h │ │ │ ├── rtp_packet.h │ │ │ ├── rtp_packet_history.h │ │ │ ├── rtp_packet_received.h │ │ │ ├── rtp_packet_to_send.h │ │ │ ├── rtp_receiver_audio.h │ │ │ ├── rtp_receiver_impl.h │ │ │ ├── rtp_receiver_strategy.h │ │ │ ├── rtp_receiver_video.h │ │ │ ├── rtp_rtcp_config.h │ │ │ ├── rtp_rtcp_impl.h │ │ │ ├── rtp_sender.h │ │ │ ├── rtp_sender_audio.h │ │ │ ├── rtp_sender_video.h │ │ │ ├── rtp_utility.h │ │ │ ├── time_util.h │ │ │ ├── tmmbr_help.h │ │ │ ├── ulpfec_generator.h │ │ │ ├── ulpfec_header_reader_writer.h │ │ │ └── ulpfec_receiver_impl.h │ │ └── test │ │ │ ├── testAPI │ │ │ └── test_api.h │ │ │ └── testFec │ │ │ └── average_residual_loss_xor_codes.h │ ├── utility │ │ ├── include │ │ │ ├── helpers_android.h │ │ │ ├── jvm_android.h │ │ │ ├── mock │ │ │ │ └── mock_process_thread.h │ │ │ └── process_thread.h │ │ └── source │ │ │ └── process_thread_impl.h │ ├── video_capture │ │ ├── device_info_impl.h │ │ ├── linux │ │ │ ├── device_info_linux.h │ │ │ └── video_capture_linux.h │ │ ├── objc │ │ │ ├── device_info.h │ │ │ ├── device_info_objc.h │ │ │ ├── rtc_video_capture_objc.h │ │ │ └── video_capture.h │ │ ├── video_capture.h │ │ ├── video_capture_config.h │ │ ├── video_capture_defines.h │ │ ├── video_capture_factory.h │ │ ├── video_capture_impl.h │ │ └── windows │ │ │ ├── device_info_ds.h │ │ │ ├── device_info_mf.h │ │ │ ├── help_functions_ds.h │ │ │ ├── sink_filter_ds.h │ │ │ ├── video_capture_ds.h │ │ │ └── video_capture_mf.h │ ├── video_coding │ │ ├── codec_timer.h │ │ ├── codecs │ │ │ ├── h264 │ │ │ │ ├── h264_decoder_impl.h │ │ │ │ ├── h264_encoder_impl.h │ │ │ │ └── include │ │ │ │ │ ├── h264.h │ │ │ │ │ └── h264_globals.h │ │ │ ├── i420 │ │ │ │ └── include │ │ │ │ │ └── i420.h │ │ │ ├── interface │ │ │ │ └── common_constants.h │ │ │ ├── multiplex │ │ │ │ └── include │ │ │ │ │ ├── multiplex_decoder_adapter.h │ │ │ │ │ ├── multiplex_encoded_image_packer.h │ │ │ │ │ └── multiplex_encoder_adapter.h │ │ │ ├── test │ │ │ │ ├── android_codec_factory_helper.h │ │ │ │ ├── objc_codec_factory_helper.h │ │ │ │ ├── video_codec_unittest.h │ │ │ │ ├── videocodec_test_fixture_impl.h │ │ │ │ ├── videocodec_test_stats_impl.h │ │ │ │ └── videoprocessor.h │ │ │ ├── vp8 │ │ │ │ ├── default_temporal_layers.h │ │ │ │ ├── include │ │ │ │ │ ├── vp8.h │ │ │ │ │ └── vp8_globals.h │ │ │ │ ├── libvpx_vp8_decoder.h │ │ │ │ ├── libvpx_vp8_encoder.h │ │ │ │ ├── screenshare_layers.h │ │ │ │ └── temporal_layers.h │ │ │ └── vp9 │ │ │ │ ├── include │ │ │ │ ├── vp9.h │ │ │ │ └── vp9_globals.h │ │ │ │ ├── svc_config.h │ │ │ │ ├── svc_rate_allocator.h │ │ │ │ ├── vp9_frame_buffer_pool.h │ │ │ │ └── vp9_impl.h │ │ ├── decoder_database.h │ │ ├── decoding_state.h │ │ ├── encoded_frame.h │ │ ├── encoder_database.h │ │ ├── fec_controller_default.h │ │ ├── fec_rate_table.h │ │ ├── frame_buffer.h │ │ ├── frame_buffer2.h │ │ ├── frame_object.h │ │ ├── generic_decoder.h │ │ ├── generic_encoder.h │ │ ├── h264_sprop_parameter_sets.h │ │ ├── h264_sps_pps_tracker.h │ │ ├── histogram.h │ │ ├── include │ │ │ ├── mock │ │ │ │ ├── mock_vcm_callbacks.h │ │ │ │ └── mock_video_codec_interface.h │ │ │ ├── video_codec_initializer.h │ │ │ ├── video_codec_interface.h │ │ │ ├── video_coding.h │ │ │ ├── video_coding_defines.h │ │ │ └── video_error_codes.h │ │ ├── inter_frame_delay.h │ │ ├── internal_defines.h │ │ ├── jitter_buffer.h │ │ ├── jitter_buffer_common.h │ │ ├── jitter_estimator.h │ │ ├── media_opt_util.h │ │ ├── media_optimization.h │ │ ├── nack_fec_tables.h │ │ ├── nack_module.h │ │ ├── packet.h │ │ ├── packet_buffer.h │ │ ├── qp_parser.h │ │ ├── receiver.h │ │ ├── rtp_frame_reference_finder.h │ │ ├── rtt_filter.h │ │ ├── session_info.h │ │ ├── test │ │ │ ├── stream_generator.h │ │ │ └── test_util.h │ │ ├── timestamp_map.h │ │ ├── timing.h │ │ ├── utility │ │ │ ├── default_video_bitrate_allocator.h │ │ │ ├── frame_dropper.h │ │ │ ├── ivf_file_writer.h │ │ │ ├── mock │ │ │ │ └── mock_frame_dropper.h │ │ │ ├── moving_average.h │ │ │ ├── quality_scaler.h │ │ │ ├── simulcast_rate_allocator.h │ │ │ ├── simulcast_test_fixture_impl.h │ │ │ ├── simulcast_utility.h │ │ │ ├── vp8_header_parser.h │ │ │ └── vp9_uncompressed_header_parser.h │ │ └── video_coding_impl.h │ └── video_processing │ │ ├── util │ │ ├── denoiser_filter.h │ │ ├── denoiser_filter_c.h │ │ ├── denoiser_filter_neon.h │ │ ├── denoiser_filter_sse2.h │ │ ├── noise_estimation.h │ │ └── skin_detection.h │ │ └── video_denoiser.h │ ├── ortc │ ├── ortcfactory.h │ ├── ortcrtpreceiveradapter.h │ ├── ortcrtpsenderadapter.h │ ├── rtptransportadapter.h │ ├── rtptransportcontrolleradapter.h │ └── testrtpparameters.h │ ├── p2p │ ├── base │ │ ├── asyncstuntcpsocket.h │ │ ├── basicpacketsocketfactory.h │ │ ├── candidatepairinterface.h │ │ ├── dtlstransport.h │ │ ├── dtlstransportinternal.h │ │ ├── fakecandidatepair.h │ │ ├── fakedtlstransport.h │ │ ├── fakeicetransport.h │ │ ├── fakepackettransport.h │ │ ├── fakeportallocator.h │ │ ├── icetransportinternal.h │ │ ├── mockicetransport.h │ │ ├── p2pconstants.h │ │ ├── p2ptransportchannel.h │ │ ├── packetlossestimator.h │ │ ├── packetsocketfactory.h │ │ ├── packettransportinterface.h │ │ ├── packettransportinternal.h │ │ ├── port.h │ │ ├── portallocator.h │ │ ├── portinterface.h │ │ ├── pseudotcp.h │ │ ├── regatheringcontroller.h │ │ ├── relayport.h │ │ ├── relayserver.h │ │ ├── stun.h │ │ ├── stunport.h │ │ ├── stunrequest.h │ │ ├── stunserver.h │ │ ├── tcpport.h │ │ ├── testrelayserver.h │ │ ├── teststunserver.h │ │ ├── testturncustomizer.h │ │ ├── testturnserver.h │ │ ├── transport.h │ │ ├── transportdescription.h │ │ ├── transportdescriptionfactory.h │ │ ├── transportfactoryinterface.h │ │ ├── transportinfo.h │ │ ├── turnport.h │ │ ├── turnserver.h │ │ ├── udpport.h │ │ └── udptransport.h │ ├── client │ │ ├── basicportallocator.h │ │ ├── relayportfactoryinterface.h │ │ └── turnportfactory.h │ └── stunprober │ │ └── stunprober.h │ ├── pc │ ├── audiotrack.h │ ├── bundlefilter.h │ ├── channel.h │ ├── channelmanager.h │ ├── datachannel.h │ ├── dtlssrtptransport.h │ ├── dtmfsender.h │ ├── externalhmac.h │ ├── iceserverparsing.h │ ├── jseptransport.h │ ├── jseptransportcontroller.h │ ├── localaudiosource.h │ ├── mediasession.h │ ├── mediastream.h │ ├── mediastreamobserver.h │ ├── mediastreamtrack.h │ ├── peerconnection.h │ ├── peerconnectionfactory.h │ ├── peerconnectioninternal.h │ ├── peerconnectionwrapper.h │ ├── remoteaudiosource.h │ ├── rtcpmuxfilter.h │ ├── rtcstatscollector.h │ ├── rtcstatstraversal.h │ ├── rtpmediautils.h │ ├── rtpparametersconversion.h │ ├── rtpreceiver.h │ ├── rtpsender.h │ ├── rtptransceiver.h │ ├── rtptransport.h │ ├── rtptransportinternal.h │ ├── rtptransportinternaladapter.h │ ├── rtptransporttestutil.h │ ├── sctputils.h │ ├── sdputils.h │ ├── sessiondescription.h │ ├── srtpfilter.h │ ├── srtpsession.h │ ├── srtptestutil.h │ ├── srtptransport.h │ ├── statscollector.h │ ├── streamcollection.h │ ├── test │ │ ├── androidtestinitializer.h │ │ ├── fakeaudiocapturemodule.h │ │ ├── fakedatachannelprovider.h │ │ ├── fakepeerconnectionbase.h │ │ ├── fakepeerconnectionforstats.h │ │ ├── fakeperiodicvideosource.h │ │ ├── fakeperiodicvideotracksource.h │ │ ├── fakertccertificategenerator.h │ │ ├── fakesctptransport.h │ │ ├── fakevideotrackrenderer.h │ │ ├── fakevideotracksource.h │ │ ├── framegeneratorcapturervideotracksource.h │ │ ├── mock_datachannel.h │ │ ├── mock_peerconnection.h │ │ ├── mock_rtpreceiverinternal.h │ │ ├── mock_rtpsenderinternal.h │ │ ├── mockpeerconnectionobservers.h │ │ ├── peerconnectiontestwrapper.h │ │ ├── rtcstatsobtainer.h │ │ └── testsdpstrings.h │ ├── trackmediainfomap.h │ ├── transportstats.h │ ├── videocapturertracksource.h │ ├── videotrack.h │ ├── videotracksource.h │ ├── webrtcsdp.h │ └── webrtcsessiondescriptionfactory.h │ ├── rtc_base │ ├── arraysize.h │ ├── asyncinvoker-inl.h │ ├── asyncinvoker.h │ ├── asyncpacketsocket.h │ ├── asyncresolverinterface.h │ ├── asyncsocket.h │ ├── asynctcpsocket.h │ ├── asyncudpsocket.h │ ├── atomicops.h │ ├── base64.h │ ├── bind.h │ ├── bitbuffer.h │ ├── bitrateallocationstrategy.h │ ├── buffer.h │ ├── bufferqueue.h │ ├── bytebuffer.h │ ├── byteorder.h │ ├── callback.h │ ├── checks.h │ ├── compile_assert_c.h │ ├── constructormagic.h │ ├── copyonwritebuffer.h │ ├── cpu_time.h │ ├── crc32.h │ ├── criticalsection.h │ ├── cryptstring.h │ ├── data_rate_limiter.h │ ├── deprecation.h │ ├── dscp.h │ ├── event.h │ ├── event_tracer.h │ ├── experiments │ │ ├── alr_experiment.h │ │ ├── congestion_controller_experiment.h │ │ ├── field_trial_parser.h │ │ ├── field_trial_units.h │ │ └── quality_scaling_experiment.h │ ├── fakeclock.h │ ├── fakenetwork.h │ ├── fakesslidentity.h │ ├── file.h │ ├── filerotatingstream.h │ ├── fileutils.h │ ├── firewallsocketserver.h │ ├── flags.h │ ├── format_macros.h │ ├── function_view.h │ ├── gtest_prod_util.h │ ├── gunit.h │ ├── gunit_prod.h │ ├── helpers.h │ ├── httpbase.h │ ├── httpcommon-inl.h │ ├── httpcommon.h │ ├── httpserver.h │ ├── ifaddrs-android.h │ ├── ifaddrs_converter.h │ ├── ignore_wundef.h │ ├── ipaddress.h │ ├── json.h │ ├── keep_ref_until_done.h │ ├── location.h │ ├── logging.h │ ├── logsinks.h │ ├── macutils.h │ ├── memory │ │ ├── aligned_array.h │ │ └── aligned_malloc.h │ ├── memory_usage.h │ ├── messagedigest.h │ ├── messagehandler.h │ ├── messagequeue.h │ ├── natserver.h │ ├── natsocketfactory.h │ ├── nattypes.h │ ├── nethelper.h │ ├── nethelpers.h │ ├── network.h │ ├── network_constants.h │ ├── networkmonitor.h │ ├── networkroute.h │ ├── nullsocketserver.h │ ├── numerics │ │ ├── exp_filter.h │ │ ├── histogram_percentile_counter.h │ │ ├── mathutils.h │ │ ├── mod_ops.h │ │ ├── moving_max_counter.h │ │ ├── moving_median_filter.h │ │ ├── percentile_filter.h │ │ ├── safe_compare.h │ │ ├── safe_conversions.h │ │ ├── safe_conversions_impl.h │ │ ├── safe_minmax.h │ │ ├── sample_counter.h │ │ └── sequence_number_util.h │ ├── onetimeevent.h │ ├── openssl.h │ ├── openssladapter.h │ ├── opensslcertificate.h │ ├── openssldigest.h │ ├── opensslidentity.h │ ├── opensslsessioncache.h │ ├── opensslstreamadapter.h │ ├── opensslutility.h │ ├── optionsfile.h │ ├── pathutils.h │ ├── physicalsocketserver.h │ ├── platform_file.h │ ├── platform_thread.h │ ├── platform_thread_types.h │ ├── protobuf_utils.h │ ├── proxyinfo.h │ ├── proxyserver.h │ ├── ptr_util.h │ ├── race_checker.h │ ├── random.h │ ├── rate_limiter.h │ ├── rate_statistics.h │ ├── ratetracker.h │ ├── refcount.h │ ├── refcountedobject.h │ ├── refcounter.h │ ├── rollingaccumulator.h │ ├── rtccertificate.h │ ├── rtccertificategenerator.h │ ├── sanitizer.h │ ├── scoped_ref_ptr.h │ ├── sequenced_task_checker.h │ ├── sequenced_task_checker_impl.h │ ├── signalthread.h │ ├── sigslot.h │ ├── sigslotrepeater.h │ ├── sigslottester.h │ ├── socket.h │ ├── socket_unittest.h │ ├── socketadapters.h │ ├── socketaddress.h │ ├── socketaddresspair.h │ ├── socketfactory.h │ ├── socketserver.h │ ├── socketstream.h │ ├── ssladapter.h │ ├── sslcertificate.h │ ├── sslfingerprint.h │ ├── sslidentity.h │ ├── sslroots.h │ ├── sslstreamadapter.h │ ├── stream.h │ ├── string_to_number.h │ ├── stringencode.h │ ├── stringize_macros.h │ ├── strings │ │ ├── audio_format_to_string.h │ │ └── string_builder.h │ ├── stringutils.h │ ├── swap_queue.h │ ├── synchronization │ │ ├── rw_lock_posix.h │ │ ├── rw_lock_win.h │ │ └── rw_lock_wrapper.h │ ├── system │ │ ├── arch.h │ │ ├── asm_defines.h │ │ ├── fallthrough.h │ │ ├── file_wrapper.h │ │ ├── ignore_warnings.h │ │ ├── inline.h │ │ └── unused.h │ ├── task_queue.h │ ├── task_queue_for_test.h │ ├── task_queue_posix.h │ ├── template_util.h │ ├── testbase64.h │ ├── testcertificateverifier.h │ ├── testclient.h │ ├── testechoserver.h │ ├── testutils.h │ ├── thread.h │ ├── thread_annotations.h │ ├── thread_checker.h │ ├── thread_checker_impl.h │ ├── time │ │ └── timestamp_extrapolator.h │ ├── timestampaligner.h │ ├── timeutils.h │ ├── trace_event.h │ ├── type_traits.h │ ├── unixfilesystem.h │ ├── virtualsocketserver.h │ ├── weak_ptr.h │ ├── win │ │ └── windows_version.h │ ├── win32.h │ ├── win32filesystem.h │ ├── win32socketinit.h │ ├── win32socketserver.h │ ├── win32window.h │ └── zero_memory.h │ ├── rtc_tools │ ├── converter │ │ └── converter.h │ ├── event_log_visualizer │ │ ├── analyzer.h │ │ ├── plot_base.h │ │ ├── plot_protobuf.h │ │ ├── plot_python.h │ │ └── triage_notifications.h │ ├── frame_analyzer │ │ ├── reference_less_video_analysis_lib.h │ │ └── video_quality_analysis.h │ ├── frame_editing │ │ └── frame_editing_lib.h │ ├── network_tester │ │ ├── config_reader.h │ │ ├── packet_logger.h │ │ ├── packet_sender.h │ │ └── test_controller.h │ └── simple_command_line_parser.h │ ├── sdk │ ├── android │ │ ├── native_api │ │ │ ├── audio_device_module │ │ │ │ └── audio_device_android.h │ │ │ ├── base │ │ │ │ ├── init.h │ │ │ │ └── networkmonitor.h │ │ │ ├── codecs │ │ │ │ └── wrapper.h │ │ │ ├── jni │ │ │ │ ├── class_loader.h │ │ │ │ ├── java_types.h │ │ │ │ ├── jni_int_wrapper.h │ │ │ │ ├── jvm.h │ │ │ │ └── scoped_java_ref.h │ │ │ ├── peerconnection │ │ │ │ └── peerconnectionfactory.h │ │ │ └── video │ │ │ │ ├── videosource.h │ │ │ │ └── wrapper.h │ │ └── src │ │ │ └── jni │ │ │ ├── androidmediacodeccommon.h │ │ │ ├── androidmediadecoder_jni.h │ │ │ ├── androidmediaencoder_jni.h │ │ │ ├── androidnetworkmonitor.h │ │ │ ├── androidnetworkmonitor_jni.h │ │ │ ├── androidvideotracksource.h │ │ │ ├── audio_device │ │ │ ├── aaudio_player.h │ │ │ ├── aaudio_recorder.h │ │ │ ├── aaudio_wrapper.h │ │ │ ├── audio_common.h │ │ │ ├── audio_device_module.h │ │ │ ├── audio_record_jni.h │ │ │ ├── audio_track_jni.h │ │ │ ├── opensles_common.h │ │ │ ├── opensles_player.h │ │ │ └── opensles_recorder.h │ │ │ ├── class_loader.h │ │ │ ├── classreferenceholder.h │ │ │ ├── encodedimage.h │ │ │ ├── jni_generator_helper.h │ │ │ ├── jni_helpers.h │ │ │ ├── jvm.h │ │ │ ├── logging │ │ │ └── logsink.h │ │ │ ├── nativecapturerobserver.h │ │ │ ├── pc │ │ │ ├── androidnetworkmonitor.h │ │ │ ├── audio.h │ │ │ ├── datachannel.h │ │ │ ├── icecandidate.h │ │ │ ├── media.h │ │ │ ├── mediaconstraints.h │ │ │ ├── mediastream.h │ │ │ ├── mediastreamtrack.h │ │ │ ├── ownedfactoryandthreads.h │ │ │ ├── peerconnection.h │ │ │ ├── peerconnectionfactory.h │ │ │ ├── rtcstatscollectorcallbackwrapper.h │ │ │ ├── rtpparameters.h │ │ │ ├── rtpreceiver.h │ │ │ ├── rtpsender.h │ │ │ ├── rtptransceiver.h │ │ │ ├── sdpobserver.h │ │ │ ├── sessiondescription.h │ │ │ ├── statsobserver.h │ │ │ ├── turncustomizer.h │ │ │ └── video.h │ │ │ ├── videocodecinfo.h │ │ │ ├── videocodecstatus.h │ │ │ ├── videodecoderfactorywrapper.h │ │ │ ├── videodecoderwrapper.h │ │ │ ├── videoencoderfactorywrapper.h │ │ │ ├── videoencoderwrapper.h │ │ │ ├── videoframe.h │ │ │ ├── videosink.h │ │ │ ├── wrapped_native_i420_buffer.h │ │ │ └── wrappednativecodec.h │ └── objc │ │ └── Framework │ │ ├── Classes │ │ ├── Audio │ │ │ ├── RTCAudioSession+Private.h │ │ │ └── RTCNativeAudioSessionDelegateAdapter.h │ │ ├── Common │ │ │ ├── NSString+StdString.h │ │ │ ├── RTCDispatcher+Private.h │ │ │ ├── RTCUIApplicationStatusObserver.h │ │ │ ├── helpers.h │ │ │ └── scoped_cftyperef.h │ │ ├── Metal │ │ │ ├── RTCMTLI420Renderer.h │ │ │ ├── RTCMTLNV12Renderer.h │ │ │ ├── RTCMTLRGBRenderer.h │ │ │ ├── RTCMTLRenderer+Private.h │ │ │ └── RTCMTLRenderer.h │ │ ├── PeerConnection │ │ │ ├── RTCAudioSource+Private.h │ │ │ ├── RTCAudioTrack+Private.h │ │ │ ├── RTCConfiguration+Native.h │ │ │ ├── RTCConfiguration+Private.h │ │ │ ├── RTCDataChannel+Private.h │ │ │ ├── RTCDataChannelConfiguration+Private.h │ │ │ ├── RTCDtmfSender+Private.h │ │ │ ├── RTCIceCandidate+Private.h │ │ │ ├── RTCIceServer+Private.h │ │ │ ├── RTCIntervalRange+Private.h │ │ │ ├── RTCLegacyStatsReport+Private.h │ │ │ ├── RTCMediaConstraints+Private.h │ │ │ ├── RTCMediaSource+Private.h │ │ │ ├── RTCMediaStream+Private.h │ │ │ ├── RTCMediaStreamTrack+Private.h │ │ │ ├── RTCMetricsSampleInfo+Private.h │ │ │ ├── RTCPeerConnection+Native.h │ │ │ ├── RTCPeerConnection+Private.h │ │ │ ├── RTCPeerConnectionFactory+Native.h │ │ │ ├── RTCPeerConnectionFactory+Private.h │ │ │ ├── RTCPeerConnectionFactoryBuilder+DefaultComponents.h │ │ │ ├── RTCPeerConnectionFactoryBuilder.h │ │ │ ├── RTCPeerConnectionFactoryOptions+Private.h │ │ │ ├── RTCRtcpParameters+Private.h │ │ │ ├── RTCRtpCodecParameters+Private.h │ │ │ ├── RTCRtpEncodingParameters+Private.h │ │ │ ├── RTCRtpHeaderExtension+Private.h │ │ │ ├── RTCRtpParameters+Private.h │ │ │ ├── RTCRtpReceiver+Private.h │ │ │ ├── RTCRtpSender+Private.h │ │ │ ├── RTCRtpTransceiver+Private.h │ │ │ ├── RTCSessionDescription+Private.h │ │ │ ├── RTCVideoCodec+Private.h │ │ │ ├── RTCVideoRendererAdapter+Private.h │ │ │ ├── RTCVideoRendererAdapter.h │ │ │ ├── RTCVideoSource+Private.h │ │ │ ├── RTCVideoTrack+Private.h │ │ │ ├── RTCWrappedNativeVideoDecoder.h │ │ │ └── RTCWrappedNativeVideoEncoder.h │ │ ├── Video │ │ │ ├── AVCaptureSession+DevicePosition.h │ │ │ ├── RTCDefaultShader.h │ │ │ ├── RTCI420Buffer+Private.h │ │ │ ├── RTCI420TextureCache.h │ │ │ ├── RTCNV12TextureCache.h │ │ │ ├── RTCOpenGLDefines.h │ │ │ ├── RTCShader.h │ │ │ └── UIDevice+H264Profile.h │ │ └── VideoToolbox │ │ │ ├── helpers.h │ │ │ └── nalu_rewriter.h │ │ ├── Headers │ │ └── WebRTC │ │ │ ├── RTCAudioSession.h │ │ │ ├── RTCAudioSessionConfiguration.h │ │ │ ├── RTCAudioSource.h │ │ │ ├── RTCAudioTrack.h │ │ │ ├── RTCCallbackLogger.h │ │ │ ├── RTCCameraPreviewView.h │ │ │ ├── RTCCameraVideoCapturer.h │ │ │ ├── RTCConfiguration.h │ │ │ ├── RTCDataChannel.h │ │ │ ├── RTCDataChannelConfiguration.h │ │ │ ├── RTCDispatcher.h │ │ │ ├── RTCDtmfSender.h │ │ │ ├── RTCEAGLVideoView.h │ │ │ ├── RTCFieldTrials.h │ │ │ ├── RTCFileLogger.h │ │ │ ├── RTCFileVideoCapturer.h │ │ │ ├── RTCIceCandidate.h │ │ │ ├── RTCIceServer.h │ │ │ ├── RTCIntervalRange.h │ │ │ ├── RTCLegacyStatsReport.h │ │ │ ├── RTCLogging.h │ │ │ ├── RTCMTLNSVideoView.h │ │ │ ├── RTCMTLVideoView.h │ │ │ ├── RTCMacros.h │ │ │ ├── RTCMediaConstraints.h │ │ │ ├── RTCMediaSource.h │ │ │ ├── RTCMediaStream.h │ │ │ ├── RTCMediaStreamTrack.h │ │ │ ├── RTCMetrics.h │ │ │ ├── RTCMetricsSampleInfo.h │ │ │ ├── RTCNSGLVideoView.h │ │ │ ├── RTCPeerConnection.h │ │ │ ├── RTCPeerConnectionFactory.h │ │ │ ├── RTCPeerConnectionFactoryOptions.h │ │ │ ├── RTCRtcpParameters.h │ │ │ ├── RTCRtpCodecParameters.h │ │ │ ├── RTCRtpEncodingParameters.h │ │ │ ├── RTCRtpHeaderExtension.h │ │ │ ├── RTCRtpParameters.h │ │ │ ├── RTCRtpReceiver.h │ │ │ ├── RTCRtpSender.h │ │ │ ├── RTCRtpTransceiver.h │ │ │ ├── RTCSSLAdapter.h │ │ │ ├── RTCSessionDescription.h │ │ │ ├── RTCTracing.h │ │ │ ├── RTCVideoCapturer.h │ │ │ ├── RTCVideoCodec.h │ │ │ ├── RTCVideoCodecFactory.h │ │ │ ├── RTCVideoCodecH264.h │ │ │ ├── RTCVideoDecoderVP8.h │ │ │ ├── RTCVideoDecoderVP9.h │ │ │ ├── RTCVideoEncoderVP8.h │ │ │ ├── RTCVideoEncoderVP9.h │ │ │ ├── RTCVideoFrame.h │ │ │ ├── RTCVideoFrameBuffer.h │ │ │ ├── RTCVideoRenderer.h │ │ │ ├── RTCVideoSource.h │ │ │ ├── RTCVideoTrack.h │ │ │ ├── RTCVideoViewShading.h │ │ │ └── UIDevice+RTCDevice.h │ │ ├── Native │ │ ├── api │ │ │ ├── audio_device_module.h │ │ │ ├── video_capturer.h │ │ │ ├── video_decoder_factory.h │ │ │ ├── video_encoder_factory.h │ │ │ ├── video_frame.h │ │ │ ├── video_frame_buffer.h │ │ │ └── video_renderer.h │ │ └── src │ │ │ ├── audio │ │ │ ├── audio_device_ios.h │ │ │ ├── audio_device_module_ios.h │ │ │ ├── audio_session_observer.h │ │ │ └── voice_processing_audio_unit.h │ │ │ ├── objc_frame_buffer.h │ │ │ ├── objc_video_decoder_factory.h │ │ │ ├── objc_video_encoder_factory.h │ │ │ ├── objc_video_frame.h │ │ │ ├── objc_video_renderer.h │ │ │ └── objc_video_track_source.h │ │ └── UnitTests │ │ └── frame_buffer_helpers.h │ ├── stats │ └── test │ │ └── rtcteststats.h │ ├── system_wrappers │ ├── include │ │ ├── clock.h │ │ ├── cpu_features_wrapper.h │ │ ├── cpu_info.h │ │ ├── event_wrapper.h │ │ ├── field_trial.h │ │ ├── field_trial_default.h │ │ ├── metrics.h │ │ ├── metrics_default.h │ │ ├── ntp_time.h │ │ ├── rtp_to_ntp_estimator.h │ │ ├── runtime_enabled_features.h │ │ └── sleep.h │ └── source │ │ ├── event_timer_posix.h │ │ └── event_timer_win.h │ ├── third_party │ └── abseil-cpp │ │ └── absl │ │ ├── algorithm │ │ ├── algorithm.h │ │ └── container.h │ │ ├── base │ │ ├── attributes.h │ │ ├── call_once.h │ │ ├── casts.h │ │ ├── config.h │ │ ├── dynamic_annotations.h │ │ ├── internal │ │ │ ├── atomic_hook.h │ │ │ ├── cycleclock.h │ │ │ ├── direct_mmap.h │ │ │ ├── endian.h │ │ │ ├── exception_safety_testing.h │ │ │ ├── exception_testing.h │ │ │ ├── hide_ptr.h │ │ │ ├── identity.h │ │ │ ├── inline_variable.h │ │ │ ├── inline_variable_testing.h │ │ │ ├── invoke.h │ │ │ ├── low_level_alloc.h │ │ │ ├── low_level_scheduling.h │ │ │ ├── per_thread_tls.h │ │ │ ├── pretty_function.h │ │ │ ├── raw_logging.h │ │ │ ├── scheduling_mode.h │ │ │ ├── spinlock.h │ │ │ ├── spinlock_wait.h │ │ │ ├── sysinfo.h │ │ │ ├── thread_identity.h │ │ │ ├── throw_delegate.h │ │ │ ├── tsan_mutex_interface.h │ │ │ ├── unaligned_access.h │ │ │ └── unscaledcycleclock.h │ │ ├── log_severity.h │ │ ├── macros.h │ │ ├── optimization.h │ │ ├── policy_checks.h │ │ ├── port.h │ │ └── thread_annotations.h │ │ ├── container │ │ ├── fixed_array.h │ │ ├── inlined_vector.h │ │ └── internal │ │ │ └── test_instance_tracker.h │ │ ├── debugging │ │ ├── failure_signal_handler.h │ │ ├── internal │ │ │ ├── address_is_readable.h │ │ │ ├── demangle.h │ │ │ ├── elf_mem_image.h │ │ │ ├── examine_stack.h │ │ │ ├── stack_consumption.h │ │ │ ├── stacktrace_config.h │ │ │ ├── symbolize.h │ │ │ └── vdso_support.h │ │ ├── leak_check.h │ │ ├── stacktrace.h │ │ └── symbolize.h │ │ ├── memory │ │ └── memory.h │ │ ├── meta │ │ └── type_traits.h │ │ ├── numeric │ │ └── int128.h │ │ ├── strings │ │ ├── ascii.h │ │ ├── charconv.h │ │ ├── escaping.h │ │ ├── internal │ │ │ ├── bits.h │ │ │ ├── char_map.h │ │ │ ├── charconv_bigint.h │ │ │ ├── charconv_parse.h │ │ │ ├── escaping_test_common.h │ │ │ ├── memutil.h │ │ │ ├── numbers_test_common.h │ │ │ ├── ostringstream.h │ │ │ ├── resize_uninitialized.h │ │ │ ├── stl_type_traits.h │ │ │ ├── str_join_internal.h │ │ │ ├── str_split_internal.h │ │ │ └── utf8.h │ │ ├── match.h │ │ ├── numbers.h │ │ ├── str_cat.h │ │ ├── str_join.h │ │ ├── str_replace.h │ │ ├── str_split.h │ │ ├── string_view.h │ │ ├── strip.h │ │ └── substitute.h │ │ ├── synchronization │ │ ├── barrier.h │ │ ├── blocking_counter.h │ │ ├── internal │ │ │ ├── create_thread_identity.h │ │ │ ├── graphcycles.h │ │ │ ├── kernel_timeout.h │ │ │ ├── per_thread_sem.h │ │ │ ├── thread_pool.h │ │ │ └── waiter.h │ │ ├── mutex.h │ │ └── notification.h │ │ ├── time │ │ ├── clock.h │ │ ├── internal │ │ │ ├── cctz │ │ │ │ ├── include │ │ │ │ │ └── cctz │ │ │ │ │ │ ├── civil_time.h │ │ │ │ │ │ ├── civil_time_detail.h │ │ │ │ │ │ ├── time_zone.h │ │ │ │ │ │ └── zone_info_source.h │ │ │ │ └── src │ │ │ │ │ ├── time_zone_fixed.h │ │ │ │ │ ├── time_zone_if.h │ │ │ │ │ ├── time_zone_impl.h │ │ │ │ │ ├── time_zone_info.h │ │ │ │ │ ├── time_zone_libc.h │ │ │ │ │ ├── time_zone_posix.h │ │ │ │ │ └── tzfile.h │ │ │ └── test_util.h │ │ └── time.h │ │ ├── types │ │ ├── any.h │ │ ├── bad_any_cast.h │ │ ├── bad_optional_access.h │ │ ├── bad_variant_access.h │ │ ├── internal │ │ │ └── variant.h │ │ ├── optional.h │ │ ├── span.h │ │ └── variant.h │ │ └── utility │ │ └── utility.h │ ├── typedefs.h │ └── video │ ├── call_stats.h │ ├── encoder_rtcp_feedback.h │ ├── end_to_end_tests │ └── multi_stream_tester.h │ ├── overuse_frame_detector.h │ ├── payload_router.h │ ├── quality_threshold.h │ ├── receive_statistics_proxy.h │ ├── report_block_stats.h │ ├── rtp_streams_synchronizer.h │ ├── rtp_video_stream_receiver.h │ ├── send_delay_stats.h │ ├── send_statistics_proxy.h │ ├── stats_counter.h │ ├── stream_synchronization.h │ ├── test │ └── mock_video_stream_encoder.h │ ├── transport_adapter.h │ ├── video_quality_observer.h │ ├── video_quality_test.h │ ├── video_receive_stream.h │ ├── video_send_stream.h │ ├── video_send_stream_impl.h │ ├── video_stream_decoder.h │ ├── video_stream_decoder_impl.h │ └── video_stream_encoder.h ├── mac_project ├── .gitignore ├── AudioMixer.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── example │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── AudioMixerExample.entitlements │ ├── Base.lproj │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── mp3 ├── iamyou-48k.mp3 ├── lion-48k.mp3 ├── morning-48k.mp3 ├── morning-mono-16k.mp3 └── morning.raw ├── package_libs.sh ├── run_djinni.sh ├── settings.gradle ├── simple_lib_android_maven_release.sh └── src ├── audio_file_decoder.cpp ├── audio_file_decoder.h ├── audio_file_source.cpp ├── audio_file_source.h ├── audio_mixer.cpp ├── audio_mixer.h ├── audio_mixer_global.cpp ├── audio_mixer_global.h ├── audio_record_source.cpp ├── audio_record_source.h ├── audio_resampler.cpp ├── audio_resampler.h ├── audio_source.cpp ├── audio_source.h └── avx_helper.h /.gitignore: -------------------------------------------------------------------------------- 1 | **.iml 2 | .idea 3 | .gradle 4 | /local.properties 5 | /gradle/bintray.properties 6 | **/build 7 | **/.externalNativeBuild 8 | **/.cxx 9 | 10 | /libs/ffmpeg/lib/ 11 | /libs/webrtc/lib/ 12 | libs*.zip 13 | -------------------------------------------------------------------------------- /android_project/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /captures 3 | -------------------------------------------------------------------------------- /android_project/AudioMixer/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /.externalNativeBuild/ 3 | -------------------------------------------------------------------------------- /android_project/AudioMixer/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/piasy/tools/android-sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /android_project/AudioMixer/src/debug/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Piasy/AudioMixer/e09f3a5c60d4b695497a1dfac072c795a6f7a0d6/android_project/AudioMixer/src/debug/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android_project/AudioMixer/src/debug/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Piasy/AudioMixer/e09f3a5c60d4b695497a1dfac072c795a6f7a0d6/android_project/AudioMixer/src/debug/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android_project/AudioMixer/src/debug/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Piasy/AudioMixer/e09f3a5c60d4b695497a1dfac072c795a6f7a0d6/android_project/AudioMixer/src/debug/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android_project/AudioMixer/src/debug/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Piasy/AudioMixer/e09f3a5c60d4b695497a1dfac072c795a6f7a0d6/android_project/AudioMixer/src/debug/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android_project/AudioMixer/src/debug/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Piasy/AudioMixer/e09f3a5c60d4b695497a1dfac072c795a6f7a0d6/android_project/AudioMixer/src/debug/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android_project/AudioMixer/src/debug/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /android_project/AudioMixer/src/debug/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /android_project/AudioMixer/src/debug/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /android_project/AudioMixer/src/debug/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | AudioMixer 3 | 4 | -------------------------------------------------------------------------------- /android_project/AudioMixer/src/debug/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android_project/AudioMixer/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /android_project/AudioMixer/src/main/java/com/github/piasy/audio_mixer/AudioBuffer.java: -------------------------------------------------------------------------------- 1 | package com.github.piasy.audio_mixer; 2 | 3 | /** 4 | * Created by Piasy{github.com/Piasy} on 15/11/2017. 5 | */ 6 | public class AudioBuffer { 7 | private byte[] buffer; 8 | private int size; 9 | 10 | AudioBuffer(final byte[] buffer, final int size) { 11 | this.buffer = buffer; 12 | this.size = size; 13 | } 14 | 15 | public byte[] getBuffer() { 16 | return buffer; 17 | } 18 | 19 | public int getSize() { 20 | return size; 21 | } 22 | 23 | public AudioBuffer setSize(int size) { 24 | this.size = size; 25 | return this; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /djinni/audio_mixer.djinni: -------------------------------------------------------------------------------- 1 | mixer_source = record { 2 | type: i32; 3 | ssrc: i32; 4 | volume: f32; 5 | 6 | path: string; 7 | 8 | sample_rate: i32; 9 | channel_num: i32; 10 | 11 | const type_file: i32 = 1; 12 | const type_record: i32 = 2; 13 | } 14 | 15 | mixer_config = record { 16 | sources: list; 17 | 18 | output_sample_rate: i32; 19 | output_channel_num: i32; 20 | 21 | frame_duration_ms: i32; 22 | } 23 | 24 | audio_mixer_api = interface +c { 25 | static create(config: mixer_config): audio_mixer_api; 26 | 27 | update_volume(ssrc: i32, volume: f32); 28 | 29 | add_source(source: mixer_source): bool; 30 | remove_source(ssrc: i32): bool; 31 | 32 | const max_buf_size: i32 = 7680; 33 | const sample_size: i32 = 2; 34 | } 35 | -------------------------------------------------------------------------------- /extract_libs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | TAG=libs-20180702 4 | 5 | wget https://github.com/Piasy/AudioMixer/releases/download/${TAG}/${TAG}.zip && \ 6 | rm -rf libs && \ 7 | unzip ${TAG}.zip 8 | -------------------------------------------------------------------------------- /generated_src/cpp/audio_mixer_api.cpp: -------------------------------------------------------------------------------- 1 | // AUTOGENERATED FILE - DO NOT MODIFY! 2 | // This file generated by Djinni from audio_mixer.djinni 3 | 4 | #include "audio_mixer_api.hpp" // my header 5 | #include "mixer_config.hpp" 6 | #include "mixer_source.hpp" 7 | 8 | namespace audio_mixer { 9 | 10 | int32_t constexpr AudioMixerApi::MAX_BUF_SIZE; 11 | 12 | int32_t constexpr AudioMixerApi::SAMPLE_SIZE; 13 | 14 | } // namespace audio_mixer 15 | -------------------------------------------------------------------------------- /generated_src/cpp/audio_mixer_api.hpp: -------------------------------------------------------------------------------- 1 | // AUTOGENERATED FILE - DO NOT MODIFY! 2 | // This file generated by Djinni from audio_mixer.djinni 3 | 4 | #pragma once 5 | 6 | #include 7 | #include 8 | 9 | namespace audio_mixer { 10 | 11 | struct MixerConfig; 12 | struct MixerSource; 13 | 14 | class AudioMixerApi { 15 | public: 16 | virtual ~AudioMixerApi() {} 17 | 18 | static constexpr int32_t MAX_BUF_SIZE = 7680; 19 | 20 | static constexpr int32_t SAMPLE_SIZE = 2; 21 | 22 | static std::shared_ptr Create(const MixerConfig & config); 23 | 24 | virtual void UpdateVolume(int32_t ssrc, float volume) = 0; 25 | 26 | virtual bool AddSource(const MixerSource & source) = 0; 27 | 28 | virtual bool RemoveSource(int32_t ssrc) = 0; 29 | }; 30 | 31 | } // namespace audio_mixer 32 | -------------------------------------------------------------------------------- /generated_src/cpp/mixer_config.hpp: -------------------------------------------------------------------------------- 1 | // AUTOGENERATED FILE - DO NOT MODIFY! 2 | // This file generated by Djinni from audio_mixer.djinni 3 | 4 | #pragma once 5 | 6 | #include "mixer_source.hpp" 7 | #include 8 | #include 9 | #include 10 | 11 | namespace audio_mixer { 12 | 13 | struct MixerConfig final { 14 | std::vector sources; 15 | int32_t output_sample_rate; 16 | int32_t output_channel_num; 17 | int32_t frame_duration_ms; 18 | 19 | MixerConfig(std::vector sources_, 20 | int32_t output_sample_rate_, 21 | int32_t output_channel_num_, 22 | int32_t frame_duration_ms_) 23 | : sources(std::move(sources_)) 24 | , output_sample_rate(std::move(output_sample_rate_)) 25 | , output_channel_num(std::move(output_channel_num_)) 26 | , frame_duration_ms(std::move(frame_duration_ms_)) 27 | {} 28 | }; 29 | 30 | } // namespace audio_mixer 31 | -------------------------------------------------------------------------------- /generated_src/cpp/mixer_source.cpp: -------------------------------------------------------------------------------- 1 | // AUTOGENERATED FILE - DO NOT MODIFY! 2 | // This file generated by Djinni from audio_mixer.djinni 3 | 4 | #include "mixer_source.hpp" // my header 5 | 6 | namespace audio_mixer { 7 | 8 | int32_t constexpr MixerSource::TYPE_FILE; 9 | 10 | int32_t constexpr MixerSource::TYPE_RECORD; 11 | 12 | } // namespace audio_mixer 13 | -------------------------------------------------------------------------------- /generated_src/objc/PYAAudioMixerApi+Private.h: -------------------------------------------------------------------------------- 1 | // AUTOGENERATED FILE - DO NOT MODIFY! 2 | // This file generated by Djinni from audio_mixer.djinni 3 | 4 | #include "audio_mixer_api.hpp" 5 | #include 6 | 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file"); 8 | 9 | @class PYAAudioMixerApi; 10 | 11 | namespace djinni_generated { 12 | 13 | class AudioMixerApi 14 | { 15 | public: 16 | using CppType = std::shared_ptr<::audio_mixer::AudioMixerApi>; 17 | using CppOptType = std::shared_ptr<::audio_mixer::AudioMixerApi>; 18 | using ObjcType = PYAAudioMixerApi*; 19 | 20 | using Boxed = AudioMixerApi; 21 | 22 | static CppType toCpp(ObjcType objc); 23 | static ObjcType fromCppOpt(const CppOptType& cpp); 24 | static ObjcType fromCpp(const CppType& cpp) { return fromCppOpt(cpp); } 25 | 26 | private: 27 | class ObjcProxy; 28 | }; 29 | 30 | } // namespace djinni_generated 31 | 32 | -------------------------------------------------------------------------------- /generated_src/objc/PYAAudioMixerApi.h: -------------------------------------------------------------------------------- 1 | // AUTOGENERATED FILE - DO NOT MODIFY! 2 | // This file generated by Djinni from audio_mixer.djinni 3 | 4 | #import "PYAMixerConfig.h" 5 | #import "PYAMixerSource.h" 6 | #import 7 | @class PYAAudioMixerApi; 8 | 9 | extern int32_t const PYAAudioMixerApiMaxBufSize; 10 | extern int32_t const PYAAudioMixerApiSampleSize; 11 | 12 | @interface PYAAudioMixerApi : NSObject 13 | 14 | + (nullable PYAAudioMixerApi *)create:(nonnull PYAMixerConfig *)config; 15 | 16 | - (void)updateVolume:(int32_t)ssrc 17 | volume:(float)volume; 18 | 19 | - (BOOL)addSource:(nonnull PYAMixerSource *)source; 20 | 21 | - (BOOL)removeSource:(int32_t)ssrc; 22 | 23 | - (nullable void *)nativeMixer; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /generated_src/objc/PYAAudioMixerApi.mm: -------------------------------------------------------------------------------- 1 | // AUTOGENERATED FILE - DO NOT MODIFY! 2 | // This file generated by Djinni from audio_mixer.djinni 3 | 4 | #import "PYAAudioMixerApi.h" 5 | 6 | 7 | int32_t const PYAAudioMixerApiMaxBufSize = 7680; 8 | 9 | int32_t const PYAAudioMixerApiSampleSize = 2; 10 | -------------------------------------------------------------------------------- /generated_src/objc/PYAMixerConfig+Private.h: -------------------------------------------------------------------------------- 1 | // AUTOGENERATED FILE - DO NOT MODIFY! 2 | // This file generated by Djinni from audio_mixer.djinni 3 | 4 | #import "PYAMixerConfig.h" 5 | #include "mixer_config.hpp" 6 | 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file"); 8 | 9 | @class PYAMixerConfig; 10 | 11 | namespace djinni_generated { 12 | 13 | struct MixerConfig 14 | { 15 | using CppType = ::audio_mixer::MixerConfig; 16 | using ObjcType = PYAMixerConfig*; 17 | 18 | using Boxed = MixerConfig; 19 | 20 | static CppType toCpp(ObjcType objc); 21 | static ObjcType fromCpp(const CppType& cpp); 22 | }; 23 | 24 | } // namespace djinni_generated 25 | -------------------------------------------------------------------------------- /generated_src/objc/PYAMixerSource+Private.h: -------------------------------------------------------------------------------- 1 | // AUTOGENERATED FILE - DO NOT MODIFY! 2 | // This file generated by Djinni from audio_mixer.djinni 3 | 4 | #import "PYAMixerSource.h" 5 | #include "mixer_source.hpp" 6 | 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file"); 8 | 9 | @class PYAMixerSource; 10 | 11 | namespace djinni_generated { 12 | 13 | struct MixerSource 14 | { 15 | using CppType = ::audio_mixer::MixerSource; 16 | using ObjcType = PYAMixerSource*; 17 | 18 | using Boxed = MixerSource; 19 | 20 | static CppType toCpp(ObjcType objc); 21 | static ObjcType fromCpp(const CppType& cpp); 22 | }; 23 | 24 | } // namespace djinni_generated 25 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | org.gradle.jvmargs=-Xmx1536m 13 | 14 | # When configured, Gradle will run in incubating parallel mode. 15 | # This option should only be used with decoupled projects. More details, visit 16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 17 | # org.gradle.parallel=true 18 | 19 | android.useAndroidX=true 20 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Piasy/AudioMixer/e09f3a5c60d4b695497a1dfac072c795a6f7a0d6/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Jan 14 15:04:35 CST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip 7 | -------------------------------------------------------------------------------- /ios_project/.gitignore: -------------------------------------------------------------------------------- 1 | #AudioMixer.xcodeproj 2 | xcuserdata 3 | -------------------------------------------------------------------------------- /ios_project/AudioMixer.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios_project/AudioMixer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios_project/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | NSHumanReadableCopyright 22 | Copyright © 2018 Piasy. All rights reserved. 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios_project/example/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ios_project/setup_xcode_project.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | rm -rf AudioMixer.xcodeproj && xcodegen 4 | -------------------------------------------------------------------------------- /libs/ffmpeg/include/libavutil/avconfig.h: -------------------------------------------------------------------------------- 1 | /* Generated by ffconf */ 2 | #ifndef AVUTIL_AVCONFIG_H 3 | #define AVUTIL_AVCONFIG_H 4 | #define AV_HAVE_BIGENDIAN 0 5 | #define AV_HAVE_FAST_UNALIGNED 0 6 | #endif /* AVUTIL_AVCONFIG_H */ 7 | -------------------------------------------------------------------------------- /libs/ffmpeg/include/libavutil/ffversion.h: -------------------------------------------------------------------------------- 1 | /* Automatically generated by version.sh, do not manually edit! */ 2 | #ifndef AVUTIL_FFVERSION_H 3 | #define AVUTIL_FFVERSION_H 4 | #define FFMPEG_VERSION "3.4.2" 5 | #endif /* AVUTIL_FFVERSION_H */ 6 | -------------------------------------------------------------------------------- /libs/webrtc/include/api/optional.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | // TODO(bugs.webrtc.org/9078): Use absl::optional directly. 12 | #ifndef API_OPTIONAL_H_ 13 | #define API_OPTIONAL_H_ 14 | 15 | #include "absl/types/optional.h" 16 | 17 | namespace rtc { 18 | 19 | using absl::nullopt_t; 20 | using absl::nullopt; 21 | 22 | template 23 | using Optional = absl::optional; 24 | 25 | } // namespace rtc 26 | 27 | #endif // API_OPTIONAL_H_ 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/api/transport/test/mock_network_control.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef API_TRANSPORT_TEST_MOCK_NETWORK_CONTROL_H_ 12 | #define API_TRANSPORT_TEST_MOCK_NETWORK_CONTROL_H_ 13 | 14 | #include "api/transport/include/network_control.h" 15 | #include "test/gmock.h" 16 | 17 | namespace webrtc { 18 | namespace test { 19 | class MockTargetTransferRateObserver : public TargetTransferRateObserver { 20 | public: 21 | MOCK_METHOD1(OnTargetTransferRate, void(TargetTransferRate)); 22 | }; 23 | } // namespace test 24 | } // namespace webrtc 25 | 26 | #endif // API_TRANSPORT_TEST_MOCK_NETWORK_CONTROL_H_ 27 | -------------------------------------------------------------------------------- /libs/webrtc/include/api/video/video_rotation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef API_VIDEO_VIDEO_ROTATION_H_ 12 | #define API_VIDEO_VIDEO_ROTATION_H_ 13 | 14 | namespace webrtc { 15 | 16 | // enum for clockwise rotation. 17 | enum VideoRotation { 18 | kVideoRotation_0 = 0, 19 | kVideoRotation_90 = 90, 20 | kVideoRotation_180 = 180, 21 | kVideoRotation_270 = 270 22 | }; 23 | 24 | } // namespace webrtc 25 | 26 | #endif // API_VIDEO_VIDEO_ROTATION_H_ 27 | -------------------------------------------------------------------------------- /libs/webrtc/include/api/video_codecs/builtin_video_decoder_factory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef API_VIDEO_CODECS_BUILTIN_VIDEO_DECODER_FACTORY_H_ 12 | #define API_VIDEO_CODECS_BUILTIN_VIDEO_DECODER_FACTORY_H_ 13 | 14 | #include 15 | 16 | #include "api/video_codecs/video_decoder_factory.h" 17 | 18 | namespace webrtc { 19 | 20 | // Creates a new factory that can create the built-in types of video decoders. 21 | std::unique_ptr CreateBuiltinVideoDecoderFactory(); 22 | 23 | } // namespace webrtc 24 | 25 | #endif // API_VIDEO_CODECS_BUILTIN_VIDEO_DECODER_FACTORY_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/api/videosourceinterface.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef API_VIDEOSOURCEINTERFACE_H_ 12 | #define API_VIDEOSOURCEINTERFACE_H_ 13 | 14 | // TODO(nisse): Place holder for moved file. Delete after applications are 15 | // updated. 16 | #include "api/video/video_source_interface.h" 17 | 18 | #endif // API_VIDEOSOURCEINTERFACE_H_ 19 | -------------------------------------------------------------------------------- /libs/webrtc/include/audio/conversion.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef AUDIO_CONVERSION_H_ 12 | #define AUDIO_CONVERSION_H_ 13 | 14 | namespace webrtc { 15 | 16 | // Convert fixed point number with 8 bit fractional part, to floating point. 17 | inline float Q8ToFloat(uint32_t v) { 18 | return static_cast(v) / (1 << 8); 19 | } 20 | 21 | // Convert fixed point number with 14 bit fractional part, to floating point. 22 | inline float Q14ToFloat(uint32_t v) { 23 | return static_cast(v) / (1 << 14); 24 | } 25 | } // namespace webrtc 26 | 27 | #endif // AUDIO_CONVERSION_H_ 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/allocator/allocator_check.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_ALLOCATOR_ALLOCATOR_ALLOCATOR_CHECK_H_ 6 | #define BASE_ALLOCATOR_ALLOCATOR_ALLOCATOR_CHECK_H_ 7 | 8 | #include "base/base_export.h" 9 | 10 | namespace base { 11 | namespace allocator { 12 | 13 | BASE_EXPORT bool IsAllocatorInitialized(); 14 | 15 | } // namespace allocator 16 | } // namespace base 17 | 18 | #endif // BASE_ALLOCATOR_ALLOCATOR_ALLOCATOR_CHECK_H_ 19 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/allocator/allocator_shim_default_dispatch_to_mac_zoned_malloc.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_ALLOCATOR_ALLOCATOR_SHIM_DEFAULT_DISPATCH_TO_ZONED_MALLOC_H_ 6 | #define BASE_ALLOCATOR_ALLOCATOR_SHIM_DEFAULT_DISPATCH_TO_ZONED_MALLOC_H_ 7 | 8 | namespace base { 9 | namespace allocator { 10 | 11 | // This initializes AllocatorDispatch::default_dispatch by saving pointers to 12 | // the functions in the current default malloc zone. This must be called before 13 | // the default malloc zone is changed to have its intended effect. 14 | void InitializeDefaultDispatchToMacAllocator(); 15 | 16 | } // namespace allocator 17 | } // namespace base 18 | 19 | #endif // BASE_ALLOCATOR_ALLOCATOR_SHIM_DEFAULT_DISPATCH_TO_ZONED_MALLOC_H_ 20 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/allocator/partition_allocator/page_allocator_internal.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_PAGE_ALLOCATOR_INTERNAL_H_ 6 | #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_PAGE_ALLOCATOR_INTERNAL_H_ 7 | 8 | namespace base { 9 | 10 | void* SystemAllocPages(void* hint, 11 | size_t length, 12 | PageAccessibilityConfiguration accessibility, 13 | PageTag page_tag, 14 | bool commit); 15 | 16 | } // namespace base 17 | 18 | #endif // BASE_ALLOCATOR_PARTITION_ALLOCATOR_PAGE_ALLOCATOR_INTERNAL_H_ 19 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/allocator/partition_allocator/partition_oom.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | // Holds functions for generating OOM errors from PartitionAlloc. This is 6 | // distinct from oom.h in that it is meant only for use in PartitionAlloc. 7 | 8 | #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_PARTITION_OOM_H_ 9 | #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_PARTITION_OOM_H_ 10 | 11 | #include "base/compiler_specific.h" 12 | #include "build/build_config.h" 13 | 14 | namespace base { 15 | namespace internal { 16 | 17 | NOINLINE void PartitionExcessiveAllocationSize(); 18 | 19 | #if !defined(ARCH_CPU_64_BITS) 20 | NOINLINE void PartitionOutOfMemoryWithLotsOfUncommitedPages(); 21 | #endif 22 | 23 | } // namespace internal 24 | } // namespace base 25 | 26 | #endif // BASE_ALLOCATOR_PARTITION_ALLOCATOR_PARTITION_OOM_H_ 27 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/android/base_jni_onload.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_ANDROID_BASE_JNI_ONLOAD_H_ 6 | #define BASE_ANDROID_BASE_JNI_ONLOAD_H_ 7 | 8 | #include 9 | #include 10 | 11 | #include "base/base_export.h" 12 | #include "base/callback.h" 13 | 14 | namespace base { 15 | namespace android { 16 | 17 | // Returns whether initialization succeeded. 18 | BASE_EXPORT bool OnJNIOnLoadInit(); 19 | 20 | } // namespace android 21 | } // namespace base 22 | 23 | #endif // BASE_ANDROID_BASE_JNI_ONLOAD_H_ 24 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/android/child_process_binding_types.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_ANDROID_CHILD_PROCESS_BINDING_TYPES_H_ 6 | #define BASE_ANDROID_CHILD_PROCESS_BINDING_TYPES_H_ 7 | 8 | namespace base { 9 | namespace android { 10 | 11 | // Defines the state of bindgings with child process. See ChildProcessConnection 12 | // to see what the bindings are. Note these values are used as array indices. 13 | // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.base 14 | enum class ChildBindingState { 15 | UNBOUND, 16 | WAIVED, 17 | MODERATE, 18 | STRONG, 19 | MAX_VALUE = STRONG 20 | }; 21 | 22 | } // namespace android 23 | } // namespace base 24 | 25 | #endif // BASE_ANDROID_CHILD_PROCESS_BINDING_TYPES_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/android/content_uri_utils.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_ANDROID_CONTENT_URI_UTILS_H_ 6 | #define BASE_ANDROID_CONTENT_URI_UTILS_H_ 7 | 8 | #include 9 | 10 | #include "base/base_export.h" 11 | #include "base/files/file.h" 12 | #include "base/files/file_path.h" 13 | 14 | namespace base { 15 | 16 | // Opens a content URI for read and returns the file descriptor to the caller. 17 | // Returns -1 if the URI is invalid. 18 | BASE_EXPORT File OpenContentUriForRead(const FilePath& content_uri); 19 | 20 | // Check whether a content URI exists. 21 | BASE_EXPORT bool ContentUriExists(const FilePath& content_uri); 22 | 23 | // Gets MIME type from a content URI. Returns an empty string if the URI is 24 | // invalid. 25 | BASE_EXPORT std::string GetContentUriMimeType(const FilePath& content_uri); 26 | 27 | } // namespace base 28 | 29 | #endif // BASE_ANDROID_CONTENT_URI_UTILS_H_ 30 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/android/event_log.h: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_ANDROID_EVENT_LOG_H_ 6 | #define BASE_ANDROID_EVENT_LOG_H_ 7 | 8 | #include 9 | 10 | #include "base/base_export.h" 11 | 12 | namespace base { 13 | namespace android { 14 | 15 | void BASE_EXPORT EventLogWriteInt(int tag, int value); 16 | 17 | } // namespace android 18 | } // namespace base 19 | 20 | #endif // BASE_ANDROID_EVENT_LOG_H_ 21 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/android/java_exception_reporter.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_ANDROID_JAVA_EXCEPTION_REPORTER_H_ 6 | #define BASE_ANDROID_JAVA_EXCEPTION_REPORTER_H_ 7 | 8 | #include 9 | 10 | #include "base/base_export.h" 11 | 12 | namespace base { 13 | namespace android { 14 | 15 | // Install the exception handler. This should only be called once per process. 16 | BASE_EXPORT void InitJavaExceptionReporter(); 17 | 18 | // Same as above except the handler ensures child process exists immediately 19 | // after an unhandled exception. This is used for child processes because 20 | // DumpWithoutCrashing does not work for child processes on Android. 21 | BASE_EXPORT void InitJavaExceptionReporterForChildProcess(); 22 | 23 | } // namespace android 24 | } // namespace base 25 | 26 | #endif // BASE_ANDROID_JAVA_EXCEPTION_REPORTER_H_ 27 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/android/java_runtime.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_ANDROID_JAVA_RUNTIME_H_ 6 | #define BASE_ANDROID_JAVA_RUNTIME_H_ 7 | 8 | #include "base/android/scoped_java_ref.h" 9 | #include "base/base_export.h" 10 | 11 | namespace base { 12 | namespace android { 13 | 14 | // Wrapper class for using the java.lang.Runtime object from jni. 15 | class BASE_EXPORT JavaRuntime { 16 | public: 17 | // Fills the total memory used and memory allocated for objects by the java 18 | // heap in the current process. Returns true on success. 19 | static void GetMemoryUsage(long* total_memory, long* free_memory); 20 | }; 21 | 22 | } // namespace android 23 | } // namespace base 24 | 25 | #endif // BASE_ANDROID_JAVA_RUNTIME_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/android/jni_registrar.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_ANDROID_JNI_REGISTRAR_H_ 6 | #define BASE_ANDROID_JNI_REGISTRAR_H_ 7 | 8 | #include 9 | #include 10 | 11 | #include "base/base_export.h" 12 | 13 | namespace base { 14 | namespace android { 15 | 16 | struct RegistrationMethod; 17 | 18 | // Registers the JNI bindings for the specified |method| definition containing 19 | // |count| elements. Returns whether the registration of the given methods 20 | // succeeded. 21 | BASE_EXPORT bool RegisterNativeMethods(JNIEnv* env, 22 | const RegistrationMethod* method, 23 | size_t count); 24 | 25 | } // namespace android 26 | } // namespace base 27 | 28 | #endif // BASE_ANDROID_JNI_REGISTRAR_H_ 29 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/android/jni_utils.h: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_ANDROID_JNI_UTILS_H_ 6 | #define BASE_ANDROID_JNI_UTILS_H_ 7 | 8 | #include 9 | 10 | #include "base/android/scoped_java_ref.h" 11 | 12 | namespace base { 13 | 14 | namespace android { 15 | 16 | // Gets a ClassLoader instance capable of loading Chromium java classes. 17 | // This should be called either from JNI_OnLoad or from within a method called 18 | // via JNI from Java. 19 | BASE_EXPORT ScopedJavaLocalRef GetClassLoader(JNIEnv* env); 20 | 21 | // Returns true if the current process permits selective JNI registration. 22 | BASE_EXPORT bool IsSelectiveJniRegistrationEnabled(JNIEnv* env); 23 | 24 | } // namespace android 25 | } // namespace base 26 | 27 | #endif // BASE_ANDROID_JNI_UTILS_H_ 28 | 29 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/android/locale_utils.h: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_ANDROID_LOCALE_UTILS_H_ 6 | #define BASE_ANDROID_LOCALE_UTILS_H_ 7 | 8 | #include 9 | 10 | #include 11 | 12 | #include "base/base_export.h" 13 | 14 | namespace base { 15 | namespace android { 16 | 17 | BASE_EXPORT std::string GetDefaultCountryCode(); 18 | 19 | // Return the current default locale of the device as string. 20 | BASE_EXPORT std::string GetDefaultLocaleString(); 21 | 22 | } // namespace android 23 | } // namespace base 24 | 25 | #endif // BASE_ANDROID_LOCALE_UTILS_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/android/memory_pressure_listener_android.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_ANDROID_MEMORY_PRESSURE_LISTENER_ANDROID_H_ 6 | #define BASE_ANDROID_MEMORY_PRESSURE_LISTENER_ANDROID_H_ 7 | 8 | #include "base/android/jni_android.h" 9 | #include "base/macros.h" 10 | 11 | namespace base { 12 | namespace android { 13 | 14 | // Implements the C++ counter part of MemoryPressureListener.java 15 | class BASE_EXPORT MemoryPressureListenerAndroid { 16 | public: 17 | static void Initialize(JNIEnv* env); 18 | 19 | // Called by JNI. 20 | static void OnMemoryPressure(int memory_pressure_type); 21 | 22 | private: 23 | DISALLOW_COPY_AND_ASSIGN(MemoryPressureListenerAndroid); 24 | }; 25 | 26 | } // namespace android 27 | } // namespace base 28 | 29 | #endif // BASE_ANDROID_MEMORY_PRESSURE_LISTENER_ANDROID_H_ 30 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/android/sys_utils.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_ANDROID_SYS_UTILS_H_ 6 | #define BASE_ANDROID_SYS_UTILS_H_ 7 | 8 | #include "base/android/jni_android.h" 9 | 10 | namespace base { 11 | namespace android { 12 | 13 | class BASE_EXPORT SysUtils { 14 | public: 15 | // Returns true iff this is a low-end device. 16 | static bool IsLowEndDeviceFromJni(); 17 | // Returns true if system has low available memory. 18 | static bool IsCurrentlyLowMemory(); 19 | }; 20 | 21 | } // namespace android 22 | } // namespace base 23 | 24 | #endif // BASE_ANDROID_SYS_UTILS_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/android/throw_uncaught_exception.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_ANDROID_THROW_UNCAUGHT_EXCEPTION_H_ 6 | #define BASE_ANDROID_THROW_UNCAUGHT_EXCEPTION_H_ 7 | 8 | #include "base/base_export.h" 9 | 10 | namespace base { 11 | namespace android { 12 | 13 | // Throw that completely unwinds the java stack. In particular, this will not 14 | // trigger a jni CheckException crash. 15 | BASE_EXPORT void ThrowUncaughtException(); 16 | 17 | } // namespace android 18 | } // namespace base 19 | 20 | #endif // BASE_ANDROID_THROW_UNCAUGHT_EXCEPTION_H_ 21 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/android/timezone_utils.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_ANDROID_TIMEZONE_UTILS_H_ 6 | #define BASE_ANDROID_TIMEZONE_UTILS_H_ 7 | 8 | #include 9 | 10 | #include "base/base_export.h" 11 | #include "base/strings/string16.h" 12 | 13 | namespace base { 14 | namespace android { 15 | 16 | // Return an ICU timezone created from the host timezone. 17 | BASE_EXPORT base::string16 GetDefaultTimeZoneId(); 18 | 19 | } // namespace android 20 | } // namespace base 21 | 22 | #endif // BASE_ANDROID_TIMEZONE_UTILS_H_ 23 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/base64.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_BASE64_H_ 6 | #define BASE_BASE64_H_ 7 | 8 | #include 9 | 10 | #include "base/base_export.h" 11 | #include "base/strings/string_piece.h" 12 | 13 | namespace base { 14 | 15 | // Encodes the input string in base64. The encoding can be done in-place. 16 | BASE_EXPORT void Base64Encode(const StringPiece& input, std::string* output); 17 | 18 | // Decodes the base64 input string. Returns true if successful and false 19 | // otherwise. The output string is only modified if successful. The decoding can 20 | // be done in-place. 21 | BASE_EXPORT bool Base64Decode(const StringPiece& input, std::string* output); 22 | 23 | } // namespace base 24 | 25 | #endif // BASE_BASE64_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/base_export.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_BASE_EXPORT_H_ 6 | #define BASE_BASE_EXPORT_H_ 7 | 8 | #if defined(COMPONENT_BUILD) 9 | #if defined(WIN32) 10 | 11 | #if defined(BASE_IMPLEMENTATION) 12 | #define BASE_EXPORT __declspec(dllexport) 13 | #else 14 | #define BASE_EXPORT __declspec(dllimport) 15 | #endif // defined(BASE_IMPLEMENTATION) 16 | 17 | #else // defined(WIN32) 18 | #if defined(BASE_IMPLEMENTATION) 19 | #define BASE_EXPORT __attribute__((visibility("default"))) 20 | #else 21 | #define BASE_EXPORT 22 | #endif // defined(BASE_IMPLEMENTATION) 23 | #endif 24 | 25 | #else // defined(COMPONENT_BUILD) 26 | #define BASE_EXPORT 27 | #endif 28 | 29 | #endif // BASE_BASE_EXPORT_H_ 30 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/base_paths_android.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_BASE_PATHS_ANDROID_H_ 6 | #define BASE_BASE_PATHS_ANDROID_H_ 7 | 8 | // This file declares Android-specific path keys for the base module. 9 | // These can be used with the PathService to access various special 10 | // directories and files. 11 | 12 | namespace base { 13 | 14 | enum { 15 | PATH_ANDROID_START = 300, 16 | 17 | DIR_ANDROID_APP_DATA, // Directory where to put Android app's data. 18 | DIR_ANDROID_EXTERNAL_STORAGE, // Android external storage directory. 19 | 20 | PATH_ANDROID_END 21 | }; 22 | 23 | } // namespace base 24 | 25 | #endif // BASE_BASE_PATHS_ANDROID_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/base_paths_mac.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_BASE_PATHS_MAC_H_ 6 | #define BASE_BASE_PATHS_MAC_H_ 7 | 8 | // This file declares Mac-specific path keys for the base module. 9 | // These can be used with the PathService to access various special 10 | // directories and files. 11 | 12 | namespace base { 13 | 14 | enum { 15 | PATH_MAC_START = 200, 16 | 17 | DIR_APP_DATA, // ~/Library/Application Support 18 | 19 | PATH_MAC_END 20 | }; 21 | 22 | } // namespace base 23 | 24 | #endif // BASE_BASE_PATHS_MAC_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/base_paths_posix.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_BASE_PATHS_POSIX_H_ 6 | #define BASE_BASE_PATHS_POSIX_H_ 7 | 8 | // This file declares windows-specific path keys for the base module. 9 | // These can be used with the PathService to access various special 10 | // directories and files. 11 | 12 | namespace base { 13 | 14 | enum { 15 | PATH_POSIX_START = 400, 16 | 17 | DIR_CACHE, // Directory where to put cache data. Note this is 18 | // *not* where the browser cache lives, but the 19 | // browser cache can be a subdirectory. 20 | // This is $XDG_CACHE_HOME on Linux and 21 | // ~/Library/Caches on Mac. 22 | PATH_POSIX_END 23 | }; 24 | 25 | } // namespace base 26 | 27 | #endif // BASE_BASE_PATHS_POSIX_H_ 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/callback_forward.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_CALLBACK_FORWARD_H_ 6 | #define BASE_CALLBACK_FORWARD_H_ 7 | 8 | namespace base { 9 | 10 | template 11 | class OnceCallback; 12 | 13 | template 14 | class RepeatingCallback; 15 | 16 | template 17 | using Callback = RepeatingCallback; 18 | 19 | // Syntactic sugar to make Callback easier to declare since it 20 | // will be used in a lot of APIs with delayed execution. 21 | using OnceClosure = OnceCallback; 22 | using RepeatingClosure = RepeatingCallback; 23 | using Closure = Callback; 24 | 25 | } // namespace base 26 | 27 | #endif // BASE_CALLBACK_FORWARD_H_ 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/containers/queue.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_CONTAINERS_QUEUE_H_ 6 | #define BASE_CONTAINERS_QUEUE_H_ 7 | 8 | #include 9 | 10 | #include "base/containers/circular_deque.h" 11 | 12 | namespace base { 13 | 14 | // Provides a definition of base::queue that's like std::queue but uses a 15 | // base::circular_deque instead of std::deque. Since std::queue is just a 16 | // wrapper for an underlying type, we can just provide a typedef for it that 17 | // defaults to the base circular_deque. 18 | template > 19 | using queue = std::queue; 20 | 21 | } // namespace base 22 | 23 | #endif // BASE_CONTAINERS_QUEUE_H_ 24 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/containers/stack.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_CONTAINERS_STACK_H_ 6 | #define BASE_CONTAINERS_STACK_H_ 7 | 8 | #include 9 | 10 | #include "base/containers/circular_deque.h" 11 | 12 | namespace base { 13 | 14 | // Provides a definition of base::stack that's like std::stack but uses a 15 | // base::circular_deque instead of std::deque. Since std::stack is just a 16 | // wrapper for an underlying type, we can just provide a typedef for it that 17 | // defaults to the base circular_deque. 18 | template > 19 | using stack = std::stack; 20 | 21 | } // namespace base 22 | 23 | #endif // BASE_CONTAINERS_STACK_H_ 24 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/debug/close_handle_hook_win.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_DEBUG_CLOSE_HANDLE_HOOK_WIN_H_ 6 | #define BASE_DEBUG_CLOSE_HANDLE_HOOK_WIN_H_ 7 | 8 | #include "base/base_export.h" 9 | 10 | namespace base { 11 | namespace debug { 12 | 13 | // Installs the hooks required to debug use of improper handles. 14 | BASE_EXPORT void InstallHandleHooks(); 15 | 16 | } // namespace debug 17 | } // namespace base 18 | 19 | #endif // BASE_DEBUG_CLOSE_HANDLE_HOOK_WIN_H_ 20 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/debug/elf_reader_linux.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_DEBUG_ELF_READER_LINUX_H_ 6 | #define BASE_DEBUG_ELF_READER_LINUX_H_ 7 | 8 | #include 9 | 10 | #include "base/base_export.h" 11 | #include "base/optional.h" 12 | 13 | namespace base { 14 | namespace debug { 15 | 16 | // Returns the ELF section .note.gnu.build-id from the ELF file mapped at 17 | // |elf_base|, if present. The caller must ensure that the file is fully mapped 18 | // in memory. 19 | Optional BASE_EXPORT ReadElfBuildId(const void* elf_base); 20 | 21 | // Returns the library name from the ELF file mapped at |elf_base|, if present. 22 | // The caller must ensure that the file is fully mapped in memory. 23 | Optional BASE_EXPORT ReadElfLibraryName(const void* elf_base); 24 | 25 | } // namespace debug 26 | } // namespace base 27 | 28 | #endif // BASE_DEBUG_ELF_READER_LINUX_H_ 29 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/debug/gdi_debug_util_win.h: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_DEBUG_GDI_DEBUG_UTIL_WIN_H_ 6 | #define BASE_DEBUG_GDI_DEBUG_UTIL_WIN_H_ 7 | 8 | #include 9 | 10 | #include "base/base_export.h" 11 | 12 | namespace base { 13 | namespace debug { 14 | 15 | // Crashes the process, using base::debug::Alias to leave valuable debugging 16 | // information in the crash dump. Pass values for |header| and |shared_section| 17 | // in the event of a bitmap allocation failure, to gather information about 18 | // those as well. 19 | void BASE_EXPORT CollectGDIUsageAndDie(BITMAPINFOHEADER* header = nullptr, 20 | HANDLE shared_section = nullptr); 21 | 22 | } // namespace debug 23 | } // namespace base 24 | 25 | #endif // BASE_DEBUG_GDI_DEBUG_UTIL_WIN_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/fuchsia/default_job.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_FUCHSIA_DEFAULT_JOB_H_ 6 | #define BASE_FUCHSIA_DEFAULT_JOB_H_ 7 | 8 | #include "base/base_export.h" 9 | #include "base/fuchsia/scoped_zx_handle.h" 10 | 11 | namespace base { 12 | 13 | // Gets and sets the job object used for creating new child processes, 14 | // and looking them up by their process IDs. 15 | // zx_job_default() will be returned if no job is explicitly set here. 16 | // Only valid handles may be passed to SetDefaultJob(). 17 | BASE_EXPORT zx_handle_t GetDefaultJob(); 18 | BASE_EXPORT void SetDefaultJob(ScopedZxHandle job); 19 | 20 | } // namespace base 21 | 22 | #endif // BASE_FUCHSIA_DEFAULT_JOB_H_ 23 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/fuchsia/file_utils.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_FUCHSIA_FILE_UTILS_H_ 6 | #define BASE_FUCHSIA_FILE_UTILS_H_ 7 | 8 | #include 9 | 10 | #include "base/base_export.h" 11 | 12 | namespace base { 13 | 14 | class File; 15 | 16 | namespace fuchsia { 17 | 18 | // Gets a Zircon handle from a file or directory |path| in the process' 19 | // namespace. 20 | BASE_EXPORT zx::handle GetHandleFromFile(base::File file); 21 | 22 | } // namespace fuchsia 23 | } // namespace base 24 | 25 | #endif // BASE_FUCHSIA_FILE_UTILS_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/i18n/base_i18n_export.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_I18N_BASE_I18N_EXPORT_H_ 6 | #define BASE_I18N_BASE_I18N_EXPORT_H_ 7 | 8 | #if defined(COMPONENT_BUILD) 9 | #if defined(WIN32) 10 | 11 | #if defined(BASE_I18N_IMPLEMENTATION) 12 | #define BASE_I18N_EXPORT __declspec(dllexport) 13 | #else 14 | #define BASE_I18N_EXPORT __declspec(dllimport) 15 | #endif // defined(BASE_I18N_IMPLEMENTATION) 16 | 17 | #else // defined(WIN32) 18 | #if defined(BASE_I18N_IMPLEMENTATION) 19 | #define BASE_I18N_EXPORT __attribute__((visibility("default"))) 20 | #else 21 | #define BASE_I18N_EXPORT 22 | #endif 23 | #endif 24 | 25 | #else // defined(COMPONENT_BUILD) 26 | #define BASE_I18N_EXPORT 27 | #endif 28 | 29 | #endif // BASE_I18N_BASE_I18N_EXPORT_H_ 30 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/i18n/base_i18n_switches.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_I18N_BASE_I18N_SWITCHES_H_ 6 | #define BASE_I18N_BASE_I18N_SWITCHES_H_ 7 | 8 | #include "base/i18n/base_i18n_export.h" 9 | 10 | namespace switches { 11 | 12 | BASE_I18N_EXPORT extern const char kForceUIDirection[]; 13 | BASE_I18N_EXPORT extern const char kForceTextDirection[]; 14 | 15 | // kForce*Direction choices for the switches above. 16 | BASE_I18N_EXPORT extern const char kForceDirectionLTR[]; 17 | BASE_I18N_EXPORT extern const char kForceDirectionRTL[]; 18 | 19 | } // namespace switches 20 | 21 | #endif // BASE_I18N_BASE_I18N_SWITCHES_H_ 22 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/i18n/character_encoding.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_I18N_CHARACTER_ENCODING_H_ 6 | #define BASE_I18N_CHARACTER_ENCODING_H_ 7 | 8 | #include 9 | 10 | #include "base/i18n/base_i18n_export.h" 11 | 12 | namespace base { 13 | 14 | // Return canonical encoding name according to the encoding alias name. 15 | BASE_I18N_EXPORT std::string GetCanonicalEncodingNameByAliasName( 16 | const std::string& alias_name); 17 | 18 | } // namespace base 19 | 20 | #endif // BASE_I18N_CHARACTER_ENCODING_H_ 21 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/i18n/encoding_detection.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_I18N_ENCODING_DETECTION_H_ 6 | #define BASE_I18N_ENCODING_DETECTION_H_ 7 | 8 | #include 9 | 10 | #include "base/compiler_specific.h" 11 | #include "base/i18n/base_i18n_export.h" 12 | 13 | namespace base { 14 | 15 | // Detect encoding of |text| and put the name of encoding in |encoding|. 16 | // Returns true on success. 17 | BASE_I18N_EXPORT bool DetectEncoding(const std::string& text, 18 | std::string* encoding) WARN_UNUSED_RESULT; 19 | } // namespace base 20 | 21 | #endif // BASE_I18N_ENCODING_DETECTION_H_ 22 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/i18n/i18n_constants.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_I18N_I18N_CONSTANTS_H_ 6 | #define BASE_I18N_I18N_CONSTANTS_H_ 7 | 8 | #include "base/i18n/base_i18n_export.h" 9 | 10 | namespace base { 11 | 12 | // Names of codepages (charsets) understood by icu. 13 | BASE_I18N_EXPORT extern const char kCodepageLatin1[]; // a.k.a. ISO 8859-1 14 | BASE_I18N_EXPORT extern const char kCodepageUTF8[]; 15 | 16 | // The other possible options are UTF-16BE and UTF-16LE, but they are unused in 17 | // Chromium as of this writing. 18 | 19 | } // namespace base 20 | 21 | #endif // BASE_I18N_I18N_CONSTANTS_H_ 22 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/i18n/string_compare.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_I18N_STRING_COMPARE_H_ 6 | #define BASE_I18N_STRING_COMPARE_H_ 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | #include "base/i18n/base_i18n_export.h" 13 | #include "base/strings/string16.h" 14 | #include "third_party/icu/source/i18n/unicode/coll.h" 15 | 16 | namespace base { 17 | namespace i18n { 18 | 19 | // Compares the two strings using the specified collator. 20 | BASE_I18N_EXPORT UCollationResult 21 | CompareString16WithCollator(const icu::Collator& collator, 22 | const string16& lhs, 23 | const string16& rhs); 24 | 25 | } // namespace i18n 26 | } // namespace base 27 | 28 | #endif // BASE_I18N_STRING_COMPARE_H_ 29 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/i18n/timezone.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_I18N_TIMEZONE_H_ 6 | #define BASE_I18N_TIMEZONE_H_ 7 | 8 | #include 9 | 10 | #include "base/i18n/base_i18n_export.h" 11 | 12 | namespace base { 13 | 14 | // Checks the system timezone and turns it into a two-character ISO 3166 country 15 | // code. This may fail (for example, it used to always fail on Android), in 16 | // which case it will return an empty string. It'll also return an empty string 17 | // when the timezone is Etc/UTC or Etc/UCT, but will return 'GB" for Etc/GMT 18 | // because people in the UK tends to select Etc/GMT by mistake instead of 19 | // Europe/London (British Time). 20 | BASE_I18N_EXPORT std::string CountryCodeForCurrentTimezone(); 21 | 22 | } // namespace base 23 | 24 | #endif // BASE_I18N_TIMEZONE_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/ios/block_types.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_IOS_BLOCK_TYPES_H_ 6 | #define BASE_IOS_BLOCK_TYPES_H_ 7 | 8 | // A generic procedural block type that takes no arguments and returns nothing. 9 | typedef void (^ProceduralBlock)(void); 10 | 11 | // A block that takes no arguments and returns a bool. 12 | typedef bool (^ConditionBlock)(void); 13 | 14 | #endif // BASE_IOS_BLOCK_TYPES_H_ 15 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/ios/ns_error_util.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_IOS_NS_ERROR_UTIL_H_ 6 | #define BASE_IOS_NS_ERROR_UTIL_H_ 7 | 8 | @class NSError; 9 | 10 | namespace base { 11 | namespace ios { 12 | 13 | // Iterates through |error|'s underlying errors and returns the first error for 14 | // which there is no underlying error. 15 | NSError* GetFinalUnderlyingErrorFromError(NSError* error); 16 | 17 | // Returns a copy of |original_error| with |underlying_error| appended to the 18 | // end of its underlying error chain. 19 | NSError* ErrorWithAppendedUnderlyingError(NSError* original_error, 20 | NSError* underlying_error); 21 | 22 | } // namespace ios 23 | } // namespace base 24 | 25 | #endif // BASE_IOS_NS_ERROR_UTIL_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/mac/os_crash_dumps.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_MAC_OS_CRASH_DUMPS_H_ 6 | #define BASE_MAC_OS_CRASH_DUMPS_H_ 7 | 8 | #include "base/base_export.h" 9 | 10 | namespace base { 11 | namespace mac { 12 | 13 | // On Mac OS X, it can take a really long time for the OS crash handler to 14 | // process a Chrome crash when debugging symbols are available. This 15 | // translates into a long wait until the process actually dies. This call 16 | // disables Apple Crash Reporter entirely. 17 | BASE_EXPORT void DisableOSCrashDumps(); 18 | 19 | } // namespace mac 20 | } // namespace base 21 | 22 | #endif // BASE_MAC_OS_CRASH_DUMPS_H_ 23 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/mac/scoped_dispatch_object.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_MAC_SCOPED_DISPATCH_OBJECT_H_ 6 | #define BASE_MAC_SCOPED_DISPATCH_OBJECT_H_ 7 | 8 | #include 9 | 10 | #include "base/mac/scoped_typeref.h" 11 | 12 | namespace base { 13 | 14 | namespace internal { 15 | 16 | template 17 | struct ScopedDispatchObjectTraits { 18 | static constexpr T InvalidValue() { return nullptr; } 19 | static T Retain(T object) { 20 | dispatch_retain(object); 21 | return object; 22 | } 23 | static void Release(T object) { 24 | dispatch_release(object); 25 | } 26 | }; 27 | 28 | } // namepsace internal 29 | 30 | template 31 | using ScopedDispatchObject = 32 | ScopedTypeRef>; 33 | 34 | } // namespace base 35 | 36 | #endif // BASE_MAC_SCOPED_DISPATCH_OBJECT_H_ 37 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/mac/scoped_ionotificationportref.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_MAC_SCOPED_IONOTIFICATIONPORTREF_H_ 6 | #define BASE_MAC_SCOPED_IONOTIFICATIONPORTREF_H_ 7 | 8 | #include 9 | 10 | #include "base/scoped_generic.h" 11 | 12 | namespace base { 13 | namespace mac { 14 | 15 | namespace internal { 16 | 17 | struct ScopedIONotificationPortRefTraits { 18 | static IONotificationPortRef InvalidValue() { return nullptr; } 19 | static void Free(IONotificationPortRef object) { 20 | IONotificationPortDestroy(object); 21 | } 22 | }; 23 | 24 | } // namepsace internal 25 | 26 | using ScopedIONotificationPortRef = 27 | ScopedGeneric; 29 | 30 | } // namespace mac 31 | } // namespace base 32 | 33 | #endif // BASE_MAC_SCOPED_IONOTIFICATIONPORTREF_H_ 34 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/mac/scoped_launch_data.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_MAC_SCOPED_LAUNCH_DATA_H_ 6 | #define BASE_MAC_SCOPED_LAUNCH_DATA_H_ 7 | 8 | #include 9 | 10 | #include "base/scoped_generic.h" 11 | 12 | namespace base { 13 | namespace mac { 14 | 15 | namespace internal { 16 | 17 | struct ScopedLaunchDataTraits { 18 | static launch_data_t InvalidValue() { return nullptr; } 19 | static void Free(launch_data_t ldt) { launch_data_free(ldt); } 20 | }; 21 | 22 | } // namespace internal 23 | 24 | // Just like std::unique_ptr<> but for launch_data_t. 25 | using ScopedLaunchData = 26 | ScopedGeneric; 27 | 28 | } // namespace mac 29 | } // namespace base 30 | 31 | #endif // BASE_MAC_SCOPED_LAUNCH_DATA_H_ 32 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/memory/free_deleter.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_MEMORY_FREE_DELETER_H_ 6 | #define BASE_MEMORY_FREE_DELETER_H_ 7 | 8 | #include 9 | 10 | namespace base { 11 | 12 | // Function object which invokes 'free' on its parameter, which must be 13 | // a pointer. Can be used to store malloc-allocated pointers in std::unique_ptr: 14 | // 15 | // std::unique_ptr foo_ptr( 16 | // static_cast(malloc(sizeof(int)))); 17 | struct FreeDeleter { 18 | inline void operator()(void* ptr) const { 19 | free(ptr); 20 | } 21 | }; 22 | 23 | } // namespace base 24 | 25 | #endif // BASE_MEMORY_FREE_DELETER_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/memory/ptr_util.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_MEMORY_PTR_UTIL_H_ 6 | #define BASE_MEMORY_PTR_UTIL_H_ 7 | 8 | #include 9 | #include 10 | 11 | namespace base { 12 | 13 | // Helper to transfer ownership of a raw pointer to a std::unique_ptr. 14 | // Note that std::unique_ptr has very different semantics from 15 | // std::unique_ptr: do not use this helper for array allocations. 16 | template 17 | std::unique_ptr WrapUnique(T* ptr) { 18 | return std::unique_ptr(ptr); 19 | } 20 | 21 | } // namespace base 22 | 23 | #endif // BASE_MEMORY_PTR_UTIL_H_ 24 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/memory/scoped_policy.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_MEMORY_SCOPED_POLICY_H_ 6 | #define BASE_MEMORY_SCOPED_POLICY_H_ 7 | 8 | namespace base { 9 | namespace scoped_policy { 10 | 11 | // Defines the ownership policy for a scoped object. 12 | enum OwnershipPolicy { 13 | // The scoped object takes ownership of an object by taking over an existing 14 | // ownership claim. 15 | ASSUME, 16 | 17 | // The scoped object will retain the the object and any initial ownership is 18 | // not changed. 19 | RETAIN 20 | }; 21 | 22 | } // namespace scoped_policy 23 | } // namespace base 24 | 25 | #endif // BASE_MEMORY_SCOPED_POLICY_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/message_loop/timer_slack.h: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_MESSAGE_LOOP_TIMER_SLACK_H_ 6 | #define BASE_MESSAGE_LOOP_TIMER_SLACK_H_ 7 | 8 | namespace base { 9 | 10 | // Amount of timer slack to use for delayed timers. Increasing timer slack 11 | // allows the OS to coalesce timers more effectively. 12 | enum TimerSlack { 13 | // Lowest value for timer slack allowed by OS. 14 | TIMER_SLACK_NONE, 15 | 16 | // Maximal value for timer slack allowed by OS. 17 | TIMER_SLACK_MAXIMUM 18 | }; 19 | 20 | } // namespace base 21 | 22 | #endif // BASE_MESSAGE_LOOP_TIMER_SLACK_H_ 23 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/metrics/metrics_hashes.h: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_METRICS_METRICS_HASHES_H_ 6 | #define BASE_METRICS_METRICS_HASHES_H_ 7 | 8 | #include 9 | 10 | #include "base/base_export.h" 11 | #include "base/strings/string_piece.h" 12 | 13 | namespace base { 14 | 15 | // Computes a uint64_t hash of a given string based on its MD5 hash. Suitable 16 | // for metric names. 17 | BASE_EXPORT uint64_t HashMetricName(base::StringPiece name); 18 | 19 | } // namespace metrics 20 | 21 | #endif // BASE_METRICS_METRICS_HASHES_H_ 22 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/metrics/record_histogram_checker.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_METRICS_RECORD_HISTOGRAM_CHECKER_H_ 6 | #define BASE_METRICS_RECORD_HISTOGRAM_CHECKER_H_ 7 | 8 | #include 9 | 10 | #include "base/base_export.h" 11 | 12 | namespace base { 13 | 14 | // RecordHistogramChecker provides an interface for checking whether 15 | // the given histogram should be recorded. 16 | class BASE_EXPORT RecordHistogramChecker { 17 | public: 18 | virtual ~RecordHistogramChecker() = default; 19 | 20 | // Returns true iff the given histogram should be recorded. 21 | // This method may be called on any thread, so it should not mutate any state. 22 | virtual bool ShouldRecord(uint64_t histogram_hash) const = 0; 23 | }; 24 | 25 | } // namespace base 26 | 27 | #endif // BASE_METRICS_RECORD_HISTOGRAM_CHECKER_H_ 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/numerics/math_constants.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_NUMERICS_MATH_CONSTANTS_H_ 6 | #define BASE_NUMERICS_MATH_CONSTANTS_H_ 7 | 8 | namespace base { 9 | 10 | constexpr double kPiDouble = 3.14159265358979323846; 11 | constexpr float kPiFloat = 3.14159265358979323846f; 12 | 13 | } // namespace base 14 | 15 | #endif // BASE_NUMERICS_MATH_CONSTANTS_H_ 16 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/numerics/ranges.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_NUMERICS_RANGES_H_ 6 | #define BASE_NUMERICS_RANGES_H_ 7 | 8 | #include 9 | #include 10 | 11 | namespace base { 12 | 13 | // To be replaced with std::clamp() from C++17, someday. 14 | template 15 | constexpr const T& ClampToRange(const T& value, const T& min, const T& max) { 16 | return std::min(std::max(value, min), max); 17 | } 18 | 19 | template 20 | constexpr bool IsApproximatelyEqual(T lhs, T rhs, T tolerance) { 21 | static_assert(std::is_arithmetic::value, "Argument must be arithmetic"); 22 | return std::abs(rhs - lhs) <= tolerance; 23 | } 24 | 25 | } // namespace base 26 | 27 | #endif // BASE_NUMERICS_RANGES_H_ 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/numerics/safe_math.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_NUMERICS_SAFE_MATH_H_ 6 | #define BASE_NUMERICS_SAFE_MATH_H_ 7 | 8 | #include "base/numerics/checked_math.h" 9 | #include "base/numerics/clamped_math.h" 10 | #include "base/numerics/safe_conversions.h" 11 | 12 | #endif // BASE_NUMERICS_SAFE_MATH_H_ 13 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/os_compat_android.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_OS_COMPAT_ANDROID_H_ 6 | #define BASE_OS_COMPAT_ANDROID_H_ 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | // Not implemented in Bionic. 13 | extern "C" int futimes(int fd, const struct timeval tv[2]); 14 | 15 | // Not exposed or implemented in Bionic. 16 | extern "C" char* mkdtemp(char* path); 17 | 18 | // Android has no timegm(). 19 | extern "C" time_t timegm(struct tm* const t); 20 | 21 | #endif // BASE_OS_COMPAT_ANDROID_H_ 22 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/os_compat_nacl.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_OS_COMPAT_NACL_H_ 6 | #define BASE_OS_COMPAT_NACL_H_ 7 | 8 | #include 9 | 10 | #if !defined (__GLIBC__) 11 | // NaCl has no timegm(). 12 | extern "C" time_t timegm(struct tm* const t); 13 | #endif // !defined (__GLIBC__) 14 | 15 | #endif // BASE_OS_COMPAT_NACL_H_ 16 | 17 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/power_monitor/power_observer.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_POWER_MONITOR_POWER_OBSERVER_H_ 6 | #define BASE_POWER_MONITOR_POWER_OBSERVER_H_ 7 | 8 | #include "base/base_export.h" 9 | #include "base/compiler_specific.h" 10 | 11 | namespace base { 12 | 13 | class BASE_EXPORT PowerObserver { 14 | public: 15 | // Notification of a change in power status of the computer, such 16 | // as from switching between battery and A/C power. 17 | virtual void OnPowerStateChange(bool on_battery_power) {}; 18 | 19 | // Notification that the system is suspending. 20 | virtual void OnSuspend() {} 21 | 22 | // Notification that the system is resuming. 23 | virtual void OnResume() {} 24 | 25 | protected: 26 | virtual ~PowerObserver() = default; 27 | }; 28 | 29 | } // namespace base 30 | 31 | #endif // BASE_POWER_MONITOR_POWER_OBSERVER_H_ 32 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/scoped_clear_errno.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_SCOPED_CLEAR_ERRNO_H_ 6 | #define BASE_SCOPED_CLEAR_ERRNO_H_ 7 | 8 | #include 9 | 10 | #include "base/macros.h" 11 | 12 | namespace base { 13 | 14 | // Simple scoper that saves the current value of errno, resets it to 0, and on 15 | // destruction puts the old value back. 16 | class ScopedClearErrno { 17 | public: 18 | ScopedClearErrno() : old_errno_(errno) { 19 | errno = 0; 20 | } 21 | ~ScopedClearErrno() { 22 | if (errno == 0) 23 | errno = old_errno_; 24 | } 25 | 26 | private: 27 | const int old_errno_; 28 | 29 | DISALLOW_COPY_AND_ASSIGN(ScopedClearErrno); 30 | }; 31 | 32 | } // namespace base 33 | 34 | #endif // BASE_SCOPED_CLEAR_ERRNO_H_ 35 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/sha1.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_SHA1_H_ 6 | #define BASE_SHA1_H_ 7 | 8 | #include 9 | 10 | #include 11 | 12 | #include "base/base_export.h" 13 | 14 | namespace base { 15 | 16 | // These functions perform SHA-1 operations. 17 | 18 | static const size_t kSHA1Length = 20; // Length in bytes of a SHA-1 hash. 19 | 20 | // Computes the SHA-1 hash of the input string |str| and returns the full 21 | // hash. 22 | BASE_EXPORT std::string SHA1HashString(const std::string& str); 23 | 24 | // Computes the SHA-1 hash of the |len| bytes in |data| and puts the hash 25 | // in |hash|. |hash| must be kSHA1Length bytes long. 26 | BASE_EXPORT void SHA1HashBytes(const unsigned char* data, size_t len, 27 | unsigned char* hash); 28 | 29 | } // namespace base 30 | 31 | #endif // BASE_SHA1_H_ 32 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/strings/pattern.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_STRINGS_PATTERN_H_ 6 | #define BASE_STRINGS_PATTERN_H_ 7 | 8 | #include "base/base_export.h" 9 | #include "base/strings/string_piece.h" 10 | 11 | namespace base { 12 | 13 | // Returns true if the |string| passed in matches the |pattern|. The pattern 14 | // string can contain wildcards like * and ?. 15 | // 16 | // The backslash character (\) is an escape character for * and ?. 17 | // ? matches 0 or 1 character, while * matches 0 or more characters. 18 | BASE_EXPORT bool MatchPattern(StringPiece string, StringPiece pattern); 19 | BASE_EXPORT bool MatchPattern(StringPiece16 string, StringPiece16 pattern); 20 | 21 | } // namespace base 22 | 23 | #endif // BASE_STRINGS_PATTERN_H_ 24 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/strings/string_piece_forward.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | // Forward declaration of StringPiece types from base/strings/string_piece.h 6 | 7 | #ifndef BASE_STRINGS_STRING_PIECE_FORWARD_H_ 8 | #define BASE_STRINGS_STRING_PIECE_FORWARD_H_ 9 | 10 | #include 11 | 12 | #include "base/strings/string16.h" 13 | 14 | namespace base { 15 | 16 | template 17 | class BasicStringPiece; 18 | typedef BasicStringPiece StringPiece; 19 | typedef BasicStringPiece StringPiece16; 20 | typedef BasicStringPiece WStringPiece; 21 | 22 | } // namespace base 23 | 24 | #endif // BASE_STRINGS_STRING_PIECE_FORWARD_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/synchronization/cancellation_flag.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_SYNCHRONIZATION_CANCELLATION_FLAG_H_ 6 | #define BASE_SYNCHRONIZATION_CANCELLATION_FLAG_H_ 7 | 8 | #include "base/synchronization/atomic_flag.h" 9 | 10 | namespace base { 11 | 12 | // Use inheritance instead of "using" to allow forward declaration of "class 13 | // CancellationFlag". 14 | // TODO(fdoray): Replace CancellationFlag with AtomicFlag throughout the 15 | // codebase and delete this file. crbug.com/630251 16 | class CancellationFlag : public AtomicFlag {}; 17 | 18 | } // namespace base 19 | 20 | #endif // BASE_SYNCHRONIZATION_CANCELLATION_FLAG_H_ 21 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/sys_info_internal.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_SYS_INFO_INTERNAL_H_ 6 | #define BASE_SYS_INFO_INTERNAL_H_ 7 | 8 | #include "base/macros.h" 9 | 10 | namespace base { 11 | 12 | namespace internal { 13 | 14 | template 15 | class LazySysInfoValue { 16 | public: 17 | LazySysInfoValue() 18 | : value_(F()) { } 19 | 20 | ~LazySysInfoValue() = default; 21 | 22 | T value() { return value_; } 23 | 24 | private: 25 | const T value_; 26 | 27 | DISALLOW_COPY_AND_ASSIGN(LazySysInfoValue); 28 | }; 29 | 30 | } // namespace internal 31 | 32 | } // namespace base 33 | 34 | #endif // BASE_SYS_INFO_INTERNAL_H_ 35 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/task_scheduler/can_schedule_sequence_observer.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TASK_SCHEDULER_CAN_SCHEDULE_SEQUENCE_OBSERVER_H_ 6 | #define BASE_TASK_SCHEDULER_CAN_SCHEDULE_SEQUENCE_OBSERVER_H_ 7 | 8 | #include "base/task_scheduler/sequence.h" 9 | 10 | namespace base { 11 | namespace internal { 12 | 13 | class CanScheduleSequenceObserver { 14 | public: 15 | // Called when |sequence| can be scheduled. It is expected that 16 | // TaskTracker::RunNextTask() will be called with |sequence| as argument after 17 | // this is called. 18 | virtual void OnCanScheduleSequence(scoped_refptr sequence) = 0; 19 | 20 | protected: 21 | virtual ~CanScheduleSequenceObserver() = default; 22 | }; 23 | 24 | } // namespace internal 25 | } // namespace base 26 | 27 | #endif // BASE_TASK_SCHEDULER_CAN_SCHEDULE_SEQUENCE_OBSERVER_H_ 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/task_scheduler/initialization_util.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TASK_SCHEDULER_INITIALIZATION_UTIL_H_ 6 | #define BASE_TASK_SCHEDULER_INITIALIZATION_UTIL_H_ 7 | 8 | #include "base/base_export.h" 9 | 10 | namespace base { 11 | 12 | // Computes a value that may be used as the maximum number of threads in a 13 | // TaskScheduler pool. Developers may use other methods to choose this maximum. 14 | BASE_EXPORT int RecommendedMaxNumberOfThreadsInPool(int min, 15 | int max, 16 | double cores_multiplier, 17 | int offset); 18 | 19 | } // namespace base 20 | 21 | #endif // BASE_TASK_SCHEDULER_INITIALIZATION_UTIL_H_ 22 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/task_scheduler/scheduler_worker_observer.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TASK_SCHEDULER_SCHEDULER_WORKER_OBSERVER_H_ 6 | #define BASE_TASK_SCHEDULER_SCHEDULER_WORKER_OBSERVER_H_ 7 | 8 | namespace base { 9 | 10 | // Interface to observe entry and exit of the main function of a TaskScheduler 11 | // worker. 12 | class SchedulerWorkerObserver { 13 | public: 14 | virtual ~SchedulerWorkerObserver() = default; 15 | 16 | // Invoked at the beginning of the main function of a TaskScheduler worker, 17 | // before any task runs. 18 | virtual void OnSchedulerWorkerMainEntry() = 0; 19 | 20 | // Invoked at the end of the main function of a TaskScheduler worker, when it 21 | // can no longer run tasks. 22 | virtual void OnSchedulerWorkerMainExit() = 0; 23 | }; 24 | 25 | } // namespace base 26 | 27 | #endif // BASE_TASK_SCHEDULER_SCHEDULER_WORKER_OBSERVER_H_ 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/task_scheduler/scheduler_worker_params.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TASK_SCHEDULER_SCHEDULER_WORKER_PARAMS_H_ 6 | #define BASE_TASK_SCHEDULER_SCHEDULER_WORKER_PARAMS_H_ 7 | 8 | namespace base { 9 | 10 | enum class SchedulerBackwardCompatibility { 11 | // No backward compatibility. 12 | DISABLED, 13 | 14 | // On Windows, initialize COM STA to mimic SequencedWorkerPool and 15 | // BrowserThreadImpl. Behaves like DISABLED on other platforms. 16 | // TODO(fdoray): Get rid of this and force tasks that care about a 17 | // CoInitialized environment to request one explicitly (via an upcoming 18 | // execution mode). 19 | INIT_COM_STA, 20 | }; 21 | 22 | } // namespace base 23 | 24 | #endif // BASE_TASK_SCHEDULER_SCHEDULER_WORKER_PARAMS_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/test/android/url_utils.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TEST_ANDROID_URL_UTILS_H_ 6 | #define BASE_TEST_ANDROID_URL_UTILS_H_ 7 | 8 | #include 9 | 10 | #include "base/base_export.h" 11 | #include "base/files/file_path.h" 12 | 13 | namespace base { 14 | namespace android { 15 | 16 | // Returns the root of the test data directory. This function will call into 17 | // Java class UrlUtils through JNI bridge. 18 | BASE_EXPORT FilePath GetIsolatedTestRoot(); 19 | 20 | } // namespace android 21 | } // namespace base 22 | 23 | #endif // BASE_TEST_ANDROID_URL_UTILS_H_ 24 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/test/fontconfig_util_linux.h: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TEST_FONTCONFIG_UTIL_LINUX_H_ 6 | #define BASE_TEST_FONTCONFIG_UTIL_LINUX_H_ 7 | 8 | namespace base { 9 | 10 | // Initializes Fontconfig with a custom configuration suitable for tests. 11 | void SetUpFontconfig(); 12 | 13 | // Deinitializes Fontconfig. 14 | void TearDownFontconfig(); 15 | 16 | } // namespace base 17 | 18 | #endif // BASE_TEST_FONTCONFIG_UTIL_LINUX_H_ 19 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/test/gtest_xml_util.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TEST_GTEST_XML_UTIL_H_ 6 | #define BASE_TEST_GTEST_XML_UTIL_H_ 7 | 8 | #include 9 | 10 | #include "base/compiler_specific.h" 11 | 12 | namespace base { 13 | 14 | class FilePath; 15 | struct TestResult; 16 | 17 | // Produces a vector of test results based on GTest output file. 18 | // Returns true iff the output file exists and has been successfully parsed. 19 | // On successful return |crashed| is set to true if the test results 20 | // are valid but incomplete. 21 | bool ProcessGTestOutput(const base::FilePath& output_file, 22 | std::vector* results, 23 | bool* crashed) WARN_UNUSED_RESULT; 24 | 25 | } // namespace base 26 | 27 | #endif // BASE_TEST_GTEST_XML_UTIL_H_ 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/test/launcher/test_launcher_nacl_nonsfi.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TEST_LAUNCHER_TEST_LAUNCHER_NACL_NONSFI_H_ 6 | #define BASE_TEST_LAUNCHER_TEST_LAUNCHER_NACL_NONSFI_H_ 7 | 8 | #include 9 | 10 | namespace base { 11 | 12 | // Launches the NaCl Non-SFI test binary |test_binary|. 13 | int TestLauncherNonSfiMain(const std::string& test_binary); 14 | 15 | } // namespace base 16 | 17 | #endif // BASE_TEST_LAUNCHER_TEST_LAUNCHER_NACL_NONSFI_H_ 18 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/test/malloc_wrapper.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TEST_MALLOC_WRAPPER_H_ 6 | #define BASE_TEST_MALLOC_WRAPPER_H_ 7 | 8 | #include 9 | 10 | // BASE_EXPORT depends on COMPONENT_BUILD. 11 | // This will always be a separate shared library, so don't use BASE_EXPORT here. 12 | #if defined(WIN32) 13 | #define MALLOC_WRAPPER_EXPORT __declspec(dllexport) 14 | #else 15 | #define MALLOC_WRAPPER_EXPORT __attribute__((visibility("default"))) 16 | #endif // defined(WIN32) 17 | 18 | // Calls malloc directly. 19 | MALLOC_WRAPPER_EXPORT void* MallocWrapper(size_t size); 20 | 21 | #endif // BASE_TEST_MALLOC_WRAPPER_H_ 22 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/test/mock_devices_changed_observer.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TEST_MOCK_DEVICES_CHANGED_OBSERVER_H_ 6 | #define BASE_TEST_MOCK_DEVICES_CHANGED_OBSERVER_H_ 7 | 8 | #include 9 | 10 | #include "base/macros.h" 11 | #include "base/system_monitor/system_monitor.h" 12 | #include "testing/gmock/include/gmock/gmock.h" 13 | 14 | namespace base { 15 | 16 | class MockDevicesChangedObserver 17 | : public base::SystemMonitor::DevicesChangedObserver { 18 | public: 19 | MockDevicesChangedObserver(); 20 | ~MockDevicesChangedObserver() override; 21 | 22 | MOCK_METHOD1(OnDevicesChanged, 23 | void(base::SystemMonitor::DeviceType device_type)); 24 | 25 | private: 26 | DISALLOW_COPY_AND_ASSIGN(MockDevicesChangedObserver); 27 | }; 28 | 29 | } // namespace base 30 | 31 | #endif // BASE_TEST_MOCK_DEVICES_CHANGED_OBSERVER_H_ 32 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/test/mock_entropy_provider.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TEST_MOCK_ENTROPY_PROVIDER_H_ 6 | #define BASE_TEST_MOCK_ENTROPY_PROVIDER_H_ 7 | 8 | #include 9 | 10 | #include "base/metrics/field_trial.h" 11 | 12 | namespace base { 13 | 14 | class MockEntropyProvider : public base::FieldTrial::EntropyProvider { 15 | public: 16 | MockEntropyProvider(); 17 | explicit MockEntropyProvider(double entropy_value); 18 | ~MockEntropyProvider() override; 19 | 20 | // base::FieldTrial::EntropyProvider: 21 | double GetEntropyForTrial(const std::string& trial_name, 22 | uint32_t randomization_seed) const override; 23 | 24 | private: 25 | double entropy_value_; 26 | 27 | DISALLOW_COPY_AND_ASSIGN(MockEntropyProvider); 28 | }; 29 | 30 | } // namespace base 31 | 32 | #endif // BASE_TEST_MOCK_ENTROPY_PROVIDER_H_ 33 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/test/native_library_test_utils.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TEST_NATIVE_LIBRARY_TEST_UTILS_H_ 6 | #define BASE_TEST_NATIVE_LIBRARY_TEST_UTILS_H_ 7 | 8 | #include "build/build_config.h" 9 | 10 | #if defined(OS_WIN) 11 | #define NATIVE_LIBRARY_TEST_ALWAYS_EXPORT __declspec(dllexport) 12 | #else 13 | #define NATIVE_LIBRARY_TEST_ALWAYS_EXPORT __attribute__((visibility("default"))) 14 | #endif 15 | 16 | extern "C" { 17 | 18 | extern NATIVE_LIBRARY_TEST_ALWAYS_EXPORT int g_native_library_exported_value; 19 | 20 | // A function which increments an internal counter value and returns its value. 21 | // The first call returns 1, then 2, etc. 22 | NATIVE_LIBRARY_TEST_ALWAYS_EXPORT int NativeLibraryTestIncrement(); 23 | 24 | } // extern "C" 25 | 26 | #endif // BASE_TEST_NATIVE_LIBRARY_TEST_UTILS_H_ 27 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/test/perf_log.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TEST_PERF_LOG_H_ 6 | #define BASE_TEST_PERF_LOG_H_ 7 | 8 | namespace base { 9 | 10 | class FilePath; 11 | 12 | // Initializes and finalizes the perf log. These functions should be 13 | // called at the beginning and end (respectively) of running all the 14 | // performance tests. The init function returns true on success. 15 | bool InitPerfLog(const FilePath& log_path); 16 | void FinalizePerfLog(); 17 | 18 | // Writes to the perf result log the given 'value' resulting from the 19 | // named 'test'. The units are to aid in reading the log by people. 20 | void LogPerfResult(const char* test_name, double value, const char* units); 21 | 22 | } // namespace base 23 | 24 | #endif // BASE_TEST_PERF_LOG_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/test/perf_test_suite.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TEST_PERF_TEST_SUITE_H_ 6 | #define BASE_TEST_PERF_TEST_SUITE_H_ 7 | 8 | #include "base/test/test_suite.h" 9 | 10 | namespace base { 11 | 12 | class PerfTestSuite : public TestSuite { 13 | public: 14 | PerfTestSuite(int argc, char** argv); 15 | 16 | void Initialize() override; 17 | void Shutdown() override; 18 | }; 19 | 20 | } // namespace base 21 | 22 | #endif // BASE_TEST_PERF_TEST_SUITE_H_ 23 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/test/scoped_locale.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TEST_SCOPED_LOCALE_H_ 6 | #define BASE_TEST_SCOPED_LOCALE_H_ 7 | 8 | #include 9 | 10 | #include "base/macros.h" 11 | 12 | namespace base { 13 | 14 | // Sets the given |locale| on construction, and restores the previous locale 15 | // on destruction. 16 | class ScopedLocale { 17 | public: 18 | explicit ScopedLocale(const std::string& locale); 19 | ~ScopedLocale(); 20 | 21 | private: 22 | std::string prev_locale_; 23 | 24 | DISALLOW_COPY_AND_ASSIGN(ScopedLocale); 25 | }; 26 | 27 | } // namespace base 28 | 29 | #endif // BASE_TEST_SCOPED_LOCALE_H_ 30 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/test/test_listener_ios.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TEST_TEST_LISTENER_IOS_H_ 6 | #define BASE_TEST_TEST_LISTENER_IOS_H_ 7 | 8 | namespace base { 9 | namespace test_listener_ios { 10 | 11 | // Register an IOSRunLoopListener. 12 | void RegisterTestEndListener(); 13 | 14 | } // namespace test_listener_ios 15 | } // namespace base 16 | 17 | #endif // BASE_TEST_TEST_LISTENER_IOS_H_ 18 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/test/test_support_android.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TEST_TEST_SUPPORT_ANDROID_H_ 6 | #define BASE_TEST_TEST_SUPPORT_ANDROID_H_ 7 | 8 | #include "base/base_export.h" 9 | 10 | namespace base { 11 | 12 | class FilePath; 13 | 14 | // Init logging for tests on Android. Logs will be output into Android's logcat. 15 | BASE_EXPORT void InitAndroidTestLogging(); 16 | 17 | // Init path providers for tests on Android. 18 | BASE_EXPORT void InitAndroidTestPaths(const FilePath& test_data_dir); 19 | 20 | // Init the message loop for tests on Android. 21 | BASE_EXPORT void InitAndroidTestMessageLoop(); 22 | 23 | } // namespace base 24 | 25 | #endif // BASE_TEST_TEST_SUPPORT_ANDROID_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/test/test_support_ios.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TEST_TEST_SUPPORT_IOS_H_ 6 | #define BASE_TEST_TEST_SUPPORT_IOS_H_ 7 | 8 | #include "base/test/test_suite.h" 9 | 10 | namespace base { 11 | 12 | // Inits the message loop for tests on iOS. 13 | void InitIOSTestMessageLoop(); 14 | 15 | // Inits the run hook for tests on iOS. 16 | void InitIOSRunHook(TestSuite* suite, int argc, char* argv[]); 17 | 18 | // Launches an iOS app that runs the tests in the suite passed to 19 | // InitIOSRunHook. 20 | void RunTestsFromIOSApp(); 21 | 22 | } // namespace base 23 | 24 | #endif // BASE_TEST_TEST_SUPPORT_IOS_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/test/test_ui_thread_android.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TEST_TEST_UI_THREAD_ANDROID_ 6 | #define BASE_TEST_TEST_UI_THREAD_ANDROID_ 7 | 8 | #include 9 | 10 | namespace base { 11 | 12 | // Set up a thread as the Chromium UI Thread, and run its looper. This is is 13 | // intended for C++ unit tests (e.g. the net unit tests) that don't run with the 14 | // UI thread as their main looper, but test code that, on Android, uses UI 15 | // thread events, so need a running UI thread. 16 | void StartTestUiThreadLooper(); 17 | 18 | } // namespace base 19 | 20 | #endif // BASE_TEST_TEST_UI_THREAD_ANDROID_ 21 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/test/trace_to_file.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TEST_TRACE_TO_FILE_H_ 6 | #define BASE_TEST_TRACE_TO_FILE_H_ 7 | 8 | #include "base/files/file_path.h" 9 | 10 | namespace base { 11 | namespace test { 12 | 13 | class TraceToFile { 14 | public: 15 | TraceToFile(); 16 | ~TraceToFile(); 17 | 18 | void BeginTracingFromCommandLineOptions(); 19 | void BeginTracing(const base::FilePath& path, const std::string& categories); 20 | void EndTracingIfNeeded(); 21 | 22 | private: 23 | void WriteFileHeader(); 24 | void AppendFileFooter(); 25 | 26 | void TraceOutputCallback(const std::string& data); 27 | 28 | base::FilePath path_; 29 | bool started_; 30 | }; 31 | 32 | } // namespace test 33 | } // namespace base 34 | 35 | #endif // BASE_TEST_TRACE_TO_FILE_H_ 36 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/third_party/libevent/strlcpy-internal.h: -------------------------------------------------------------------------------- 1 | #ifndef _STRLCPY_INTERNAL_H_ 2 | #define _STRLCPY_INTERNAL_H_ 3 | 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | #ifdef HAVE_CONFIG_H 9 | #include "config.h" 10 | #endif /* HAVE_CONFIG_H */ 11 | 12 | #ifndef HAVE_STRLCPY 13 | #include 14 | size_t _event_strlcpy(char *dst, const char *src, size_t siz); 15 | #define strlcpy _event_strlcpy 16 | #endif 17 | 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | 22 | #endif 23 | 24 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/third_party/symbolize/config.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #define GOOGLE_NAMESPACE google 6 | #define _END_GOOGLE_NAMESPACE_ } 7 | #define _START_GOOGLE_NAMESPACE_ namespace google { 8 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/third_party/symbolize/glog/logging.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | // Empty. 6 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/third_party/symbolize/glog/raw_logging.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #define WARNING 1; 6 | #define RAW_LOG(severity, ...); // Do nothing. 7 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/third_party/symbolize/utilities.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #define HAVE_SYMBOLIZE 1 11 | #define ATTRIBUTE_NOINLINE __attribute__ ((noinline)) 12 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/time/default_clock.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TIME_DEFAULT_CLOCK_H_ 6 | #define BASE_TIME_DEFAULT_CLOCK_H_ 7 | 8 | #include "base/base_export.h" 9 | #include "base/compiler_specific.h" 10 | #include "base/time/clock.h" 11 | 12 | namespace base { 13 | 14 | // DefaultClock is a Clock implementation that uses Time::Now(). 15 | class BASE_EXPORT DefaultClock : public Clock { 16 | public: 17 | ~DefaultClock() override; 18 | 19 | // Simply returns Time::Now(). 20 | Time Now() const override; 21 | 22 | // Returns a shared instance of DefaultClock. This is thread-safe. 23 | static DefaultClock* GetInstance(); 24 | }; 25 | 26 | } // namespace base 27 | 28 | #endif // BASE_TIME_DEFAULT_CLOCK_H_ 29 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/time/default_tick_clock.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TIME_DEFAULT_TICK_CLOCK_H_ 6 | #define BASE_TIME_DEFAULT_TICK_CLOCK_H_ 7 | 8 | #include "base/base_export.h" 9 | #include "base/time/tick_clock.h" 10 | 11 | namespace base { 12 | 13 | // DefaultClock is a Clock implementation that uses TimeTicks::Now(). 14 | class BASE_EXPORT DefaultTickClock : public TickClock { 15 | public: 16 | ~DefaultTickClock() override; 17 | 18 | // Simply returns TimeTicks::Now(). 19 | TimeTicks NowTicks() const override; 20 | 21 | // Returns a shared instance of DefaultTickClock. This is thread-safe. 22 | static const DefaultTickClock* GetInstance(); 23 | }; 24 | 25 | } // namespace base 26 | 27 | #endif // BASE_TIME_DEFAULT_TICK_CLOCK_H_ 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/time/time_to_iso8601.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TIME_TIME_TO_ISO8601_H_ 6 | #define BASE_TIME_TIME_TO_ISO8601_H_ 7 | 8 | #include 9 | 10 | #include "base/base_export.h" 11 | 12 | namespace base { 13 | 14 | class Time; 15 | 16 | BASE_EXPORT std::string TimeToISO8601(const base::Time& t); 17 | 18 | } // namespace base 19 | 20 | #endif // BASE_TIME_TIME_TO_ISO8601_H_ 21 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/timer/elapsed_timer.h: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_TIMER_ELAPSED_TIMER_H_ 6 | #define BASE_TIMER_ELAPSED_TIMER_H_ 7 | 8 | #include "base/base_export.h" 9 | #include "base/macros.h" 10 | #include "base/time/time.h" 11 | 12 | namespace base { 13 | 14 | // A simple wrapper around TimeTicks::Now(). 15 | class BASE_EXPORT ElapsedTimer { 16 | public: 17 | ElapsedTimer(); 18 | ElapsedTimer(ElapsedTimer&& other); 19 | 20 | void operator=(ElapsedTimer&& other); 21 | 22 | // Returns the time elapsed since object construction. 23 | TimeDelta Elapsed() const; 24 | 25 | private: 26 | TimeTicks begin_; 27 | 28 | DISALLOW_COPY_AND_ASSIGN(ElapsedTimer); 29 | }; 30 | 31 | } // namespace base 32 | 33 | #endif // BASE_TIMER_ELAPSED_TIMER_H_ 34 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/win/current_module.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_WIN_CURRENT_MODULE_H_ 6 | #define BASE_WIN_CURRENT_MODULE_H_ 7 | 8 | #include 9 | 10 | // http://blogs.msdn.com/oldnewthing/archive/2004/10/25/247180.aspx 11 | extern "C" IMAGE_DOS_HEADER __ImageBase; 12 | 13 | // Returns the HMODULE of the dll the macro was expanded in. 14 | // Only use in cc files, not in h files. 15 | #define CURRENT_MODULE() reinterpret_cast(&__ImageBase) 16 | 17 | #endif // BASE_WIN_CURRENT_MODULE_H_ 18 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/win/patch_util.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_WIN_PATCH_UTIL_H_ 6 | #define BASE_WIN_PATCH_UTIL_H_ 7 | 8 | #include 9 | 10 | #include "base/base_export.h" 11 | 12 | namespace base { 13 | namespace win { 14 | namespace internal { 15 | 16 | // Copies |length| bytes from |source| to |destination|, temporarily setting 17 | // |destination| to writable. Returns a Windows error code or NO_ERROR if 18 | // successful. 19 | BASE_EXPORT DWORD ModifyCode(void* destination, const void* source, int length); 20 | 21 | } // namespace internal 22 | } // namespace win 23 | } // namespace bsae 24 | 25 | #endif // BASE_WIN_PATCH_UTIL_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/win/process_startup_helper.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_WIN_PROCESS_STARTUP_HELPER_H_ 6 | #define BASE_WIN_PROCESS_STARTUP_HELPER_H_ 7 | 8 | #include "base/base_export.h" 9 | 10 | namespace base { 11 | 12 | class CommandLine; 13 | 14 | namespace win { 15 | 16 | // Register the invalid param handler and pure call handler to be able to 17 | // notify breakpad when it happens. 18 | BASE_EXPORT void RegisterInvalidParamHandler(); 19 | 20 | // Sets up the CRT's debugging macros to output to stdout. 21 | BASE_EXPORT void SetupCRT(const CommandLine& command_line); 22 | 23 | } // namespace win 24 | } // namespace base 25 | 26 | #endif // BASE_WIN_PROCESS_STARTUP_HELPER_H_ 27 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/win/scoped_windows_thread_environment.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | #ifndef BASE_WIN_SCOPED_WINDOWS_THREAD_ENVIRONMENT_H_ 6 | #define BASE_WIN_SCOPED_WINDOWS_THREAD_ENVIRONMENT_H_ 7 | 8 | #include "base/macros.h" 9 | 10 | namespace base { 11 | namespace win { 12 | 13 | // Serves as a root class for ScopedCOMInitializer and ScopedWinrtInitializer. 14 | class ScopedWindowsThreadEnvironment { 15 | public: 16 | ScopedWindowsThreadEnvironment() {} 17 | virtual ~ScopedWindowsThreadEnvironment() {} 18 | 19 | virtual bool Succeeded() const = 0; 20 | 21 | private: 22 | DISALLOW_COPY_AND_ASSIGN(ScopedWindowsThreadEnvironment); 23 | }; 24 | 25 | } // namespace win 26 | } // namespace base 27 | 28 | #endif // BASE_WIN_SCOPED_WINDOWS_THREAD_ENVIRONMENT_H_ 29 | -------------------------------------------------------------------------------- /libs/webrtc/include/base/win/windows_full.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2014 The Chromium Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style license that can be 3 | // found in the LICENSE file. 4 | 5 | // This header is needed so that mojo typemap files can specify their dependence 6 | // on Windows.h. This can be removed once https://crbug.com/798763 is resolved. 7 | 8 | #ifndef BASE_WIN_WINDOWS_FULL_H 9 | #define BASE_WIN_WINDOWS_FULL_H 10 | 11 | #include 12 | 13 | #endif // BASE_WIN_WINDOWS_FULL_H 14 | -------------------------------------------------------------------------------- /libs/webrtc/include/call/callfactory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef CALL_CALLFACTORY_H_ 12 | #define CALL_CALLFACTORY_H_ 13 | 14 | #include "api/call/callfactoryinterface.h" 15 | 16 | namespace webrtc { 17 | 18 | class CallFactory : public CallFactoryInterface { 19 | ~CallFactory() override {} 20 | 21 | Call* CreateCall(const CallConfig& config) override; 22 | }; 23 | 24 | } // namespace webrtc 25 | 26 | #endif // CALL_CALLFACTORY_H_ 27 | -------------------------------------------------------------------------------- /libs/webrtc/include/call/rtp_packet_sink_interface.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | #ifndef CALL_RTP_PACKET_SINK_INTERFACE_H_ 11 | #define CALL_RTP_PACKET_SINK_INTERFACE_H_ 12 | 13 | namespace webrtc { 14 | 15 | class RtpPacketReceived; 16 | 17 | // This class represents a receiver of already parsed RTP packets. 18 | class RtpPacketSinkInterface { 19 | public: 20 | virtual ~RtpPacketSinkInterface() = default; 21 | virtual void OnRtpPacket(const RtpPacketReceived& packet) = 0; 22 | }; 23 | 24 | } // namespace webrtc 25 | 26 | #endif // CALL_RTP_PACKET_SINK_INTERFACE_H_ 27 | -------------------------------------------------------------------------------- /libs/webrtc/include/call/test/mock_rtp_packet_sink_interface.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | #ifndef CALL_TEST_MOCK_RTP_PACKET_SINK_INTERFACE_H_ 11 | #define CALL_TEST_MOCK_RTP_PACKET_SINK_INTERFACE_H_ 12 | 13 | #include "call/rtp_packet_sink_interface.h" 14 | 15 | #include "test/gmock.h" 16 | 17 | namespace webrtc { 18 | 19 | class MockRtpPacketSink : public RtpPacketSinkInterface { 20 | public: 21 | MOCK_METHOD1(OnRtpPacket, void(const RtpPacketReceived&)); 22 | }; 23 | 24 | } // namespace webrtc 25 | 26 | #endif // CALL_TEST_MOCK_RTP_PACKET_SINK_INTERFACE_H_ 27 | -------------------------------------------------------------------------------- /libs/webrtc/include/call/video_config.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef CALL_VIDEO_CONFIG_H_ 12 | #define CALL_VIDEO_CONFIG_H_ 13 | 14 | // TODO(bugs.webrtc.org/8830): Header file moved to api/. Delete this 15 | // file as soon as downstream applications are updated. 16 | #include "api/video_codecs/video_encoder_config.h" 17 | 18 | #endif // CALL_VIDEO_CONFIG_H_ 19 | -------------------------------------------------------------------------------- /libs/webrtc/include/common_audio/fft4g.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef COMMON_AUDIO_FFT4G_H_ 12 | #define COMMON_AUDIO_FFT4G_H_ 13 | 14 | #if defined(__cplusplus) 15 | extern "C" { 16 | #endif 17 | 18 | // Refer to fft4g.c for documentation. 19 | void WebRtc_rdft(size_t n, int isgn, float* a, size_t* ip, float* w); 20 | 21 | #if defined(__cplusplus) 22 | } 23 | #endif 24 | 25 | #endif // COMMON_AUDIO_FFT4G_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/common_audio/fir_filter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef COMMON_AUDIO_FIR_FILTER_H_ 12 | #define COMMON_AUDIO_FIR_FILTER_H_ 13 | 14 | #include 15 | 16 | namespace webrtc { 17 | 18 | // Finite Impulse Response filter using floating-point arithmetic. 19 | class FIRFilter { 20 | public: 21 | virtual ~FIRFilter() {} 22 | 23 | // Filters the |in| data supplied. 24 | // |out| must be previously allocated and it must be at least of |length|. 25 | virtual void Filter(const float* in, size_t length, float* out) = 0; 26 | }; 27 | 28 | } // namespace webrtc 29 | 30 | #endif // COMMON_AUDIO_FIR_FILTER_H_ 31 | -------------------------------------------------------------------------------- /libs/webrtc/include/common_audio/mocks/mock_smoothing_filter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef COMMON_AUDIO_MOCKS_MOCK_SMOOTHING_FILTER_H_ 12 | #define COMMON_AUDIO_MOCKS_MOCK_SMOOTHING_FILTER_H_ 13 | 14 | #include "common_audio/smoothing_filter.h" 15 | #include "test/gmock.h" 16 | 17 | namespace webrtc { 18 | 19 | class MockSmoothingFilter : public SmoothingFilter { 20 | public: 21 | MOCK_METHOD1(AddSample, void(float)); 22 | MOCK_METHOD0(GetAverage, absl::optional()); 23 | MOCK_METHOD1(SetTimeConstantMs, bool(int)); 24 | }; 25 | 26 | } // namespace webrtc 27 | 28 | #endif // COMMON_AUDIO_MOCKS_MOCK_SMOOTHING_FILTER_H_ 29 | -------------------------------------------------------------------------------- /libs/webrtc/include/common_video/h264/profile_level_id.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef COMMON_VIDEO_H264_PROFILE_LEVEL_ID_H_ 12 | #define COMMON_VIDEO_H264_PROFILE_LEVEL_ID_H_ 13 | 14 | #include "media/base/h264_profile_level_id.h" 15 | 16 | // TODO(zhihuang): Delete this file once dependent applications switch to 17 | // including "webrtc/media/base/h264_profile_level_id.h" directly. 18 | 19 | #endif // COMMON_VIDEO_H264_PROFILE_LEVEL_ID_H_ 20 | -------------------------------------------------------------------------------- /libs/webrtc/include/media/base/cryptoparams.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | // TODO(bugs.webrtc.org/7504): Remove. 12 | #ifndef MEDIA_BASE_CRYPTOPARAMS_H_ 13 | #define MEDIA_BASE_CRYPTOPARAMS_H_ 14 | 15 | #include "api/cryptoparams.h" 16 | 17 | #endif // MEDIA_BASE_CRYPTOPARAMS_H_ 18 | -------------------------------------------------------------------------------- /libs/webrtc/include/media/base/turnutils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MEDIA_BASE_TURNUTILS_H_ 12 | #define MEDIA_BASE_TURNUTILS_H_ 13 | 14 | #include 15 | #include 16 | 17 | namespace cricket { 18 | 19 | struct PacketOptions; 20 | 21 | // Finds data location within a TURN Channel Message or TURN Send Indication 22 | // message. 23 | bool UnwrapTurnPacket(const uint8_t* packet, 24 | size_t packet_size, 25 | size_t* content_position, 26 | size_t* content_size); 27 | 28 | } // namespace cricket 29 | 30 | #endif // MEDIA_BASE_TURNUTILS_H_ 31 | -------------------------------------------------------------------------------- /libs/webrtc/include/media/base/videocapturerfactory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MEDIA_BASE_VIDEOCAPTURERFACTORY_H_ 12 | #define MEDIA_BASE_VIDEOCAPTURERFACTORY_H_ 13 | 14 | #include 15 | 16 | #include "media/base/device.h" 17 | 18 | namespace cricket { 19 | 20 | class VideoCapturer; 21 | 22 | class VideoDeviceCapturerFactory { 23 | public: 24 | VideoDeviceCapturerFactory() {} 25 | virtual ~VideoDeviceCapturerFactory() {} 26 | 27 | virtual std::unique_ptr Create(const Device& device) = 0; 28 | }; 29 | 30 | } // namespace cricket 31 | 32 | #endif // MEDIA_BASE_VIDEOCAPTURERFACTORY_H_ 33 | -------------------------------------------------------------------------------- /libs/webrtc/include/media/engine/adm_helpers.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MEDIA_ENGINE_ADM_HELPERS_H_ 12 | #define MEDIA_ENGINE_ADM_HELPERS_H_ 13 | 14 | #include "common_types.h" // NOLINT(build/include) 15 | 16 | namespace webrtc { 17 | 18 | class AudioDeviceModule; 19 | 20 | namespace adm_helpers { 21 | 22 | void Init(AudioDeviceModule* adm); 23 | 24 | } // namespace adm_helpers 25 | } // namespace webrtc 26 | 27 | #endif // MEDIA_ENGINE_ADM_HELPERS_H_ 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/media/engine/constants.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MEDIA_ENGINE_CONSTANTS_H_ 12 | #define MEDIA_ENGINE_CONSTANTS_H_ 13 | 14 | namespace cricket { 15 | 16 | extern const int kVideoMtu; 17 | extern const int kVideoRtpBufferSize; 18 | 19 | extern const char kH264CodecName[]; 20 | 21 | extern const int kMinVideoBitrateBps; 22 | 23 | } // namespace cricket 24 | 25 | #endif // MEDIA_ENGINE_CONSTANTS_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/audio_coding/codecs/audio_decoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | // This file is for backwards compatibility only! Use 12 | // webrtc/api/audio_codecs/audio_decoder.h instead! 13 | // TODO(kwiberg): Remove it. 14 | 15 | #ifndef MODULES_AUDIO_CODING_CODECS_AUDIO_DECODER_H_ 16 | #define MODULES_AUDIO_CODING_CODECS_AUDIO_DECODER_H_ 17 | 18 | #include "api/audio_codecs/audio_decoder.h" 19 | 20 | #endif // MODULES_AUDIO_CODING_CODECS_AUDIO_DECODER_H_ 21 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/audio_coding/codecs/audio_encoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | // This file is for backwards compatibility only! Use 12 | // webrtc/api/audio_codecs/audio_encoder.h instead! 13 | // TODO(ossu): Remove it. 14 | 15 | #ifndef MODULES_AUDIO_CODING_CODECS_AUDIO_ENCODER_H_ 16 | #define MODULES_AUDIO_CODING_CODECS_AUDIO_ENCODER_H_ 17 | 18 | #include "api/audio_codecs/audio_encoder.h" 19 | 20 | #endif // MODULES_AUDIO_CODING_CODECS_AUDIO_ENCODER_H_ 21 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/audio_coding/codecs/audio_format_conversion.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MODULES_AUDIO_CODING_CODECS_AUDIO_FORMAT_CONVERSION_H_ 12 | #define MODULES_AUDIO_CODING_CODECS_AUDIO_FORMAT_CONVERSION_H_ 13 | 14 | #include "api/audio_codecs/audio_format.h" 15 | #include "common_types.h" // NOLINT(build/include) 16 | 17 | namespace webrtc { 18 | 19 | SdpAudioFormat CodecInstToSdp(const CodecInst& codec_inst); 20 | CodecInst SdpToCodecInst(int payload_type, const SdpAudioFormat& audio_format); 21 | 22 | } // namespace webrtc 23 | 24 | #endif // MODULES_AUDIO_CODING_CODECS_AUDIO_FORMAT_CONVERSION_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/audio_coding/codecs/isac/bandwidth_info.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MODULES_AUDIO_CODING_CODECS_ISAC_BANDWIDTH_INFO_H_ 12 | #define MODULES_AUDIO_CODING_CODECS_ISAC_BANDWIDTH_INFO_H_ 13 | 14 | #include "typedefs.h" // NOLINT(build/include) 15 | 16 | typedef struct { 17 | int in_use; 18 | int32_t send_bw_avg; 19 | int32_t send_max_delay_avg; 20 | int16_t bottleneck_idx; 21 | int16_t jitter_info; 22 | } IsacBandwidthInfo; 23 | 24 | #endif // MODULES_AUDIO_CODING_CODECS_ISAC_BANDWIDTH_INFO_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/audio_coding/codecs/isac/fix/include/audio_decoder_isacfix.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MODULES_AUDIO_CODING_CODECS_ISAC_FIX_INCLUDE_AUDIO_DECODER_ISACFIX_H_ 12 | #define MODULES_AUDIO_CODING_CODECS_ISAC_FIX_INCLUDE_AUDIO_DECODER_ISACFIX_H_ 13 | 14 | #include "modules/audio_coding/codecs/isac/audio_decoder_isac_t.h" 15 | #include "modules/audio_coding/codecs/isac/fix/source/isac_fix_type.h" 16 | 17 | namespace webrtc { 18 | 19 | using AudioDecoderIsacFixImpl = AudioDecoderIsacT; 20 | 21 | } // namespace webrtc 22 | #endif // MODULES_AUDIO_CODING_CODECS_ISAC_FIX_INCLUDE_AUDIO_DECODER_ISACFIX_H_ 23 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/audio_coding/codecs/isac/fix/include/audio_encoder_isacfix.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MODULES_AUDIO_CODING_CODECS_ISAC_FIX_INCLUDE_AUDIO_ENCODER_ISACFIX_H_ 12 | #define MODULES_AUDIO_CODING_CODECS_ISAC_FIX_INCLUDE_AUDIO_ENCODER_ISACFIX_H_ 13 | 14 | #include "modules/audio_coding/codecs/isac/audio_encoder_isac_t.h" 15 | #include "modules/audio_coding/codecs/isac/fix/source/isac_fix_type.h" 16 | 17 | namespace webrtc { 18 | 19 | using AudioEncoderIsacFixImpl = AudioEncoderIsacT; 20 | 21 | } // namespace webrtc 22 | #endif // MODULES_AUDIO_CODING_CODECS_ISAC_FIX_INCLUDE_AUDIO_ENCODER_ISACFIX_H_ 23 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/audio_coding/codecs/isac/main/include/audio_decoder_isac.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_INCLUDE_AUDIO_DECODER_ISAC_H_ 12 | #define MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_INCLUDE_AUDIO_DECODER_ISAC_H_ 13 | 14 | #include "modules/audio_coding/codecs/isac/audio_decoder_isac_t.h" 15 | #include "modules/audio_coding/codecs/isac/main/source/isac_float_type.h" 16 | 17 | namespace webrtc { 18 | 19 | using AudioDecoderIsacFloatImpl = AudioDecoderIsacT; 20 | 21 | } // namespace webrtc 22 | #endif // MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_INCLUDE_AUDIO_ENCODER_ISAC_H_ 23 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/audio_coding/codecs/isac/main/include/audio_encoder_isac.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_INCLUDE_AUDIO_ENCODER_ISAC_H_ 12 | #define MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_INCLUDE_AUDIO_ENCODER_ISAC_H_ 13 | 14 | #include "modules/audio_coding/codecs/isac/audio_encoder_isac_t.h" 15 | #include "modules/audio_coding/codecs/isac/main/source/isac_float_type.h" 16 | 17 | namespace webrtc { 18 | 19 | using AudioEncoderIsacFloatImpl = AudioEncoderIsacT; 20 | 21 | } // namespace webrtc 22 | #endif // MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_INCLUDE_AUDIO_ENCODER_ISAC_H_ 23 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/audio_coding/codecs/pcm16b/pcm16b_common.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MODULES_AUDIO_CODING_CODECS_PCM16B_PCM16B_COMMON_H_ 12 | #define MODULES_AUDIO_CODING_CODECS_PCM16B_PCM16B_COMMON_H_ 13 | 14 | #include 15 | 16 | #include "api/audio_codecs/audio_decoder_factory.h" 17 | 18 | namespace webrtc { 19 | void Pcm16BAppendSupportedCodecSpecs(std::vector* specs); 20 | } 21 | 22 | #endif // MODULES_AUDIO_CODING_CODECS_PCM16B_PCM16B_COMMON_H_ 23 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/audio_coding/test/ACMTest.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MODULES_AUDIO_CODING_TEST_ACMTEST_H_ 12 | #define MODULES_AUDIO_CODING_TEST_ACMTEST_H_ 13 | 14 | class ACMTest { 15 | public: 16 | ACMTest() {} 17 | virtual ~ACMTest() {} 18 | virtual void Perform() = 0; 19 | }; 20 | 21 | #endif // MODULES_AUDIO_CODING_TEST_ACMTEST_H_ 22 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/audio_device/android/ensure_initialized.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | namespace webrtc { 12 | namespace audiodevicemodule { 13 | 14 | void EnsureInitialized(); 15 | 16 | } // namespace audiodevicemodule 17 | } // namespace webrtc 18 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/audio_device/audio_device_config.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef AUDIO_DEVICE_AUDIO_DEVICE_CONFIG_H_ 12 | #define AUDIO_DEVICE_AUDIO_DEVICE_CONFIG_H_ 13 | 14 | // Enumerators 15 | // 16 | enum { GET_MIC_VOLUME_INTERVAL_MS = 1000 }; 17 | 18 | // Platform specifics 19 | // 20 | #if defined(_WIN32) 21 | #if (_MSC_VER >= 1400) 22 | #if !defined(WEBRTC_DUMMY_FILE_DEVICES) 23 | // Windows Core Audio is the default audio layer in Windows. 24 | // Only supported for VS 2005 and higher. 25 | #define WEBRTC_WINDOWS_CORE_AUDIO_BUILD 26 | #endif 27 | #endif 28 | #endif 29 | 30 | #endif // AUDIO_DEVICE_AUDIO_DEVICE_CONFIG_H_ 31 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/audio_device/ios/objc/RTCAudioSession.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "sdk/objc/Framework/Headers/WebRTC/RTCAudioSession.h" 12 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "sdk/objc/Framework/Headers/WebRTC/RTCAudioSessionConfiguration.h" 12 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/audio_processing/agc/utility.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MODULES_AUDIO_PROCESSING_AGC_UTILITY_H_ 12 | #define MODULES_AUDIO_PROCESSING_AGC_UTILITY_H_ 13 | 14 | // TODO(turajs): Add description of function. 15 | double Loudness2Db(double loudness); 16 | 17 | double Linear2Loudness(double rms); 18 | 19 | double Db2Loudness(double db); 20 | 21 | double Dbfs2Loudness(double dbfs); 22 | 23 | #endif // MODULES_AUDIO_PROCESSING_AGC_UTILITY_H_ 24 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/audio_processing/transient/common.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MODULES_AUDIO_PROCESSING_TRANSIENT_COMMON_H_ 12 | #define MODULES_AUDIO_PROCESSING_TRANSIENT_COMMON_H_ 13 | namespace webrtc { 14 | namespace ts { 15 | 16 | static const float kPi = 3.14159265358979323846f; 17 | static const int kChunkSizeMs = 10; 18 | enum { 19 | kSampleRate8kHz = 8000, 20 | kSampleRate16kHz = 16000, 21 | kSampleRate32kHz = 32000, 22 | kSampleRate48kHz = 48000 23 | }; 24 | 25 | } // namespace ts 26 | } // namespace webrtc 27 | #endif // MODULES_AUDIO_PROCESSING_TRANSIENT_COMMON_H_ 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/desktop_capture/win/cursor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MODULES_DESKTOP_CAPTURE_WIN_CURSOR_H_ 12 | #define MODULES_DESKTOP_CAPTURE_WIN_CURSOR_H_ 13 | 14 | #include 15 | 16 | namespace webrtc { 17 | 18 | class MouseCursor; 19 | 20 | // Converts an HCURSOR into a |MouseCursor| instance. 21 | MouseCursor* CreateMouseCursorFromHCursor(HDC dc, HCURSOR cursor); 22 | 23 | } // namespace webrtc 24 | 25 | #endif // MODULES_DESKTOP_CAPTURE_WIN_CURSOR_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/desktop_capture/win/cursor_unittest_resources.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MODULES_DESKTOP_CAPTURE_WIN_CURSOR_UNITTEST_RESOURCES_H_ 12 | #define MODULES_DESKTOP_CAPTURE_WIN_CURSOR_UNITTEST_RESOURCES_H_ 13 | 14 | #define IDD_CURSOR1_24BPP 101 15 | #define IDD_CURSOR1_32BPP 102 16 | #define IDD_CURSOR1_8BPP 103 17 | 18 | #define IDD_CURSOR2_1BPP 104 19 | #define IDD_CURSOR2_32BPP 105 20 | 21 | #define IDD_CURSOR3_4BPP 106 22 | #define IDD_CURSOR3_32BPP 107 23 | 24 | #endif // MODULES_DESKTOP_CAPTURE_WIN_CURSOR_UNITTEST_RESOURCES_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/modules/video_coding/qp_parser.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef MODULES_VIDEO_CODING_QP_PARSER_H_ 12 | #define MODULES_VIDEO_CODING_QP_PARSER_H_ 13 | 14 | #include "modules/video_coding/encoded_frame.h" 15 | 16 | namespace webrtc { 17 | 18 | class QpParser { 19 | public: 20 | QpParser() {} 21 | ~QpParser() {} 22 | 23 | // Parses an encoded |frame| and extracts the |qp|. 24 | // Returns true on success, false otherwise. 25 | bool GetQp(const VCMEncodedFrame& frame, int* qp); 26 | }; 27 | 28 | } // namespace webrtc 29 | 30 | #endif // MODULES_VIDEO_CODING_QP_PARSER_H_ 31 | -------------------------------------------------------------------------------- /libs/webrtc/include/p2p/base/candidatepairinterface.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef P2P_BASE_CANDIDATEPAIRINTERFACE_H_ 12 | #define P2P_BASE_CANDIDATEPAIRINTERFACE_H_ 13 | 14 | namespace cricket { 15 | 16 | class Candidate; 17 | 18 | class CandidatePairInterface { 19 | public: 20 | virtual ~CandidatePairInterface() {} 21 | 22 | virtual const Candidate& local_candidate() const = 0; 23 | virtual const Candidate& remote_candidate() const = 0; 24 | }; 25 | 26 | } // namespace cricket 27 | 28 | #endif // P2P_BASE_CANDIDATEPAIRINTERFACE_H_ 29 | -------------------------------------------------------------------------------- /libs/webrtc/include/p2p/base/packettransportinterface.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | // This exists for backwards compatibility with chromium remoting code that 12 | // uses it. 13 | // TODO(deadbeef): Update chromium and remove this file. 14 | 15 | #ifndef P2P_BASE_PACKETTRANSPORTINTERFACE_H_ 16 | #define P2P_BASE_PACKETTRANSPORTINTERFACE_H_ 17 | 18 | #include "p2p/base/packettransportinternal.h" 19 | 20 | namespace rtc { 21 | typedef PacketTransportInternal PacketTransportInterface; 22 | } 23 | 24 | #endif // P2P_BASE_PACKETTRANSPORTINTERFACE_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/p2p/base/transport.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | // Most of the contents of this header have moved to jseptransport.h. 12 | // TODO(deadbeef): Delete this file when downstream dependents are updated. 13 | 14 | #ifndef P2P_BASE_TRANSPORT_H_ 15 | #define P2P_BASE_TRANSPORT_H_ 16 | 17 | #include "p2p/base/transport.h" 18 | 19 | #endif // P2P_BASE_TRANSPORT_H_ 20 | -------------------------------------------------------------------------------- /libs/webrtc/include/p2p/base/udpport.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2004 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef P2P_BASE_UDPPORT_H_ 12 | #define P2P_BASE_UDPPORT_H_ 13 | 14 | // StunPort will be handling UDPPort functionality. 15 | #include "p2p/base/stunport.h" 16 | 17 | #endif // P2P_BASE_UDPPORT_H_ 18 | -------------------------------------------------------------------------------- /libs/webrtc/include/pc/test/androidtestinitializer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef PC_TEST_ANDROIDTESTINITIALIZER_H_ 12 | #define PC_TEST_ANDROIDTESTINITIALIZER_H_ 13 | 14 | namespace webrtc { 15 | 16 | void InitializeAndroidObjects(); 17 | 18 | } // namespace webrtc 19 | 20 | #endif // PC_TEST_ANDROIDTESTINITIALIZER_H_ 21 | -------------------------------------------------------------------------------- /libs/webrtc/include/rtc_base/cpu_time.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef RTC_BASE_CPU_TIME_H_ 12 | #define RTC_BASE_CPU_TIME_H_ 13 | 14 | #include 15 | 16 | namespace rtc { 17 | 18 | // Returns total CPU time of a current process in nanoseconds. 19 | // Time base is unknown, therefore use only to calculate deltas. 20 | int64_t GetProcessCpuTimeNanos(); 21 | 22 | // Returns total CPU time of a current thread in nanoseconds. 23 | // Time base is unknown, therefore use only to calculate deltas. 24 | int64_t GetThreadCpuTimeNanos(); 25 | 26 | } // namespace rtc 27 | 28 | #endif // RTC_BASE_CPU_TIME_H_ 29 | -------------------------------------------------------------------------------- /libs/webrtc/include/rtc_base/experiments/congestion_controller_experiment.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | #ifndef RTC_BASE_EXPERIMENTS_CONGESTION_CONTROLLER_EXPERIMENT_H_ 11 | #define RTC_BASE_EXPERIMENTS_CONGESTION_CONTROLLER_EXPERIMENT_H_ 12 | 13 | namespace webrtc { 14 | class CongestionControllerExperiment { 15 | public: 16 | static bool BbrControllerEnabled(); 17 | static bool InjectedControllerEnabled(); 18 | }; 19 | 20 | } // namespace webrtc 21 | 22 | #endif // RTC_BASE_EXPERIMENTS_CONGESTION_CONTROLLER_EXPERIMENT_H_ 23 | -------------------------------------------------------------------------------- /libs/webrtc/include/rtc_base/gunit_prod.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef RTC_BASE_GUNIT_PROD_H_ 12 | #define RTC_BASE_GUNIT_PROD_H_ 13 | 14 | #if defined(WEBRTC_ANDROID) 15 | // Android doesn't use gtest at all, so anything that relies on gtest should 16 | // check this define first. 17 | #define NO_GTEST 18 | #elif defined(GTEST_RELATIVE_PATH) 19 | #include "gtest/gtest_prod.h" 20 | #else 21 | #include "testing/base/gunit_prod.h" 22 | #endif 23 | 24 | #endif // RTC_BASE_GUNIT_PROD_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/rtc_base/macutils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2007 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef RTC_BASE_MACUTILS_H_ 12 | #define RTC_BASE_MACUTILS_H_ 13 | 14 | #include 15 | #include 16 | 17 | namespace rtc { 18 | bool ToUtf8(const CFStringRef str16, std::string* str8); 19 | bool ToUtf16(const std::string& str8, CFStringRef* str16); 20 | } // namespace rtc 21 | 22 | #endif // RTC_BASE_MACUTILS_H_ 23 | -------------------------------------------------------------------------------- /libs/webrtc/include/rtc_base/memory_usage.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | #ifndef RTC_BASE_MEMORY_USAGE_H_ 11 | #define RTC_BASE_MEMORY_USAGE_H_ 12 | 13 | #include 14 | 15 | namespace rtc { 16 | 17 | // Returns current memory used by the process in bytes (working set size on 18 | // Windows and resident set size on other platforms). 19 | // Returns -1 on failure. 20 | int64_t GetProcessResidentSizeBytes(); 21 | 22 | } // namespace rtc 23 | 24 | #endif // RTC_BASE_MEMORY_USAGE_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/rtc_base/openssl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef RTC_BASE_OPENSSL_H_ 12 | #define RTC_BASE_OPENSSL_H_ 13 | 14 | #if defined(WEBRTC_WIN) 15 | // Must be included first before openssl headers. 16 | #include "rtc_base/win32.h" // NOLINT 17 | #endif // WEBRTC_WIN 18 | 19 | #include 20 | 21 | #if (OPENSSL_VERSION_NUMBER < 0x10100000L) 22 | #error OpenSSL is older than 1.1.0, which is the minimum supported version. 23 | #endif 24 | 25 | #endif // RTC_BASE_OPENSSL_H_ 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/rtc_base/strings/audio_format_to_string.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef RTC_BASE_STRINGS_AUDIO_FORMAT_TO_STRING_H_ 12 | #define RTC_BASE_STRINGS_AUDIO_FORMAT_TO_STRING_H_ 13 | 14 | #include 15 | 16 | #include "api/audio_codecs/audio_format.h" 17 | 18 | namespace rtc { 19 | std::string ToString(const webrtc::SdpAudioFormat& saf); 20 | std::string ToString(const webrtc::AudioCodecInfo& saf); 21 | std::string ToString(const webrtc::AudioCodecSpec& acs); 22 | } // namespace rtc 23 | 24 | #endif // RTC_BASE_STRINGS_AUDIO_FORMAT_TO_STRING_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/rtc_base/system/inline.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef RTC_BASE_SYSTEM_INLINE_H_ 12 | #define RTC_BASE_SYSTEM_INLINE_H_ 13 | 14 | #if defined(_MSC_VER) 15 | 16 | #define RTC_FORCE_INLINE __forceinline 17 | #define RTC_NO_INLINE __declspec(noinline) 18 | 19 | #elif defined(__GNUC__) 20 | 21 | #define RTC_FORCE_INLINE __attribute__((__always_inline__)) 22 | #define RTC_NO_INLINE __attribute__((__noinline__)) 23 | 24 | #else 25 | 26 | #define RTC_FORCE_INLINE 27 | #define RTC_NO_INLINE 28 | 29 | #endif 30 | 31 | #endif // RTC_BASE_SYSTEM_INLINE_H_ 32 | -------------------------------------------------------------------------------- /libs/webrtc/include/rtc_base/task_queue_posix.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef RTC_BASE_TASK_QUEUE_POSIX_H_ 12 | #define RTC_BASE_TASK_QUEUE_POSIX_H_ 13 | 14 | #include 15 | 16 | namespace rtc { 17 | 18 | class TaskQueue; 19 | 20 | namespace internal { 21 | 22 | class AutoSetCurrentQueuePtr { 23 | public: 24 | explicit AutoSetCurrentQueuePtr(TaskQueue* q); 25 | ~AutoSetCurrentQueuePtr(); 26 | 27 | private: 28 | TaskQueue* const prev_; 29 | }; 30 | 31 | pthread_key_t GetQueuePtrTls(); 32 | 33 | } // namespace internal 34 | } // namespace rtc 35 | 36 | #endif // RTC_BASE_TASK_QUEUE_POSIX_H_ 37 | -------------------------------------------------------------------------------- /libs/webrtc/include/rtc_base/win32socketinit.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2009 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef RTC_BASE_WIN32SOCKETINIT_H_ 12 | #define RTC_BASE_WIN32SOCKETINIT_H_ 13 | 14 | namespace rtc { 15 | 16 | void EnsureWinsockInit(); 17 | 18 | } // namespace rtc 19 | 20 | #endif // RTC_BASE_WIN32SOCKETINIT_H_ 21 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/android/native_api/base/init.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef SDK_ANDROID_NATIVE_API_BASE_INIT_H_ 12 | #define SDK_ANDROID_NATIVE_API_BASE_INIT_H_ 13 | 14 | #include 15 | 16 | namespace webrtc { 17 | 18 | // Initializes global state needed by WebRTC Android NDK. 19 | void InitAndroid(JavaVM* jvm); 20 | 21 | } // namespace webrtc 22 | 23 | #endif // SDK_ANDROID_NATIVE_API_BASE_INIT_H_ 24 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/android/native_api/jni/jvm.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef SDK_ANDROID_NATIVE_API_JNI_JVM_H_ 12 | #define SDK_ANDROID_NATIVE_API_JNI_JVM_H_ 13 | 14 | #include 15 | 16 | namespace webrtc { 17 | // Returns a JNI environment usable on this thread. 18 | JNIEnv* AttachCurrentThreadIfNeeded(); 19 | } // namespace webrtc 20 | 21 | #endif // SDK_ANDROID_NATIVE_API_JNI_JVM_H_ 22 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/android/src/jni/androidnetworkmonitor_jni.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | // TODO(deadbeef): Remove this file when clients are updated to new include 12 | // path. 13 | 14 | #include "sdk/android/src/jni/pc/androidnetworkmonitor.h" 15 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/android/src/jni/class_loader.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | // Deprecated: use sdk/android/native_api/jni/class_loader.h instead. 12 | 13 | #ifndef SDK_ANDROID_SRC_JNI_CLASS_LOADER_H_ 14 | #define SDK_ANDROID_SRC_JNI_CLASS_LOADER_H_ 15 | 16 | #include "sdk/android/native_api/jni/class_loader.h" 17 | 18 | namespace webrtc { 19 | namespace jni { 20 | using ::webrtc::InitClassLoader; 21 | } // namespace jni 22 | } // namespace webrtc 23 | 24 | #endif // SDK_ANDROID_SRC_JNI_CLASS_LOADER_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/android/src/jni/pc/androidnetworkmonitor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | // TODO(sakal): Remove this file once clients have update to the native API. 12 | #include "sdk/android/src/jni/androidnetworkmonitor.h" 13 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/android/src/jni/pc/datachannel.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef SDK_ANDROID_SRC_JNI_PC_DATACHANNEL_H_ 12 | #define SDK_ANDROID_SRC_JNI_PC_DATACHANNEL_H_ 13 | 14 | namespace webrtc { 15 | namespace jni { 16 | 17 | DataChannelInit JavaToNativeDataChannelInit(JNIEnv* env, 18 | const JavaRef& j_init); 19 | 20 | ScopedJavaLocalRef WrapNativeDataChannel( 21 | JNIEnv* env, 22 | rtc::scoped_refptr channel); 23 | 24 | } // namespace jni 25 | } // namespace webrtc 26 | 27 | #endif // SDK_ANDROID_SRC_JNI_PC_DATACHANNEL_H_ 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/android/src/jni/pc/rtpsender.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef SDK_ANDROID_SRC_JNI_PC_RTPSENDER_H_ 12 | #define SDK_ANDROID_SRC_JNI_PC_RTPSENDER_H_ 13 | 14 | #include 15 | 16 | #include "api/rtpsenderinterface.h" 17 | #include "sdk/android/native_api/jni/scoped_java_ref.h" 18 | 19 | namespace webrtc { 20 | namespace jni { 21 | 22 | ScopedJavaLocalRef NativeToJavaRtpSender( 23 | JNIEnv* env, 24 | rtc::scoped_refptr sender); 25 | 26 | } // namespace jni 27 | } // namespace webrtc 28 | 29 | #endif // SDK_ANDROID_SRC_JNI_PC_RTPSENDER_H_ 30 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/android/src/jni/pc/turncustomizer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef SDK_ANDROID_SRC_JNI_PC_TURNCUSTOMIZER_H_ 12 | #define SDK_ANDROID_SRC_JNI_PC_TURNCUSTOMIZER_H_ 13 | 14 | #include "api/turncustomizer.h" 15 | #include "sdk/android/native_api/jni/scoped_java_ref.h" 16 | 17 | namespace webrtc { 18 | namespace jni { 19 | 20 | TurnCustomizer* GetNativeTurnCustomizer( 21 | JNIEnv* env, 22 | const JavaRef& j_turn_customizer); 23 | 24 | } // namespace jni 25 | } // namespace webrtc 26 | 27 | #endif // SDK_ANDROID_SRC_JNI_PC_TURNCUSTOMIZER_H_ 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/android/src/jni/videocodecstatus.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef SDK_ANDROID_SRC_JNI_VIDEOCODECSTATUS_H_ 12 | #define SDK_ANDROID_SRC_JNI_VIDEOCODECSTATUS_H_ 13 | 14 | #include 15 | #include 16 | 17 | #include "sdk/android/native_api/jni/scoped_java_ref.h" 18 | 19 | namespace webrtc { 20 | namespace jni { 21 | int32_t JavaToNativeVideoCodecStatus( 22 | JNIEnv* env, 23 | const JavaRef& j_video_codec_status); 24 | } // namespace jni 25 | } // namespace webrtc 26 | 27 | #endif // SDK_ANDROID_SRC_JNI_VIDEOCODECSTATUS_H_ 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/Common/NSString+StdString.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #include 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface NSString (StdString) 18 | 19 | @property(nonatomic, readonly) std::string stdString; 20 | 21 | + (std::string)stdStringForString:(NSString *)nsString; 22 | + (NSString *)stringForStdString:(const std::string &)stdString; 23 | 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/Common/RTCDispatcher+Private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "WebRTC/RTCDispatcher.h" 12 | 13 | @interface RTCDispatcher () 14 | 15 | + (dispatch_queue_t)dispatchQueueForType:(RTCDispatcherQueueType)dispatchType; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/Common/RTCUIApplicationStatusObserver.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #if defined(WEBRTC_IOS) 12 | 13 | #import 14 | 15 | NS_EXTENSION_UNAVAILABLE_IOS("Application status not available in app extensions.") 16 | @interface RTCUIApplicationStatusObserver : NSObject 17 | 18 | + (instancetype)sharedInstance; 19 | + (void)prepareForUse; 20 | 21 | - (BOOL)isApplicationActive; 22 | 23 | @end 24 | 25 | #endif // WEBRTC_IOS 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/Metal/RTCMTLI420Renderer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMTLRenderer.h" 14 | 15 | NS_AVAILABLE(10_11, 9_0) 16 | @interface RTCMTLI420Renderer : RTCMTLRenderer 17 | @end 18 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/Metal/RTCMTLNV12Renderer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMTLRenderer.h" 14 | 15 | NS_AVAILABLE(10_11, 9_0) 16 | @interface RTCMTLNV12Renderer : RTCMTLRenderer 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/Metal/RTCMTLRGBRenderer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "RTCMTLRenderer.h" 14 | 15 | /** @abstract RGB/BGR renderer. 16 | * @discussion This renderer handles both kCVPixelFormatType_32BGRA and 17 | * kCVPixelFormatType_32ARGB. 18 | */ 19 | NS_AVAILABLE(10_11, 9_0) 20 | @interface RTCMTLRGBRenderer : RTCMTLRenderer 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/PeerConnection/RTCConfiguration+Native.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "WebRTC/RTCConfiguration.h" 12 | 13 | #include "api/peerconnectioninterface.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface RTCConfiguration () 18 | 19 | /** Optional TurnCustomizer. 20 | * With this class one can modify outgoing TURN messages. 21 | * The object passed in must remain valid until PeerConnection::Close() is 22 | * called. 23 | */ 24 | @property(nonatomic, nullable) webrtc::TurnCustomizer* turnCustomizer; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/PeerConnection/RTCDataChannelConfiguration+Private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "WebRTC/RTCDataChannelConfiguration.h" 12 | 13 | #include "api/datachannelinterface.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface RTCDataChannelConfiguration () 18 | 19 | @property(nonatomic, readonly) webrtc::DataChannelInit nativeDataChannelInit; 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/PeerConnection/RTCIntervalRange+Private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "WebRTC/RTCIntervalRange.h" 12 | 13 | #include "rtc_base/timeutils.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface RTCIntervalRange () 18 | 19 | @property(nonatomic, readonly) std::unique_ptr nativeIntervalRange; 20 | 21 | - (instancetype)initWithNativeIntervalRange:(const rtc::IntervalRange &)config; 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/PeerConnection/RTCLegacyStatsReport+Private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "WebRTC/RTCLegacyStatsReport.h" 12 | 13 | #include "api/statstypes.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface RTCLegacyStatsReport () 18 | 19 | /** Initialize an RTCLegacyStatsReport object from a native StatsReport. */ 20 | - (instancetype)initWithNativeReport:(const webrtc::StatsReport &)nativeReport; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactoryBuilder+DefaultComponents.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "RTCPeerConnectionFactoryBuilder.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface RTCPeerConnectionFactoryBuilder (DefaultComponents) 16 | 17 | + (RTCPeerConnectionFactoryBuilder *)defaultBuilder; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactoryOptions+Private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "WebRTC/RTCPeerConnectionFactoryOptions.h" 12 | 13 | #include "api/peerconnectioninterface.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface RTCPeerConnectionFactoryOptions () 18 | 19 | /** Returns the equivalent native PeerConnectionFactoryInterface::Options 20 | * structure. */ 21 | @property(nonatomic, readonly) 22 | webrtc::PeerConnectionFactoryInterface::Options nativeOptions; 23 | 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/PeerConnection/RTCRtcpParameters+Private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "WebRTC/RTCRtcpParameters.h" 12 | 13 | #include "api/rtpparameters.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface RTCRtcpParameters () 18 | 19 | /** Returns the equivalent native RtcpParameters structure. */ 20 | @property(nonatomic, readonly) webrtc::RtcpParameters nativeParameters; 21 | 22 | /** Initialize the object with a native RtcpParameters structure. */ 23 | - (instancetype)initWithNativeParameters:(const webrtc::RtcpParameters &)nativeParameters; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/PeerConnection/RTCRtpHeaderExtension+Private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "WebRTC/RTCRtpHeaderExtension.h" 12 | 13 | #include "api/rtpparameters.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface RTCRtpHeaderExtension () 18 | 19 | /** Returns the equivalent native RtpExtension structure. */ 20 | @property(nonatomic, readonly) webrtc::RtpExtension nativeParameters; 21 | 22 | /** Initialize the object with a native RtpExtension structure. */ 23 | - (instancetype)initWithNativeParameters:(const webrtc::RtpExtension &)nativeParameters; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/PeerConnection/RTCRtpParameters+Private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "WebRTC/RTCRtpParameters.h" 12 | 13 | #include "api/rtpparameters.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface RTCRtpParameters () 18 | 19 | /** Returns the equivalent native RtpParameters structure. */ 20 | @property(nonatomic, readonly) webrtc::RtpParameters nativeParameters; 21 | 22 | /** Initialize the object with a native RtpParameters structure. */ 23 | - (instancetype)initWithNativeParameters:(const webrtc::RtpParameters &)nativeParameters; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/PeerConnection/RTCRtpSender+Private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "WebRTC/RTCRtpSender.h" 12 | 13 | #include "api/rtpsenderinterface.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface RTCRtpSender () 18 | 19 | @property(nonatomic, readonly) rtc::scoped_refptr nativeRtpSender; 20 | 21 | /** Initialize an RTCRtpSender with a native RtpSenderInterface. */ 22 | - (instancetype)initWithNativeRtpSender: 23 | (rtc::scoped_refptr)nativeRtpSender NS_DESIGNATED_INITIALIZER; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | /* 16 | * Creates a rtc::VideoSinkInterface surface for an RTCVideoRenderer. The 17 | * rtc::VideoSinkInterface is used by WebRTC rendering code - this 18 | * adapter adapts calls made to that interface to the RTCVideoRenderer supplied 19 | * during construction. 20 | */ 21 | @interface RTCVideoRendererAdapter : NSObject 22 | 23 | - (instancetype)init NS_UNAVAILABLE; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import "WebRTC/RTCVideoCodec.h" 14 | #include "api/video_codecs/video_decoder.h" 15 | #include "media/base/codec.h" 16 | 17 | @interface RTCWrappedNativeVideoDecoder : NSObject 18 | 19 | - (instancetype)initWithNativeDecoder:(std::unique_ptr)decoder; 20 | 21 | /* This moves the ownership of the wrapped decoder to the caller. */ 22 | - (std::unique_ptr)releaseWrappedDecoder; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/Video/AVCaptureSession+DevicePosition.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @interface AVCaptureSession (DevicePosition) 17 | 18 | // Check the image's EXIF for the camera the image came from. 19 | + (AVCaptureDevicePosition)devicePositionForSampleBuffer:(CMSampleBufferRef)sampleBuffer; 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/Video/RTCDefaultShader.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "WebRTC/RTCVideoViewShading.h" 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | /** Default RTCVideoViewShading that will be used in RTCNSGLVideoView and 16 | * RTCEAGLVideoView if no external shader is specified. This shader will render 17 | * the video in a rectangle without any color or geometric transformations. 18 | */ 19 | @interface RTCDefaultShader : NSObject 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/Video/RTCI420Buffer+Private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "WebRTC/RTCVideoFrameBuffer.h" 12 | 13 | #include "api/video/i420_buffer.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface RTCI420Buffer () 18 | 19 | /** Initialize an RTCI420Buffer with its backing I420BufferInterface. */ 20 | - (instancetype)initWithFrameBuffer:(rtc::scoped_refptr)i420Buffer; 21 | - (rtc::scoped_refptr)nativeI420Buffer; 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/Video/RTCI420TextureCache.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "RTCOpenGLDefines.h" 12 | #import "WebRTC/RTCVideoFrame.h" 13 | 14 | @interface RTCI420TextureCache : NSObject 15 | 16 | @property(nonatomic, readonly) GLuint yTexture; 17 | @property(nonatomic, readonly) GLuint uTexture; 18 | @property(nonatomic, readonly) GLuint vTexture; 19 | 20 | - (instancetype)init NS_UNAVAILABLE; 21 | - (instancetype)initWithContext:(GlContextType *)context NS_DESIGNATED_INITIALIZER; 22 | 23 | - (void)uploadFrameToTextures:(RTCVideoFrame *)frame; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/Video/RTCNV12TextureCache.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | @class RTCVideoFrame; 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @interface RTCNV12TextureCache : NSObject 18 | 19 | @property(nonatomic, readonly) GLuint yTexture; 20 | @property(nonatomic, readonly) GLuint uvTexture; 21 | 22 | - (instancetype)init NS_UNAVAILABLE; 23 | - (nullable instancetype)initWithContext:(EAGLContext *)context NS_DESIGNATED_INITIALIZER; 24 | 25 | - (BOOL)uploadFrameToTextures:(RTCVideoFrame *)frame; 26 | 27 | - (void)releaseTextures; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/Video/RTCShader.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import "WebRTC/RTCVideoFrame.h" 12 | 13 | RTC_EXTERN const char kRTCVertexShaderSource[]; 14 | 15 | RTC_EXTERN GLuint RTCCreateShader(GLenum type, const GLchar* source); 16 | RTC_EXTERN GLuint RTCCreateProgram(GLuint vertexShader, GLuint fragmentShader); 17 | RTC_EXTERN GLuint 18 | RTCCreateProgramFromFragmentSource(const char fragmentShaderSource[]); 19 | RTC_EXTERN BOOL RTCCreateVertexBuffer(GLuint* vertexBuffer, 20 | GLuint* vertexArray); 21 | RTC_EXTERN void RTCSetVertexData(RTCVideoRotation rotation); 22 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Classes/Video/UIDevice+H264Profile.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #include "media/base/h264_profile_level_id.h" 14 | 15 | @interface UIDevice (H264Profile) 16 | 17 | + (absl::optional)maxSupportedH264Profile; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Headers/WebRTC/RTCAudioTrack.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2015 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @class RTCAudioSource; 17 | 18 | RTC_EXPORT 19 | @interface RTCAudioTrack : RTCMediaStreamTrack 20 | 21 | - (instancetype)init NS_UNAVAILABLE; 22 | 23 | /** The audio source for this audio track. */ 24 | @property(nonatomic, readonly) RTCAudioSource *source; 25 | 26 | @end 27 | 28 | NS_ASSUME_NONNULL_END 29 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Headers/WebRTC/RTCIntervalRange.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface RTCIntervalRange : NSObject 16 | 17 | @property(nonatomic, readonly) NSInteger min; 18 | @property(nonatomic, readonly) NSInteger max; 19 | 20 | - (instancetype)init; 21 | - (instancetype)initWithMin:(NSInteger)min max:(NSInteger)max NS_DESIGNATED_INITIALIZER; 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Headers/WebRTC/RTCMTLNSVideoView.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | #import "WebRTC/RTCVideoRenderer.h" 13 | 14 | NS_AVAILABLE_MAC(10.11) 15 | @interface RTCMTLNSVideoView : NSView 16 | 17 | @property(nonatomic, weak) id delegate; 18 | 19 | + (BOOL)isMetalAvailable; 20 | @end 21 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Headers/WebRTC/RTCMetrics.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | /** 17 | * Enables gathering of metrics (which can be fetched with 18 | * RTCGetAndResetMetrics). Must be called before any other call into WebRTC. 19 | */ 20 | RTC_EXTERN void RTCEnableMetrics(void); 21 | 22 | /** Gets and clears native histograms. */ 23 | RTC_EXTERN NSArray* RTCGetAndResetMetrics(void); 24 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Headers/WebRTC/RTCRtcpParameters.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | RTC_EXPORT 18 | @interface RTCRtcpParameters : NSObject 19 | 20 | /** The Canonical Name used by RTCP. */ 21 | @property(nonatomic, readonly, copy) NSString *cname; 22 | 23 | /** Whether reduced size RTCP is configured or compound RTCP. */ 24 | @property(nonatomic, assign) BOOL isReducedSize; 25 | 26 | - (instancetype)init NS_DESIGNATED_INITIALIZER; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Headers/WebRTC/RTCSSLAdapter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | /** 16 | * Initialize and clean up the SSL library. Failure is fatal. These call the 17 | * corresponding functions in webrtc/rtc_base/ssladapter.h. 18 | */ 19 | RTC_EXTERN BOOL RTCInitializeSSL(void); 20 | RTC_EXTERN BOOL RTCCleanupSSL(void); 21 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Headers/WebRTC/RTCTracing.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016 The WebRTC Project Authors. All rights reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | 15 | RTC_EXTERN void RTCSetupInternalTracer(void); 16 | /** Starts capture to specified file. Must be a valid writable path. 17 | * Returns YES if capture starts. 18 | */ 19 | RTC_EXTERN BOOL RTCStartInternalCapture(NSString* filePath); 20 | RTC_EXTERN void RTCStopInternalCapture(void); 21 | RTC_EXTERN void RTCShutdownInternalTracer(void); 22 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Headers/WebRTC/RTCVideoCapturer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @class RTCVideoCapturer; 16 | 17 | RTC_EXPORT 18 | @protocol RTCVideoCapturerDelegate 19 | - (void)capturer:(RTCVideoCapturer *)capturer didCaptureVideoFrame:(RTCVideoFrame *)frame; 20 | @end 21 | 22 | RTC_EXPORT 23 | @interface RTCVideoCapturer : NSObject 24 | 25 | @property(nonatomic, weak) id delegate; 26 | 27 | - (instancetype)initWithDelegate:(id)delegate; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Headers/WebRTC/RTCVideoDecoderVP8.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_EXPORT 17 | @interface RTCVideoDecoderVP8 : NSObject 18 | 19 | /* This returns a VP8 decoder that can be returned from a RTCVideoDecoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoDecoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)vp8Decoder; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Headers/WebRTC/RTCVideoDecoderVP9.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_EXPORT 17 | @interface RTCVideoDecoderVP9 : NSObject 18 | 19 | /* This returns a VP9 decoder that can be returned from a RTCVideoDecoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoDecoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)vp9Decoder; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Headers/WebRTC/RTCVideoEncoderVP8.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_EXPORT 17 | @interface RTCVideoEncoderVP8 : NSObject 18 | 19 | /* This returns a VP8 encoder that can be returned from a RTCVideoEncoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoEncoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)vp8Encoder; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Headers/WebRTC/RTCVideoEncoderVP9.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #import 14 | #import 15 | 16 | RTC_EXPORT 17 | @interface RTCVideoEncoderVP9 : NSObject 18 | 19 | /* This returns a VP9 encoder that can be returned from a RTCVideoEncoderFactory injected into 20 | * RTCPeerConnectionFactory. Even though it implements the RTCVideoEncoder protocol, it can not be 21 | * used independently from the RTCPeerConnectionFactory. 22 | */ 23 | + (id)vp9Encoder; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Native/api/audio_device_module.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef SDK_OBJC_FRAMEWORK_NATIVE_API_AUDIO_DEVICE_MODULE_H_ 12 | #define SDK_OBJC_FRAMEWORK_NATIVE_API_AUDIO_DEVICE_MODULE_H_ 13 | 14 | #include 15 | 16 | #include "modules/audio_device/include/audio_device.h" 17 | 18 | namespace webrtc { 19 | 20 | rtc::scoped_refptr CreateAudioDeviceModule(); 21 | 22 | } // namespace webrtc 23 | 24 | #endif // SDK_OBJC_FRAMEWORK_NATIVE_API_AUDIO_DEVICE_MODULE_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Native/api/video_frame.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef SDK_OBJC_FRAMEWORK_NATIVE_API_VIDEO_FRAME_H_ 12 | #define SDK_OBJC_FRAMEWORK_NATIVE_API_VIDEO_FRAME_H_ 13 | 14 | #import "WebRTC/RTCVideoFrame.h" 15 | 16 | #include "api/video/video_frame.h" 17 | 18 | namespace webrtc { 19 | 20 | RTCVideoFrame* NativeToObjCVideoFrame(const VideoFrame& frame); 21 | 22 | } // namespace webrtc 23 | 24 | #endif // SDK_OBJC_FRAMEWORK_NATIVE_API_VIDEO_FRAME_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Native/api/video_renderer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef SDK_OBJC_FRAMEWORK_NATIVE_API_VIDEO_RENDERER_H_ 12 | #define SDK_OBJC_FRAMEWORK_NATIVE_API_VIDEO_RENDERER_H_ 13 | 14 | #import "WebRTC/RTCVideoRenderer.h" 15 | 16 | #include 17 | 18 | #include "api/video/video_frame.h" 19 | #include "api/video/video_sink_interface.h" 20 | 21 | namespace webrtc { 22 | 23 | std::unique_ptr> ObjCToNativeVideoRenderer( 24 | id objc_video_renderer); 25 | 26 | } // namespace webrtc 27 | 28 | #endif // SDK_OBJC_FRAMEWORK_NATIVE_API_VIDEO_RENDERER_H_ 29 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/Native/src/objc_video_frame.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef SDK_OBJC_FRAMEWORK_NATIVE_SRC_OBJC_VIDEO_FRAME_H_ 12 | #define SDK_OBJC_FRAMEWORK_NATIVE_SRC_OBJC_VIDEO_FRAME_H_ 13 | 14 | #import "WebRTC/RTCVideoFrame.h" 15 | 16 | #include "api/video/video_frame.h" 17 | 18 | namespace webrtc { 19 | 20 | RTCVideoFrame* ToObjCVideoFrame(const VideoFrame& frame); 21 | 22 | } // namespace webrtc 23 | 24 | #endif // SDK_OBJC_FRAMEWORK_NATIVE_SRC_OBJC_VIDEO_FRAME_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/sdk/objc/Framework/UnitTests/frame_buffer_helpers.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #import 12 | 13 | #include "api/video/i420_buffer.h" 14 | 15 | void DrawGradientInRGBPixelBuffer(CVPixelBufferRef pixelBuffer); 16 | 17 | rtc::scoped_refptr CreateI420Gradient(int width, 18 | int height); 19 | 20 | void CopyI420BufferToCVPixelBuffer( 21 | rtc::scoped_refptr i420Buffer, 22 | CVPixelBufferRef pixelBuffer); 23 | -------------------------------------------------------------------------------- /libs/webrtc/include/system_wrappers/include/cpu_info.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | #ifndef SYSTEM_WRAPPERS_INCLUDE_CPU_INFO_H_ 12 | #define SYSTEM_WRAPPERS_INCLUDE_CPU_INFO_H_ 13 | 14 | #include "typedefs.h" // NOLINT(build/include) 15 | 16 | namespace webrtc { 17 | 18 | class CpuInfo { 19 | public: 20 | static uint32_t DetectNumberOfCores(); 21 | 22 | private: 23 | CpuInfo() {} 24 | }; 25 | 26 | } // namespace webrtc 27 | 28 | #endif // SYSTEM_WRAPPERS_INCLUDE_CPU_INFO_H_ 29 | -------------------------------------------------------------------------------- /libs/webrtc/include/system_wrappers/include/sleep.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | // An OS-independent sleep function. 11 | 12 | #ifndef SYSTEM_WRAPPERS_INCLUDE_SLEEP_H_ 13 | #define SYSTEM_WRAPPERS_INCLUDE_SLEEP_H_ 14 | 15 | namespace webrtc { 16 | 17 | // This function sleeps for the specified number of milliseconds. 18 | // It may return early if the thread is woken by some other event, 19 | // such as the delivery of a signal on Unix. 20 | void SleepMs(int msecs); 21 | 22 | } // namespace webrtc 23 | 24 | #endif // SYSTEM_WRAPPERS_INCLUDE_SLEEP_H_ 25 | -------------------------------------------------------------------------------- /libs/webrtc/include/typedefs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3 | * 4 | * Use of this source code is governed by a BSD-style license 5 | * that can be found in the LICENSE file in the root of the source 6 | * tree. An additional intellectual property rights grant can be found 7 | * in the file PATENTS. All contributing project authors may 8 | * be found in the AUTHORS file in the root of the source tree. 9 | */ 10 | 11 | // TODO(solenberg): Make the files including typedefs.h directly include the 12 | // files below they need. 13 | #ifndef TYPEDEFS_H_ 14 | #define TYPEDEFS_H_ 15 | 16 | #include 17 | 18 | #include "rtc_base/system/arch.h" 19 | #include "rtc_base/system/unused.h" 20 | 21 | #endif // TYPEDEFS_H_ 22 | -------------------------------------------------------------------------------- /mac_project/.gitignore: -------------------------------------------------------------------------------- 1 | #AudioMixer.xcodeproj 2 | xcuserdata 3 | -------------------------------------------------------------------------------- /mac_project/AudioMixer.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /mac_project/AudioMixer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /mac_project/example/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /mac_project/example/AudioMixerExample.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.files.user-selected.read-only 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /mp3/iamyou-48k.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Piasy/AudioMixer/e09f3a5c60d4b695497a1dfac072c795a6f7a0d6/mp3/iamyou-48k.mp3 -------------------------------------------------------------------------------- /mp3/lion-48k.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Piasy/AudioMixer/e09f3a5c60d4b695497a1dfac072c795a6f7a0d6/mp3/lion-48k.mp3 -------------------------------------------------------------------------------- /mp3/morning-48k.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Piasy/AudioMixer/e09f3a5c60d4b695497a1dfac072c795a6f7a0d6/mp3/morning-48k.mp3 -------------------------------------------------------------------------------- /mp3/morning-mono-16k.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Piasy/AudioMixer/e09f3a5c60d4b695497a1dfac072c795a6f7a0d6/mp3/morning-mono-16k.mp3 -------------------------------------------------------------------------------- /mp3/morning.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Piasy/AudioMixer/e09f3a5c60d4b695497a1dfac072c795a6f7a0d6/mp3/morning.raw -------------------------------------------------------------------------------- /package_libs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | find libs -name ".DS_Store" | xargs rm && \ 4 | zip -r libs-20180702.zip libs 5 | -------------------------------------------------------------------------------- /run_djinni.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | base_dir=$(cd "`dirname "0"`" && pwd) 4 | cpp_out="$base_dir/generated_src/cpp" 5 | jni_out="$base_dir/generated_src/jni" 6 | objc_out="$base_dir/generated_src/objc" 7 | java_out="$base_dir/generated_src/java/com/github/piasy/audio_mixer" 8 | java_package="com.github.piasy.audio_mixer" 9 | namespace="audio_mixer" 10 | objc_prefix="PYA" 11 | djinni_file="$base_dir/djinni/audio_mixer.djinni" 12 | 13 | rm -rf $base_dir/generated_src && \ 14 | /usr/local/djinni/src/run \ 15 | --java-out $java_out \ 16 | --java-package $java_package \ 17 | --ident-java-field mFooBar \ 18 | \ 19 | --cpp-out $cpp_out \ 20 | --cpp-namespace $namespace \ 21 | --ident-cpp-method FooBar \ 22 | \ 23 | --jni-out $jni_out \ 24 | --ident-jni-class NativeFooBar \ 25 | --ident-jni-file NativeFooBar \ 26 | \ 27 | --objc-out $objc_out \ 28 | --objc-type-prefix $objc_prefix \ 29 | \ 30 | --objcpp-out $objc_out \ 31 | \ 32 | --idl $djinni_file 33 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':android_project:AudioMixer' 2 | -------------------------------------------------------------------------------- /simple_lib_android_maven_release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export IS_PIASY_LIB_RELEASE=true 3 | ./gradlew clean --stacktrace && \ 4 | ./gradlew :android_project:AudioMixer:assembleRelease && \ 5 | ./gradlew publishReleasePublicationToSonatypeRepository && \ 6 | ./gradlew closeAndReleaseRepository 7 | unset IS_PIASY_LIB_RELEASE 8 | -------------------------------------------------------------------------------- /src/audio_mixer_global.cpp: -------------------------------------------------------------------------------- 1 | #include "audio_mixer_global.h" 2 | 3 | namespace audio_mixer { 4 | 5 | const AVSampleFormat kOutputSampleFormat = AV_SAMPLE_FMT_S16; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/audio_mixer_global.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef __cplusplus 4 | extern "C" { 5 | #endif 6 | 7 | #include 8 | 9 | #ifdef __cplusplus 10 | } 11 | #endif 12 | 13 | namespace audio_mixer { 14 | 15 | extern const AVSampleFormat kOutputSampleFormat; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/audio_record_source.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Piasy on 2018/5/28. 3 | // 4 | 5 | #pragma once 6 | 7 | #include 8 | 9 | #include "audio_source.h" 10 | 11 | namespace audio_mixer { 12 | 13 | class AudioRecordSource : public AudioSource { 14 | public: 15 | AudioRecordSource(int32_t ssrc, int32_t sample_rate, int32_t channel_num, 16 | int32_t frame_duration_ms, float volume); 17 | 18 | ~AudioRecordSource(); 19 | 20 | void OnAudioRecorded(const void* data, int32_t size); 21 | 22 | AudioFrameInfo 23 | GetAudioFrameWithInfo(int32_t sample_rate_hz, webrtc::AudioFrame* audio_frame) override; 24 | 25 | int32_t Ssrc() const override; 26 | 27 | int32_t PreferredSampleRate() const override; 28 | 29 | private: 30 | int32_t ssrc_; 31 | 32 | int32_t sample_rate_; 33 | int32_t channel_num_; 34 | 35 | int32_t frame_duration_ms_; 36 | int32_t report_output_samples_; 37 | int32_t real_buffer_num_elements_; 38 | 39 | rtc::BufferT buffer_; 40 | }; 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/audio_resampler.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Piasy on 04/11/2017. 3 | // 4 | 5 | #pragma once 6 | 7 | #include 8 | 9 | #include "avx_helper.h" 10 | 11 | namespace audio_mixer { 12 | 13 | class AudioResampler { 14 | public: 15 | AudioResampler( 16 | AVSampleFormat input_format, int32_t input_sample_rate, int32_t input_channel_num, 17 | AVSampleFormat output_format, int32_t output_sample_rate, int32_t output_channel_num 18 | ); 19 | 20 | ~AudioResampler() {} 21 | 22 | int32_t Resample(void** input_buffer, int32_t input_size, void** output_buffer); 23 | 24 | private: 25 | 26 | std::unique_ptr context_; 27 | AVSampleFormat input_format_; 28 | int32_t input_sample_rate_; 29 | int32_t input_channel_num_; 30 | AVSampleFormat output_format_; 31 | int32_t output_sample_rate_; 32 | int32_t output_channel_num_; 33 | }; 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/audio_source.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Piasy on 2018/5/28. 3 | // 4 | 5 | #include