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
diff --git a/webrtc/build/tsan_suppressions.cc b/webrtc/build/tsan_suppressions.cc
index 83f107f..1e79ccb 100644
--- a/webrtc/build/tsan_suppressions.cc
+++ b/webrtc/build/tsan_suppressions.cc
@@ -78,20 +78,6 @@
"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 d683ff2..e29b8de 100644
--- a/webrtc/test/call_test.cc
+++ b/webrtc/test/call_test.cc
@@ -100,18 +100,23 @@
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 @@
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 f9baf1e..b390329 100644
--- a/webrtc/test/call_test.h
+++ b/webrtc/test/call_test.h
@@ -13,6 +13,7 @@
#include <vector>
#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 @@
scoped_ptr<test::FrameGeneratorCapturer> frame_generator_capturer_;
test::FakeEncoder fake_encoder_;
- test::FakeDecoder fake_decoder_;
+ ScopedVector<test::FakeDecoder> fake_decoders_;
};
class BaseTest : public RtpRtcpObserver {