Commit 8bd882a2 authored by Florent Castelli's avatar Florent Castelli Committed by Commit Bot

Implement RTCRtpTransceiverInit.sendEncodings

This parameter is used to set parameters at the creation of the sender,
and later to setup simulcast, though simulcast isn't supported right
now by WebRTC.

Bug: 891117
Change-Id: I3c6695bb94c846c4868a235d381bddf885b3a370
Reviewed-on: https://chromium-review.googlesource.com/c/1255944
Commit-Queue: Florent Castelli <orphis@chromium.org>
Reviewed-by: default avatarHenrik Boström <hbos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595991}
parent 1bd7d9a3
...@@ -144,6 +144,11 @@ std::vector<std::string> FakeRtpSender::stream_ids() const { ...@@ -144,6 +144,11 @@ std::vector<std::string> FakeRtpSender::stream_ids() const {
return stream_ids_; return stream_ids_;
} }
std::vector<webrtc::RtpEncodingParameters> FakeRtpSender::init_send_encodings()
const {
return {};
}
webrtc::RtpParameters FakeRtpSender::GetParameters() { webrtc::RtpParameters FakeRtpSender::GetParameters() {
NOTIMPLEMENTED(); NOTIMPLEMENTED();
return webrtc::RtpParameters(); return webrtc::RtpParameters();
......
...@@ -33,6 +33,8 @@ class FakeRtpSender : public webrtc::RtpSenderInterface { ...@@ -33,6 +33,8 @@ class FakeRtpSender : public webrtc::RtpSenderInterface {
cricket::MediaType media_type() const override; cricket::MediaType media_type() const override;
std::string id() const override; std::string id() const override;
std::vector<std::string> stream_ids() const override; std::vector<std::string> stream_ids() const override;
std::vector<webrtc::RtpEncodingParameters> init_send_encodings()
const override;
webrtc::RtpParameters GetParameters() override; webrtc::RtpParameters GetParameters() override;
webrtc::RTCError SetParameters( webrtc::RTCError SetParameters(
const webrtc::RtpParameters& parameters) override; const webrtc::RtpParameters& parameters) override;
......
...@@ -23,7 +23,7 @@ PASS setLocalDescription(answer): transceiver.currentDirection is sendonly ...@@ -23,7 +23,7 @@ PASS setLocalDescription(answer): transceiver.currentDirection is sendonly
PASS addTransceiver(track): creates a transceiver for the track PASS addTransceiver(track): creates a transceiver for the track
PASS addTransceiver(track): "transceiver == {sender,receiver}" PASS addTransceiver(track): "transceiver == {sender,receiver}"
PASS addTransceiver(track, init): initialize direction to inactive PASS addTransceiver(track, init): initialize direction to inactive
FAIL addTransceiver(track, init): initialize sendEncodings[0].active to false assert_false: expected false got true PASS addTransceiver(track, init): initialize sendEncodings[0].active to false
PASS addTransceiver(0 streams): ontrack fires with no stream PASS addTransceiver(0 streams): ontrack fires with no stream
PASS addTransceiver(1 stream): ontrack fires with corresponding stream PASS addTransceiver(1 stream): ontrack fires with corresponding stream
PASS addTransceiver(2 streams): ontrack fires with corresponding two streams PASS addTransceiver(2 streams): ontrack fires with corresponding two streams
......
This is a testharness.js-based test. This is a testharness.js-based test.
PASS addTransceiver() with undefined sendEncodings should have default encoding parameter with active set to true PASS addTransceiver() with undefined sendEncodings should have default encoding parameter with active set to true
PASS addTransceiver() with empty list sendEncodings should have default encoding parameter with active set to true PASS addTransceiver() with empty list sendEncodings should have default encoding parameter with active set to true
FAIL sender.getParameters() should return sendEncodings set by addTransceiver() assert_equals: expected (string) "enabled" but got (undefined) undefined FAIL sender.getParameters() should return sendEncodings set by addTransceiver() promise_test: Unhandled rejection with value: object "InvalidAccessError: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to set remote answer sdp: Failed to set remote audio description send parameters."
PASS sender.setParameters() with mismatch number of encodings should reject with InvalidModificationError PASS sender.setParameters() with mismatch number of encodings should reject with InvalidModificationError
FAIL sender.setParameters() with encodings unset should reject with InvalidModificationError assert_throws: function "function() { throw e }" threw object "TypeError: Failed to execute 'setParameters' on 'RTCRtpSender': required member encodings is undefined." that is not a DOMException InvalidModificationError: property "code" is equal to undefined, expected 13 FAIL sender.setParameters() with encodings unset should reject with InvalidModificationError assert_throws: function "function() { throw e }" threw object "TypeError: Failed to execute 'setParameters' on 'RTCRtpSender': required member encodings is undefined." that is not a DOMException InvalidModificationError: property "code" is equal to undefined, expected 13
FAIL setParameters() with modified encoding.rtx field should reject with InvalidModificationError assert_unreached: Should have rejected: undefined Reached unreachable code FAIL setParameters() with modified encoding.rtx field should reject with InvalidModificationError assert_unreached: Should have rejected: undefined Reached unreachable code
...@@ -12,13 +12,13 @@ FAIL setParameters() with modified encoding.dtx should succeed with RTCRtpTransc ...@@ -12,13 +12,13 @@ FAIL setParameters() with modified encoding.dtx should succeed with RTCRtpTransc
FAIL setParameters() with modified encoding.dtx should succeed without RTCRtpTransceiverInit assert_equals: expected (string) "enabled" but got (undefined) undefined FAIL setParameters() with modified encoding.dtx should succeed without RTCRtpTransceiverInit assert_equals: expected (string) "enabled" but got (undefined) undefined
FAIL setParameters() with unset encoding.dtx should succeed with RTCRtpTransceiverInit assert_equals: expected (string) "enabled" but got (undefined) undefined FAIL setParameters() with unset encoding.dtx should succeed with RTCRtpTransceiverInit assert_equals: expected (string) "enabled" but got (undefined) undefined
FAIL setParameters() with unset encoding.dtx should succeed without RTCRtpTransceiverInit assert_equals: expected (string) "enabled" but got (undefined) undefined FAIL setParameters() with unset encoding.dtx should succeed without RTCRtpTransceiverInit assert_equals: expected (string) "enabled" but got (undefined) undefined
FAIL setParameters() with modified encoding.active should succeed with RTCRtpTransceiverInit assert_equals: expected false but got true PASS setParameters() with modified encoding.active should succeed with RTCRtpTransceiverInit
PASS setParameters() with modified encoding.active should succeed without RTCRtpTransceiverInit PASS setParameters() with modified encoding.active should succeed without RTCRtpTransceiverInit
FAIL setParameters() with modified encoding.priority should succeed with RTCRtpTransceiverInit assert_equals: expected "very-low" but got "low" PASS setParameters() with modified encoding.priority should succeed with RTCRtpTransceiverInit
PASS setParameters() with modified encoding.priority should succeed without RTCRtpTransceiverInit PASS setParameters() with modified encoding.priority should succeed without RTCRtpTransceiverInit
FAIL setParameters() with modified encoding.ptime should succeed with RTCRtpTransceiverInit assert_equals: expected (number) 2 but got (undefined) undefined FAIL setParameters() with modified encoding.ptime should succeed with RTCRtpTransceiverInit assert_equals: expected (number) 2 but got (undefined) undefined
FAIL setParameters() with modified encoding.ptime should succeed without RTCRtpTransceiverInit assert_equals: expected (number) 2 but got (undefined) undefined FAIL setParameters() with modified encoding.ptime should succeed without RTCRtpTransceiverInit assert_equals: expected (number) 2 but got (undefined) undefined
FAIL setParameters() with modified encoding.maxBitrate should succeed with RTCRtpTransceiverInit assert_equals: expected (number) 10000 but got (undefined) undefined PASS setParameters() with modified encoding.maxBitrate should succeed with RTCRtpTransceiverInit
PASS setParameters() with modified encoding.maxBitrate should succeed without RTCRtpTransceiverInit PASS setParameters() with modified encoding.maxBitrate should succeed without RTCRtpTransceiverInit
FAIL setParameters() with modified encoding.maxFramerate should succeed with RTCRtpTransceiverInit assert_equals: expected (number) 24 but got (undefined) undefined FAIL setParameters() with modified encoding.maxFramerate should succeed with RTCRtpTransceiverInit assert_equals: expected (number) 24 but got (undefined) undefined
FAIL setParameters() with modified encoding.maxFramerate should succeed without RTCRtpTransceiverInit assert_equals: expected (number) 24 but got (undefined) undefined FAIL setParameters() with modified encoding.maxFramerate should succeed without RTCRtpTransceiverInit assert_equals: expected (number) 24 but got (undefined) undefined
......
...@@ -79,9 +79,9 @@ webrtc::RtpTransceiverInit ToRtpTransceiverInit( ...@@ -79,9 +79,9 @@ webrtc::RtpTransceiverInit ToRtpTransceiverInit(
webrtc_init.stream_ids.push_back(stream->id().Utf8().data()); webrtc_init.stream_ids.push_back(stream->id().Utf8().data());
} }
DCHECK(init.hasSendEncodings()); DCHECK(init.hasSendEncodings());
// TODO(orphis,hbos): Pass the encodings down to the lower layer using for (const auto& encoding : init.sendEncodings()) {
// ToRtpEncodingParameters() once implemented in third_party/webrtc. webrtc_init.send_encodings.push_back(ToRtpEncodingParameters(encoding));
// https://crbug.com/803494 }
return webrtc_init; return webrtc_init;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment