webrtc/api/test
Bjorn A Mellem b689af4c99 Changes to enable use of DatagramTransport as a data channel transport.
PeerConnection now has a new setting in RTCConfiguration to enable use of
datagram transport for data channels.  There is also a corresponding field
trial, which has both a kill-switch and a way to change the default value.

PeerConnection's interaction with MediaTransport for data channels has been
refactored to work with DataChannelTransportInterface instead.

Adds a DataChannelState and OnStateChanged() to the DataChannelSink
callbacks.  This allows PeerConnection to listen to the data channel's
state directly, instead of indirectly by monitoring media transport
state.  This is necessary to enable use of non-media-transport (eg.
datagram transport) data channel transports.

For now, PeerConnection watches the state through MediaTransport as well.
This will persist until MediaTransport implements the new callback.

Datagram transport use is negotiated.  As such, an offer that requests to use
datagram transport for data channels may be rejected by the answerer.  If the
offer includes DTLS, the data channels will be negotiated as SCTP/DTLS data
channels with an extra x-opaque parameter for datagram transport.  If the
opaque parameter is rejected (by an answerer without datagram support), the
offerer may fall back to SCTP.

If DTLS is not enabled, there is no viable fallback.  In this case, the data
channels are negotiated as media transport data channels.  If the receiver does
not understand the x-opaque line, it will reject these data channels, and the
offerer's data channels will be closed.

