webrtc/api
Elad Alon b6ef99bb33 Translate loss notifications and pass to encoder
Translate LossNotification RTCP messages (sequence number to
timestamp and additional information), then send the translted
message onwards to the encoder.

Bug: webrtc:10501
Change-Id: If2fd943f75c36cf813a83120318d8eefc8c595d2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131950
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27545}
2019-04-10 15:31:53 +00:00
..
audio AEC3: Enable usage of external delay estimator 2019-04-05 15:34:39 +00:00
audio_codecs Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
call (7) Rename files to snake_case: remove forwarding headers 2019-01-26 00:33:46 +00:00
crypto Reland "Refactor FrameDecryptorInterface::Decrypt to use new API." 2019-04-09 20:08:56 +00:00
ortc Delete last traces of RtpTransportAdapter 2019-03-25 08:52:45 +00:00
stats Implement RTC[In/Out]boundRtpStreamStats.contentType. 2019-04-09 13:02:03 +00:00
task_queue Add ScopedAllowBaseSyncPrimitivesForTesting to Webrtc. 2019-03-28 13:07:33 +00:00
test Reland "Refactor FrameDecryptorInterface::Decrypt to use new API." 2019-04-09 20:08:56 +00:00
transport Add base class NetworkPredictor and NetworkPredictorFactory and wire up. 2019-04-10 12:38:58 +00:00
units Include sign for infinity in ToString for data units. 2019-03-05 09:42:08 +00:00
video Translate loss notifications and pass to encoder 2019-04-10 15:31:53 +00:00
video_codecs Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
array_view.h Adding reinterpret to ArrayView to allow data manipulation. 2019-03-22 18:15:22 +00:00
array_view_unittest.cc Adding reinterpret to ArrayView to allow data manipulation. 2019-03-22 18:15:22 +00:00
async_resolver_factory.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
audio_options.cc Add PeerConnection option to enable RTX handling in the audio jitter buffer. 2019-01-10 16:28:43 +00:00
audio_options.h Add PeerConnection option to enable RTX handling in the audio jitter buffer. 2019-01-10 16:28:43 +00:00
bitrate_constraints.h Convert video quality test from a TEST_F to a TEST fixture. 2018-06-21 15:49:43 +00:00
BUILD.gn Add base class NetworkPredictor and NetworkPredictorFactory and wire up. 2019-04-10 12:38:58 +00:00
candidate.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
candidate.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
create_peerconnection_factory.cc Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
create_peerconnection_factory.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
crypto_params.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
data_channel_interface.cc Datachannel: Use absl::optional for maxRetransmits and maxRetransmitTime. 2019-04-09 08:32:43 +00:00
data_channel_interface.h Datachannel: Use absl::optional for maxRetransmits and maxRetransmitTime. 2019-04-09 08:32:43 +00:00
DEPS Adding new top-level directory crypto/ 2019-03-08 00:35:05 +00:00
dtls_transport_interface.h Allow DtlsTransport::Information() to be called off-thread 2019-02-14 13:15:05 +00:00
dtmf_sender_interface.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
fec_controller.h Make VideoFrameType an enum class, and move to separate file and target 2019-03-22 12:44:51 +00:00
function_view.h Move rtc::FunctionView to the public API 2019-03-21 15:23:05 +00:00
function_view_unittest.cc Move rtc::FunctionView to the public API 2019-03-21 15:23:05 +00:00
ice_transport_factory.cc IceTransportWithTransportChannel: Initialize |thread_checker_| in declaration 2019-02-13 12:45:12 +00:00
ice_transport_factory.h Export symbols needed by the Chromium component build (part 8). 2019-04-02 10:13:36 +00:00
ice_transport_interface.h Add IceTransportInterface object 2019-01-30 16:16:51 +00:00
jsep.cc Move SdpType from/to string definition close to declaration. 2018-10-12 09:59:40 +00:00
jsep.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
jsep_ice_candidate.cc Use Abseil container algorithms in api/ 2019-03-25 22:11:06 +00:00
jsep_ice_candidate.h Export symbols needed by the Chromium component build (part 8). 2019-04-02 10:13:36 +00:00
jsep_session_description.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
media_stream_interface.cc Propagate base minimum delay from video jitter buffer to webrtc/api. 2019-02-27 15:08:34 +00:00
media_stream_interface.h Export symbols needed by the Chromium component build (part 8). 2019-04-02 10:13:36 +00:00
media_stream_proxy.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
media_stream_track_proxy.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
media_transport_interface.cc Implement OpenChannel() on test media transports and make it pure virtual. 2019-03-01 00:24:07 +00:00
media_transport_interface.h Add support for target rate constraints 2019-03-18 18:54:58 +00:00
media_types.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
media_types.h Export symbols needed by the Chromium component build (part 8). 2019-04-02 10:13:36 +00:00
network_state_predictor.h Add base class NetworkPredictor and NetworkPredictorFactory and wire up. 2019-04-10 12:38:58 +00:00
notifier.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
OWNERS Update per-file OWNERS to reflect renamed file names 2019-03-22 16:47:56 +00:00
peer_connection_factory_proxy.h webrtc: Remove semicolons. 2019-02-20 16:02:59 +00:00
peer_connection_interface.cc Add SCTP transport to the public API. 2019-02-28 10:15:05 +00:00
peer_connection_interface.h Add base class NetworkPredictor and NetworkPredictorFactory and wire up. 2019-04-10 12:38:58 +00:00
peer_connection_proxy.h Add GetSctpTransport to proxy map 2019-03-01 06:38:48 +00:00
proxy.cc Make member internal::SynchronousMethodCall::e_ a non-pointer. 2018-11-15 10:42:36 +00:00
proxy.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
README.md Add a small README file for api/ 2019-02-01 13:24:47 +00:00
ref_counted_base.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
rtc_error.cc Using absl::string_view to stringify an RTCErrorType. 2019-01-16 11:49:00 +00:00
rtc_error.h Export symbols needed by the Chromium component build (part 8). 2019-04-02 10:13:36 +00:00
rtc_error_unittest.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
rtc_event_log_output.h Adds functionality to write logs to memory. 2019-01-16 17:36:31 +00:00
rtp_headers.cc Reland "[cleanup] Remove useless includes." 2018-10-08 07:44:19 +00:00
rtp_headers.h Delete class StringRtpHeaderExtension, replaced with std::string 2019-03-25 12:32:41 +00:00
rtp_parameters.cc Use Abseil container algorithms in api/ 2019-03-25 22:11:06 +00:00
rtp_parameters.h Export symbols needed by the Chromium component build (part 8). 2019-04-02 10:13:36 +00:00
rtp_parameters_unittest.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
rtp_receiver_interface.cc Add SetJitterBufferMinimumDelay method to RtpReceiverInterface. 2019-04-04 09:00:16 +00:00
rtp_receiver_interface.h Add SetJitterBufferMinimumDelay method to RtpReceiverInterface. 2019-04-04 09:00:16 +00:00
rtp_sender_interface.cc Removing non-const RtpSenderInterface::GetParameters(). 2019-02-23 00:51:30 +00:00
rtp_sender_interface.h Removing non-const RtpSenderInterface::GetParameters(). 2019-02-23 00:51:30 +00:00
rtp_transceiver_interface.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
rtp_transceiver_interface.h Export symbols needed by the Chromium component build (part 8). 2019-04-02 10:13:36 +00:00
scoped_refptr.h Add element_type typedef to rtc::scoped_refptr 2018-12-20 19:11:22 +00:00
sctp_transport_interface.cc Add SCTP transport to the public API. 2019-02-28 10:15:05 +00:00
sctp_transport_interface.h Export symbols needed by the Chromium component build (part 8). 2019-04-02 10:13:36 +00:00
set_remote_description_observer_interface.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
stats_types.cc Deprecating ThreadChecker specific interface. 2019-04-08 16:58:07 +00:00
stats_types.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
turn_customizer.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
uma_metrics.h Adding metrics to measure usage of simulcast API. 2019-03-05 22:01:34 +00:00
video_track_source_proxy.h Propagate base minimum delay from video jitter buffer to webrtc/api. 2019-02-27 15:08:34 +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/.

That is, 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.