webrtc/api
Sebastian Jansson 88290ae358 Reland "Cleanup of RTP references in GoogCC implementation."
This is a reland of fa79081dca

It crashed due to inability to handle small timestamps in probe
estimator. This was fixed by moving history window check to avoid
subtracting from the timestamp.

Original change's description:
> Cleanup of RTP references in GoogCC implementation.
>
> As the send time congestion controller now has been removed,
> we don't need the RTP related constructs anymore.
>
> Bug: webrtc:9510
> Change-Id: I02c059ed8ae907ab4672d183c5639ad459b581aa
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142221
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28330}

Bug: webrtc:9510
Change-Id: I3bf91222068e4fbb6aa159bfeb7a73e00bb6a0d7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143165
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28347}
2019-06-24 09:10:52 +00:00
..
audio AEC3: Stationary init: fixing a typo when reading the json configuration 2019-04-24 07:42:37 +00:00
audio_codecs AudioDecoderOpus: Add support for 16 kHz output sample rate 2019-05-29 12:42:38 +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
rtc_event_log Remove deprecated RtcEventLog Create functions 2019-05-29 12:39:08 +00:00
stats Implement QualityLimitationReasonTracker and expose "reason". 2019-05-28 16:23:55 +00:00
task_queue Increase TaskQueueTest.PostALot timeouts 2019-06-11 14:42:18 +00:00
test New interface EncodedImageBufferInterface, replacing use of CopyOnWriteBuffer 2019-06-19 07:02:34 +00:00
transport Reland "Cleanup of RTP references in GoogCC implementation." 2019-06-24 09:10:52 +00:00
units Reland "Cleanup of video packet overhead calculation." 2019-06-10 15:47:48 +00:00
video Added video_coding::EncodedFrame copy ctor. 2019-06-20 11:19:50 +00:00
video_codecs Make DefaultTemporalLayers explicitly request a key frame 2019-06-24 08:26:17 +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 Force DefaultTaskQueueFactory in legacy CreatePeerConnectionFactory 2019-06-19 17:11:04 +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
congestion_control_interface.h Add datagram_transport and congestion_control interface 2019-05-14 22:22:45 +00:00
create_peerconnection_factory.cc Force DefaultTaskQueueFactory in legacy CreatePeerConnectionFactory 2019-06-19 17:11:04 +00:00
create_peerconnection_factory.h Force DefaultTaskQueueFactory in legacy CreatePeerConnectionFactory 2019-06-19 17:11:04 +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
datagram_transport_interface.h Reland: Implement true negotiation for DatagramTransport with fallback to RTP. 2019-06-07 20:14:36 +00:00
DEPS Publish rtc event log api and default factory for it in api/ 2019-05-22 13:38:25 +00:00
DESIGN.md A threading explanation 2019-06-03 08:15:09 +00:00
dtls_transport_interface.cc Expose SSL ciphersuite on the webrtc::DtlsTransport interface 2019-04-12 08:29:59 +00:00
dtls_transport_interface.h Expose SSL ciphersuite on the webrtc::DtlsTransport interface 2019-04-12 08:29:59 +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 Remove deprecated JsepSession initializer 2019-06-11 17:35:30 +00:00
media_stream_interface.cc Remove SetLatency/GetLatency from MediaSourceInterface API level 2019-04-18 19:11:31 +00:00
media_stream_interface.h Remove SetLatency/GetLatency from MediaSourceInterface API level 2019-04-18 19:11:31 +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_config.cc Delete unneeded includes of string_utils.h 2019-06-10 10:44:40 +00:00
media_transport_config.h Datagram Transport Integration 2019-05-23 23:36:05 +00:00
media_transport_interface.cc Add CreateDatagram to MediaTransportFactory 2019-05-17 22:18:41 +00:00
media_transport_interface.h Add CreateDatagram to MediaTransportFactory 2019-05-17 22:18:41 +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 Remove myself from OWNERS in a few places. 2019-06-10 07:57:46 +00:00
peer_connection_factory_proxy.h Change StartAecDump methods to work with FILE* and FileWrapper 2019-06-11 13:43:36 +00:00
peer_connection_interface.cc Delete deprecated StartRtcEventLog override with PlatformFile 2019-06-03 09:00:56 +00:00
peer_connection_interface.h Add default implementation of deprecated StartAecDump method. 2019-06-19 07:45:54 +00:00
peer_connection_proxy.h Add missing proxy function for overloaded StartRtcEventLog peer connection function. 2019-06-05 09:52:49 +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
rtc_event_log_output_file.cc Delete obsolete RtcEventLogOutputFile constructor 2019-06-10 09:44:35 +00:00
rtc_event_log_output_file.h Delete obsolete RtcEventLogOutputFile constructor 2019-06-10 09:44:35 +00:00
rtc_event_log_output_file_unittest.cc Promote RtcEventLogOutputFile to api/ 2019-05-08 12:29:42 +00:00
rtp_headers.cc Reland "[cleanup] Remove useless includes." 2018-10-08 07:44:19 +00:00
rtp_headers.h Adds send time to ReceivedPacket struct. 2019-06-14 15:01:36 +00:00
rtp_packet_info.cc Remove sequence_number from RtpPacketInfo. 2019-06-14 11:21:42 +00:00
rtp_packet_info.h Remove sequence_number from RtpPacketInfo. 2019-06-14 11:21:42 +00:00
rtp_packet_info_unittest.cc Remove sequence_number from RtpPacketInfo. 2019-06-14 11:21:42 +00:00
rtp_packet_infos.h Add RtpPacketInfo to hold information about a received RtpPacket. 2019-06-03 14:37:01 +00:00
rtp_packet_infos_unittest.cc Remove sequence_number from RtpPacketInfo. 2019-06-14 11:21:42 +00:00
rtp_parameters.cc Use Abseil container algorithms in api/ 2019-03-25 22:11:06 +00:00
rtp_parameters.h Fix comment typo about degradation preference. 2019-06-04 06:49:32 +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 RTP timestamp to contributing sources 2019-05-22 08:53:08 +00:00
rtp_receiver_interface.h Add RTP timestamp to contributing sources 2019-05-22 08:53:08 +00:00
rtp_sender_interface.cc Removing non-const RtpSenderInterface::GetParameters(). 2019-02-23 00:51:30 +00:00
rtp_sender_interface.h Add RtpSenderInterface.SetStreams 2019-05-20 18:38:06 +00:00
rtp_transceiver_interface.cc Implement RTCRtpTransceiver.setCodecPreferences 2019-05-01 20:14:59 +00:00
rtp_transceiver_interface.h Implement RTCRtpTransceiver.setCodecPreferences 2019-05-01 20:14:59 +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 Revert "Piping audio interruption metrics to API layer" 2019-04-29 11:23:16 +00:00
stats_types.h Revert "Piping audio interruption metrics to API layer" 2019-04-29 11:23:16 +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 Remove SetLatency/GetLatency from MediaSourceInterface API level 2019-04-18 19:11:31 +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.