From f052c432feaa33d11b44af2ba73fa61dee78fdec Mon Sep 17 00:00:00 2001 From: Evan Shrubsole Date: Tue, 18 Feb 2025 08:01:34 +0000 Subject: [PATCH] Move string_to_number.h to webrtc namespace Bug: webrtc:42232595 Change-Id: I104cff12bf40509fb4554b98f7af16975263285a Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/377520 Commit-Queue: Evan Shrubsole Reviewed-by: Harald Alvestrand Cr-Commit-Position: refs/heads/main@{#43911} --- api/audio_codecs/L16/audio_encoder_L16.cc | 2 +- api/audio_codecs/g711/audio_encoder_g711.cc | 2 +- api/audio_codecs/g722/audio_encoder_g722.cc | 2 +- api/video_codecs/av1_profile.cc | 2 +- api/video_codecs/h265_profile_tier_level.cc | 6 +++--- api/video_codecs/vp9_profile.cc | 2 +- media/base/sdp_video_format_utils.cc | 3 +-- .../audio_coding/codecs/opus/audio_coder_opus_common.cc | 2 +- .../audio_coding/codecs/opus/audio_coder_opus_common.h | 2 +- .../codecs/opus/audio_encoder_multi_channel_opus_impl.cc | 2 +- modules/audio_coding/codecs/opus/audio_encoder_opus.cc | 2 +- .../test/conversational_speech/timing.cc | 4 ++-- pc/ice_server_parsing.cc | 2 +- pc/simulcast_sdp_serializer.cc | 2 +- rtc_base/string_encode.h | 2 +- rtc_base/string_to_number.cc | 4 ++-- rtc_base/string_to_number.h | 8 +++++++- rtc_base/string_to_number_unittest.cc | 4 ++-- rtc_base/unique_id_generator.cc | 2 +- rtc_tools/video_file_reader.cc | 9 ++++----- 20 files changed, 34 insertions(+), 30 deletions(-) diff --git a/api/audio_codecs/L16/audio_encoder_L16.cc b/api/audio_codecs/L16/audio_encoder_L16.cc index 3bbaa79ba9..2010a90ce0 100644 --- a/api/audio_codecs/L16/audio_encoder_L16.cc +++ b/api/audio_codecs/L16/audio_encoder_L16.cc @@ -43,7 +43,7 @@ std::optional AudioEncoderL16::SdpToConfig( config.num_channels = rtc::dchecked_cast(format.num_channels); auto ptime_iter = format.parameters.find("ptime"); if (ptime_iter != format.parameters.end()) { - const auto ptime = rtc::StringToNumber(ptime_iter->second); + const auto ptime = StringToNumber(ptime_iter->second); if (ptime && *ptime > 0) { config.frame_size_ms = rtc::SafeClamp(10 * (*ptime / 10), 10, 60); } diff --git a/api/audio_codecs/g711/audio_encoder_g711.cc b/api/audio_codecs/g711/audio_encoder_g711.cc index aa676a22c8..e36d2f9ca2 100644 --- a/api/audio_codecs/g711/audio_encoder_g711.cc +++ b/api/audio_codecs/g711/audio_encoder_g711.cc @@ -44,7 +44,7 @@ std::optional AudioEncoderG711::SdpToConfig( config.frame_size_ms = 20; auto ptime_iter = format.parameters.find("ptime"); if (ptime_iter != format.parameters.end()) { - const auto ptime = rtc::StringToNumber(ptime_iter->second); + const auto ptime = StringToNumber(ptime_iter->second); if (ptime && *ptime > 0) { config.frame_size_ms = rtc::SafeClamp(10 * (*ptime / 10), 10, 60); } diff --git a/api/audio_codecs/g722/audio_encoder_g722.cc b/api/audio_codecs/g722/audio_encoder_g722.cc index 6c932ef039..80387a1895 100644 --- a/api/audio_codecs/g722/audio_encoder_g722.cc +++ b/api/audio_codecs/g722/audio_encoder_g722.cc @@ -43,7 +43,7 @@ std::optional AudioEncoderG722::SdpToConfig( config.num_channels = rtc::checked_cast(format.num_channels); auto ptime_iter = format.parameters.find("ptime"); if (ptime_iter != format.parameters.end()) { - auto ptime = rtc::StringToNumber(ptime_iter->second); + auto ptime = StringToNumber(ptime_iter->second); if (ptime && *ptime > 0) { const int whole_packets = *ptime / 10; config.frame_size_ms = rtc::SafeClamp(whole_packets * 10, 10, 60); diff --git a/api/video_codecs/av1_profile.cc b/api/video_codecs/av1_profile.cc index 177ebf0b64..247790df9b 100644 --- a/api/video_codecs/av1_profile.cc +++ b/api/video_codecs/av1_profile.cc @@ -35,7 +35,7 @@ absl::string_view AV1ProfileToString(AV1Profile profile) { } std::optional StringToAV1Profile(absl::string_view str) { - const std::optional i = rtc::StringToNumber(str); + const std::optional i = StringToNumber(str); if (!i.has_value()) return std::nullopt; diff --git a/api/video_codecs/h265_profile_tier_level.cc b/api/video_codecs/h265_profile_tier_level.cc index 92ea0c84bc..f63321a293 100644 --- a/api/video_codecs/h265_profile_tier_level.cc +++ b/api/video_codecs/h265_profile_tier_level.cc @@ -66,7 +66,7 @@ static constexpr LevelConstraint kLevelConstraints[] = { // Annex A of https://www.itu.int/rec/T-REC-H.265 (08/21), section A.3. std::optional StringToH265Profile(const std::string& profile) { - std::optional i = rtc::StringToNumber(profile); + std::optional i = StringToNumber(profile); if (!i.has_value()) { return std::nullopt; } @@ -102,7 +102,7 @@ std::optional StringToH265Profile(const std::string& profile) { // Annex A of https://www.itu.int/rec/T-REC-H.265 (08/21), section A.4, // tiers and levels. std::optional StringToH265Tier(const std::string& tier) { - std::optional i = rtc::StringToNumber(tier); + std::optional i = StringToNumber(tier); if (!i.has_value()) { return std::nullopt; } @@ -118,7 +118,7 @@ std::optional StringToH265Tier(const std::string& tier) { } std::optional StringToH265Level(const std::string& level) { - const std::optional i = rtc::StringToNumber(level); + const std::optional i = StringToNumber(level); if (!i.has_value()) return std::nullopt; diff --git a/api/video_codecs/vp9_profile.cc b/api/video_codecs/vp9_profile.cc index a00849dd2e..ef9ab7e7a4 100644 --- a/api/video_codecs/vp9_profile.cc +++ b/api/video_codecs/vp9_profile.cc @@ -38,7 +38,7 @@ std::string VP9ProfileToString(VP9Profile profile) { } std::optional StringToVP9Profile(const std::string& str) { - const std::optional i = rtc::StringToNumber(str); + const std::optional i = StringToNumber(str); if (!i.has_value()) return std::nullopt; diff --git a/media/base/sdp_video_format_utils.cc b/media/base/sdp_video_format_utils.cc index c76afad851..6a7953162e 100644 --- a/media/base/sdp_video_format_utils.cc +++ b/media/base/sdp_video_format_utils.cc @@ -64,8 +64,7 @@ std::optional ParsePositiveNumberFromParams( if (max_frame_rate_it == params.end()) return std::nullopt; - const std::optional i = - rtc::StringToNumber(max_frame_rate_it->second); + const std::optional i = StringToNumber(max_frame_rate_it->second); if (!i.has_value() || i.value() <= 0) return std::nullopt; return i; diff --git a/modules/audio_coding/codecs/opus/audio_coder_opus_common.cc b/modules/audio_coding/codecs/opus/audio_coder_opus_common.cc index 7e127cc009..486f3a9f56 100644 --- a/modules/audio_coding/codecs/opus/audio_coder_opus_common.cc +++ b/modules/audio_coding/codecs/opus/audio_coder_opus_common.cc @@ -39,7 +39,7 @@ std::optional> GetFormatParameter( : (next_comma - pos); auto substring_with_number = comma_separated_list.substr(pos, distance_to_next_comma); - auto conv = rtc::StringToNumber(substring_with_number); + auto conv = StringToNumber(substring_with_number); if (!conv.has_value()) { return std::nullopt; } diff --git a/modules/audio_coding/codecs/opus/audio_coder_opus_common.h b/modules/audio_coding/codecs/opus/audio_coder_opus_common.h index 708ae4a1f5..320b591837 100644 --- a/modules/audio_coding/codecs/opus/audio_coder_opus_common.h +++ b/modules/audio_coding/codecs/opus/audio_coder_opus_common.h @@ -29,7 +29,7 @@ std::optional GetFormatParameter(const SdpAudioFormat& format, template std::optional GetFormatParameter(const SdpAudioFormat& format, absl::string_view param) { - return rtc::StringToNumber(GetFormatParameter(format, param).value_or("")); + return StringToNumber(GetFormatParameter(format, param).value_or("")); } template <> diff --git a/modules/audio_coding/codecs/opus/audio_encoder_multi_channel_opus_impl.cc b/modules/audio_coding/codecs/opus/audio_encoder_multi_channel_opus_impl.cc index 45f3be1984..f669b8dd40 100644 --- a/modules/audio_coding/codecs/opus/audio_encoder_multi_channel_opus_impl.cc +++ b/modules/audio_coding/codecs/opus/audio_encoder_multi_channel_opus_impl.cc @@ -108,7 +108,7 @@ int CalculateBitrate(int max_playback_rate_hz, CalculateDefaultBitrate(max_playback_rate_hz, num_channels); if (bitrate_param) { - const auto bitrate = rtc::StringToNumber(*bitrate_param); + const auto bitrate = StringToNumber(*bitrate_param); if (bitrate) { const int chosen_bitrate = std::max(AudioEncoderOpusConfig::kMinBitrateBps, diff --git a/modules/audio_coding/codecs/opus/audio_encoder_opus.cc b/modules/audio_coding/codecs/opus/audio_encoder_opus.cc index 83f356091c..4bf81ff773 100644 --- a/modules/audio_coding/codecs/opus/audio_encoder_opus.cc +++ b/modules/audio_coding/codecs/opus/audio_encoder_opus.cc @@ -94,7 +94,7 @@ int CalculateBitrate(int max_playback_rate_hz, CalculateDefaultBitrate(max_playback_rate_hz, num_channels); if (bitrate_param) { - const auto bitrate = rtc::StringToNumber(*bitrate_param); + const auto bitrate = StringToNumber(*bitrate_param); if (bitrate) { const int chosen_bitrate = std::max(AudioEncoderOpusConfig::kMinBitrateBps, diff --git a/modules/audio_processing/test/conversational_speech/timing.cc b/modules/audio_processing/test/conversational_speech/timing.cc index 95ec9f542e..189e6e943c 100644 --- a/modules/audio_processing/test/conversational_speech/timing.cc +++ b/modules/audio_processing/test/conversational_speech/timing.cc @@ -35,10 +35,10 @@ std::vector LoadTiming(absl::string_view timing_filepath) { RTC_CHECK_LE(fields.size(), 4); int gain = 0; if (fields.size() == 4) { - gain = rtc::StringToNumber(fields[3]).value_or(0); + gain = StringToNumber(fields[3]).value_or(0); } return Turn(fields[0], fields[1], - rtc::StringToNumber(fields[2]).value_or(0), gain); + StringToNumber(fields[2]).value_or(0), gain); }; // Init. diff --git a/pc/ice_server_parsing.cc b/pc/ice_server_parsing.cc index bceb1f09e8..60e5a83677 100644 --- a/pc/ice_server_parsing.cc +++ b/pc/ice_server_parsing.cc @@ -96,7 +96,7 @@ std::optional ParsePort(absl::string_view in_str) { return false; } } - return rtc::StringToNumber(in_str); + return StringToNumber(in_str); } // This method parses IPv6 and IPv4 literal strings, along with hostnames in diff --git a/pc/simulcast_sdp_serializer.cc b/pc/simulcast_sdp_serializer.cc index 521ec4ec0c..750a2d007f 100644 --- a/pc/simulcast_sdp_serializer.cc +++ b/pc/simulcast_sdp_serializer.cc @@ -164,7 +164,7 @@ webrtc::RTCError ParseRidPayloadList(const std::string& payload_list, } for (const std::string& payload_type : string_payloads) { - std::optional value = rtc::StringToNumber(payload_type); + std::optional value = StringToNumber(payload_type); if (!value.has_value()) { return ParseError("Invalid payload type: " + payload_type); } diff --git a/rtc_base/string_encode.h b/rtc_base/string_encode.h index 836f236462..4625ba700d 100644 --- a/rtc_base/string_encode.h +++ b/rtc_base/string_encode.h @@ -96,7 +96,7 @@ template ::type = 0> static bool FromString(absl::string_view s, T* t) { RTC_DCHECK(t); - std::optional result = StringToNumber(s); + std::optional result = webrtc::StringToNumber(s); if (result) *t = *result; diff --git a/rtc_base/string_to_number.cc b/rtc_base/string_to_number.cc index b02288b2c7..e88c97a739 100644 --- a/rtc_base/string_to_number.cc +++ b/rtc_base/string_to_number.cc @@ -17,7 +17,7 @@ #include "rtc_base/checks.h" -namespace rtc { +namespace webrtc { namespace string_to_number_internal { std::optional ParseSigned(absl::string_view str, int base) { @@ -101,4 +101,4 @@ template std::optional ParseFloatingPoint(absl::string_view str); template std::optional ParseFloatingPoint(absl::string_view str); } // namespace string_to_number_internal -} // namespace rtc +} // namespace webrtc diff --git a/rtc_base/string_to_number.h b/rtc_base/string_to_number.h index d6e3b38aa9..5ae3ce0f16 100644 --- a/rtc_base/string_to_number.h +++ b/rtc_base/string_to_number.h @@ -18,7 +18,7 @@ #include "absl/strings/string_view.h" -namespace rtc { +namespace webrtc { // This file declares a family of functions to parse integers from strings. // The standard C library functions either fail to indicate errors (atoi, etc.) @@ -100,6 +100,12 @@ StringToNumber(absl::string_view str, int /* base */ = 10) { return string_to_number_internal::ParseFloatingPoint(str); } +} // namespace webrtc + +// Re-export symbols from the webrtc namespace for backwards compatibility. +// TODO(bugs.webrtc.org/4222596): Remove once all references are updated. +namespace rtc { +using ::webrtc::StringToNumber; } // namespace rtc #endif // RTC_BASE_STRING_TO_NUMBER_H_ diff --git a/rtc_base/string_to_number_unittest.cc b/rtc_base/string_to_number_unittest.cc index 0c6164d313..77b1437375 100644 --- a/rtc_base/string_to_number_unittest.cc +++ b/rtc_base/string_to_number_unittest.cc @@ -19,7 +19,7 @@ #include "absl/strings/string_view.h" #include "test/gtest.h" -namespace rtc { +namespace webrtc { namespace { // clang-format off @@ -135,4 +135,4 @@ TEST(StringToNumberTest, TestSpecificValues) { EXPECT_EQ(std::nullopt, StringToNumber("-256")); } -} // namespace rtc +} // namespace webrtc diff --git a/rtc_base/unique_id_generator.cc b/rtc_base/unique_id_generator.cc index b29f4c6719..8d9582188f 100644 --- a/rtc_base/unique_id_generator.cc +++ b/rtc_base/unique_id_generator.cc @@ -60,7 +60,7 @@ bool UniqueStringGenerator::AddKnownId(absl::string_view value) { // TODO(webrtc:13579): remove string copy here once absl::string_view version // of StringToNumber is available. std::optional int_value = - StringToNumber(std::string(value)); + webrtc::StringToNumber(std::string(value)); // The underlying generator works for uint32_t values, so if the provided // value is not a uint32_t it will never be generated anyway. if (int_value.has_value()) { diff --git a/rtc_tools/video_file_reader.cc b/rtc_tools/video_file_reader.cc index 5ec2bfd4ba..68c371a817 100644 --- a/rtc_tools/video_file_reader.cc +++ b/rtc_tools/video_file_reader.cc @@ -155,10 +155,10 @@ rtc::scoped_refptr