webrtc/api
2024-01-17 12:11:58 -08:00
..
adaptation Remove rtc_base:rtc_base_approved 2022-05-05 09:43:31 +00:00
audio Make AEC3 json parsing code testonly 2023-10-26 12:03:02 +00:00
audio_codecs Add low bitrate redundancy support 2023-10-31 13:14:36 -07:00
call Cleanup Call construction 2023-10-16 06:34:26 +00:00
crypto Merge branch m120 2024-01-17 12:11:58 -08:00
g3doc Reland "Migrate WebRTC documentation to new renderer" 2023-01-31 09:30:04 +00:00
metronome Cleanup merge differences from upstream 2023-01-25 17:17:55 -08:00
neteq Add Rust_setIncomingAudioMuted 2023-09-27 12:16:54 -04:00
numerics Add samples sum calculation 2023-02-24 11:48:39 +00:00
rtc_event_log Add RtcEvent to store when MinimumSetDelay is set on NetEq 2023-01-13 17:15:48 +00:00
stats Revert changes to enable echo detection 2023-12-04 17:15:35 -05:00
task_queue Allow absl::Nonnull and absl::Nullable. 2023-10-27 22:00:50 +00:00
test Merge branch m120 2024-01-17 12:11:58 -08:00
transport Merge branch m120 2024-01-17 12:11:58 -08:00
units Format ^(api|call|common_audio|examples|media|net|p2p|pc)/ 2023-05-03 11:09:26 +00:00
video Adds reference time to webrt::VideoFrame 2023-10-30 12:08:38 +00:00
video_codecs Add codec name H265 to support H265 in WebRTC 2023-09-20 09:25:32 +00:00
voip Format ^(api|call|common_audio|examples|media|net|p2p|pc)/ 2023-05-03 11:09:26 +00:00
array_view.h Add reference, pointer, and co type aliases for rtc::ArrayView. 2023-04-05 20:18:57 +00:00
array_view_unittest.cc Update to WebRTC 4389 (e7d9f74) 2021-04-16 13:26:31 -07:00
async_dns_resolver.h Convert AsyncDnsResolver to use absl::AnyInvocable 2023-08-31 08:50:40 +00:00
async_resolver_factory.h Reland "Deprecate all classes related to AsyncResolver" 2023-10-17 07:08:57 +00:00
audio_options.cc Remove unused combined_audio_video_bwe. 2023-05-26 15:56:00 +00:00
audio_options.h Remove unused combined_audio_video_bwe. 2023-05-26 15:56:00 +00:00
BUILD.gn Merge branch m120 2024-01-17 12:11:58 -08:00
candidate.cc candidate: do not log full IP addresses for related address 2023-07-25 17:19:25 +00:00
candidate.h Change PortInterface::Type to string_view and make type_ member const 2023-09-25 13:48:50 +00:00
create_peerconnection_factory.cc Updating AsyncAudioProcessing API, part 1. 2023-05-31 14:40:35 +00:00
create_peerconnection_factory.h Updating AsyncAudioProcessing API, part 1. 2023-05-31 14:40:35 +00:00
crypto_params.h Rename cipher_suite to crypto_suite 2023-08-02 11:45:24 +00:00
data_channel_interface.cc [DataChannelInterface] Introduce DataChannelInterface::SendAsync() 2023-04-11 19:46:36 +00:00
data_channel_interface.h [DataChannelInterface] Introduce DataChannelInterface::SendAsync() 2023-04-11 19:46:36 +00:00
DEPS Merge branch 'm110' into 5481 2023-02-17 11:35:29 -05:00
dtls_transport_interface.cc Update to 4896 (M100) (#72) 2022-04-15 17:13:23 -06:00
dtls_transport_interface.h Update to 4896 (M100) (#72) 2022-04-15 17:13:23 -06:00
dtmf_sender_interface.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
fec_controller.h Add SetRetransmissionMode() to FecController, this will be used to control RTX settings in FecController. 2023-06-01 07:51:56 +00:00
fec_controller_override.h
field_trials.cc Finish resolving merge conflicts 2022-11-11 19:10:59 -05:00
field_trials.h Finish resolving merge conflicts 2022-11-11 19:10:59 -05:00
field_trials_registry.cc Add option to log a warning for unregistered field trials 2023-02-28 15:43:18 +00:00
field_trials_registry.h Add FieldTrialsRegistry that verifies looked up field trials 2022-10-24 09:12:30 +00:00
field_trials_unittest.cc Use ScopedFieldTrials in FieldTrialsTest 2022-12-02 15:57:57 +00:00
field_trials_view.h Cleanup FieldTrialView 2023-03-27 17:06:33 +00:00
frame_transformer_factory.cc Make all encodedaudioframes inherit from TransformableAudioFrameI'face 2023-06-19 18:54:47 +00:00
frame_transformer_factory.h Make all encodedaudioframes inherit from TransformableAudioFrameI'face 2023-06-19 18:54:47 +00:00
frame_transformer_interface.h Expose video mimeType for insertable streams 2023-10-25 16:01:32 +00:00
function_view.h
function_view_unittest.cc
ice_gatherer_interface.h
ice_transport_factory.cc Add rtc::make_ref_counted to api/ 2022-06-13 15:53:27 +00:00
ice_transport_factory.h Use backticks not vertical bars to denote variables in comments 2021-08-10 10:40:03 +00:00
ice_transport_interface.h Reland "Deprecate all classes related to AsyncResolver" 2023-10-17 07:08:57 +00:00
jsep.cc
jsep.h Use backticks not vertical bars to denote variables in comments 2021-08-10 10:40:03 +00:00
jsep_ice_candidate.cc
jsep_ice_candidate.h Update to 4896 (M100) (#72) 2022-04-15 17:13:23 -06:00
jsep_session_description.h Remove JsepSessionDescription::kDefaultVideoCodecName 2023-03-02 12:28:29 +00:00
legacy_stats_types.cc Add missing method definition for StatsReport::Value::id_val() 2023-06-15 13:53:37 +00:00
legacy_stats_types.h Remove preprocessor definition for StatsReport::Value::id_val() 2023-06-19 08:26:42 +00:00
location.h Implement support for Chrome task origin tracing. #2/4 2023-02-27 13:17:38 +00:00
make_ref_counted.h Fix missing libc++ includes in webrtc 2023-03-02 10:14:51 +00:00
media_stream_interface.cc Format ^(api|call|common_audio|examples|media|net|p2p|pc)/ 2023-05-03 11:09:26 +00:00
media_stream_interface.h Finish resolving merge conflicts 2022-11-11 19:10:59 -05:00
media_stream_track.h Use string_view to pass track ids to constructors 2022-05-30 10:28:57 +00:00
media_types.cc Update to 4896 (M100) (#72) 2022-04-15 17:13:23 -06:00
media_types.h Revert "Define cricket::MediaType in terms of webrtc::MediaType" 2021-05-12 17:06:58 +00:00
network_state_predictor.h
notifier.h Use SequenceChecker(SequenceChecker::kDetached) in a few places. 2023-03-24 07:44:18 +00:00
OWNERS Rearrange api/OWNERS to show who's backup OWNERS 2022-10-07 05:56:08 +00:00
packet_socket_factory.h Reland "Deprecate all classes related to AsyncResolver" 2023-10-17 07:08:57 +00:00
peer_connection_interface.cc Merge branch 'm118' 2023-11-07 15:00:28 -06:00
peer_connection_interface.h Merge branch m120 2024-01-17 12:11:58 -08:00
priority.h
README.md Discourage structs in api 2023-09-07 10:41:49 +00:00
ref_counted_base.h Update to 4896 (M100) (#72) 2022-04-15 17:13:23 -06:00
rtc_error.cc Use absl::string_view type as parameter for RTCError message 2023-03-20 18:16:10 +00:00
rtc_error.h Ensure that RTCErrorOr<T, E> doesn't require T to be default constructible 2023-06-05 16:55:00 +00:00
rtc_error_unittest.cc Use absl::string_view type as parameter for RTCError message 2023-03-20 18:16:10 +00:00
rtc_event_log_output.h Remove unnecessary overload in RtcEventLogOutput 2022-07-12 22:09:36 +00:00
rtc_event_log_output_file.cc Remove unnecessary std::string overloads 2022-07-07 14:24:14 +00:00
rtc_event_log_output_file.h Remove unnecessary std::string overloads 2022-07-07 14:24:14 +00:00
rtc_event_log_output_file_unittest.cc Remove unnecessary overload in RtcEventLogOutput 2022-07-12 22:09:36 +00:00
rtp_headers.cc Delete RTPHeader::payload_type_frequency as unused 2023-03-09 16:32:22 +00:00
rtp_headers.h Delete RTPHeader::payload_type_frequency as unused 2023-03-09 16:32:22 +00:00
rtp_packet_info.cc RtpPacketInfo: deprecated ctors and getter removed 2022-09-21 12:00:56 +00:00
rtp_packet_info.h RtpPacketInfo: deprecated ctors and getter removed 2022-09-21 12:00:56 +00:00
rtp_packet_info_unittest.cc Surface local_capture_clock_offset from RtpSource 2022-09-20 12:51:22 +00:00
rtp_packet_infos.h Merge in M108 2022-11-11 17:02:35 -05:00
rtp_packet_infos_unittest.cc RtpPacketInfo: new ctor + deprecated ctors clean-up 2022-09-20 08:58:38 +00:00
rtp_parameters.cc Extract common codec fields into RtpCodec 2023-04-14 12:15:24 +00:00
rtp_parameters.h Merge branch 'm118' 2023-11-07 15:00:28 -06:00
rtp_parameters_unittest.cc Update to 4896 (M100) (#72) 2022-04-15 17:13:23 -06:00
rtp_receiver_interface.cc
rtp_receiver_interface.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
rtp_sender_interface.cc pc: Add asynchronous RtpSender::SetParameters() call 2022-11-15 15:31:40 +00:00
rtp_sender_interface.h Remove public GenerateKeyFrame(list-of-rids) API from RtpSender 2023-08-30 14:54:17 +00:00
rtp_transceiver_direction.h
rtp_transceiver_interface.cc Update to 4896 (M100) (#72) 2022-04-15 17:13:23 -06:00
rtp_transceiver_interface.h sdp: reject spec simulcast answers without the rid extension 2023-06-02 12:44:32 +00:00
scoped_refptr.h Delete implicit conversion from rtc::scoped_refptr<T> to T* 2022-05-09 09:06:44 +00:00
scoped_refptr_unittest.cc Update to 4896 (M100) (#72) 2022-04-15 17:13:23 -06:00
sctp_transport_interface.cc
sctp_transport_interface.h
sequence_checker.h Support initializing a SequenceChecker with a provided TaskQueue. 2023-10-23 14:43:04 +00:00
sequence_checker_unittest.cc Support initializing a SequenceChecker with a provided TaskQueue. 2023-10-23 14:43:04 +00:00
set_local_description_observer_interface.h Use backticks not vertical bars to denote variables in comments 2021-08-10 10:40:03 +00:00
set_remote_description_observer_interface.h Use backticks not vertical bars to denote variables in comments 2021-08-10 10:40:03 +00:00
turn_customizer.h Make header files self contained. 2022-10-08 08:38:36 +00:00
uma_metrics.h Removing enum used for removed UMA metrics WebRTC.PeerConnection.Simulcast.ApplyLocalDescription and WebRTC.PeerConnection.Simulcast.ApplyRemoteDescription 2023-07-13 09:00:52 +00:00
video_track_source_constraints.h Update to 4896 (M100) (#72) 2022-04-15 17:13:23 -06:00
video_track_source_proxy_factory.h Make header files self contained. 2022-10-08 08:38:36 +00:00
webrtc_key_value_config.h Update to 5005 (M102) (#86) 2022-08-24 11:07:33 -04:00
wrapping_async_dns_resolver.cc Update to 4896 (M100) (#72) 2022-04-15 17:13:23 -06:00
wrapping_async_dns_resolver.h Reland "Deprecate all classes related to AsyncResolver" 2023-10-17 07:08:57 +00:00

How to write code in the api/ directory

Mostly, just follow the regular style guide, but:

  • Note that api/ code is not exempt from the “.h and .cc files come in pairs” rule, so if you declare something in api/path/to/foo.h, it should be defined in api/path/to/foo.cc.
  • Headers in api/ should, if possible, not #include headers outside api/. Its not always possible to avoid this, but be aware that it adds to a small mountain of technical debt that were trying to shrink.
  • .cc files in api/, on the other hand, are free to #include headers outside api/.
  • Avoid structs in api, prefer classes.

The preferred way for api/ code to access non-api/ code is to call it from a .cc file, so that users of our API headers wont transitively #include non-public headers.

For headers in api/ that need to refer to non-public types, forward declarations are often a lesser evil than including non-public header files. The usual rules still apply, though.

.cc files in api/ should preferably be kept reasonably small. If a substantial implementation is needed, consider putting it with our non-public code, and just call it from the api/ .cc file.

Avoid defining api with structs as it makes harder for the api to evolve. Your struct may gain invariant, or change how it represents data. Evolving struct from the api is particular challenging as it is designed to be used in other code bases and thus needs to be updated independetly from its usage. Class with accessors and setters makes such migration safer. See Google C++ style guide for more.

If you need to evolve existent struct in api, prefer first to convert it into a class.