From 7ae9108b60cef53444931ce794869d303ab8f9ab Mon Sep 17 00:00:00 2001 From: "andresp@webrtc.org" Date: Thu, 10 Jul 2014 10:35:12 +0000 Subject: [PATCH] Remove more unused tsan suppressions and fix call test passing the same decoder to multiple received streams. R=pbos@webrtc.org Review URL: https://webrtc-codereview.appspot.com/12949004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6651 4adac7df-926f-26a2-2b94-8c16560cd09d --- webrtc/build/tsan_suppressions.cc | 14 -------------- webrtc/test/call_test.cc | 18 ++++++++++++------ webrtc/test/call_test.h | 3 ++- 3 files changed, 14 insertions(+), 21 deletions(-) diff --git a/webrtc/build/tsan_suppressions.cc b/webrtc/build/tsan_suppressions.cc index 83f107f34a..1e79ccbf04 100644 --- a/webrtc/build/tsan_suppressions.cc +++ b/webrtc/build/tsan_suppressions.cc @@ -78,20 +78,6 @@ char kTSanDefaultSuppressions[] = "deadlock:webrtc::ViEEncoder::OnLocalSsrcChanged\n" "deadlock:webrtc::ViESender::RegisterSendTransport\n" -// From Chromium's tsan_suppressions.cc file. - -// http://crbug.com/244774 -"race:webrtc::RTPReceiver::ProcessBitrate\n" -"race:webrtc::RTPSender::ProcessBitrate\n" -"race:webrtc::VideoCodingModuleImpl::Decode\n" -"race:webrtc::RTPSender::SendOutgoingData\n" -"race:webrtc::VP8EncoderImpl::GetEncodedPartitions\n" -"race:webrtc::VP8EncoderImpl::Encode\n" -"race:webrtc::ViEEncoder::DeliverFrame\n" -"race:webrtc::vcm::VideoReceiver::Decode\n" -"race:webrtc::VCMReceiver::FrameForDecoding\n" -"race:*trace_event_unique_catstatic*\n" - // End of suppressions. ; // Please keep this semicolon. diff --git a/webrtc/test/call_test.cc b/webrtc/test/call_test.cc index d683ff2cb9..e29b8de9e5 100644 --- a/webrtc/test/call_test.cc +++ b/webrtc/test/call_test.cc @@ -100,18 +100,23 @@ void CallTest::CreateSendConfig(size_t num_streams) { void CallTest::CreateMatchingReceiveConfigs() { assert(!send_config_.rtp.ssrcs.empty()); assert(receive_configs_.empty()); + assert(fake_decoders_.empty()); VideoReceiveStream::Config config; VideoCodec codec = test::CreateDecoderVideoCodec(send_config_.encoder_settings); config.codecs.push_back(codec); - if (send_config_.encoder_settings.encoder == &fake_encoder_) { - ExternalVideoDecoder decoder; - decoder.decoder = &fake_decoder_; - decoder.payload_type = send_config_.encoder_settings.payload_type; - config.external_decoders.push_back(decoder); - } config.rtp.local_ssrc = kReceiverLocalSsrc; + if (send_config_.encoder_settings.encoder == &fake_encoder_) { + config.external_decoders.resize(1); + config.external_decoders[0].payload_type = + send_config_.encoder_settings.payload_type; + } for (size_t i = 0; i < send_config_.rtp.ssrcs.size(); ++i) { + if (send_config_.encoder_settings.encoder == &fake_encoder_) { + FakeDecoder* decoder = new FakeDecoder(); + fake_decoders_.push_back(decoder); + config.external_decoders[0].decoder = decoder; + } config.rtp.remote_ssrc = send_config_.rtp.ssrcs[i]; receive_configs_.push_back(config); } @@ -146,6 +151,7 @@ void CallTest::DestroyStreams() { for (size_t i = 0; i < receive_streams_.size(); ++i) receiver_call_->DestroyVideoReceiveStream(receive_streams_[i]); receive_streams_.clear(); + fake_decoders_.clear(); } const unsigned int CallTest::kDefaultTimeoutMs = 30 * 1000; diff --git a/webrtc/test/call_test.h b/webrtc/test/call_test.h index f9baf1e897..b390329efc 100644 --- a/webrtc/test/call_test.h +++ b/webrtc/test/call_test.h @@ -13,6 +13,7 @@ #include #include "webrtc/call.h" +#include "webrtc/system_wrappers/interface/scoped_vector.h" #include "webrtc/test/fake_decoder.h" #include "webrtc/test/fake_encoder.h" #include "webrtc/test/frame_generator_capturer.h" @@ -72,7 +73,7 @@ class CallTest : public ::testing::Test { scoped_ptr frame_generator_capturer_; test::FakeEncoder fake_encoder_; - test::FakeDecoder fake_decoder_; + ScopedVector fake_decoders_; }; class BaseTest : public RtpRtcpObserver {