Remove dependency in FakeWebRtcVideoCodecFactories.
Previously, constructing a PeerConnection or WebRtcVideoEngine with
fake encoder/decoder factories would result in the real, built-in factories
also being used. In https://webrtc-review.googlesource.com/c/src/+/71162, this
changed, so to temporarily allow tests to continue working exactly the same as
before, the fake factories started encapsulating the real factories. This CL
removes that behavior and updates the tests accordingly.
Bug: webrtc:9228
Change-Id: Ida14a1e3f5f5a0e2f03100b7895b3b1bdf0a0a42
Reviewed-on: https://webrtc-review.googlesource.com/75260
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23209}
diff --git a/pc/peerconnection_integrationtest.cc b/pc/peerconnection_integrationtest.cc
index e5f3ad4..e697e3a 100644
--- a/pc/peerconnection_integrationtest.cc
+++ b/pc/peerconnection_integrationtest.cc
@@ -420,48 +420,14 @@
// frames.
int min_video_frames_received_per_track() const {
int min_frames = INT_MAX;
- if (video_decoder_factory_enabled_) {
- const std::vector<FakeWebRtcVideoDecoder*>& decoders =
- fake_video_decoder_factory_->decoders();
- if (decoders.empty()) {
- return 0;
- }
- for (FakeWebRtcVideoDecoder* decoder : decoders) {
- min_frames = std::min(min_frames, decoder->GetNumFramesReceived());
- }
- return min_frames;
- } else {
- if (fake_video_renderers_.empty()) {
- return 0;
- }
-
- for (const auto& pair : fake_video_renderers_) {
- min_frames = std::min(min_frames, pair.second->num_rendered_frames());
- }
- return min_frames;
+ if (fake_video_renderers_.empty()) {
+ return 0;
}
- }
- // In contrast to the above, sums the video frames received for all tracks.
- // Can be used to verify that no video frames were received, or that the
- // counts didn't increase.
- int total_video_frames_received() const {
- int total = 0;
- if (video_decoder_factory_enabled_) {
- const std::vector<FakeWebRtcVideoDecoder*>& decoders =
- fake_video_decoder_factory_->decoders();
- for (const FakeWebRtcVideoDecoder* decoder : decoders) {
- total += decoder->GetNumFramesReceived();
- }
- } else {
- for (const auto& pair : fake_video_renderers_) {
- total += pair.second->num_rendered_frames();
- }
- for (const auto& renderer : removed_fake_video_renderers_) {
- total += renderer->num_rendered_frames();
- }
+ for (const auto& pair : fake_video_renderers_) {
+ min_frames = std::min(min_frames, pair.second->num_rendered_frames());
}
- return total;
+ return min_frames;
}
// Returns a MockStatsObserver in a state after stats gathering finished,
@@ -619,10 +585,6 @@
if (!fake_audio_capture_module_) {
return false;
}
- // Note that these factories don't end up getting used unless supported
- // codecs are added to them.
- fake_video_decoder_factory_ = new FakeWebRtcVideoDecoderFactory();
- fake_video_encoder_factory_ = new FakeWebRtcVideoEncoderFactory();
rtc::Thread* const signaling_thread = rtc::Thread::Current();
peer_connection_factory_ = webrtc::CreatePeerConnectionFactory(
network_thread, worker_thread, signaling_thread,
@@ -630,11 +592,9 @@
fake_audio_capture_module_),
webrtc::CreateBuiltinAudioEncoderFactory(),
webrtc::CreateBuiltinAudioDecoderFactory(),
- std::unique_ptr<FakeWebRtcVideoEncoderFactory>(
- fake_video_encoder_factory_),
- std::unique_ptr<FakeWebRtcVideoDecoderFactory>(
- fake_video_decoder_factory_),
- nullptr /* audio_mixer */, nullptr /* audio_processing */);
+ webrtc::CreateBuiltinVideoEncoderFactory(),
+ webrtc::CreateBuiltinVideoDecoderFactory(), nullptr /* audio_mixer */,
+ nullptr /* audio_processing */);
if (!peer_connection_factory_) {
return false;
}
@@ -689,12 +649,6 @@
signal_ice_candidates_ = signal;
}
- void EnableVideoDecoderFactory() {
- video_decoder_factory_enabled_ = true;
- fake_video_decoder_factory_->AddSupportedVideoCodecType(
- webrtc::SdpVideoFormat("VP8"));
- }
-
rtc::scoped_refptr<webrtc::VideoTrackInterface> CreateLocalVideoTrackInternal(
webrtc::FakePeriodicVideoSource::Config config) {
// Set max frame rate to 10fps to reduce the risk of test flakiness.
@@ -978,11 +932,6 @@
// Needed to ensure frames aren't received for removed tracks.
std::vector<std::unique_ptr<webrtc::FakeVideoTrackRenderer>>
removed_fake_video_renderers_;
- // Needed to keep track of number of frames received when external decoder
- // used.
- FakeWebRtcVideoDecoderFactory* fake_video_decoder_factory_ = nullptr;
- FakeWebRtcVideoEncoderFactory* fake_video_encoder_factory_ = nullptr;
- bool video_decoder_factory_enabled_ = false;
// For remote peer communication.
SignalingMessageReceiver* signaling_message_receiver_ = nullptr;
@@ -1317,11 +1266,6 @@
callee_->set_signal_ice_candidates(signal);
}
- void EnableVideoDecoderFactory() {
- caller_->EnableVideoDecoderFactory();
- callee_->EnableVideoDecoderFactory();
- }
-
// Messages may get lost on the unreliable DataChannel, so we send multiple
// times to avoid test flakiness.
void SendRtpDataWithRetries(webrtc::DataChannelInterface* dc,
@@ -3675,24 +3619,6 @@
ASSERT_TRUE(ExpectNewFrames(media_expectations));
}
-// This test sets up a Jsep call between two parties with external
-// VideoDecoderFactory.
-// TODO(holmer): Disabled due to sometimes crashing on buildbots.
-// See issue webrtc/2378.
-TEST_P(PeerConnectionIntegrationTest,
- DISABLED_EndToEndCallWithVideoDecoderFactory) {
- ASSERT_TRUE(CreatePeerConnectionWrappers());
- EnableVideoDecoderFactory();
- ConnectFakeSignaling();
- caller()->AddAudioVideoTracks();
- callee()->AddAudioVideoTracks();
- caller()->CreateAndSetAndSignalOffer();
- ASSERT_TRUE_WAIT(SignalingStateStable(), kDefaultTimeout);
- MediaExpectations media_expectations;
- media_expectations.ExpectBidirectionalAudioAndVideo();
- ASSERT_TRUE(ExpectNewFrames(media_expectations));
-}
-
// This tests that if we negotiate after calling CreateSender but before we
// have a track, then set a track later, frames from the newly-set track are
// received end-to-end.