Bug: webrtc:9719
Change-Id: Ic1bf3664c4bcf9d754482df59897f5f72fe68fcc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147702
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28932}
2019-08-21 18:47:58 +00:00
..
video Revert "Replace VideoEncoderFactory::QueryVideoEncoder with VideoEncoder::GetEncoderInfo" 2018-12-10 10:36:00 +00:00
audio_quality_analyzer_interface.h Implement DefaultAudioQualityAnalyzer. 2019-04-07 14:32:33 +00:00
audioproc_float.cc audioproc_f: input AEC dump as string, output audio to vector 2019-08-12 09:17:36 +00:00
audioproc_float.h audioproc_f: input AEC dump as string, output audio to vector 2019-08-12 09:17:36 +00:00
compile_all_headers.cc Add a test that all //api/test headers are compilable. 2019-03-14 05:27:53 +00:00
create_network_emulation_manager.cc Move network emulation framework under test/network 2019-07-05 11:08:42 +00:00
create_network_emulation_manager.h Add public API for NetworkEmulationManager 2019-03-15 14:50:59 +00:00
create_peerconnection_quality_test_fixture.cc Move API for PC e2e test framework to the public API folder 2019-03-22 16:52:16 +00:00
create_peerconnection_quality_test_fixture.h Move API for PC e2e test framework to the public API folder 2019-03-22 16:52:16 +00:00
create_simulcast_test_fixture.cc Use absl::make_unique and absl::WrapUnique directly 2018-07-05 10:59:49 +00:00
create_simulcast_test_fixture.h Generalize SimulcastEncoderAdapter, use for H264 & VP8. 2018-06-21 15:57:43 +00:00
create_video_quality_test_fixture.cc Format almost everything. 2019-07-08 13:45:15 +00:00
create_video_quality_test_fixture.h Format almost everything. 2019-07-08 13:45:15 +00:00
create_videocodec_test_fixture.cc Use absl::make_unique and absl::WrapUnique directly 2018-07-05 10:59:49 +00:00
create_videocodec_test_fixture.h Move VideoCodecTest configuration classes to api/test. 2018-05-22 12:14:38 +00:00
DEPS Add support of specifying concrete codec for video stream 2019-05-07 11:46:57 +00:00
fake_datagram_transport.h Changes to enable use of DatagramTransport as a data channel transport. 2019-08-21 18:47:58 +00:00
fake_frame_decryptor.cc Format almost everything. 2019-07-08 13:45:15 +00:00
fake_frame_decryptor.h Format almost everything. 2019-07-08 13:45:15 +00:00
fake_frame_encryptor.cc Format almost everything. 2019-07-08 13:45:15 +00:00
fake_frame_encryptor.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
fake_media_transport.h Changes to enable use of DatagramTransport as a data channel transport. 2019-08-21 18:47:58 +00:00
loopback_media_transport.cc Changes to enable use of DatagramTransport as a data channel transport. 2019-08-21 18:47:58 +00:00
loopback_media_transport.h Changes to enable use of DatagramTransport as a data channel transport. 2019-08-21 18:47:58 +00:00
loopback_media_transport_unittest.cc Changes to enable use of DatagramTransport as a data channel transport. 2019-08-21 18:47:58 +00:00
mock_audio_mixer.h Format almost everything. 2019-07-08 13:45:15 +00:00
mock_fec_controller_override.h Pass FecControllerOverride to Vp8FrameBufferControllerFactory::Create 2019-07-02 10:55:55 +00:00
mock_frame_decryptor.cc Fixes use after free error when setting a new FrameEncryptor on ChannelSend. 2018-10-25 17:36:57 +00:00
mock_frame_decryptor.h Reland "Refactor FrameDecryptorInterface::Decrypt to use new API." 2019-04-09 20:08:56 +00:00
mock_frame_encryptor.cc Format almost everything. 2019-07-08 13:45:15 +00:00
mock_frame_encryptor.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
mock_peerconnectioninterface.h RTCError as return type for PeerConnectionInterface::SetConfiguration 2019-08-20 06:52:05 +00:00
mock_rtpreceiver.h Add SetJitterBufferMinimumDelay method to RtpReceiverInterface. 2019-04-04 09:00:16 +00:00
mock_rtpsender.h Rejected simulcast layers will no longer appear in GetParameters(). 2019-02-19 22:01:53 +00:00
mock_video_bitrate_allocator.h Update VideoBitrateAllocator allocate to take a struct with more fields 2019-08-02 13:52:54 +00:00
mock_video_bitrate_allocator_factory.h Reland "Use the factory instead of using the builtin code path in VideoCodecInitializer" 2018-11-08 19:10:47 +00:00
mock_video_decoder.cc Move MockVideoDecoder to api/test. 2018-10-15 13:45:27 +00:00
mock_video_decoder.h Delete DecodedImageCallback::ReceivedDecodedFrame 2019-04-25 08:09:29 +00:00
mock_video_decoder_factory.h Add StereoCodecAdapter classes 2017-10-31 06:39:52 +00:00
mock_video_encoder.cc Add mock_video_encoder.h to api/test 2018-10-12 13:23:36 +00:00
mock_video_encoder.h Define FecControllerOverride and plumb it down to VideoEncoder 2019-06-28 15:57:22 +00:00
mock_video_encoder_factory.h Revert "Replace VideoEncoderFactory::QueryVideoEncoder with VideoEncoder::GetEncoderInfo" 2018-12-10 10:36:00 +00:00
neteq_simulator.cc Remove the move constructor from NetEqState. 2018-09-11 09:19:09 +00:00
neteq_simulator.h Format almost everything. 2019-07-08 13:45:15 +00:00
neteq_simulator_factory.cc Remove anonymous namespace around ABSL_FLAG. 2019-07-19 07:27:24 +00:00
neteq_simulator_factory.h Allow passing an event log as string to NetEqSimulator. 2019-03-20 10:27:14 +00:00
network_emulation_manager.h Add ability to create EmulatedNetworkNode from BuiltInNetworkBehaviorConfig 2019-07-05 12:43:17 +00:00
peerconnection_quality_test_fixture.h Reland "Introduce ability to test echo in PC level test framework" 2019-08-20 12:18:28 +00:00
simulated_network.h Format almost everything. 2019-07-08 13:45:15 +00:00
simulcast_test_fixture.h Changed FakeVp8Encoder to write dimensions in payload. 2018-10-08 08:37:38 +00:00
stats_observer_interface.h Do not use absl::flat_hash_map in DefaultVideoQualityAnalyzer. 2019-05-08 10:23:59 +00:00
test_dependency_factory.cc Format almost everything. 2019-07-08 13:45:15 +00:00
test_dependency_factory.h [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
track_id_stream_label_map.h Enable custom metrics gathering from stats API in PC framework. 2019-08-20 11:33:18 +00:00
video_quality_analyzer_interface.h Enable custom metrics gathering from stats API in PC framework. 2019-08-20 11:33:18 +00:00
video_quality_test_fixture.h Add injectable video encoder and decoder to video quality test. 2019-06-13 13:03:05 +00:00
videocodec_test_fixture.h Handle non-integer frame rates in video codec tests. 2019-07-12 07:37:43 +00:00
videocodec_test_stats.cc Handle non-integer frame rates in video codec tests. 2019-07-12 07:37:43 +00:00
videocodec_test_stats.h Handle non-integer frame rates in video codec tests. 2019-07-12 07:37:43 +00:00