Fix potential race in CallTest.
The FrameGeneratorCapturer instances continue to live after RunBaseTest() returns, and have their own internal task queues. This means any class that listens for frames may be called after return from RunBaseTest(), at which point they may be destroyed. This CL makes sure we remove any capturer before returning. A specific example of this problem is VideoSendStreamTest.SuspendBelowMinBitrate Bug: None Change-Id: I857566301acce3e32c0888c7a1d2ee3470e6eb28 Reviewed-on: https://webrtc-review.googlesource.com/c/116684 Commit-Queue: Erik Språng <sprang@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#26375}
This commit is contained in:
@ -37,6 +37,7 @@ CallTest::CallTest()
|
||||
audio_send_config_(/*send_transport=*/nullptr,
|
||||
/*media_transport=*/nullptr),
|
||||
audio_send_stream_(nullptr),
|
||||
frame_generator_capturer_(nullptr),
|
||||
fake_encoder_factory_([this]() {
|
||||
std::unique_ptr<FakeEncoder> fake_encoder;
|
||||
if (video_encoder_configs_[0].codec_type == kVideoCodecVP8) {
|
||||
@ -175,6 +176,8 @@ void CallTest::RunBaseTest(BaseTest* test) {
|
||||
DestroyStreams();
|
||||
send_transport_.reset();
|
||||
receive_transport_.reset();
|
||||
frame_generator_capturer_ = nullptr;
|
||||
video_sources_.clear();
|
||||
DestroyCalls();
|
||||
});
|
||||
}
|
||||
|
Reference in New Issue
Block a user