Revert "Avoid video stream allocation on configuration change after timeout." This reverts commit 10814873c584df17e560462adcc2b72e488ada91. Reason for revert: Breaks down stream project Original change's description: > Avoid video stream allocation on configuration change after timeout. > > This is to prevent the video stream to get in a state where it is > allocated but there is no activity. > > Bug: b/189842675 > Change-Id: I0793bd4cbf2a4faed92cf811550437ae75742102 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221618 > Reviewed-by: Erik Språng <sprang@webrtc.org> > Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#34276} # Not skipping CQ checks because original CL landed > 1 day ago. Bug: b/189842675 Change-Id: If930360000f5ca290100920a4f215358b8c3e644 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/222652 Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#34314}
diff --git a/video/video_send_stream_impl.cc b/video/video_send_stream_impl.cc index 316037a..3fc6b67 100644 --- a/video/video_send_stream_impl.cc +++ b/video/video_send_stream_impl.cc
@@ -529,7 +529,7 @@ rtp_video_sender_->SetEncodingData(streams[0].width, streams[0].height, num_temporal_layers); - if (rtp_video_sender_->IsActive() && !timed_out_) { + if (rtp_video_sender_->IsActive()) { // The send stream is started already. Update the allocator with new bitrate // limits. bitrate_allocator_->AddObserver(this, GetAllocationConfig());
diff --git a/video/video_send_stream_impl_unittest.cc b/video/video_send_stream_impl_unittest.cc index 2ba5ab2..71cec7c 100644 --- a/video/video_send_stream_impl_unittest.cc +++ b/video/video_send_stream_impl_unittest.cc
@@ -1038,58 +1038,5 @@ RTC_FROM_HERE); } } - -// Check that a timed out stream is not allocated by doing the following: -// 1. Allocate a video stream. -// 2. Wait for the stream to time out which de-allocates the stream. -// 3. Reconfigure the stream and make sure that this does not allocate the -// stream again. -TEST_F(VideoSendStreamImplTest, AvoidAllocationAfterTimeout) { - std::unique_ptr<VideoSendStreamImpl> vss_impl = CreateVideoSendStreamImpl( - kDefaultInitialBitrateBps, kDefaultBitratePriority, - VideoEncoderConfig::ContentType::kRealtimeVideo); - - test_queue_.SendTask( - [&] { - EXPECT_CALL(bitrate_allocator_, AddObserver(vss_impl.get(), _)); - vss_impl->Start(); - const uint32_t kBitrateBps = 100000; - EXPECT_CALL(rtp_video_sender_, GetPayloadBitrateBps()) - .WillOnce(Return(kBitrateBps)); - static_cast<BitrateAllocatorObserver*>(vss_impl.get()) - ->OnBitrateUpdated(CreateAllocation(kBitrateBps)); - - // The stream should be de-allocated after a timeout. - EXPECT_CALL(bitrate_allocator_, RemoveObserver(vss_impl.get())); - }, - RTC_FROM_HERE); - - rtc::Event done; - test_queue_.PostDelayedTask( - [&] { - VideoStream qvga_stream; - qvga_stream.width = 320; - qvga_stream.height = 180; - qvga_stream.max_framerate = 30; - qvga_stream.min_bitrate_bps = 30000; - qvga_stream.target_bitrate_bps = 150000; - qvga_stream.max_bitrate_bps = 200000; - qvga_stream.max_qp = 56; - qvga_stream.bitrate_priority = 1; - - int min_transmit_bitrate_bps = 30000; - // This should not allocate the stream since it has timed out. - static_cast<VideoStreamEncoderInterface::EncoderSink*>(vss_impl.get()) - ->OnEncoderConfigurationChanged( - std::vector<VideoStream>{qvga_stream}, false, - VideoEncoderConfig::ContentType::kRealtimeVideo, - min_transmit_bitrate_bps); - testing::Mock::VerifyAndClearExpectations(&bitrate_allocator_); - vss_impl->Stop(); - done.Set(); - }, - 2000); - ASSERT_TRUE(done.Wait(5000)); -} } // namespace internal } // namespace webrtc