diff --git a/api/BUILD.gn b/api/BUILD.gn index f8b6ca3f4c..b6ad1d6810 100644 --- a/api/BUILD.gn +++ b/api/BUILD.gn @@ -387,6 +387,7 @@ if (rtc_include_tests) { deps = [ "..:webrtc_common", "../modules/video_coding:video_codec_interface", + "../rtc_base:stringutils", "video_codecs:video_codecs_api", ] } diff --git a/api/candidate.cc b/api/candidate.cc index d51fb84371..128c470e2f 100644 --- a/api/candidate.cc +++ b/api/candidate.cc @@ -10,6 +10,8 @@ #include "api/candidate.h" +#include "rtc_base/strings/string_builder.h" + namespace cricket { Candidate::Candidate() @@ -68,7 +70,7 @@ bool Candidate::MatchesForRemoval(const Candidate& c) const { } std::string Candidate::ToStringInternal(bool sensitive) const { - std::ostringstream ost; + rtc::StringBuilder ost; std::string address = sensitive ? address_.ToSensitiveString() : address_.ToString(); ost << "Cand[" << transport_name_ << ":" << foundation_ << ":" << component_ diff --git a/api/test/videocodec_test_stats.cc b/api/test/videocodec_test_stats.cc index 72522785cf..78c39d0a54 100644 --- a/api/test/videocodec_test_stats.cc +++ b/api/test/videocodec_test_stats.cc @@ -10,11 +10,13 @@ #include "api/test/videocodec_test_stats.h" +#include "rtc_base/strings/string_builder.h" + namespace webrtc { namespace test { std::string VideoCodecTestStats::FrameStatistics::ToString() const { - std::stringstream ss; + rtc::StringBuilder ss; ss << "frame_number " << frame_number; ss << " decoded_width " << decoded_width; ss << " decoded_height " << decoded_height; @@ -43,7 +45,7 @@ VideoCodecTestStats::VideoStatistics::VideoStatistics(const VideoStatistics&) = std::string VideoCodecTestStats::VideoStatistics::ToString( std::string prefix) const { - std::stringstream ss; + rtc::StringBuilder ss; ss << prefix << "target_bitrate_kbps: " << target_bitrate_kbps; ss << "\n" << prefix << "input_framerate_fps: " << input_framerate_fps; ss << "\n" << prefix << "spatial_idx: " << spatial_idx; diff --git a/common_audio/resampler/resampler_unittest.cc b/common_audio/resampler/resampler_unittest.cc index fd636e2998..61be040468 100644 --- a/common_audio/resampler/resampler_unittest.cc +++ b/common_audio/resampler/resampler_unittest.cc @@ -11,6 +11,7 @@ #include #include "common_audio/resampler/include/resampler.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" // TODO(andrew): this is a work-in-progress. Many more tests are needed. @@ -64,7 +65,7 @@ void ResamplerTest::TearDown() {} void ResamplerTest::ResetIfNeededAndPush(int in_rate, int out_rate, int num_channels) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Input rate: " << in_rate << ", output rate: " << out_rate << ", channel count: " << num_channels; SCOPED_TRACE(ss.str()); @@ -90,7 +91,7 @@ TEST_F(ResamplerTest, Reset) { for (size_t i = 0; i < kRatesSize; ++i) { for (size_t j = 0; j < kRatesSize; ++j) { for (size_t k = 0; k < kNumChannelsSize; ++k) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Input rate: " << kRates[i] << ", output rate: " << kRates[j] << ", channels: " << kNumChannels[k]; SCOPED_TRACE(ss.str()); @@ -109,7 +110,7 @@ TEST_F(ResamplerTest, Mono) { const int kChannels = 1; for (size_t i = 0; i < kRatesSize; ++i) { for (size_t j = 0; j < kRatesSize; ++j) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Input rate: " << kRates[i] << ", output rate: " << kRates[j]; SCOPED_TRACE(ss.str()); @@ -131,7 +132,7 @@ TEST_F(ResamplerTest, Stereo) { const int kChannels = 2; for (size_t i = 0; i < kRatesSize; ++i) { for (size_t j = 0; j < kRatesSize; ++j) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Input rate: " << kRates[i] << ", output rate: " << kRates[j]; SCOPED_TRACE(ss.str()); diff --git a/common_audio/signal_processing/signal_processing_unittest.cc b/common_audio/signal_processing/signal_processing_unittest.cc index 8e65ebd2bc..aeaf97bdeb 100644 --- a/common_audio/signal_processing/signal_processing_unittest.cc +++ b/common_audio/signal_processing/signal_processing_unittest.cc @@ -9,9 +9,9 @@ */ #include -#include #include "common_audio/signal_processing/include/signal_processing_library.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" static const size_t kVector16Size = 9; @@ -134,7 +134,7 @@ TEST_F(SplTest, AddSubSatW32) { INT32_MIN, std::min(INT32_MAX, static_cast(a) + b)); const int64_t diff = std::max( INT32_MIN, std::min(INT32_MAX, static_cast(a) - b)); - std::ostringstream ss; + rtc::StringBuilder ss; ss << a << " +/- " << b << ": sum " << sum << ", diff " << diff; SCOPED_TRACE(ss.str()); EXPECT_EQ(sum, WebRtcSpl_AddSatW32(a, b)); diff --git a/examples/stunprober/main.cc b/examples/stunprober/main.cc index 973db39d77..42ee0a1a9a 100644 --- a/examples/stunprober/main.cc +++ b/examples/stunprober/main.cc @@ -12,7 +12,6 @@ #include #include -#include #include #include @@ -25,6 +24,7 @@ #include "rtc_base/nethelpers.h" #include "rtc_base/network.h" #include "rtc_base/ssladapter.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/stringutils.h" #include "rtc_base/thread.h" #include "rtc_base/timeutils.h" diff --git a/media/base/mediachannel.h b/media/base/mediachannel.h index f0e1658323..a4a75ed4dd 100644 --- a/media/base/mediachannel.h +++ b/media/base/mediachannel.h @@ -41,6 +41,7 @@ #include "rtc_base/networkroute.h" #include "rtc_base/socket.h" #include "rtc_base/stringencode.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/third_party/sigslot/sigslot.h" namespace rtc { @@ -76,7 +77,7 @@ static std::string ToStringIfSet(const char* key, template static std::string VectorToString(const std::vector& vals) { - std::ostringstream ost; // no-presubmit-check TODO(webrtc:8982) + rtc::StringBuilder ost; // no-presubmit-check TODO(webrtc:8982) ost << "["; for (size_t i = 0; i < vals.size(); ++i) { if (i > 0) { @@ -110,7 +111,7 @@ struct VideoOptions { bool operator!=(const VideoOptions& o) const { return !(*this == o); } std::string ToString() const { - std::ostringstream ost; + rtc::StringBuilder ost; ost << "VideoOptions {"; ost << ToStringIfSet("noise reduction", video_noise_reduction); ost << ToStringIfSet("screencast min bitrate kbps", @@ -149,7 +150,7 @@ struct RtpHeaderExtension { RtpHeaderExtension(const std::string& uri, int id) : uri(uri), id(id) {} std::string ToString() const { - std::ostringstream ost; + rtc::StringBuilder ost; ost << "{"; ost << "uri: " << uri; ost << ", id: " << id; @@ -602,7 +603,7 @@ struct RtpParameters { RtcpParameters rtcp; std::string ToString() const { - std::ostringstream ost; + rtc::StringBuilder ost; ost << "{"; const char* separator = ""; for (const auto& entry : ToStringMap()) { diff --git a/media/engine/webrtcvoiceengine.cc b/media/engine/webrtcvoiceengine.cc index b981a20d81..d6c2967402 100644 --- a/media/engine/webrtcvoiceengine.cc +++ b/media/engine/webrtcvoiceengine.cc @@ -40,6 +40,7 @@ #include "rtc_base/race_checker.h" #include "rtc_base/stringencode.h" #include "rtc_base/strings/audio_format_to_string.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/stringutils.h" #include "rtc_base/third_party/base64/base64.h" #include "rtc_base/trace_event.h" @@ -95,7 +96,7 @@ bool ValidateStreamParams(const StreamParams& sp) { // Dumps an AudioCodec in RFC 2327-ish format. std::string ToString(const AudioCodec& codec) { - std::stringstream ss; + rtc::StringBuilder ss; ss << codec.name << "/" << codec.clockrate << "/" << codec.channels; if (!codec.params.empty()) { ss << " {"; diff --git a/modules/audio_coding/codecs/isac/unittest.cc b/modules/audio_coding/codecs/isac/unittest.cc index 4e76e0dbbd..5855d56103 100644 --- a/modules/audio_coding/codecs/isac/unittest.cc +++ b/modules/audio_coding/codecs/isac/unittest.cc @@ -10,7 +10,6 @@ #include #include -#include #include #include "modules/audio_coding/codecs/isac/fix/include/audio_encoder_isacfix.h" @@ -18,6 +17,7 @@ #include "modules/audio_coding/neteq/tools/input_audio_file.h" #include "rtc_base/buffer.h" #include "rtc_base/numerics/safe_conversions.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" #include "test/testsupport/fileutils.h" @@ -142,7 +142,7 @@ void TestGetSetBandwidthInfo(const int16_t* speech_data, int elapsed_time_ms = 0; for (int i = 0; elapsed_time_ms < 10000; ++i) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << " i = " << i; SCOPED_TRACE(ss.str()); diff --git a/modules/audio_coding/neteq/buffer_level_filter_unittest.cc b/modules/audio_coding/neteq/buffer_level_filter_unittest.cc index b6dcd2a98a..1f12e73d10 100644 --- a/modules/audio_coding/neteq/buffer_level_filter_unittest.cc +++ b/modules/audio_coding/neteq/buffer_level_filter_unittest.cc @@ -14,6 +14,7 @@ #include // Access to pow function. +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" namespace webrtc { @@ -30,7 +31,7 @@ TEST(BufferLevelFilter, ConvergenceTest) { for (int value = 100; value <= 200; value += 10) { filter.Reset(); filter.SetTargetBufferLevel(1); // Makes filter coefficient 251/256. - std::ostringstream ss; + rtc::StringBuilder ss; ss << "times = " << times << ", value = " << value; SCOPED_TRACE(ss.str()); // Print out the parameter values on failure. for (int i = 0; i < times; ++i) { diff --git a/modules/audio_coding/neteq/dtmf_tone_generator_unittest.cc b/modules/audio_coding/neteq/dtmf_tone_generator_unittest.cc index 11a0ac6a6b..e843706dd3 100644 --- a/modules/audio_coding/neteq/dtmf_tone_generator_unittest.cc +++ b/modules/audio_coding/neteq/dtmf_tone_generator_unittest.cc @@ -16,6 +16,7 @@ #include "common_audio/include/audio_util.h" #include "modules/audio_coding/neteq/audio_multi_vector.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" namespace webrtc { @@ -33,7 +34,7 @@ class DtmfToneGeneratorTest : public ::testing::Test { AudioMultiVector signal(channels); for (int event = 0; event <= 15; ++event) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Checking event " << event << " at sample rate " << fs_hz; SCOPED_TRACE(ss.str()); const int kAttenuation = 0; @@ -72,7 +73,7 @@ class DtmfToneGeneratorTest : public ::testing::Test { EXPECT_EQ(kNumSamples, tone_gen_.Generate(kNumSamples, &ref_signal)); // Test every 5 steps (to save time). for (int attenuation = 1; attenuation <= 63; attenuation += 5) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Checking event " << event << " at sample rate " << fs_hz; ss << "; attenuation " << attenuation; SCOPED_TRACE(ss.str()); diff --git a/modules/audio_coding/neteq/neteq_external_decoder_unittest.cc b/modules/audio_coding/neteq/neteq_external_decoder_unittest.cc index 5c350bb47a..872829cf9d 100644 --- a/modules/audio_coding/neteq/neteq_external_decoder_unittest.cc +++ b/modules/audio_coding/neteq/neteq_external_decoder_unittest.cc @@ -19,6 +19,7 @@ #include "modules/audio_coding/neteq/tools/input_audio_file.h" #include "modules/audio_coding/neteq/tools/neteq_external_decoder_test.h" #include "modules/audio_coding/neteq/tools/rtp_generator.h" +#include "rtc_base/strings/string_builder.h" #include "test/gmock.h" #include "test/testsupport/fileutils.h" @@ -122,7 +123,7 @@ class NetEqExternalDecoderUnitTest : public test::NetEqExternalDecoderTest { } while (Lost()); // If lost, immediately read the next packet. } - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Lap number " << k << "."; SCOPED_TRACE(ss.str()); // Print out the parameter values on failure. // Compare mono and multi-channel. diff --git a/modules/audio_coding/neteq/neteq_stereo_unittest.cc b/modules/audio_coding/neteq/neteq_stereo_unittest.cc index ef4c235e6e..3f86944e4d 100644 --- a/modules/audio_coding/neteq/neteq_stereo_unittest.cc +++ b/modules/audio_coding/neteq/neteq_stereo_unittest.cc @@ -22,6 +22,7 @@ #include "modules/audio_coding/neteq/include/neteq.h" #include "modules/audio_coding/neteq/tools/input_audio_file.h" #include "modules/audio_coding/neteq/tools/rtp_generator.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" #include "test/testsupport/fileutils.h" @@ -228,7 +229,7 @@ class NetEqStereoTest : public ::testing::TestWithParam { EXPECT_EQ(num_channels_, output_multi_channel_.num_channels_); EXPECT_EQ(output_size_samples_, output_multi_channel_.samples_per_channel_); - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Lap number " << k << "."; SCOPED_TRACE(ss.str()); // Print out the parameter values on failure. // Compare mono and multi-channel. diff --git a/modules/audio_coding/neteq/neteq_unittest.cc b/modules/audio_coding/neteq/neteq_unittest.cc index 96a392bff2..3ee0b5bf69 100644 --- a/modules/audio_coding/neteq/neteq_unittest.cc +++ b/modules/audio_coding/neteq/neteq_unittest.cc @@ -33,6 +33,7 @@ #include "rtc_base/numerics/safe_conversions.h" #include "rtc_base/protobuf_utils.h" #include "rtc_base/stringencode.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/system/arch.h" #include "test/field_trial.h" #include "test/gtest.h" @@ -386,7 +387,7 @@ void NetEqDecodingTest::DecodeAndCompare( uint64_t last_concealed_samples = 0; uint64_t last_total_samples_received = 0; while (packet_) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Lap number " << i++ << " in DecodeAndCompare while loop"; SCOPED_TRACE(ss.str()); // Print out the parameter values on failure. ASSERT_NO_FATAL_FAILURE(Process()); @@ -900,7 +901,7 @@ TEST_F(NetEqDecodingTest, MAYBE_DecoderError) { static const int kExpectedOutputLength = 160; // 10 ms at 16 kHz sample rate. const int16_t* const_out_frame_data = out_frame_.data(); for (int i = 0; i < kExpectedOutputLength; ++i) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "i = " << i; SCOPED_TRACE(ss.str()); // Print out the parameter values on failure. EXPECT_EQ(0, const_out_frame_data[i]); @@ -922,7 +923,7 @@ TEST_F(NetEqDecodingTest, GetAudioBeforeInsertPacket) { kInitSampleRateHz / 100; // 10 ms at initial sample rate. const int16_t* const_out_frame_data = out_frame_.data(); for (int i = 0; i < kExpectedOutputLength; ++i) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "i = " << i; SCOPED_TRACE(ss.str()); // Print out the parameter values on failure. EXPECT_EQ(0, const_out_frame_data[i]); @@ -1532,7 +1533,7 @@ TEST_F(NetEqDecodingTestTwoInstances, CompareMutedStateOnOff) { AudioFrame out_frame1, out_frame2; bool muted; for (int i = 0; i < 1000; ++i) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "i = " << i; SCOPED_TRACE(ss.str()); // Print out the loop iterator on failure. EXPECT_EQ(0, neteq_->GetAudio(&out_frame1, &muted)); @@ -1555,7 +1556,7 @@ TEST_F(NetEqDecodingTestTwoInstances, CompareMutedStateOnOff) { int counter = 0; while (out_frame1.speech_type_ != AudioFrame::kNormalSpeech) { ASSERT_LT(counter++, 1000) << "Test timed out"; - std::ostringstream ss; + rtc::StringBuilder ss; ss << "counter = " << counter; SCOPED_TRACE(ss.str()); // Print out the loop iterator on failure. EXPECT_EQ(0, neteq_->GetAudio(&out_frame1, &muted)); diff --git a/modules/audio_coding/neteq/tools/neteq_input.cc b/modules/audio_coding/neteq/tools/neteq_input.cc index bb2a01e0e1..ecbd9e054d 100644 --- a/modules/audio_coding/neteq/tools/neteq_input.cc +++ b/modules/audio_coding/neteq/tools/neteq_input.cc @@ -10,7 +10,7 @@ #include "modules/audio_coding/neteq/tools/neteq_input.h" -#include +#include "rtc_base/strings/string_builder.h" namespace webrtc { namespace test { @@ -19,7 +19,7 @@ NetEqInput::PacketData::PacketData() = default; NetEqInput::PacketData::~PacketData() = default; std::string NetEqInput::PacketData::ToString() const { - std::stringstream ss; + rtc::StringBuilder ss; ss << "{" << "time_ms: " << static_cast(time_ms) << ", " << "header: {" diff --git a/modules/audio_coding/test/EncodeDecodeTest.cc b/modules/audio_coding/test/EncodeDecodeTest.cc index a8c405357b..c6f3f8c9f2 100644 --- a/modules/audio_coding/test/EncodeDecodeTest.cc +++ b/modules/audio_coding/test/EncodeDecodeTest.cc @@ -13,7 +13,6 @@ #include #include #include -#include // no-presubmit-check TODO(webrtc:8982) #include "api/audio_codecs/builtin_audio_decoder_factory.h" #include "api/audio_codecs/builtin_audio_encoder_factory.h" @@ -21,6 +20,7 @@ #include "modules/audio_coding/codecs/audio_format_conversion.h" #include "modules/audio_coding/include/audio_coding_module.h" #include "modules/audio_coding/test/utility.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" #include "test/testsupport/fileutils.h" @@ -133,7 +133,7 @@ void Receiver::Setup(AudioCodingModule *acm, RTPStream *rtpStream, int playSampFreq; std::string file_name; - std::stringstream file_stream; + rtc::StringBuilder file_stream; file_stream << webrtc::test::OutputPath() << out_file_name << static_cast(codeId) << ".pcm"; file_name = file_stream.str(); diff --git a/modules/audio_coding/test/PacketLossTest.cc b/modules/audio_coding/test/PacketLossTest.cc index da6ea1c54a..a1629fd006 100644 --- a/modules/audio_coding/test/PacketLossTest.cc +++ b/modules/audio_coding/test/PacketLossTest.cc @@ -13,6 +13,7 @@ #include #include "api/audio_codecs/builtin_audio_decoder_factory.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" #include "test/testsupport/fileutils.h" @@ -34,7 +35,7 @@ void ReceiverWithPacketLoss::Setup(AudioCodingModule* acm, loss_rate_ = loss_rate; burst_length_ = burst_length; burst_lost_counter_ = burst_length_; // To prevent first packet gets lost. - std::stringstream ss; + rtc::StringBuilder ss; ss << out_file_name << "_" << loss_rate_ << "_" << burst_length_ << "_"; Receiver::Setup(acm, rtpStream, ss.str(), channels); } diff --git a/modules/audio_coding/test/TestAllCodecs.cc b/modules/audio_coding/test/TestAllCodecs.cc index 781337c107..0099b2a9de 100644 --- a/modules/audio_coding/test/TestAllCodecs.cc +++ b/modules/audio_coding/test/TestAllCodecs.cc @@ -23,6 +23,7 @@ #include "modules/audio_coding/test/utility.h" #include "rtc_base/logging.h" #include "rtc_base/stringencode.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" #include "test/testsupport/fileutils.h" @@ -476,7 +477,7 @@ void TestAllCodecs::Run(TestPack* channel) { void TestAllCodecs::OpenOutFile(int test_number) { std::string filename = webrtc::test::OutputPath(); - std::ostringstream test_number_str; + rtc::StringBuilder test_number_str; test_number_str << test_number; filename += "testallcodecs_out_"; filename += test_number_str.str(); diff --git a/modules/audio_coding/test/TestRedFec.cc b/modules/audio_coding/test/TestRedFec.cc index 71d34867ac..679bd4db37 100644 --- a/modules/audio_coding/test/TestRedFec.cc +++ b/modules/audio_coding/test/TestRedFec.cc @@ -17,6 +17,7 @@ #include "modules/audio_coding/codecs/audio_format_conversion.h" #include "modules/audio_coding/include/audio_coding_module_typedefs.h" #include "modules/audio_coding/test/utility.h" +#include "rtc_base/strings/string_builder.h" #include "test/testsupport/fileutils.h" namespace webrtc { @@ -327,7 +328,7 @@ void TestRedFec::Run() { void TestRedFec::OpenOutFile(int16_t test_number) { std::string file_name; - std::stringstream file_stream; + rtc::StringBuilder file_stream; file_stream << webrtc::test::OutputPath(); file_stream << "TestRedFec_outFile_"; file_stream << test_number << ".pcm"; diff --git a/modules/audio_coding/test/TestStereo.cc b/modules/audio_coding/test/TestStereo.cc index f8c983c7f2..797178b7b8 100644 --- a/modules/audio_coding/test/TestStereo.cc +++ b/modules/audio_coding/test/TestStereo.cc @@ -19,6 +19,7 @@ #include "modules/audio_coding/codecs/audio_format_conversion.h" #include "modules/audio_coding/include/audio_coding_module_typedefs.h" #include "modules/audio_coding/test/utility.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" #include "test/testsupport/fileutils.h" @@ -832,7 +833,7 @@ void TestStereo::Run(TestPackStereo* channel, void TestStereo::OpenOutFile(int16_t test_number) { std::string file_name; - std::stringstream file_stream; + rtc::StringBuilder file_stream; file_stream << webrtc::test::OutputPath() << "teststereo_out_" << test_number << ".pcm"; file_name = file_stream.str(); diff --git a/modules/audio_coding/test/TestVADDTX.cc b/modules/audio_coding/test/TestVADDTX.cc index 79b2d31b92..eefce0d88b 100644 --- a/modules/audio_coding/test/TestVADDTX.cc +++ b/modules/audio_coding/test/TestVADDTX.cc @@ -16,6 +16,7 @@ #include "modules/audio_coding/codecs/audio_format_conversion.h" #include "modules/audio_coding/test/PCMFile.h" #include "modules/audio_coding/test/utility.h" +#include "rtc_base/strings/string_builder.h" #include "test/testsupport/fileutils.h" namespace webrtc { @@ -204,7 +205,7 @@ void TestWebRtcVadDtx::Test(bool new_outfile) { if (new_outfile) { output_file_num_++; } - std::stringstream out_filename; + rtc::StringBuilder out_filename; out_filename << webrtc::test::OutputPath() << "testWebRtcVadDtx_outFile_" << output_file_num_ << ".pcm"; Run(webrtc::test::ResourcePath("audio_coding/testfile32kHz", "pcm"), 32000, 1, diff --git a/modules/audio_coding/test/delay_test.cc b/modules/audio_coding/test/delay_test.cc index d49cd3ced7..6402e05780 100644 --- a/modules/audio_coding/test/delay_test.cc +++ b/modules/audio_coding/test/delay_test.cc @@ -24,6 +24,7 @@ #include "modules/audio_coding/test/PCMFile.h" #include "modules/audio_coding/test/utility.h" #include "rtc_base/flags.h" +#include "rtc_base/strings/string_builder.h" #include "system_wrappers/include/event_wrapper.h" #include "test/gtest.h" #include "test/testsupport/fileutils.h" @@ -171,7 +172,7 @@ class DelayTest { } void OpenOutFile(const char* output_id) { - std::stringstream file_stream; + rtc::StringBuilder file_stream; file_stream << "delay_test_" << FLAG_codec << "_" << FLAG_sample_rate_hz << "Hz" << "_" << FLAG_delay << "ms.pcm"; diff --git a/modules/audio_coding/test/iSACTest.cc b/modules/audio_coding/test/iSACTest.cc index e9fd867e03..009b76c8c4 100644 --- a/modules/audio_coding/test/iSACTest.cc +++ b/modules/audio_coding/test/iSACTest.cc @@ -26,6 +26,7 @@ #include "api/audio_codecs/builtin_audio_decoder_factory.h" #include "modules/audio_coding/codecs/audio_format_conversion.h" #include "modules/audio_coding/test/utility.h" +#include "rtc_base/strings/string_builder.h" #include "system_wrappers/include/event_wrapper.h" #include "test/testsupport/fileutils.h" @@ -221,8 +222,8 @@ void ISACTest::EncodeDecode(int testNr, _inFileB.Open(file_name_swb_, 32000, "rb", true); std::string file_name_out; - std::stringstream file_stream_a; - std::stringstream file_stream_b; + rtc::StringBuilder file_stream_a; + rtc::StringBuilder file_stream_b; file_stream_a << webrtc::test::OutputPath(); file_stream_b << webrtc::test::OutputPath(); file_stream_a << "out_iSACTest_A_" << testNr << ".pcm"; @@ -288,8 +289,8 @@ void ISACTest::SwitchingSamplingRate(int testNr, int maxSampRateChange) { _inFileB.Open(file_name_swb_, 32000, "rb"); std::string file_name_out; - std::stringstream file_stream_a; - std::stringstream file_stream_b; + rtc::StringBuilder file_stream_a; + rtc::StringBuilder file_stream_b; file_stream_a << webrtc::test::OutputPath(); file_stream_b << webrtc::test::OutputPath(); file_stream_a << "out_iSACTest_A_" << testNr << ".pcm"; diff --git a/modules/audio_mixer/audio_mixer_impl_unittest.cc b/modules/audio_mixer/audio_mixer_impl_unittest.cc index 57e4526c92..86a4b66293 100644 --- a/modules/audio_mixer/audio_mixer_impl_unittest.cc +++ b/modules/audio_mixer/audio_mixer_impl_unittest.cc @@ -12,7 +12,6 @@ #include #include -#include #include #include @@ -21,6 +20,7 @@ #include "modules/audio_mixer/default_output_rate_calculator.h" #include "rtc_base/bind.h" #include "rtc_base/checks.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/task_queue_for_test.h" #include "test/gmock.h" @@ -50,7 +50,7 @@ void ResetFrame(AudioFrame* frame) { std::string ProduceDebugText(int sample_rate_hz, int number_of_channels, int number_of_sources) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Sample rate: " << sample_rate_hz << " "; ss << "Number of channels: " << number_of_channels << " "; ss << "Number of sources: " << number_of_sources; diff --git a/modules/audio_mixer/audio_mixer_test.cc b/modules/audio_mixer/audio_mixer_test.cc index a2b41ab733..21b92daa1f 100644 --- a/modules/audio_mixer/audio_mixer_test.cc +++ b/modules/audio_mixer/audio_mixer_test.cc @@ -17,6 +17,7 @@ #include "modules/audio_mixer/audio_mixer_impl.h" #include "modules/audio_mixer/default_output_rate_calculator.h" #include "rtc_base/flags.h" +#include "rtc_base/strings/string_builder.h" DEFINE_bool(help, false, "Prints this message"); DEFINE_int(sampling_rate, @@ -74,7 +75,7 @@ class FilePlayingSource : public AudioMixer::Source { bool FileHasEnded() const { return file_has_ended_; } std::string ToString() const { - std::stringstream ss; + rtc::StringBuilder ss; ss << "{rate: " << sample_rate_hz_ << ", channels: " << number_of_channels_ << ", samples_tot: " << wav_reader_->num_samples() << "}"; return ss.str(); diff --git a/modules/audio_mixer/frame_combiner_unittest.cc b/modules/audio_mixer/frame_combiner_unittest.cc index c7bf9c3135..bf136295df 100644 --- a/modules/audio_mixer/frame_combiner_unittest.cc +++ b/modules/audio_mixer/frame_combiner_unittest.cc @@ -11,13 +11,13 @@ #include "modules/audio_mixer/frame_combiner.h" #include -#include #include #include "audio/utility/audio_frame_operations.h" #include "modules/audio_mixer/gain_change_calculator.h" #include "modules/audio_mixer/sine_wave_generator.h" #include "rtc_base/checks.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" namespace webrtc { @@ -34,7 +34,7 @@ struct FrameCombinerConfig { std::string ProduceDebugText(int sample_rate_hz, int number_of_channels, int number_of_sources) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Sample rate: " << sample_rate_hz << " ,"; ss << "number of channels: " << number_of_channels << " ,"; ss << "number of sources: " << number_of_sources; @@ -42,7 +42,7 @@ std::string ProduceDebugText(int sample_rate_hz, } std::string ProduceDebugText(const FrameCombinerConfig& config) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Sample rate: " << config.sample_rate_hz << " ,"; ss << "number of channels: " << config.number_of_channels << " ,"; ss << "limiter active: " << (config.use_limiter ? "on" : "off") << " ,"; diff --git a/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc b/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc index 077586e51f..7169965d53 100644 --- a/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc +++ b/modules/audio_processing/aec3/adaptive_fir_filter_unittest.cc @@ -20,6 +20,7 @@ #if defined(WEBRTC_ARCH_X86_FAMILY) #include #endif + #include "modules/audio_processing/aec3/aec3_fft.h" #include "modules/audio_processing/aec3/aec_state.h" #include "modules/audio_processing/aec3/cascaded_biquad_filter.h" @@ -31,6 +32,7 @@ #include "rtc_base/arraysize.h" #include "rtc_base/numerics/safe_minmax.h" #include "rtc_base/random.h" +#include "rtc_base/strings/string_builder.h" #include "system_wrappers/include/cpu_features_wrapper.h" #include "test/gtest.h" @@ -39,7 +41,7 @@ namespace aec3 { namespace { std::string ProduceDebugText(size_t delay) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << ", Delay: " << delay; return ss.str(); } diff --git a/modules/audio_processing/aec3/block_framer_unittest.cc b/modules/audio_processing/aec3/block_framer_unittest.cc index 16d3944e13..3f4122ffc9 100644 --- a/modules/audio_processing/aec3/block_framer_unittest.cc +++ b/modules/audio_processing/aec3/block_framer_unittest.cc @@ -10,11 +10,11 @@ #include "modules/audio_processing/aec3/block_framer.h" -#include #include #include #include "modules/audio_processing/aec3/aec3_common.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" namespace webrtc { @@ -159,7 +159,7 @@ void RunWronglyInsertOrderTest(int sample_rate_hz, #endif std::string ProduceDebugText(int sample_rate_hz) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Sample rate: " << sample_rate_hz; return ss.str(); } @@ -229,7 +229,7 @@ TEST(BlockFramer, WrongNumberOfSamplesInBlockForInsertBlock) { TEST(BlockFramer, WrongNumberOfPreceedingApiCallsForInsertBlock) { for (auto rate : {8000, 16000, 32000, 48000}) { for (size_t num_calls = 0; num_calls < 4; ++num_calls) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Sample rate: " << rate; ss << ", Num preceeding InsertBlockAndExtractSubFrame calls: " << num_calls; diff --git a/modules/audio_processing/aec3/block_processor_unittest.cc b/modules/audio_processing/aec3/block_processor_unittest.cc index 59060181be..fbe1973f4c 100644 --- a/modules/audio_processing/aec3/block_processor_unittest.cc +++ b/modules/audio_processing/aec3/block_processor_unittest.cc @@ -11,7 +11,6 @@ #include "modules/audio_processing/aec3/block_processor.h" #include -#include #include #include @@ -22,6 +21,7 @@ #include "modules/audio_processing/test/echo_canceller_test_tools.h" #include "rtc_base/checks.h" #include "rtc_base/random.h" +#include "rtc_base/strings/string_builder.h" #include "test/gmock.h" #include "test/gtest.h" @@ -93,7 +93,7 @@ void RunCaptureNumBandsVerificationTest(int sample_rate_hz) { #endif std::string ProduceDebugText(int sample_rate_hz) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Sample rate: " << sample_rate_hz; return ss.str(); } diff --git a/modules/audio_processing/aec3/decimator_unittest.cc b/modules/audio_processing/aec3/decimator_unittest.cc index e9ab21b70c..0c230d0529 100644 --- a/modules/audio_processing/aec3/decimator_unittest.cc +++ b/modules/audio_processing/aec3/decimator_unittest.cc @@ -14,11 +14,11 @@ #include #include #include -#include #include #include #include "modules/audio_processing/aec3/aec3_common.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" namespace webrtc { @@ -26,7 +26,7 @@ namespace webrtc { namespace { std::string ProduceDebugText(int sample_rate_hz) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Sample rate: " << sample_rate_hz; return ss.str(); } diff --git a/modules/audio_processing/aec3/echo_canceller3_unittest.cc b/modules/audio_processing/aec3/echo_canceller3_unittest.cc index f652642130..8cc6d5be55 100644 --- a/modules/audio_processing/aec3/echo_canceller3_unittest.cc +++ b/modules/audio_processing/aec3/echo_canceller3_unittest.cc @@ -12,7 +12,6 @@ #include #include -#include #include #include #include @@ -22,6 +21,7 @@ #include "modules/audio_processing/aec3/frame_blocker.h" #include "modules/audio_processing/aec3/mock/mock_block_processor.h" #include "modules/audio_processing/audio_buffer.h" +#include "rtc_base/strings/string_builder.h" #include "test/gmock.h" #include "test/gtest.h" @@ -604,13 +604,13 @@ class EchoCanceller3Tester { }; std::string ProduceDebugText(int sample_rate_hz) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Sample rate: " << sample_rate_hz; return ss.str(); } std::string ProduceDebugText(int sample_rate_hz, int variant) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Sample rate: " << sample_rate_hz << ", variant: " << variant; return ss.str(); } diff --git a/modules/audio_processing/aec3/echo_path_delay_estimator_unittest.cc b/modules/audio_processing/aec3/echo_path_delay_estimator_unittest.cc index 0e237a5786..5764d1c43d 100644 --- a/modules/audio_processing/aec3/echo_path_delay_estimator_unittest.cc +++ b/modules/audio_processing/aec3/echo_path_delay_estimator_unittest.cc @@ -11,7 +11,6 @@ #include "modules/audio_processing/aec3/echo_path_delay_estimator.h" #include -#include #include #include "api/audio/echo_canceller3_config.h" @@ -20,13 +19,14 @@ #include "modules/audio_processing/logging/apm_data_dumper.h" #include "modules/audio_processing/test/echo_canceller_test_tools.h" #include "rtc_base/random.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" namespace webrtc { namespace { std::string ProduceDebugText(size_t delay, size_t down_sampling_factor) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Delay: " << delay; ss << ", Down sampling factor: " << down_sampling_factor; return ss.str(); diff --git a/modules/audio_processing/aec3/echo_remover_unittest.cc b/modules/audio_processing/aec3/echo_remover_unittest.cc index 04a27273d1..9a246ede30 100644 --- a/modules/audio_processing/aec3/echo_remover_unittest.cc +++ b/modules/audio_processing/aec3/echo_remover_unittest.cc @@ -13,7 +13,6 @@ #include #include #include -#include #include #include "modules/audio_processing/aec3/aec3_common.h" @@ -22,19 +21,20 @@ #include "modules/audio_processing/logging/apm_data_dumper.h" #include "modules/audio_processing/test/echo_canceller_test_tools.h" #include "rtc_base/random.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" namespace webrtc { namespace { std::string ProduceDebugText(int sample_rate_hz) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Sample rate: " << sample_rate_hz; return ss.str(); } std::string ProduceDebugText(int sample_rate_hz, int delay) { - std::ostringstream ss(ProduceDebugText(sample_rate_hz)); + rtc::StringBuilder ss(ProduceDebugText(sample_rate_hz)); ss << ", Delay: " << delay; return ss.str(); } diff --git a/modules/audio_processing/aec3/frame_blocker_unittest.cc b/modules/audio_processing/aec3/frame_blocker_unittest.cc index 6e73d4bc8f..1fb7601e38 100644 --- a/modules/audio_processing/aec3/frame_blocker_unittest.cc +++ b/modules/audio_processing/aec3/frame_blocker_unittest.cc @@ -10,12 +10,12 @@ #include "modules/audio_processing/aec3/frame_blocker.h" -#include #include #include #include "modules/audio_processing/aec3/aec3_common.h" #include "modules/audio_processing/aec3/block_framer.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" namespace webrtc { @@ -228,7 +228,7 @@ void RunWrongExtractOrderTest(int sample_rate_hz, #endif std::string ProduceDebugText(int sample_rate_hz) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Sample rate: " << sample_rate_hz; return ss.str(); } @@ -300,7 +300,7 @@ TEST(FrameBlocker, WrongNumberOfSamplesInBlockForExtractBlock) { TEST(FrameBlocker, WrongNumberOfPreceedingApiCallsForExtractBlock) { for (auto rate : {8000, 16000, 32000, 48000}) { for (size_t num_calls = 0; num_calls < 4; ++num_calls) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Sample rate: " << rate; ss << ", Num preceeding InsertSubFrameAndExtractBlock calls: " << num_calls; diff --git a/modules/audio_processing/aec3/main_filter_update_gain_unittest.cc b/modules/audio_processing/aec3/main_filter_update_gain_unittest.cc index bed148a57d..6dbf69f591 100644 --- a/modules/audio_processing/aec3/main_filter_update_gain_unittest.cc +++ b/modules/audio_processing/aec3/main_filter_update_gain_unittest.cc @@ -24,6 +24,7 @@ #include "modules/audio_processing/test/echo_canceller_test_tools.h" #include "rtc_base/numerics/safe_minmax.h" #include "rtc_base/random.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" namespace webrtc { @@ -174,13 +175,13 @@ void RunFilterUpdateTest(int num_blocks_to_process, } std::string ProduceDebugText(int filter_length_blocks) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Length: " << filter_length_blocks; return ss.str(); } std::string ProduceDebugText(size_t delay, int filter_length_blocks) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Delay: " << delay << ", "; ss << ProduceDebugText(filter_length_blocks); return ss.str(); diff --git a/modules/audio_processing/aec3/matched_filter_unittest.cc b/modules/audio_processing/aec3/matched_filter_unittest.cc index c7dc211baa..c13241f398 100644 --- a/modules/audio_processing/aec3/matched_filter_unittest.cc +++ b/modules/audio_processing/aec3/matched_filter_unittest.cc @@ -17,7 +17,6 @@ #include #endif #include -#include #include #include "modules/audio_processing/aec3/aec3_common.h" @@ -26,6 +25,7 @@ #include "modules/audio_processing/logging/apm_data_dumper.h" #include "modules/audio_processing/test/echo_canceller_test_tools.h" #include "rtc_base/random.h" +#include "rtc_base/strings/string_builder.h" #include "system_wrappers/include/cpu_features_wrapper.h" #include "test/gtest.h" @@ -34,7 +34,7 @@ namespace aec3 { namespace { std::string ProduceDebugText(size_t delay, size_t down_sampling_factor) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Delay: " << delay; ss << ", Down sampling factor: " << down_sampling_factor; return ss.str(); diff --git a/modules/audio_processing/aec3/render_delay_buffer_unittest.cc b/modules/audio_processing/aec3/render_delay_buffer_unittest.cc index 78f0b5a4f7..29df28cca6 100644 --- a/modules/audio_processing/aec3/render_delay_buffer_unittest.cc +++ b/modules/audio_processing/aec3/render_delay_buffer_unittest.cc @@ -11,7 +11,6 @@ #include "modules/audio_processing/aec3/render_delay_buffer.h" #include -#include #include #include @@ -19,13 +18,14 @@ #include "modules/audio_processing/aec3/aec3_common.h" #include "modules/audio_processing/logging/apm_data_dumper.h" #include "rtc_base/random.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" namespace webrtc { namespace { std::string ProduceDebugText(int sample_rate_hz) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Sample rate: " << sample_rate_hz; return ss.str(); } diff --git a/modules/audio_processing/aec3/render_delay_controller_unittest.cc b/modules/audio_processing/aec3/render_delay_controller_unittest.cc index 98d5b259dc..4486d1beb5 100644 --- a/modules/audio_processing/aec3/render_delay_controller_unittest.cc +++ b/modules/audio_processing/aec3/render_delay_controller_unittest.cc @@ -12,7 +12,6 @@ #include #include -#include #include #include @@ -23,19 +22,20 @@ #include "modules/audio_processing/logging/apm_data_dumper.h" #include "modules/audio_processing/test/echo_canceller_test_tools.h" #include "rtc_base/random.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" namespace webrtc { namespace { std::string ProduceDebugText(int sample_rate_hz) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Sample rate: " << sample_rate_hz; return ss.str(); } std::string ProduceDebugText(int sample_rate_hz, size_t delay) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << ProduceDebugText(sample_rate_hz) << ", Delay: " << delay; return ss.str(); } diff --git a/modules/audio_processing/aec3/shadow_filter_update_gain_unittest.cc b/modules/audio_processing/aec3/shadow_filter_update_gain_unittest.cc index d77da33f10..d363689ac7 100644 --- a/modules/audio_processing/aec3/shadow_filter_update_gain_unittest.cc +++ b/modules/audio_processing/aec3/shadow_filter_update_gain_unittest.cc @@ -22,6 +22,7 @@ #include "modules/audio_processing/test/echo_canceller_test_tools.h" #include "rtc_base/numerics/safe_minmax.h" #include "rtc_base/random.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" namespace webrtc { @@ -115,13 +116,13 @@ void RunFilterUpdateTest(int num_blocks_to_process, } std::string ProduceDebugText(int filter_length_blocks) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Length: " << filter_length_blocks; return ss.str(); } std::string ProduceDebugText(size_t delay, int filter_length_blocks) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Delay: " << delay << ", "; ss << ProduceDebugText(filter_length_blocks); return ss.str(); diff --git a/modules/audio_processing/aec3/subtractor_unittest.cc b/modules/audio_processing/aec3/subtractor_unittest.cc index 77918056b4..b308d38f95 100644 --- a/modules/audio_processing/aec3/subtractor_unittest.cc +++ b/modules/audio_processing/aec3/subtractor_unittest.cc @@ -18,6 +18,7 @@ #include "modules/audio_processing/aec3/render_delay_buffer.h" #include "modules/audio_processing/test/echo_canceller_test_tools.h" #include "rtc_base/random.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" namespace webrtc { @@ -102,7 +103,7 @@ float RunSubtractorTest(int num_blocks_to_process, } std::string ProduceDebugText(size_t delay, int filter_length_blocks) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "Delay: " << delay << ", "; ss << "Length: " << filter_length_blocks; return ss.str(); diff --git a/modules/audio_processing/audio_processing_unittest.cc b/modules/audio_processing/audio_processing_unittest.cc index b04f89a82b..b96c3ecbbe 100644 --- a/modules/audio_processing/audio_processing_unittest.cc +++ b/modules/audio_processing/audio_processing_unittest.cc @@ -35,6 +35,7 @@ #include "rtc_base/numerics/safe_minmax.h" #include "rtc_base/protobuf_utils.h" #include "rtc_base/refcountedobject.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/swap_queue.h" #include "rtc_base/system/arch.h" #include "rtc_base/task_queue.h" @@ -259,7 +260,7 @@ void OpenFileAndWriteMessage(const std::string& filename, } std::string ResourceFilePath(const std::string& name, int sample_rate_hz) { - std::ostringstream ss; + rtc::StringBuilder ss; // Resource files are all stereo. ss << name << sample_rate_hz / 1000 << "_stereo"; return test::ResourcePath(ss.str(), "pcm"); @@ -280,7 +281,7 @@ std::string OutputFilePath(const std::string& name, size_t num_reverse_input_channels, size_t num_reverse_output_channels, StreamDirection file_direction) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << name << "_i" << num_input_channels << "_" << input_rate / 1000 << "_ir" << num_reverse_input_channels << "_" << reverse_input_rate / 1000 << "_"; if (num_output_channels == 1) { diff --git a/modules/audio_processing/gain_controller2.cc b/modules/audio_processing/gain_controller2.cc index fd4b411bc7..6368e92dd7 100644 --- a/modules/audio_processing/gain_controller2.cc +++ b/modules/audio_processing/gain_controller2.cc @@ -15,6 +15,7 @@ #include "modules/audio_processing/logging/apm_data_dumper.h" #include "rtc_base/atomicops.h" #include "rtc_base/checks.h" +#include "rtc_base/strings/string_builder.h" namespace webrtc { @@ -69,7 +70,7 @@ bool GainController2::Validate( std::string GainController2::ToString( const AudioProcessing::Config::GainController2& config) { - std::stringstream ss; + rtc::StringBuilder ss; ss << "{enabled: " << (config.enabled ? "true" : "false") << ", " << "fixed_gain_dB: " << config.fixed_gain_db << "}"; return ss.str(); diff --git a/modules/audio_processing/test/audio_processing_simulator.cc b/modules/audio_processing/test/audio_processing_simulator.cc index 40479d0cb6..e8b880463a 100644 --- a/modules/audio_processing/test/audio_processing_simulator.cc +++ b/modules/audio_processing/test/audio_processing_simulator.cc @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include @@ -27,6 +26,7 @@ #include "rtc_base/checks.h" #include "rtc_base/json.h" #include "rtc_base/logging.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/stringutils.h" namespace webrtc { @@ -409,7 +409,7 @@ void CopyFromAudioFrame(const AudioFrame& src, ChannelBuffer* dest) { std::string GetIndexedOutputWavFilename(const std::string& wav_name, int counter) { - std::stringstream ss; + rtc::StringBuilder ss; ss << wav_name.substr(0, wav_name.size() - 4) << "_" << counter << wav_name.substr(wav_name.size() - 4); return ss.str(); diff --git a/modules/audio_processing/test/fake_recording_device_unittest.cc b/modules/audio_processing/test/fake_recording_device_unittest.cc index 65940f24f9..484972ccc5 100644 --- a/modules/audio_processing/test/fake_recording_device_unittest.cc +++ b/modules/audio_processing/test/fake_recording_device_unittest.cc @@ -10,13 +10,13 @@ #include #include -#include #include #include #include "absl/memory/memory.h" #include "api/array_view.h" #include "modules/audio_processing/test/fake_recording_device.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" namespace webrtc { @@ -98,13 +98,13 @@ void CheckSameSign(const ChannelBuffer* src, } std::string FakeRecordingDeviceKindToString(int fake_rec_device_kind) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "fake recording device: " << fake_rec_device_kind; return ss.str(); } std::string AnalogLevelToString(int level) { - std::ostringstream ss; + rtc::StringBuilder ss; ss << "analog level: " << level; return ss.str(); } diff --git a/modules/audio_processing/transient/transient_detector_unittest.cc b/modules/audio_processing/transient/transient_detector_unittest.cc index d1eb7af857..091a573f13 100644 --- a/modules/audio_processing/transient/transient_detector_unittest.cc +++ b/modules/audio_processing/transient/transient_detector_unittest.cc @@ -11,11 +11,11 @@ #include "modules/audio_processing/transient/transient_detector.h" #include -#include #include #include "modules/audio_processing/transient/common.h" #include "modules/audio_processing/transient/file_utils.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/system/file_wrapper.h" #include "test/gtest.h" #include "test/testsupport/fileutils.h" @@ -43,7 +43,7 @@ TEST(TransientDetectorTest, CorrectnessBasedOnFiles) { int sample_rate_hz = kSampleRatesHz[i]; // Prepare detect file. - std::stringstream detect_file_name; + rtc::StringBuilder detect_file_name; detect_file_name << "audio_processing/transient/detect" << (sample_rate_hz / 1000) << "kHz"; @@ -58,7 +58,7 @@ TEST(TransientDetectorTest, CorrectnessBasedOnFiles) { << detect_file_name.str().c_str(); // Prepare audio file. - std::stringstream audio_file_name; + rtc::StringBuilder audio_file_name; audio_file_name << "audio_processing/transient/audio" << (sample_rate_hz / 1000) << "kHz"; diff --git a/modules/audio_processing/transient/wpd_tree_unittest.cc b/modules/audio_processing/transient/wpd_tree_unittest.cc index 88f073963b..830a5dfb62 100644 --- a/modules/audio_processing/transient/wpd_tree_unittest.cc +++ b/modules/audio_processing/transient/wpd_tree_unittest.cc @@ -11,11 +11,11 @@ #include "modules/audio_processing/transient/wpd_tree.h" #include -#include #include #include "modules/audio_processing/transient/daubechies_8_wavelet_coeffs.h" #include "modules/audio_processing/transient/file_utils.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/system/file_wrapper.h" #include "test/gtest.h" #include "test/testsupport/fileutils.h" @@ -87,7 +87,7 @@ TEST(WPDTreeTest, CorrectnessBasedOnMatlabFiles) { // Matlab files. matlab_files_data[i].reset(FileWrapper::Create()); - std::ostringstream matlab_stream; + rtc::StringBuilder matlab_stream; matlab_stream << "audio_processing/transient/wpd" << i; std::string matlab_string = test::ResourcePath(matlab_stream.str(), "dat"); matlab_files_data[i]->OpenFile(matlab_string.c_str(), true); // Read only. @@ -98,7 +98,7 @@ TEST(WPDTreeTest, CorrectnessBasedOnMatlabFiles) { // Out files. out_files_data[i].reset(FileWrapper::Create()); - std::ostringstream out_stream; + rtc::StringBuilder out_stream; out_stream << test::OutputPath() << "wpd_" << i << ".out"; std::string out_string = out_stream.str(); diff --git a/modules/remote_bitrate_estimator/test/bwe_test_framework.h b/modules/remote_bitrate_estimator/test/bwe_test_framework.h index b67a218bc2..6c4a1ec21e 100644 --- a/modules/remote_bitrate_estimator/test/bwe_test_framework.h +++ b/modules/remote_bitrate_estimator/test/bwe_test_framework.h @@ -19,7 +19,6 @@ #include #include #include -#include #include #include #include @@ -33,6 +32,7 @@ #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h" #include "rtc_base/constructormagic.h" #include "rtc_base/random.h" +#include "rtc_base/strings/string_builder.h" #include "system_wrappers/include/clock.h" namespace webrtc { @@ -128,7 +128,7 @@ class Stats { } std::string AsString() { - std::stringstream ss; + rtc::StringBuilder ss; ss << (GetMean() >= 0 ? GetMean() : -1) << ", " << (GetStdDev() >= 0 ? GetStdDev() : -1); return ss.str(); diff --git a/modules/remote_bitrate_estimator/test/bwe_test_logging.cc b/modules/remote_bitrate_estimator/test/bwe_test_logging.cc index 571ed50c0e..1b4cae2f47 100644 --- a/modules/remote_bitrate_estimator/test/bwe_test_logging.cc +++ b/modules/remote_bitrate_estimator/test/bwe_test_logging.cc @@ -16,11 +16,11 @@ #include #include -#include #include "rtc_base/checks.h" #include "rtc_base/format_macros.h" #include "rtc_base/platform_thread.h" +#include "rtc_base/strings/string_builder.h" namespace webrtc { namespace testing { @@ -29,7 +29,7 @@ namespace bwe { Logging Logging::g_Logging; static std::string ToString(uint32_t v) { - std::stringstream ss; + rtc::StringBuilder ss; ss << v; return ss.str(); } diff --git a/modules/remote_bitrate_estimator/test/estimators/remb.cc b/modules/remote_bitrate_estimator/test/estimators/remb.cc index 94416fe6fe..324422024d 100644 --- a/modules/remote_bitrate_estimator/test/estimators/remb.cc +++ b/modules/remote_bitrate_estimator/test/estimators/remb.cc @@ -16,6 +16,7 @@ #include "modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.h" #include "modules/remote_bitrate_estimator/test/bwe_test_logging.h" #include "modules/rtp_rtcp/include/receive_statistics.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/system/unused.h" #include "test/gtest.h" @@ -71,7 +72,7 @@ RembReceiver::RembReceiver(int flow_id, bool plot) latest_estimate_bps_(-1), last_feedback_ms_(-1), estimator_(new RemoteBitrateEstimatorAbsSendTime(this, &clock_)) { - std::stringstream ss; + rtc::StringBuilder ss; ss << "Estimate_" << flow_id_ << "#1"; estimate_log_prefix_ = ss.str(); // Default RTT in RemoteRateControl is 200 ms ; 50 ms is more realistic. diff --git a/modules/remote_bitrate_estimator/test/metric_recorder.cc b/modules/remote_bitrate_estimator/test/metric_recorder.cc index fc2296e279..2346ece37e 100644 --- a/modules/remote_bitrate_estimator/test/metric_recorder.cc +++ b/modules/remote_bitrate_estimator/test/metric_recorder.cc @@ -15,6 +15,7 @@ #include #include "modules/remote_bitrate_estimator/test/packet_sender.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/system/unused.h" namespace webrtc { @@ -359,7 +360,7 @@ void MetricRecorder::PlotObjectiveHistogram(const std::string& title, void MetricRecorder::PlotZero() { for (int i = kThroughput; i <= kLoss; ++i) { if (plot_information_[i].plot) { - std::stringstream prefix; + rtc::StringBuilder prefix; // TODO(terelius): Since this does not use the BWE_TEST_LOGGING macros, // it hasn't been kept up to date with the plot format. Remove or fix? prefix << "Receiver_" << flow_id_ << "_" + plot_information_[i].prefix; diff --git a/modules/remote_bitrate_estimator/tools/rtp_to_text.cc b/modules/remote_bitrate_estimator/tools/rtp_to_text.cc index 35f1aec961..57ad1375c3 100644 --- a/modules/remote_bitrate_estimator/tools/rtp_to_text.cc +++ b/modules/remote_bitrate_estimator/tools/rtp_to_text.cc @@ -11,11 +11,11 @@ #include #include -#include #include "modules/remote_bitrate_estimator/tools/bwe_rtp.h" #include "modules/rtp_rtcp/include/rtp_header_parser.h" #include "rtc_base/format_macros.h" +#include "rtc_base/strings/string_builder.h" #include "test/rtp_file_reader.h" int main(int argc, char* argv[]) { @@ -43,7 +43,7 @@ int main(int argc, char* argv[]) { if (header.extension.transmissionTimeOffset != 0) ++non_zero_ts_offsets; if (arrival_time_only) { - std::stringstream ss; + rtc::StringBuilder ss; ss << static_cast(packet.time_ms) * 1000000; fprintf(stdout, "%s\n", ss.str().c_str()); } else { diff --git a/modules/rtp_rtcp/source/rtcp_packet/sdes_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/sdes_unittest.cc index b903a4e383..15a39efe87 100644 --- a/modules/rtp_rtcp/source/rtcp_packet/sdes_unittest.cc +++ b/modules/rtp_rtcp/source/rtcp_packet/sdes_unittest.cc @@ -10,6 +10,7 @@ #include "modules/rtp_rtcp/source/rtcp_packet/sdes.h" +#include "rtc_base/strings/string_builder.h" #include "test/gtest.h" #include "test/rtcp_packet_parser.h" @@ -74,7 +75,7 @@ TEST(RtcpPacketSdesTest, CreateWithTooManyChunks) { Sdes sdes; for (size_t i = 0; i < kMaxChunks; ++i) { uint32_t ssrc = kSenderSsrc + i; - std::ostringstream oss; + rtc::StringBuilder oss; oss << "cname" << i; EXPECT_TRUE(sdes.AddCName(ssrc, oss.str())); } diff --git a/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc b/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc index 6be4ce3a4a..c94b2f498e 100644 --- a/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc +++ b/modules/video_coding/codecs/test/videocodec_test_fixture_impl.cc @@ -239,7 +239,7 @@ size_t VideoCodecTestFixtureImpl::Config::NumberOfSimulcastStreams() const { std::string VideoCodecTestFixtureImpl::Config::ToString() const { std::string codec_type = CodecTypeToPayloadString(codec_settings.codecType); - std::stringstream ss; + rtc::StringBuilder ss; ss << "filename: " << filename; ss << "\nnum_frames: " << num_frames; ss << "\nmax_payload_size_bytes: " << max_payload_size_bytes; diff --git a/ortc/ortcfactory.cc b/ortc/ortcfactory.cc index 66ae77d181..cb63d26174 100644 --- a/ortc/ortcfactory.cc +++ b/ortc/ortcfactory.cc @@ -10,7 +10,6 @@ #include "ortc/ortcfactory.h" -#include #include // For std::move. #include @@ -41,6 +40,7 @@ #include "rtc_base/checks.h" #include "rtc_base/helpers.h" #include "rtc_base/logging.h" +#include "rtc_base/strings/string_builder.h" namespace { @@ -461,7 +461,7 @@ OrtcFactory::CreateUdpTransport(int family, RTC_LOG(LS_INFO) << "Created UDP socket with address " << socket->GetLocalAddress().ToSensitiveString() << "."; // Make a unique debug name (for logging/diagnostics only). - std::ostringstream oss; + rtc::StringBuilder oss; static int udp_id = 0; oss << "udp" << udp_id++; return UdpTransportProxyWithInternal::Create( diff --git a/p2p/base/stunport.cc b/p2p/base/stunport.cc index 9df3ebad29..c03653b344 100644 --- a/p2p/base/stunport.cc +++ b/p2p/base/stunport.cc @@ -21,6 +21,7 @@ #include "rtc_base/ipaddress.h" #include "rtc_base/logging.h" #include "rtc_base/nethelpers.h" +#include "rtc_base/strings/string_builder.h" namespace cricket { @@ -485,7 +486,7 @@ void UDPPort::OnStunBindingRequestSucceeded( rtc::EmptySocketAddressWithFamily(related_address.family()); } - std::ostringstream url; + rtc::StringBuilder url; url << "stun:" << stun_server_addr.ipaddr().ToString() << ":" << stun_server_addr.port(); AddAddress(stun_reflected_addr, socket_->GetLocalAddress(), related_address, diff --git a/p2p/base/turnport.cc b/p2p/base/turnport.cc index 13c9a4691a..0883534538 100644 --- a/p2p/base/turnport.cc +++ b/p2p/base/turnport.cc @@ -25,6 +25,7 @@ #include "rtc_base/nethelpers.h" #include "rtc_base/socketaddress.h" #include "rtc_base/stringencode.h" +#include "rtc_base/strings/string_builder.h" namespace cricket { @@ -1236,7 +1237,7 @@ std::string TurnPort::ReconstructedServerUrl() { case PROTO_TCP: break; } - std::ostringstream url; + rtc::StringBuilder url; url << scheme << ":" << server_address_.address.ipaddr().ToString() << ":" << server_address_.address.port() << "?transport=" << transport; return url.str(); diff --git a/p2p/base/turnserver.cc b/p2p/base/turnserver.cc index a7a8c57232..160e25965d 100644 --- a/p2p/base/turnserver.cc +++ b/p2p/base/turnserver.cc @@ -25,6 +25,7 @@ #include "rtc_base/messagedigest.h" #include "rtc_base/socketadapters.h" #include "rtc_base/stringencode.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/thread.h" namespace cricket { @@ -597,7 +598,7 @@ std::string TurnServerConnection::ToString() const { const char* const kProtos[] = { "unknown", "udp", "tcp", "ssltcp" }; - std::ostringstream ost; + rtc::StringBuilder ost; ost << src_.ToString() << "-" << dst_.ToString() << ":"<< kProtos[proto_]; return ost.str(); } @@ -630,7 +631,7 @@ TurnServerAllocation::~TurnServerAllocation() { } std::string TurnServerAllocation::ToString() const { - std::ostringstream ost; + rtc::StringBuilder ost; ost << "Alloc[" << conn_.ToString() << "]"; return ost.str(); } diff --git a/pc/channel.cc b/pc/channel.cc index 281a4992f4..b63cea7cec 100644 --- a/pc/channel.cc +++ b/pc/channel.cc @@ -26,6 +26,7 @@ #include "rtc_base/dscp.h" #include "rtc_base/logging.h" #include "rtc_base/networkroute.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/trace_event.h" // Adding 'nogncheck' to disable the gn include headers check to support modular // WebRTC build targets. @@ -593,7 +594,7 @@ bool BaseChannel::UpdateLocalStreams_w(const std::vector& streams, it != local_streams_.end(); ++it) { if (it->has_ssrcs() && !GetStreamBySsrc(streams, it->first_ssrc())) { if (!media_channel()->RemoveSendStream(it->first_ssrc())) { - std::ostringstream desc; + rtc::StringBuilder desc; desc << "Failed to remove send stream with ssrc " << it->first_ssrc() << "."; SafeSetError(desc.str(), error_desc); @@ -608,7 +609,7 @@ bool BaseChannel::UpdateLocalStreams_w(const std::vector& streams, if (media_channel()->AddSendStream(*it)) { RTC_LOG(LS_INFO) << "Add send stream ssrc: " << it->ssrcs[0]; } else { - std::ostringstream desc; + rtc::StringBuilder desc; desc << "Failed to add send stream ssrc: " << it->first_ssrc(); SafeSetError(desc.str(), error_desc); ret = false; @@ -634,7 +635,7 @@ bool BaseChannel::UpdateRemoteStreams_w( if (RemoveRecvStream_w(it->first_ssrc())) { RTC_LOG(LS_INFO) << "Remove remote ssrc: " << it->first_ssrc(); } else { - std::ostringstream desc; + rtc::StringBuilder desc; desc << "Failed to remove remote stream with ssrc " << it->first_ssrc() << "."; SafeSetError(desc.str(), error_desc); @@ -654,7 +655,7 @@ bool BaseChannel::UpdateRemoteStreams_w( if (AddRecvStream_w(*it)) { RTC_LOG(LS_INFO) << "Add remote ssrc: " << it->first_ssrc(); } else { - std::ostringstream desc; + rtc::StringBuilder desc; desc << "Failed to add remote stream ssrc: " << it->first_ssrc(); SafeSetError(desc.str(), error_desc); ret = false; diff --git a/pc/mediasession_unittest.cc b/pc/mediasession_unittest.cc index 269ad78a70..dbcb9b4ca1 100644 --- a/pc/mediasession_unittest.cc +++ b/pc/mediasession_unittest.cc @@ -25,6 +25,7 @@ #include "rtc_base/gunit.h" #include "rtc_base/messagedigest.h" #include "rtc_base/ssladapter.h" +#include "rtc_base/strings/string_builder.h" #define ASSERT_CRYPTO(cd, s, cs) \ ASSERT_EQ(s, cd->cryptos().size()); \ @@ -3703,7 +3704,7 @@ void TestAudioCodecsAnswer(RtpTransceiverDirection offer_direction, } auto format_codecs = [](const std::vector& codecs) { - std::stringstream os; + rtc::StringBuilder os; bool first = true; os << "{"; for (const auto& c : codecs) { diff --git a/pc/peerconnection.cc b/pc/peerconnection.cc index 6c543f90ef..684cf637ef 100644 --- a/pc/peerconnection.cc +++ b/pc/peerconnection.cc @@ -47,6 +47,7 @@ #include "rtc_base/logging.h" #include "rtc_base/numerics/safe_conversions.h" #include "rtc_base/stringencode.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/stringutils.h" #include "rtc_base/trace_event.h" #include "system_wrappers/include/clock.h" @@ -594,7 +595,7 @@ bool CheckForRemoteIceRestart(const SessionDescriptionInterface* old_desc, std::string GetSetDescriptionErrorMessage(cricket::ContentSource source, SdpType type, const RTCError& error) { - std::ostringstream oss; + rtc::StringBuilder oss; oss << "Failed to set " << (source == cricket::CS_LOCAL ? "local" : "remote") << " " << SdpTypeToString(type) << " sdp: " << error.message(); return oss.str(); @@ -5834,7 +5835,7 @@ const char* PeerConnection::SessionErrorToString(SessionError error) const { } std::string PeerConnection::GetSessionErrorMsg() { - std::ostringstream desc; + rtc::StringBuilder desc; desc << kSessionError << SessionErrorToString(session_error()) << ". "; desc << kSessionErrorDesc << session_error_desc() << "."; return desc.str(); diff --git a/pc/peerconnection_ice_unittest.cc b/pc/peerconnection_ice_unittest.cc index 23a49e9852..a96adfef7f 100644 --- a/pc/peerconnection_ice_unittest.cc +++ b/pc/peerconnection_ice_unittest.cc @@ -27,6 +27,7 @@ #include "pc/test/fakeaudiocapturemodule.h" #include "rtc_base/fakenetwork.h" #include "rtc_base/gunit.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/virtualsocketserver.h" #include "system_wrappers/include/metrics_default.h" @@ -258,7 +259,7 @@ class PeerConnectionIceTest const char* b_expr, const cricket::Candidate& a, const cricket::Candidate& b) { - std::stringstream failure_info; + rtc::StringBuilder failure_info; if (a.component() != b.component()) { failure_info << "\ncomponent: " << a.component() << " != " << b.component(); } @@ -593,7 +594,7 @@ TEST_P(PeerConnectionIceTest, VerifyUfragPwdLength) { const char* candidates_expr, const SocketAddress& address, const std::vector candidates) { - std::stringstream candidate_hosts; + rtc::StringBuilder candidate_hosts; for (const auto* candidate : candidates) { const auto& candidate_ip = candidate->candidate().address().ipaddr(); if (candidate_ip == address.ipaddr()) { diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn index 11550c7d00..c780fec420 100644 --- a/rtc_base/BUILD.gn +++ b/rtc_base/BUILD.gn @@ -313,6 +313,7 @@ rtc_source_set("timeutils") { deps = [ ":checks", ":safe_conversions", + ":stringutils", ] } diff --git a/rtc_base/httpcommon.cc b/rtc_base/httpcommon.cc index 4ecb393545..86bfe97461 100644 --- a/rtc_base/httpcommon.cc +++ b/rtc_base/httpcommon.cc @@ -27,6 +27,7 @@ #include "rtc_base/httpcommon.h" #include "rtc_base/messagedigest.h" #include "rtc_base/socketaddress.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/third_party/base64/base64.h" #include "rtc_base/zero_memory.h" @@ -798,7 +799,7 @@ HttpAuthResult HttpAuthenticate(const char* challenge, std::string HA2 = MD5(A2); std::string dig_response = MD5(HA1 + ":" + middle + ":" + HA2); - std::stringstream ss; + rtc::StringBuilder ss; ss << auth_method; ss << " username=" << quote(username); ss << ", realm=" << quote(realm); diff --git a/rtc_base/network.cc b/rtc_base/network.cc index 34da828477..01b84a6022 100644 --- a/rtc_base/network.cc +++ b/rtc_base/network.cc @@ -40,6 +40,7 @@ #include "rtc_base/socket.h" // includes something that makes windows happy #include "rtc_base/stream.h" #include "rtc_base/stringencode.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/stringutils.h" #include "rtc_base/thread.h" @@ -181,7 +182,7 @@ const int kPublicPort = 53; // DNS port. std::string MakeNetworkKey(const std::string& name, const IPAddress& prefix, int prefix_length) { - std::ostringstream ost; + rtc::StringBuilder ost; ost << name << "%" << prefix.ToString() << "/" << prefix_length; return ost.str(); } @@ -1057,7 +1058,7 @@ uint16_t Network::GetCost() const { } std::string Network::ToString() const { - std::stringstream ss; + rtc::StringBuilder ss; // Print out the first space-terminated token of the network desc, plus // the IP address. ss << "Net[" << description_.substr(0, description_.find(' ')) << ":" diff --git a/rtc_base/socketadapters.cc b/rtc_base/socketadapters.cc index 8095894420..acd9b63385 100644 --- a/rtc_base/socketadapters.cc +++ b/rtc_base/socketadapters.cc @@ -31,6 +31,7 @@ #include "rtc_base/logging.h" #include "rtc_base/socketadapters.h" #include "rtc_base/stringencode.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/stringutils.h" #include "rtc_base/zero_memory.h" @@ -369,7 +370,7 @@ bool AsyncHttpsProxySocket::ShouldIssueConnect() const { } void AsyncHttpsProxySocket::SendRequest() { - std::stringstream ss; + rtc::StringBuilder ss; ss << "CONNECT " << dest_.ToString() << " HTTP/1.0\r\n"; ss << "User-Agent: " << agent_ << "\r\n"; ss << "Host: " << dest_.HostAsURIString() << "\r\n"; diff --git a/rtc_base/sslidentity.cc b/rtc_base/sslidentity.cc index f286884f9f..b9ada0074d 100644 --- a/rtc_base/sslidentity.cc +++ b/rtc_base/sslidentity.cc @@ -20,6 +20,7 @@ #include "rtc_base/logging.h" #include "rtc_base/opensslidentity.h" #include "rtc_base/sslfingerprint.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/third_party/base64/base64.h" namespace rtc { @@ -116,7 +117,7 @@ bool SSLIdentity::PemToDer(const std::string& pem_type, std::string SSLIdentity::DerToPem(const std::string& pem_type, const unsigned char* data, size_t length) { - std::stringstream result; + rtc::StringBuilder result; result << "-----BEGIN " << pem_type << "-----\n"; diff --git a/rtc_base/timeutils.h b/rtc_base/timeutils.h index 20b1dac2c1..c6ea0127d7 100644 --- a/rtc_base/timeutils.h +++ b/rtc_base/timeutils.h @@ -18,6 +18,7 @@ #include #include "rtc_base/checks.h" +#include "rtc_base/strings/string_builder.h" namespace rtc { @@ -142,7 +143,7 @@ class IntervalRange { int max() const { return max_; } std::string ToString() const { - std::stringstream ss; + rtc::StringBuilder ss; ss << "[" << min_ << "," << max_ << "]"; return ss.str(); } diff --git a/rtc_tools/event_log_visualizer/analyzer.cc b/rtc_tools/event_log_visualizer/analyzer.cc index 56ea1c7fe3..c51aae3ab5 100644 --- a/rtc_tools/event_log_visualizer/analyzer.cc +++ b/rtc_tools/event_log_visualizer/analyzer.cc @@ -55,6 +55,7 @@ #include "rtc_base/logging.h" #include "rtc_base/numerics/sequence_number_util.h" #include "rtc_base/rate_statistics.h" +#include "rtc_base/strings/string_builder.h" #ifndef BWE_TEST_LOGGING_COMPILE_TIME_ENABLE #define BWE_TEST_LOGGING_COMPILE_TIME_ENABLE 0 @@ -75,7 +76,7 @@ void SortPacketFeedbackVector(std::vector* vec) { } std::string SsrcToString(uint32_t ssrc) { - std::stringstream ss; + rtc::StringBuilder ss; ss << "SSRC " << ssrc; return ss.str(); } @@ -408,7 +409,7 @@ std::string GetCandidatePairLogDescriptionAsString( // represents a pair of a local server-reflexive candidate on a WiFi network // and a remote relay candidate using TCP as the relay protocol on a cell // network, when the candidate pair communicates over UDP using IPv4. - std::stringstream ss; + rtc::StringBuilder ss; std::string local_candidate_type = GetIceCandidateTypeAsString(config.local_candidate_type); std::string remote_candidate_type = diff --git a/rtc_tools/unpack_aecdump/unpack.cc b/rtc_tools/unpack_aecdump/unpack.cc index 0367cc4795..4c75608e74 100644 --- a/rtc_tools/unpack_aecdump/unpack.cc +++ b/rtc_tools/unpack_aecdump/unpack.cc @@ -22,6 +22,7 @@ #include "rtc_base/flags.h" #include "rtc_base/format_macros.h" #include "rtc_base/ignore_wundef.h" +#include "rtc_base/strings/string_builder.h" RTC_PUSH_IGNORING_WUNDEF() #include "modules/audio_processing/debug.pb.h" @@ -122,7 +123,7 @@ int do_main(int argc, char* argv[]) { std::unique_ptr input_raw_file; std::unique_ptr output_raw_file; - std::stringstream callorder_raw_name; + rtc::StringBuilder callorder_raw_name; callorder_raw_name << FLAG_callorder_file << ".char"; FILE* callorder_char_file = OpenFile(callorder_raw_name.str(), "wb"); FILE* settings_file = OpenFile(FLAG_settings_file, "wb"); @@ -345,20 +346,20 @@ int do_main(int argc, char* argv[]) { if (!FLAG_raw) { // The WAV files need to be reset every time, because they cant change // their sample rate or number of channels. - std::stringstream reverse_name; + rtc::StringBuilder reverse_name; reverse_name << FLAG_reverse_file << frame_count << ".wav"; reverse_wav_file.reset(new WavWriter( reverse_name.str(), reverse_sample_rate, num_reverse_channels)); - std::stringstream input_name; + rtc::StringBuilder input_name; input_name << FLAG_input_file << frame_count << ".wav"; input_wav_file.reset(new WavWriter(input_name.str(), input_sample_rate, num_input_channels)); - std::stringstream output_name; + rtc::StringBuilder output_name; output_name << FLAG_output_file << frame_count << ".wav"; output_wav_file.reset(new WavWriter( output_name.str(), output_sample_rate, num_output_channels)); - std::stringstream callorder_name; + rtc::StringBuilder callorder_name; callorder_name << FLAG_callorder_file << frame_count << ".char"; callorder_char_file = OpenFile(callorder_name.str(), "wb"); } diff --git a/sdk/android/src/jni/androidnetworkmonitor.cc b/sdk/android/src/jni/androidnetworkmonitor.cc index cfd51e851f..3dd280b7d7 100644 --- a/sdk/android/src/jni/androidnetworkmonitor.cc +++ b/sdk/android/src/jni/androidnetworkmonitor.cc @@ -19,6 +19,7 @@ #include "rtc_base/bind.h" #include "rtc_base/checks.h" #include "rtc_base/ipaddress.h" +#include "rtc_base/strings/string_builder.h" #include "sdk/android/generated_base_jni/jni/NetworkMonitorAutoDetect_jni.h" #include "sdk/android/generated_base_jni/jni/NetworkMonitor_jni.h" #include "sdk/android/native_api/jni/java_types.h" @@ -152,7 +153,7 @@ NetworkInformation& NetworkInformation::operator=(NetworkInformation&&) = default; std::string NetworkInformation::ToString() const { - std::stringstream ss; + rtc::StringBuilder ss; ss << "NetInfo[name " << interface_name << "; handle " << handle << "; type " << type; if (type == NETWORK_VPN) { diff --git a/video/end_to_end_tests/stats_tests.cc b/video/end_to_end_tests/stats_tests.cc index e05737641c..7899eb7de6 100644 --- a/video/end_to_end_tests/stats_tests.cc +++ b/video/end_to_end_tests/stats_tests.cc @@ -13,6 +13,7 @@ #include "call/simulated_network.h" #include "modules/rtp_rtcp/source/rtp_utility.h" #include "modules/video_coding/include/video_coding_defines.h" +#include "rtc_base/strings/string_builder.h" #include "system_wrappers/include/metrics.h" #include "system_wrappers/include/metrics_default.h" #include "system_wrappers/include/sleep.h" @@ -215,7 +216,7 @@ TEST_F(StatsEndToEndTest, GetStats) { } std::string CompoundKey(const char* name, uint32_t ssrc) { - std::ostringstream oss; + rtc::StringBuilder oss; oss << name << "_" << ssrc; return oss.str(); } diff --git a/video/rtp_video_stream_receiver.cc b/video/rtp_video_stream_receiver.cc index e2139b8e8b..870183afeb 100644 --- a/video/rtp_video_stream_receiver.cc +++ b/video/rtp_video_stream_receiver.cc @@ -37,6 +37,7 @@ #include "rtc_base/checks.h" #include "rtc_base/location.h" #include "rtc_base/logging.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/system/fallthrough.h" #include "system_wrappers/include/field_trial.h" #include "system_wrappers/include/metrics.h" @@ -291,7 +292,7 @@ void RtpVideoStreamReceiver::OnRtpPacket(const RtpPacketReceived& packet) { } // Periodically log the RTP header of incoming packets. if (now_ms - last_packet_log_ms_ > kPacketLogIntervalMs) { - std::stringstream ss; + rtc::StringBuilder ss; ss << "Packet received on SSRC: " << packet.Ssrc() << " with payload type: " << static_cast(packet.PayloadType()) << ", timestamp: " << packet.Timestamp() diff --git a/video/stats_counter.cc b/video/stats_counter.cc index bcbf9124a2..8f282b0ae9 100644 --- a/video/stats_counter.cc +++ b/video/stats_counter.cc @@ -15,6 +15,7 @@ #include #include "rtc_base/checks.h" +#include "rtc_base/strings/string_builder.h" #include "system_wrappers/include/clock.h" namespace webrtc { @@ -30,7 +31,7 @@ std::string AggregatedStats::ToString() const { } std::string AggregatedStats::ToStringWithMultiplier(int multiplier) const { - std::stringstream ss; + rtc::StringBuilder ss; ss << "periodic_samples:" << num_samples << ", {"; ss << "min:" << (min * multiplier) << ", "; ss << "avg:" << (average * multiplier) << ", "; diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc index 1912f2ba96..294fd1a319 100644 --- a/video/video_quality_test.cc +++ b/video/video_quality_test.cc @@ -13,7 +13,6 @@ #include #include #include -#include #include #include @@ -240,7 +239,7 @@ VideoQualityTest::InjectionComponents::~InjectionComponents() = default; void VideoQualityTest::TestBody() {} std::string VideoQualityTest::GenerateGraphTitle() const { - std::stringstream ss; + rtc::StringBuilder ss; ss << params_.video[0].codec; ss << " (" << params_.video[0].target_bitrate_bps / 1000 << "kbps"; ss << ", " << params_.video[0].fps << " FPS"; @@ -1244,7 +1243,7 @@ void VideoQualityTest::RunWithRenderers(const Params& params) { const size_t num_streams = params_.ss[video_idx].streams.size(); if (selected_stream_id == num_streams) { for (size_t stream_id = 0; stream_id < num_streams; ++stream_id) { - std::ostringstream oss; + rtc::StringBuilder oss; oss << "Loopback Video #" << video_idx << " - Stream #" << static_cast(stream_id); loopback_renderers.emplace_back(test::VideoRenderer::Create( @@ -1258,7 +1257,7 @@ void VideoQualityTest::RunWithRenderers(const Params& params) { .sync_group = kSyncGroup; } } else { - std::ostringstream oss; + rtc::StringBuilder oss; oss << "Loopback Video #" << video_idx; loopback_renderers.emplace_back(test::VideoRenderer::Create( oss.str().c_str(), @@ -1307,7 +1306,7 @@ void VideoQualityTest::RunWithRenderers(const Params& params) { void VideoQualityTest::StartEncodedFrameLogs(VideoReceiveStream* stream) { if (!params_.logging.encoded_frame_base_path.empty()) { - std::ostringstream str; + rtc::StringBuilder str; str << receive_logs_++; std::string path = params_.logging.encoded_frame_base_path + "." + str.str() + ".recv.ivf"; diff --git a/video/video_stream_encoder.cc b/video/video_stream_encoder.cc index e7bc7e1960..acf9b2df60 100644 --- a/video/video_stream_encoder.cc +++ b/video/video_stream_encoder.cc @@ -24,6 +24,7 @@ #include "rtc_base/experiments/quality_scaling_experiment.h" #include "rtc_base/location.h" #include "rtc_base/logging.h" +#include "rtc_base/strings/string_builder.h" #include "rtc_base/system/fallthrough.h" #include "rtc_base/timeutils.h" #include "rtc_base/trace_event.h" @@ -1237,7 +1238,7 @@ VideoStreamEncoder::AdaptCounter::AdaptCounter() { VideoStreamEncoder::AdaptCounter::~AdaptCounter() {} std::string VideoStreamEncoder::AdaptCounter::ToString() const { - std::stringstream ss; + rtc::StringBuilder ss; ss << "Downgrade counts: fps: {" << ToString(fps_counters_); ss << "}, resolution: {" << ToString(resolution_counters_) << "}"; return ss.str(); @@ -1330,7 +1331,7 @@ void VideoStreamEncoder::AdaptCounter::MoveCount(std::vector* counters, std::string VideoStreamEncoder::AdaptCounter::ToString( const std::vector& counters) const { - std::stringstream ss; + rtc::StringBuilder ss; for (size_t reason = 0; reason < kScaleReasonSize; ++reason) { ss << (reason ? " cpu" : "quality") << ":" << counters[reason]; }