Adds test for experimental remote estimate SDP negotiation.

Bug: webrtc:10742
Change-Id: I50d9caecda10c504cb4880c37475eeccd22c0855
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146705
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28670}
This commit is contained in:
Sebastian Jansson 2019-07-24 14:01:18 +02:00 committed by Commit Bot
parent 463d44a805
commit 97321b687b
3 changed files with 24 additions and 0 deletions

View File

@ -32,6 +32,9 @@ class RemoteEstimateSerializer {
// overhead of the serializer every time RemoteEstimate is created.
const RemoteEstimateSerializer* GetRemoteEstimateSerializer();
// The RemoteEstimate packet provides network estimation results from the
// receive side. This functionality is experimental and subject to change
// without notice.
class RemoteEstimate : public App {
public:
RemoteEstimate();

View File

@ -113,6 +113,8 @@ class MediaContentDescription {
rtcp_reduced_size_ = reduced_size;
}
// Indicates support for the remote network estimate packet type. This
// functionality is experimental and subject to change without notice.
virtual bool remote_estimate() const { return remote_estimate_; }
virtual void set_remote_estimate(bool remote_estimate) {
remote_estimate_ = remote_estimate;

View File

@ -3232,6 +3232,25 @@ TEST_F(WebRtcSdpTest, SerializeSdpWithConferenceFlag) {
EXPECT_TRUE(video->conference_mode());
}
TEST_F(WebRtcSdpTest, SerializeAndDeserializeRemoteNetEstimate) {
{
// By default remote estimates are disabled.
JsepSessionDescription dst(kDummyType);
SdpDeserialize(webrtc::SdpSerialize(jdesc_), &dst);
EXPECT_FALSE(cricket::GetFirstVideoContentDescription(dst.description())
->remote_estimate());
}
{
// When remote estimate is enabled, the setting is propagated via SDP.
cricket::GetFirstVideoContentDescription(jdesc_.description())
->set_remote_estimate(true);
JsepSessionDescription dst(kDummyType);
SdpDeserialize(webrtc::SdpSerialize(jdesc_), &dst);
EXPECT_TRUE(cricket::GetFirstVideoContentDescription(dst.description())
->remote_estimate());
}
}
TEST_F(WebRtcSdpTest, DeserializeBrokenSdp) {
const char kSdpDestroyer[] = "!@#$%^&";
const char kSdpEmptyType[] = " =candidate";