Revert "Reland "Reland "Distinguish between send and receive codecs"""
This reverts commit 9bac68c0cc4444b852416396f0e0f31ea66a9cfe. Reason for revert: Breaks perf test on iOS. Original change's description: > Reland "Reland "Distinguish between send and receive codecs"" > > This reverts commit 00a30873c415d717af8dcdf21c2df7fd4b6d1ed2. > > Reason for revert: Flaky test in Chromium fixed. > > Original change's description: > > Revert "Reland "Distinguish between send and receive codecs"" > > > > This reverts commit 133bf2bd28596aab5c7684e0ea3da99b1fece77f. > > > > Reason for revert: Breaks Chromium import due to flaky test in Chromium. > > > > Original change's description: > > > Reland "Distinguish between send and receive codecs" > > > > > > This reverts commit e57b266a20334e47f105a0bd777190ec8c6562e8. > > > > > > Reason for revert: Fixed negotiation of send-only clients. > > > > > > Original change's description: > > > > Revert "Distinguish between send and receive codecs" > > > > > > > > This reverts commit c0f25cf762a6946666c812f7a3df3f0a7f98b38d. > > > > > > > > Reason for revert: breaks negotiation with send-only clients > > > > > > > > (webrtc_video_engine.cc:985): SetRecvParameters called with unsupported video codec: VideoCodec[96:H264] > > > > (peer_connection.cc:6043): Failed to set local video description recv parameters. (INVALID_PARAMETER) > > > > (peer_connection.cc:2591): Failed to set local offer sdp: Failed to set local video description recv parameters. > > > > > > > > Original change's description: > > > > > Distinguish between send and receive codecs > > > > > > > > > > Even though send and receive codecs may be the same, they might have > > > > > different support in HW. Distinguish between send and receive codecs > > > > > to be able to keep track of which codecs have HW support. > > > > > > > > > > Bug: chromium:1029737 > > > > > Change-Id: Id119560becadfe0aaf861c892a6485f1c2eb378d > > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165763 > > > > > Commit-Queue: Johannes Kron <kron@webrtc.org> > > > > > Reviewed-by: Steve Anton <steveanton@webrtc.org> > > > > > Cr-Commit-Position: refs/heads/master@{#30284} > > > > > > > > TBR=steveanton@webrtc.org,kron@webrtc.org > > > > > > > > Change-Id: Iacb7059436b2313b52577b65f164ee363c4816aa > > > > No-Presubmit: true > > > > No-Tree-Checks: true > > > > No-Try: true > > > > Bug: chromium:1029737 > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166420 > > > > Reviewed-by: Steve Anton <steveanton@webrtc.org> > > > > Commit-Queue: Steve Anton <steveanton@webrtc.org> > > > > Cr-Commit-Position: refs/heads/master@{#30292} > > > > > > TBR=steveanton@webrtc.org,kron@webrtc.org > > > > > > > > > Bug: chromium:1029737 > > > Change-Id: I287efcfdcd1c9a3f2c410aeec8fe26a84204d1fd > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166604 > > > Reviewed-by: Johannes Kron <kron@webrtc.org> > > > Reviewed-by: Steve Anton <steveanton@webrtc.org> > > > Commit-Queue: Johannes Kron <kron@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#30348} > > > > TBR=steveanton@webrtc.org,kron@webrtc.org > > > > Change-Id: I9f8731309749e07ce7e651e1550ecfabddb1735f > > No-Presubmit: true > > No-Tree-Checks: true > > No-Try: true > > Bug: chromium:1029737 > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167205 > > Reviewed-by: Johannes Kron <kron@webrtc.org> > > Commit-Queue: Johannes Kron <kron@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#30360} > > TBR=steveanton@webrtc.org,kron@webrtc.org > > Change-Id: I1cc2d83bd884f10685503a9c31288f96c935d6a3 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: chromium:1029737 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167206 > Reviewed-by: Johannes Kron <kron@webrtc.org> > Reviewed-by: Steve Anton <steveanton@webrtc.org> > Commit-Queue: Johannes Kron <kron@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#30367} TBR=steveanton@webrtc.org,kron@webrtc.org Change-Id: I0a9b0b58922ce7c558b3d31b64cc12086b2a6a55 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1029737 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167364 Commit-Queue: Johannes Kron <kron@webrtc.org> Reviewed-by: Johannes Kron <kron@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30373}
This commit is contained in:

committed by
Commit Bot

parent
b039c30157
commit
a104ceb0ce
@ -214,9 +214,7 @@ class PeerConnectionWrapper : public webrtc::PeerConnectionObserver,
|
||||
dependencies.cert_generator = std::move(cert_generator);
|
||||
if (!client->Init(nullptr, nullptr, std::move(dependencies), network_thread,
|
||||
worker_thread, nullptr,
|
||||
/*media_transport_factory=*/nullptr,
|
||||
/*reset_encoder_factory=*/false,
|
||||
/*reset_decoder_factory=*/false)) {
|
||||
/*media_transport_factory=*/nullptr)) {
|
||||
delete client;
|
||||
return nullptr;
|
||||
}
|
||||
@ -606,9 +604,7 @@ class PeerConnectionWrapper : public webrtc::PeerConnectionObserver,
|
||||
rtc::Thread* network_thread,
|
||||
rtc::Thread* worker_thread,
|
||||
std::unique_ptr<webrtc::FakeRtcEventLogFactory> event_log_factory,
|
||||
std::unique_ptr<webrtc::MediaTransportFactory> media_transport_factory,
|
||||
bool reset_encoder_factory,
|
||||
bool reset_decoder_factory) {
|
||||
std::unique_ptr<webrtc::MediaTransportFactory> media_transport_factory) {
|
||||
// There's an error in this test code if Init ends up being called twice.
|
||||
RTC_DCHECK(!peer_connection_);
|
||||
RTC_DCHECK(!peer_connection_factory_);
|
||||
@ -636,14 +632,6 @@ class PeerConnectionWrapper : public webrtc::PeerConnectionObserver,
|
||||
pc_factory_dependencies.task_queue_factory.get();
|
||||
media_deps.adm = fake_audio_capture_module_;
|
||||
webrtc::SetMediaEngineDefaults(&media_deps);
|
||||
|
||||
if (reset_encoder_factory) {
|
||||
media_deps.video_encoder_factory.reset();
|
||||
}
|
||||
if (reset_decoder_factory) {
|
||||
media_deps.video_decoder_factory.reset();
|
||||
}
|
||||
|
||||
pc_factory_dependencies.media_engine =
|
||||
cricket::CreateMediaEngine(std::move(media_deps));
|
||||
pc_factory_dependencies.call_factory = webrtc::CreateCallFactory();
|
||||
@ -1277,9 +1265,7 @@ class PeerConnectionIntegrationBaseTest : public ::testing::Test {
|
||||
const RTCConfiguration* config,
|
||||
webrtc::PeerConnectionDependencies dependencies,
|
||||
std::unique_ptr<webrtc::FakeRtcEventLogFactory> event_log_factory,
|
||||
std::unique_ptr<webrtc::MediaTransportFactory> media_transport_factory,
|
||||
bool reset_encoder_factory,
|
||||
bool reset_decoder_factory) {
|
||||
std::unique_ptr<webrtc::MediaTransportFactory> media_transport_factory) {
|
||||
RTCConfiguration modified_config;
|
||||
if (config) {
|
||||
modified_config = *config;
|
||||
@ -1295,8 +1281,7 @@ class PeerConnectionIntegrationBaseTest : public ::testing::Test {
|
||||
if (!client->Init(options, &modified_config, std::move(dependencies),
|
||||
network_thread_.get(), worker_thread_.get(),
|
||||
std::move(event_log_factory),
|
||||
std::move(media_transport_factory), reset_encoder_factory,
|
||||
reset_decoder_factory)) {
|
||||
std::move(media_transport_factory))) {
|
||||
return nullptr;
|
||||
}
|
||||
return client;
|
||||
@ -1310,11 +1295,10 @@ class PeerConnectionIntegrationBaseTest : public ::testing::Test {
|
||||
webrtc::PeerConnectionDependencies dependencies) {
|
||||
std::unique_ptr<webrtc::FakeRtcEventLogFactory> event_log_factory(
|
||||
new webrtc::FakeRtcEventLogFactory(rtc::Thread::Current()));
|
||||
return CreatePeerConnectionWrapper(
|
||||
debug_name, options, config, std::move(dependencies),
|
||||
std::move(event_log_factory),
|
||||
/*media_transport_factory=*/nullptr, /*reset_encoder_factory=*/false,
|
||||
/*reset_decoder_factory=*/false);
|
||||
return CreatePeerConnectionWrapper(debug_name, options, config,
|
||||
std::move(dependencies),
|
||||
std::move(event_log_factory),
|
||||
/*media_transport_factory=*/nullptr);
|
||||
}
|
||||
|
||||
bool CreatePeerConnectionWrappers() {
|
||||
@ -1335,15 +1319,11 @@ class PeerConnectionIntegrationBaseTest : public ::testing::Test {
|
||||
sdp_semantics_ = caller_semantics;
|
||||
caller_ = CreatePeerConnectionWrapper(
|
||||
"Caller", nullptr, nullptr, webrtc::PeerConnectionDependencies(nullptr),
|
||||
nullptr, /*media_transport_factory=*/nullptr,
|
||||
/*reset_encoder_factory=*/false,
|
||||
/*reset_decoder_factory=*/false);
|
||||
nullptr, /*media_transport_factory=*/nullptr);
|
||||
sdp_semantics_ = callee_semantics;
|
||||
callee_ = CreatePeerConnectionWrapper(
|
||||
"Callee", nullptr, nullptr, webrtc::PeerConnectionDependencies(nullptr),
|
||||
nullptr, /*media_transport_factory=*/nullptr,
|
||||
/*reset_encoder_factory=*/false,
|
||||
/*reset_decoder_factory=*/false);
|
||||
nullptr, /*media_transport_factory=*/nullptr);
|
||||
sdp_semantics_ = original_semantics;
|
||||
return caller_ && callee_;
|
||||
}
|
||||
@ -1354,13 +1334,11 @@ class PeerConnectionIntegrationBaseTest : public ::testing::Test {
|
||||
caller_ = CreatePeerConnectionWrapper(
|
||||
"Caller", nullptr, &caller_config,
|
||||
webrtc::PeerConnectionDependencies(nullptr), nullptr,
|
||||
/*media_transport_factory=*/nullptr, /*reset_encoder_factory=*/false,
|
||||
/*reset_decoder_factory=*/false);
|
||||
/*media_transport_factory=*/nullptr);
|
||||
callee_ = CreatePeerConnectionWrapper(
|
||||
"Callee", nullptr, &callee_config,
|
||||
webrtc::PeerConnectionDependencies(nullptr), nullptr,
|
||||
/*media_transport_factory=*/nullptr, /*reset_encoder_factory=*/false,
|
||||
/*reset_decoder_factory=*/false);
|
||||
/*media_transport_factory=*/nullptr);
|
||||
return caller_ && callee_;
|
||||
}
|
||||
|
||||
@ -1369,16 +1347,14 @@ class PeerConnectionIntegrationBaseTest : public ::testing::Test {
|
||||
const PeerConnectionInterface::RTCConfiguration& callee_config,
|
||||
std::unique_ptr<webrtc::MediaTransportFactory> caller_factory,
|
||||
std::unique_ptr<webrtc::MediaTransportFactory> callee_factory) {
|
||||
caller_ = CreatePeerConnectionWrapper(
|
||||
"Caller", nullptr, &caller_config,
|
||||
webrtc::PeerConnectionDependencies(nullptr), nullptr,
|
||||
std::move(caller_factory), /*reset_encoder_factory=*/false,
|
||||
/*reset_decoder_factory=*/false);
|
||||
callee_ = CreatePeerConnectionWrapper(
|
||||
"Callee", nullptr, &callee_config,
|
||||
webrtc::PeerConnectionDependencies(nullptr), nullptr,
|
||||
std::move(callee_factory), /*reset_encoder_factory=*/false,
|
||||
/*reset_decoder_factory=*/false);
|
||||
caller_ =
|
||||
CreatePeerConnectionWrapper("Caller", nullptr, &caller_config,
|
||||
webrtc::PeerConnectionDependencies(nullptr),
|
||||
nullptr, std::move(caller_factory));
|
||||
callee_ =
|
||||
CreatePeerConnectionWrapper("Callee", nullptr, &callee_config,
|
||||
webrtc::PeerConnectionDependencies(nullptr),
|
||||
nullptr, std::move(callee_factory));
|
||||
return caller_ && callee_;
|
||||
}
|
||||
|
||||
@ -1387,16 +1363,14 @@ class PeerConnectionIntegrationBaseTest : public ::testing::Test {
|
||||
webrtc::PeerConnectionDependencies caller_dependencies,
|
||||
const PeerConnectionInterface::RTCConfiguration& callee_config,
|
||||
webrtc::PeerConnectionDependencies callee_dependencies) {
|
||||
caller_ = CreatePeerConnectionWrapper(
|
||||
"Caller", nullptr, &caller_config, std::move(caller_dependencies),
|
||||
nullptr,
|
||||
/*media_transport_factory=*/nullptr, /*reset_encoder_factory=*/false,
|
||||
/*reset_decoder_factory=*/false);
|
||||
callee_ = CreatePeerConnectionWrapper(
|
||||
"Callee", nullptr, &callee_config, std::move(callee_dependencies),
|
||||
nullptr,
|
||||
/*media_transport_factory=*/nullptr, /*reset_encoder_factory=*/false,
|
||||
/*reset_decoder_factory=*/false);
|
||||
caller_ =
|
||||
CreatePeerConnectionWrapper("Caller", nullptr, &caller_config,
|
||||
std::move(caller_dependencies), nullptr,
|
||||
/*media_transport_factory=*/nullptr);
|
||||
callee_ =
|
||||
CreatePeerConnectionWrapper("Callee", nullptr, &callee_config,
|
||||
std::move(callee_dependencies), nullptr,
|
||||
/*media_transport_factory=*/nullptr);
|
||||
return caller_ && callee_;
|
||||
}
|
||||
|
||||
@ -1406,13 +1380,11 @@ class PeerConnectionIntegrationBaseTest : public ::testing::Test {
|
||||
caller_ = CreatePeerConnectionWrapper(
|
||||
"Caller", &caller_options, nullptr,
|
||||
webrtc::PeerConnectionDependencies(nullptr), nullptr,
|
||||
/*media_transport_factory=*/nullptr, /*reset_encoder_factory=*/false,
|
||||
/*reset_decoder_factory=*/false);
|
||||
/*media_transport_factory=*/nullptr);
|
||||
callee_ = CreatePeerConnectionWrapper(
|
||||
"Callee", &callee_options, nullptr,
|
||||
webrtc::PeerConnectionDependencies(nullptr), nullptr,
|
||||
/*media_transport_factory=*/nullptr, /*reset_encoder_factory=*/false,
|
||||
/*reset_decoder_factory=*/false);
|
||||
/*media_transport_factory=*/nullptr);
|
||||
return caller_ && callee_;
|
||||
}
|
||||
|
||||
@ -1435,24 +1407,9 @@ class PeerConnectionIntegrationBaseTest : public ::testing::Test {
|
||||
|
||||
webrtc::PeerConnectionDependencies dependencies(nullptr);
|
||||
dependencies.cert_generator = std::move(cert_generator);
|
||||
return CreatePeerConnectionWrapper(
|
||||
"New Peer", nullptr, nullptr, std::move(dependencies), nullptr,
|
||||
/*media_transport_factory=*/nullptr, /*reset_encoder_factory=*/false,
|
||||
/*reset_decoder_factory=*/false);
|
||||
}
|
||||
|
||||
bool CreateOneDirectionalPeerConnectionWrappers(bool caller_to_callee) {
|
||||
caller_ = CreatePeerConnectionWrapper(
|
||||
"Caller", nullptr, nullptr, webrtc::PeerConnectionDependencies(nullptr),
|
||||
nullptr, /*media_transport_factory=*/nullptr,
|
||||
/*reset_encoder_factory=*/!caller_to_callee,
|
||||
/*reset_decoder_factory=*/caller_to_callee);
|
||||
callee_ = CreatePeerConnectionWrapper(
|
||||
"Callee", nullptr, nullptr, webrtc::PeerConnectionDependencies(nullptr),
|
||||
nullptr, /*media_transport_factory=*/nullptr,
|
||||
/*reset_encoder_factory=*/caller_to_callee,
|
||||
/*reset_decoder_factory=*/!caller_to_callee);
|
||||
return caller_ && callee_;
|
||||
return CreatePeerConnectionWrapper("New Peer", nullptr, nullptr,
|
||||
std::move(dependencies), nullptr,
|
||||
/*media_transport_factory=*/nullptr);
|
||||
}
|
||||
|
||||
cricket::TestTurnServer* CreateTurnServer(
|
||||
@ -2081,56 +2038,6 @@ TEST_P(PeerConnectionIntegrationTest, OneWayMediaCall) {
|
||||
ASSERT_TRUE(ExpectNewFrames(media_expectations));
|
||||
}
|
||||
|
||||
// Tests that send only works without the caller having a decoder factory and
|
||||
// the callee having an encoder factory.
|
||||
TEST_P(PeerConnectionIntegrationTest, EndToEndCallWithSendOnlyVideo) {
|
||||
ASSERT_TRUE(
|
||||
CreateOneDirectionalPeerConnectionWrappers(/*caller_to_callee=*/true));
|
||||
ConnectFakeSignaling();
|
||||
// Add one-directional video, from caller to callee.
|
||||
rtc::scoped_refptr<webrtc::VideoTrackInterface> track =
|
||||
caller()->CreateLocalVideoTrack();
|
||||
caller()->AddTrack(track);
|
||||
PeerConnectionInterface::RTCOfferAnswerOptions options;
|
||||
options.offer_to_receive_video = 0;
|
||||
caller()->SetOfferAnswerOptions(options);
|
||||
caller()->CreateAndSetAndSignalOffer();
|
||||
ASSERT_TRUE_WAIT(SignalingStateStable(), kDefaultTimeout);
|
||||
ASSERT_EQ(callee()->pc()->GetReceivers().size(), 1u);
|
||||
|
||||
// Expect video to be received in one direction.
|
||||
MediaExpectations media_expectations;
|
||||
media_expectations.CallerExpectsNoVideo();
|
||||
media_expectations.CalleeExpectsSomeVideo();
|
||||
|
||||
EXPECT_TRUE(ExpectNewFrames(media_expectations));
|
||||
}
|
||||
|
||||
// Tests that receive only works without the caller having an encoder factory
|
||||
// and the callee having a dncoder factory.
|
||||
TEST_P(PeerConnectionIntegrationTest, EndToEndCallWithReceiveOnlyVideo) {
|
||||
ASSERT_TRUE(
|
||||
CreateOneDirectionalPeerConnectionWrappers(/*caller_to_callee=*/false));
|
||||
ConnectFakeSignaling();
|
||||
// Add one-directional video, from caller to callee.
|
||||
rtc::scoped_refptr<webrtc::VideoTrackInterface> track =
|
||||
callee()->CreateLocalVideoTrack();
|
||||
callee()->AddTrack(track);
|
||||
PeerConnectionInterface::RTCOfferAnswerOptions options;
|
||||
options.offer_to_receive_video = 1;
|
||||
caller()->SetOfferAnswerOptions(options);
|
||||
caller()->CreateAndSetAndSignalOffer();
|
||||
ASSERT_TRUE_WAIT(SignalingStateStable(), kDefaultTimeout);
|
||||
ASSERT_EQ(caller()->pc()->GetReceivers().size(), 1u);
|
||||
|
||||
// Expect video to be received in one direction.
|
||||
MediaExpectations media_expectations;
|
||||
media_expectations.CallerExpectsSomeVideo();
|
||||
media_expectations.CalleeExpectsNoVideo();
|
||||
|
||||
EXPECT_TRUE(ExpectNewFrames(media_expectations));
|
||||
}
|
||||
|
||||
// This test sets up a audio call initially, with the callee rejecting video
|
||||
// initially. Then later the callee decides to upgrade to audio/video, and
|
||||
// initiates a new offer/answer exchange.
|
||||
@ -5349,10 +5256,9 @@ TEST_P(PeerConnectionIntegrationTest, IceTransportFactoryUsedForConnections) {
|
||||
auto ice_transport_factory = std::make_unique<MockIceTransportFactory>();
|
||||
EXPECT_CALL(*ice_transport_factory, RecordIceTransportCreated()).Times(1);
|
||||
dependencies.ice_transport_factory = std::move(ice_transport_factory);
|
||||
auto wrapper = CreatePeerConnectionWrapper(
|
||||
"Caller", nullptr, &default_config, std::move(dependencies), nullptr,
|
||||
nullptr, /*reset_encoder_factory=*/false,
|
||||
/*reset_decoder_factory=*/false);
|
||||
auto wrapper =
|
||||
CreatePeerConnectionWrapper("Caller", nullptr, &default_config,
|
||||
std::move(dependencies), nullptr, nullptr);
|
||||
ASSERT_TRUE(wrapper);
|
||||
wrapper->CreateDataChannel();
|
||||
rtc::scoped_refptr<MockSetSessionDescriptionObserver> observer(
|
||||
|
Reference in New Issue
Block a user