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
This commit is contained in:
parent
91f1752f2d
commit
7ae9108b60
@ -78,20 +78,6 @@ char kTSanDefaultSuppressions[] =
|
|||||||
"deadlock:webrtc::ViEEncoder::OnLocalSsrcChanged\n"
|
"deadlock:webrtc::ViEEncoder::OnLocalSsrcChanged\n"
|
||||||
"deadlock:webrtc::ViESender::RegisterSendTransport\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.
|
// End of suppressions.
|
||||||
; // Please keep this semicolon.
|
; // Please keep this semicolon.
|
||||||
|
|
||||||
|
@ -100,18 +100,23 @@ void CallTest::CreateSendConfig(size_t num_streams) {
|
|||||||
void CallTest::CreateMatchingReceiveConfigs() {
|
void CallTest::CreateMatchingReceiveConfigs() {
|
||||||
assert(!send_config_.rtp.ssrcs.empty());
|
assert(!send_config_.rtp.ssrcs.empty());
|
||||||
assert(receive_configs_.empty());
|
assert(receive_configs_.empty());
|
||||||
|
assert(fake_decoders_.empty());
|
||||||
VideoReceiveStream::Config config;
|
VideoReceiveStream::Config config;
|
||||||
VideoCodec codec =
|
VideoCodec codec =
|
||||||
test::CreateDecoderVideoCodec(send_config_.encoder_settings);
|
test::CreateDecoderVideoCodec(send_config_.encoder_settings);
|
||||||
config.codecs.push_back(codec);
|
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;
|
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) {
|
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];
|
config.rtp.remote_ssrc = send_config_.rtp.ssrcs[i];
|
||||||
receive_configs_.push_back(config);
|
receive_configs_.push_back(config);
|
||||||
}
|
}
|
||||||
@ -146,6 +151,7 @@ void CallTest::DestroyStreams() {
|
|||||||
for (size_t i = 0; i < receive_streams_.size(); ++i)
|
for (size_t i = 0; i < receive_streams_.size(); ++i)
|
||||||
receiver_call_->DestroyVideoReceiveStream(receive_streams_[i]);
|
receiver_call_->DestroyVideoReceiveStream(receive_streams_[i]);
|
||||||
receive_streams_.clear();
|
receive_streams_.clear();
|
||||||
|
fake_decoders_.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
const unsigned int CallTest::kDefaultTimeoutMs = 30 * 1000;
|
const unsigned int CallTest::kDefaultTimeoutMs = 30 * 1000;
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "webrtc/call.h"
|
#include "webrtc/call.h"
|
||||||
|
#include "webrtc/system_wrappers/interface/scoped_vector.h"
|
||||||
#include "webrtc/test/fake_decoder.h"
|
#include "webrtc/test/fake_decoder.h"
|
||||||
#include "webrtc/test/fake_encoder.h"
|
#include "webrtc/test/fake_encoder.h"
|
||||||
#include "webrtc/test/frame_generator_capturer.h"
|
#include "webrtc/test/frame_generator_capturer.h"
|
||||||
@ -72,7 +73,7 @@ class CallTest : public ::testing::Test {
|
|||||||
|
|
||||||
scoped_ptr<test::FrameGeneratorCapturer> frame_generator_capturer_;
|
scoped_ptr<test::FrameGeneratorCapturer> frame_generator_capturer_;
|
||||||
test::FakeEncoder fake_encoder_;
|
test::FakeEncoder fake_encoder_;
|
||||||
test::FakeDecoder fake_decoder_;
|
ScopedVector<test::FakeDecoder> fake_decoders_;
|
||||||
};
|
};
|
||||||
|
|
||||||
class BaseTest : public RtpRtcpObserver {
|
class BaseTest : public RtpRtcpObserver {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user