constexpr-ify unit tests
starting with
git grep "^const char k" | grep unittest.cc | awk -F ':' '{print $1}' | sort | uniq | xargs sed -i 's/^const char /constexpr char /g'
and then repeating the same with each of
uint8_t, uint32_t, uint16_t, size_t, int8_t, int16_t, int32_t, int64_t, double, uint64_t, unsigned int, float
The remainder can be seen with
git grep "^const .* k" | grep unittest.cc | awk '{print $2}' | sort | uniq -c | sort -b -n
Follow-up from
https://webrtc-review.googlesource.com/c/src/+/398220
Bug: webrtc:429563452
No-Iwyu: large scale change
Change-Id: I04e8f35c001a159f006c8897dccf35f77bc9cacb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/398647
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@meta.com>
Cr-Commit-Position: refs/heads/main@{#45111}
diff --git a/api/transport/stun_unittest.cc b/api/transport/stun_unittest.cc
index 0ad62a5..16eafd7 100644
--- a/api/transport/stun_unittest.cc
+++ b/api/transport/stun_unittest.cc
@@ -37,7 +37,7 @@
// clang-format off
// clang formatting doesn't respect inline comments.
-const uint8_t kStunMessageWithIPv6MappedAddress[] = {
+constexpr uint8_t kStunMessageWithIPv6MappedAddress[] = {
0x00, 0x01, 0x00, 0x18, // message header
0x21, 0x12, 0xa4, 0x42, // transaction id
0x29, 0x1f, 0xcd, 0x7c,
@@ -51,7 +51,7 @@
0xfe, 0xe5, 0x00, 0xc3
};
-const uint8_t kStunMessageWithIPv4MappedAddress[] = {
+constexpr uint8_t kStunMessageWithIPv4MappedAddress[] = {
0x01, 0x01, 0x00, 0x0c, // binding response, length 12
0x21, 0x12, 0xa4, 0x42, // magic cookie
0x29, 0x1f, 0xcd, 0x7c, // transaction ID
@@ -63,7 +63,7 @@
};
// Test XOR-mapped IP addresses:
-const uint8_t kStunMessageWithIPv6XorMappedAddress[] = {
+constexpr uint8_t kStunMessageWithIPv6XorMappedAddress[] = {
0x01, 0x01, 0x00, 0x18, // message header (binding response)
0x21, 0x12, 0xa4, 0x42, // magic cookie (rfc5389)
0xe3, 0xa9, 0x46, 0xe1, // transaction ID
@@ -77,7 +77,7 @@
0xaa, 0xed, 0x01, 0xc3
};
-const uint8_t kStunMessageWithIPv4XorMappedAddress[] = {
+constexpr uint8_t kStunMessageWithIPv4XorMappedAddress[] = {
0x01, 0x01, 0x00, 0x0c, // message header (binding response)
0x21, 0x12, 0xa4, 0x42, // magic cookie
0x29, 0x1f, 0xcd, 0x7c, // transaction ID
@@ -89,7 +89,7 @@
};
// ByteString Attribute (username)
-const uint8_t kStunMessageWithByteStringAttribute[] = {
+constexpr uint8_t kStunMessageWithByteStringAttribute[] = {
0x00, 0x01, 0x00, 0x0c,
0x21, 0x12, 0xa4, 0x42,
0xe3, 0xa9, 0x46, 0xe1,
@@ -102,7 +102,7 @@
// Message with an unknown but comprehensible optional attribute.
// Parsing should succeed despite this unknown attribute.
-const uint8_t kStunMessageWithUnknownAttribute[] = {
+constexpr uint8_t kStunMessageWithUnknownAttribute[] = {
0x00, 0x01, 0x00, 0x14,
0x21, 0x12, 0xa4, 0x42,
0xe3, 0xa9, 0x46, 0xe1,
@@ -116,7 +116,7 @@
};
// ByteString Attribute (username) with padding byte
-const uint8_t kStunMessageWithPaddedByteStringAttribute[] = {
+constexpr uint8_t kStunMessageWithPaddedByteStringAttribute[] = {
0x00, 0x01, 0x00, 0x08,
0x21, 0x12, 0xa4, 0x42,
0xe3, 0xa9, 0x46, 0xe1,
@@ -127,7 +127,7 @@
};
// Message with an Unknown Attributes (uint16_t list) attribute.
-const uint8_t kStunMessageWithUInt16ListAttribute[] = {
+constexpr uint8_t kStunMessageWithUInt16ListAttribute[] = {
0x00, 0x01, 0x00, 0x0c,
0x21, 0x12, 0xa4, 0x42,
0xe3, 0xa9, 0x46, 0xe1,
@@ -139,7 +139,7 @@
};
// Error response message (unauthorized)
-const uint8_t kStunMessageWithErrorAttribute[] = {
+constexpr uint8_t kStunMessageWithErrorAttribute[] = {
0x01, 0x11, 0x00, 0x14,
0x21, 0x12, 0xa4, 0x42,
0x29, 0x1f, 0xcd, 0x7c,
@@ -155,9 +155,9 @@
// Sample messages with an invalid length Field
// The actual length in bytes of the invalid messages (including STUN header)
-const int kRealLengthOfInvalidLengthTestCases = 32;
+constexpr int kRealLengthOfInvalidLengthTestCases = 32;
-const uint8_t kStunMessageWithZeroLength[] = {
+constexpr uint8_t kStunMessageWithZeroLength[] = {
0x00, 0x01, 0x00, 0x00, // length of 0 (last 2 bytes)
0x21, 0x12, 0xA4, 0x42, // magic cookie
'0', '1', '2', '3', // transaction id
@@ -168,7 +168,7 @@
0x21, 0x12, 0xA4, 0x53,
};
-const uint8_t kStunMessageWithExcessLength[] = {
+constexpr uint8_t kStunMessageWithExcessLength[] = {
0x00, 0x01, 0x00, 0x55, // length of 85
0x21, 0x12, 0xA4, 0x42, // magic cookie
'0', '1', '2', '3', // transaction id
@@ -179,7 +179,7 @@
0x21, 0x12, 0xA4, 0x53,
};
-const uint8_t kStunMessageWithSmallLength[] = {
+constexpr uint8_t kStunMessageWithSmallLength[] = {
0x00, 0x01, 0x00, 0x03, // length of 3
0x21, 0x12, 0xA4, 0x42, // magic cookie
'0', '1', '2', '3', // transaction id
@@ -190,7 +190,7 @@
0x21, 0x12, 0xA4, 0x53,
};
-const uint8_t kStunMessageWithBadHmacAtEnd[] = {
+constexpr uint8_t kStunMessageWithBadHmacAtEnd[] = {
0x00, 0x01, 0x00, 0x14, // message length exactly 20
0x21, 0x12, 0xA4, 0x42, // magic cookie
'0', '1', '2', '3', // transaction ID
@@ -205,7 +205,7 @@
// RTCP packet, for testing we correctly ignore non stun packet types.
// V=2, P=false, RC=0, Type=200, Len=6, Sender-SSRC=85, etc
-const uint8_t kRtcpPacket[] = {
+constexpr uint8_t kRtcpPacket[] = {
0x80, 0xc8, 0x00, 0x06, 0x00, 0x00, 0x00, 0x55,
0xce, 0xa5, 0x18, 0x3a, 0x39, 0xcc, 0x7d, 0x09,
0x23, 0xed, 0x19, 0x07, 0x00, 0x00, 0x01, 0x56,
@@ -218,30 +218,30 @@
// Software name (response): "test vector" (without quotes)
// Username: "evtj:h6vY" (without quotes)
// Password: "VOkJxbRl1RmTxUk/WvJxBt" (without quotes)
-const uint8_t kRfc5769SampleMsgTransactionId[] = {
+constexpr uint8_t kRfc5769SampleMsgTransactionId[] = {
0xb7, 0xe7, 0xa7, 0x01, 0xbc, 0x34, 0xd6, 0x86, 0xfa, 0x87, 0xdf, 0xae
};
-const char kRfc5769SampleMsgClientSoftware[] = "STUN test client";
-const char kRfc5769SampleMsgServerSoftware[] = "test vector";
-const char kRfc5769SampleMsgUsername[] = "evtj:h6vY";
-const char kRfc5769SampleMsgPassword[] = "VOkJxbRl1RmTxUk/WvJxBt";
+constexpr char kRfc5769SampleMsgClientSoftware[] = "STUN test client";
+constexpr char kRfc5769SampleMsgServerSoftware[] = "test vector";
+constexpr char kRfc5769SampleMsgUsername[] = "evtj:h6vY";
+constexpr char kRfc5769SampleMsgPassword[] = "VOkJxbRl1RmTxUk/WvJxBt";
const SocketAddress kRfc5769SampleMsgMappedAddress(
"192.0.2.1", 32853);
const SocketAddress kRfc5769SampleMsgIPv6MappedAddress(
"2001:db8:1234:5678:11:2233:4455:6677", 32853);
-const uint8_t kRfc5769SampleMsgWithAuthTransactionId[] = {
+constexpr uint8_t kRfc5769SampleMsgWithAuthTransactionId[] = {
0x78, 0xad, 0x34, 0x33, 0xc6, 0xad, 0x72, 0xc0, 0x29, 0xda, 0x41, 0x2e
};
-const char kRfc5769SampleMsgWithAuthUsername[] =
+constexpr char kRfc5769SampleMsgWithAuthUsername[] =
"\xe3\x83\x9e\xe3\x83\x88\xe3\x83\xaa\xe3\x83\x83\xe3\x82\xaf\xe3\x82\xb9";
-const char kRfc5769SampleMsgWithAuthPassword[] = "TheMatrIX";
-const char kRfc5769SampleMsgWithAuthNonce[] =
+constexpr char kRfc5769SampleMsgWithAuthPassword[] = "TheMatrIX";
+constexpr char kRfc5769SampleMsgWithAuthNonce[] =
"f//499k954d6OL34oL9FSTvy64sA";
-const char kRfc5769SampleMsgWithAuthRealm[] = "example.org";
+constexpr char kRfc5769SampleMsgWithAuthRealm[] = "example.org";
// 2.1. Sample Request
-const uint8_t kRfc5769SampleRequest[] = {
+constexpr uint8_t kRfc5769SampleRequest[] = {
0x00, 0x01, 0x00, 0x58, // Request type and message length
0x21, 0x12, 0xa4, 0x42, // Magic cookie
0xb7, 0xe7, 0xa7, 0x01, // }
@@ -272,7 +272,7 @@
};
// 2.1. Sample Request
-const uint8_t kSampleRequestMI32[] = {
+constexpr uint8_t kSampleRequestMI32[] = {
0x00, 0x01, 0x00, 0x48, // Request type and message length
0x21, 0x12, 0xa4, 0x42, // Magic cookie
0xb7, 0xe7, 0xa7, 0x01, // }
@@ -299,7 +299,7 @@
};
// 2.2. Sample IPv4 Response
-const uint8_t kRfc5769SampleResponse[] = {
+constexpr uint8_t kRfc5769SampleResponse[] = {
0x01, 0x01, 0x00, 0x3c, // Response type and message length
0x21, 0x12, 0xa4, 0x42, // Magic cookie
0xb7, 0xe7, 0xa7, 0x01, // }
@@ -323,7 +323,7 @@
};
// 2.3. Sample IPv6 Response
-const uint8_t kRfc5769SampleResponseIPv6[] = {
+constexpr uint8_t kRfc5769SampleResponseIPv6[] = {
0x01, 0x01, 0x00, 0x48, // Response type and message length
0x21, 0x12, 0xa4, 0x42, // Magic cookie
0xb7, 0xe7, 0xa7, 0x01, // }
@@ -350,7 +350,7 @@
};
// 2.4. Sample Request with Long-Term Authentication
-const uint8_t kRfc5769SampleRequestLongTermAuth[] = {
+constexpr uint8_t kRfc5769SampleRequestLongTermAuth[] = {
0x00, 0x01, 0x00, 0x60, // Request type and message length
0x21, 0x12, 0xa4, 0x42, // Magic cookie
0x78, 0xad, 0x34, 0x33, // }
@@ -385,7 +385,7 @@
// Length parameter is changed to 0x38 from 0x58.
// AddMessageIntegrity will add MI information and update the length param
// accordingly.
-const uint8_t kRfc5769SampleRequestWithoutMI[] = {
+constexpr uint8_t kRfc5769SampleRequestWithoutMI[] = {
0x00, 0x01, 0x00, 0x38, // Request type and message length
0x21, 0x12, 0xa4, 0x42, // Magic cookie
0xb7, 0xe7, 0xa7, 0x01, // }
@@ -409,7 +409,7 @@
// This HMAC differs from the RFC 5769 SampleRequest message. This differs
// because spec uses 0x20 for the padding where as our implementation uses 0.
-const uint8_t kCalculatedHmac1[] = {
+constexpr uint8_t kCalculatedHmac1[] = {
0x79, 0x07, 0xc2, 0xd2, // }
0xed, 0xbf, 0xea, 0x48, // }
0x0e, 0x4c, 0x76, 0xd8, // } HMAC-SHA1 fingerprint
@@ -421,14 +421,14 @@
// above since the sum is computed including header
// and the header is different since the message is shorter
// than when MESSAGE-INTEGRITY is used.
-const uint8_t kCalculatedHmac1_32[] = {
+constexpr uint8_t kCalculatedHmac1_32[] = {
0xda, 0x39, 0xde, 0x5d, // }
};
// Length parameter is changed to 0x1c from 0x3c.
// AddMessageIntegrity will add MI information and update the length param
// accordingly.
-const uint8_t kRfc5769SampleResponseWithoutMI[] = {
+constexpr uint8_t kRfc5769SampleResponseWithoutMI[] = {
0x01, 0x01, 0x00, 0x1c, // Response type and message length
0x21, 0x12, 0xa4, 0x42, // Magic cookie
0xb7, 0xe7, 0xa7, 0x01, // }
@@ -445,7 +445,7 @@
// This HMAC differs from the RFC 5769 SampleResponse message. This differs
// because spec uses 0x20 for the padding where as our implementation uses 0.
-const uint8_t kCalculatedHmac2[] = {
+constexpr uint8_t kCalculatedHmac2[] = {
0x5d, 0x6b, 0x58, 0xbe, // }
0xad, 0x94, 0xe0, 0x7e, // }
0xef, 0x0d, 0xfc, 0x12, // } HMAC-SHA1 fingerprint
@@ -457,7 +457,7 @@
// above since the sum is computed including header
// and the header is different since the message is shorter
// than when MESSAGE-INTEGRITY is used.
-const uint8_t kCalculatedHmac2_32[] = {
+constexpr uint8_t kCalculatedHmac2_32[] = {
0xe7, 0x5c, 0xd3, 0x16, // }
};
@@ -465,14 +465,14 @@
// A transaction ID without the 'magic cookie' portion
// pjnat's test programs use this transaction ID a lot.
-const uint8_t kTestTransactionId1[] = {0x029, 0x01f, 0x0cd, 0x07c,
- 0x0ba, 0x058, 0x0ab, 0x0d7,
- 0x0f2, 0x041, 0x001, 0x000};
+constexpr uint8_t kTestTransactionId1[] = {0x029, 0x01f, 0x0cd, 0x07c,
+ 0x0ba, 0x058, 0x0ab, 0x0d7,
+ 0x0f2, 0x041, 0x001, 0x000};
// They use this one sometimes too.
-const uint8_t kTestTransactionId2[] = {0x0e3, 0x0a9, 0x046, 0x0e1,
- 0x07c, 0x000, 0x0c2, 0x062,
- 0x054, 0x008, 0x001, 0x000};
+constexpr uint8_t kTestTransactionId2[] = {0x0e3, 0x0a9, 0x046, 0x0e1,
+ 0x07c, 0x000, 0x0c2, 0x062,
+ 0x054, 0x008, 0x001, 0x000};
const in6_addr kIPv6TestAddress1 = {
{{0x24, 0x01, 0xfa, 0x00, 0x00, 0x04, 0x10, 0x00, 0xbe, 0x30, 0x5b, 0xff,
@@ -487,17 +487,17 @@
// Windows in_addr has a union with a uchar[] array first.
const in_addr kIPv4TestAddress1 = {{{0x0ac, 0x017, 0x044, 0x0e6}}};
#endif
-const char kTestUserName1[] = "abcdefgh";
-const char kTestUserName2[] = "abc";
-const char kTestErrorReason[] = "Unauthorized";
-const int kTestErrorClass = 4;
-const int kTestErrorNumber = 1;
-const int kTestErrorCode = 401;
+constexpr char kTestUserName1[] = "abcdefgh";
+constexpr char kTestUserName2[] = "abc";
+constexpr char kTestErrorReason[] = "Unauthorized";
+constexpr int kTestErrorClass = 4;
+constexpr int kTestErrorNumber = 1;
+constexpr int kTestErrorCode = 401;
-const int kTestMessagePort1 = 59977;
-const int kTestMessagePort2 = 47233;
-const int kTestMessagePort3 = 56743;
-const int kTestMessagePort4 = 40444;
+constexpr int kTestMessagePort1 = 59977;
+constexpr int kTestMessagePort2 = 47233;
+constexpr int kTestMessagePort3 = 56743;
+constexpr int kTestMessagePort4 = 40444;
} // namespace
class StunTest : public ::testing::Test {
diff --git a/api/video_codecs/test/video_encoder_software_fallback_wrapper_unittest.cc b/api/video_codecs/test/video_encoder_software_fallback_wrapper_unittest.cc
index 6ac11eb..bb987a6 100644
--- a/api/video_codecs/test/video_encoder_software_fallback_wrapper_unittest.cc
+++ b/api/video_codecs/test/video_encoder_software_fallback_wrapper_unittest.cc
@@ -53,13 +53,16 @@
using ::testing::Return;
using ::testing::ValuesIn;
-const int kWidth = 320;
-const int kHeight = 240;
-const int kNumCores = 2;
-const uint32_t kFramerate = 30;
-const size_t kMaxPayloadSize = 800;
-const int kLowThreshold = 10;
-const int kHighThreshold = 20;
+constexpr int kWidth = 320;
+constexpr int kHeight = 240;
+constexpr int kNumCores = 2;
+constexpr uint32_t kFramerate = 30;
+constexpr size_t kMaxPayloadSize = 800;
+constexpr int kLowThreshold = 10;
+constexpr int kHighThreshold = 20;
+constexpr int kBitrateKbps = 200;
+constexpr int kMinPixelsPerFrame = 1;
+constexpr char kFieldTrial[] = "WebRTC-VP8-Forced-Fallback-Encoder-v2";
const VideoEncoder::Capabilities kCapabilities(false);
const VideoEncoder::Settings kSettings(kCapabilities,
@@ -90,6 +93,7 @@
}
int callback_count_ = 0;
};
+
} // namespace
class VideoEncoderSoftwareFallbackWrapperTestBase : public ::testing::Test {
@@ -486,12 +490,6 @@
fake_sw_encoder_->last_video_frame_->height());
}
-namespace {
-const int kBitrateKbps = 200;
-const int kMinPixelsPerFrame = 1;
-const char kFieldTrial[] = "WebRTC-VP8-Forced-Fallback-Encoder-v2";
-} // namespace
-
class ForcedFallbackTest : public VideoEncoderSoftwareFallbackWrapperTestBase {
public:
explicit ForcedFallbackTest(const Environment& env)
diff --git a/audio/audio_receive_stream_unittest.cc b/audio/audio_receive_stream_unittest.cc
index e969923..c3459b7 100644
--- a/audio/audio_receive_stream_unittest.cc
+++ b/audio/audio_receive_stream_unittest.cc
@@ -65,14 +65,14 @@
return audio_decode_stats;
}
-const uint32_t kRemoteSsrc = 1234;
-const uint32_t kLocalSsrc = 5678;
-const int kJitterBufferDelay = -7;
-const int kPlayoutBufferDelay = 302;
-const unsigned int kSpeechOutputLevel = 99;
-const double kTotalOutputEnergy = 0.25;
-const double kTotalOutputDuration = 0.5;
-const int64_t kPlayoutNtpTimestampMs = 5678;
+constexpr uint32_t kRemoteSsrc = 1234;
+constexpr uint32_t kLocalSsrc = 5678;
+constexpr int kJitterBufferDelay = -7;
+constexpr int kPlayoutBufferDelay = 302;
+constexpr unsigned int kSpeechOutputLevel = 99;
+constexpr double kTotalOutputEnergy = 0.25;
+constexpr double kTotalOutputDuration = 0.5;
+constexpr int64_t kPlayoutNtpTimestampMs = 5678;
const CallReceiveStatistics kCallStats = {678, 234, -12, 567, 78, 890, 123};
const std::pair<int, SdpAudioFormat> kReceiveCodec = {
diff --git a/audio/audio_send_stream_unittest.cc b/audio/audio_send_stream_unittest.cc
index 0cc9912..f7a6b8a 100644
--- a/audio/audio_send_stream_unittest.cc
+++ b/audio/audio_send_stream_unittest.cc
@@ -76,28 +76,28 @@
using ::testing::StrEq;
using ::testing::WithArg;
-const float kTolerance = 0.0001f;
+constexpr float kTolerance = 0.0001f;
-const uint32_t kSsrc = 1234;
+constexpr uint32_t kSsrc = 1234;
const char* kCName = "foo_name";
const std::array<uint32_t, 2> kCsrcs = {5678, 9012};
-const int kAudioLevelId = 2;
-const int kTransportSequenceNumberId = 4;
-const int32_t kEchoDelayMedian = 254;
-const int32_t kEchoDelayStdDev = -3;
-const double kDivergentFilterFraction = 0.2f;
-const double kEchoReturnLoss = -65;
-const double kEchoReturnLossEnhancement = 101;
-const double kResidualEchoLikelihood = -1.0f;
-const double kResidualEchoLikelihoodMax = 23.0f;
+constexpr int kAudioLevelId = 2;
+constexpr int kTransportSequenceNumberId = 4;
+constexpr int32_t kEchoDelayMedian = 254;
+constexpr int32_t kEchoDelayStdDev = -3;
+constexpr double kDivergentFilterFraction = 0.2f;
+constexpr double kEchoReturnLoss = -65;
+constexpr double kEchoReturnLossEnhancement = 101;
+constexpr double kResidualEchoLikelihood = -1.0f;
+constexpr double kResidualEchoLikelihoodMax = 23.0f;
const CallSendStatistics kCallStats = {112, 12, 13456, 17890};
constexpr int kFractionLost = 123;
constexpr int kCumulativeLost = 567;
constexpr uint32_t kInterarrivalJitter = 132;
-const int kTelephoneEventPayloadType = 123;
-const int kTelephoneEventPayloadFrequency = 65432;
-const int kTelephoneEventCode = 45;
-const int kTelephoneEventDuration = 6789;
+constexpr int kTelephoneEventPayloadType = 123;
+constexpr int kTelephoneEventPayloadFrequency = 65432;
+constexpr int kTelephoneEventCode = 45;
+constexpr int kTelephoneEventDuration = 6789;
constexpr int kIsacPayloadType = 103;
const SdpAudioFormat kIsacFormat = {"isac", 16000, 1};
const SdpAudioFormat kOpusFormat = {"opus", 48000, 2};
diff --git a/call/adaptation/resource_adaptation_processor_unittest.cc b/call/adaptation/resource_adaptation_processor_unittest.cc
index d698d03..9d5a68b 100644
--- a/call/adaptation/resource_adaptation_processor_unittest.cc
+++ b/call/adaptation/resource_adaptation_processor_unittest.cc
@@ -40,8 +40,8 @@
using ::testing::Eq;
-const int kDefaultFrameRate = 30;
-const int kDefaultFrameSize = 1280 * 720;
+constexpr int kDefaultFrameRate = 30;
+constexpr int kDefaultFrameSize = 1280 * 720;
constexpr TimeDelta kDefaultTimeout = TimeDelta::Seconds(5);
class VideoSourceRestrictionsListenerForTesting
diff --git a/call/adaptation/video_source_restrictions_unittest.cc b/call/adaptation/video_source_restrictions_unittest.cc
index aac7654..4f83abb 100644
--- a/call/adaptation/video_source_restrictions_unittest.cc
+++ b/call/adaptation/video_source_restrictions_unittest.cc
@@ -18,7 +18,7 @@
namespace {
-const size_t kHdPixels = 1280 * 720;
+constexpr size_t kHdPixels = 1280 * 720;
const VideoSourceRestrictions kUnlimited;
const VideoSourceRestrictions k15fps(std::nullopt, std::nullopt, 15.0);
diff --git a/call/adaptation/video_stream_adapter_unittest.cc b/call/adaptation/video_stream_adapter_unittest.cc
index 16d070b..763ad2f 100644
--- a/call/adaptation/video_stream_adapter_unittest.cc
+++ b/call/adaptation/video_stream_adapter_unittest.cc
@@ -38,14 +38,14 @@
namespace {
-const int kBalancedHighResolutionPixels = 1280 * 720;
-const int kBalancedHighFrameRateFps = 30;
+constexpr int kBalancedHighResolutionPixels = 1280 * 720;
+constexpr int kBalancedHighFrameRateFps = 30;
-const int kBalancedMediumResolutionPixels = 640 * 480;
-const int kBalancedMediumFrameRateFps = 20;
+constexpr int kBalancedMediumResolutionPixels = 640 * 480;
+constexpr int kBalancedMediumFrameRateFps = 20;
-const int kBalancedLowResolutionPixels = 320 * 240;
-const int kBalancedLowFrameRateFps = 10;
+constexpr int kBalancedLowResolutionPixels = 320 * 240;
+constexpr int kBalancedLowFrameRateFps = 10;
std::string BalancedFieldTrialConfig() {
return "WebRTC-Video-BalancedDegradationSettings/pixels:" +
diff --git a/call/bitrate_allocator_unittest.cc b/call/bitrate_allocator_unittest.cc
index 13f00ab..b4bb332 100644
--- a/call/bitrate_allocator_unittest.cc
+++ b/call/bitrate_allocator_unittest.cc
@@ -100,7 +100,7 @@
};
constexpr int64_t kDefaultProbingIntervalMs = 3000;
-const double kDefaultBitratePriority = 1.0;
+constexpr double kDefaultBitratePriority = 1.0;
TargetTransferRate CreateTargetRateMessage(uint32_t target_bitrate_bps,
uint8_t fraction_loss,
diff --git a/call/rtp_payload_params_unittest.cc b/call/rtp_payload_params_unittest.cc
index e38235f..377a0e2 100644
--- a/call/rtp_payload_params_unittest.cc
+++ b/call/rtp_payload_params_unittest.cc
@@ -54,14 +54,14 @@
using GenericDescriptorInfo = RTPVideoHeader::GenericDescriptorInfo;
-const uint32_t kSsrc1 = 12345;
-const uint32_t kSsrc2 = 23456;
-const int16_t kPictureId = 123;
-const int16_t kTl0PicIdx = 20;
-const uint8_t kTemporalIdx = 1;
-const int16_t kInitialPictureId1 = 222;
-const int16_t kInitialTl0PicIdx1 = 99;
-const int64_t kDontCare = 0;
+constexpr uint32_t kSsrc1 = 12345;
+constexpr uint32_t kSsrc2 = 23456;
+constexpr int16_t kPictureId = 123;
+constexpr int16_t kTl0PicIdx = 20;
+constexpr uint8_t kTemporalIdx = 1;
+constexpr int16_t kInitialPictureId1 = 222;
+constexpr int16_t kInitialTl0PicIdx1 = 99;
+constexpr int64_t kDontCare = 0;
TEST(RtpPayloadParamsTest, InfoMappedToRtpVideoHeader_Vp8) {
RtpPayloadState state2;
diff --git a/call/rtp_video_sender_unittest.cc b/call/rtp_video_sender_unittest.cc
index 9465967..150f775 100644
--- a/call/rtp_video_sender_unittest.cc
+++ b/call/rtp_video_sender_unittest.cc
@@ -85,19 +85,19 @@
using ::testing::SaveArg;
using ::testing::SizeIs;
-const int8_t kPayloadType = 96;
-const int8_t kPayloadType2 = 98;
-const uint32_t kSsrc1 = 12345;
-const uint32_t kSsrc2 = 23456;
-const uint32_t kRtxSsrc1 = 34567;
-const uint32_t kRtxSsrc2 = 45678;
-const int16_t kInitialPictureId1 = 222;
-const int16_t kInitialPictureId2 = 44;
-const int16_t kInitialTl0PicIdx1 = 99;
-const int16_t kInitialTl0PicIdx2 = 199;
-const int64_t kRetransmitWindowSizeMs = 500;
-const int kTransportsSequenceExtensionId = 7;
-const int kDependencyDescriptorExtensionId = 8;
+constexpr int8_t kPayloadType = 96;
+constexpr int8_t kPayloadType2 = 98;
+constexpr uint32_t kSsrc1 = 12345;
+constexpr uint32_t kSsrc2 = 23456;
+constexpr uint32_t kRtxSsrc1 = 34567;
+constexpr uint32_t kRtxSsrc2 = 45678;
+constexpr int16_t kInitialPictureId1 = 222;
+constexpr int16_t kInitialPictureId2 = 44;
+constexpr int16_t kInitialTl0PicIdx1 = 99;
+constexpr int16_t kInitialTl0PicIdx2 = 199;
+constexpr int64_t kRetransmitWindowSizeMs = 500;
+constexpr int kTransportsSequenceExtensionId = 7;
+constexpr int kDependencyDescriptorExtensionId = 8;
class MockRtcpIntraFrameObserver : public RtcpIntraFrameObserver {
public:
diff --git a/common_audio/channel_buffer_unittest.cc b/common_audio/channel_buffer_unittest.cc
index a8b6489..5a0708d 100644
--- a/common_audio/channel_buffer_unittest.cc
+++ b/common_audio/channel_buffer_unittest.cc
@@ -17,9 +17,9 @@
namespace {
-const size_t kNumFrames = 480u;
-const size_t kStereo = 2u;
-const size_t kMono = 1u;
+constexpr size_t kNumFrames = 480u;
+constexpr size_t kStereo = 2u;
+constexpr size_t kMono = 1u;
void ExpectNumChannels(const IFChannelBuffer& ifchb, size_t num_channels) {
EXPECT_EQ(ifchb.ibuf_const()->num_channels(), num_channels);
diff --git a/common_audio/resampler/push_sinc_resampler_unittest.cc b/common_audio/resampler/push_sinc_resampler_unittest.cc
index d3cfe9d..30ebfb2 100644
--- a/common_audio/resampler/push_sinc_resampler_unittest.cc
+++ b/common_audio/resampler/push_sinc_resampler_unittest.cc
@@ -25,7 +25,7 @@
namespace {
// Almost all conversions have an RMS error of around -14 dbFS.
-const double kResamplingRMSError = -14.42;
+constexpr double kResamplingRMSError = -14.42;
// Used to convert errors to dbFS.
template <typename T>
diff --git a/common_audio/resampler/resampler_unittest.cc b/common_audio/resampler/resampler_unittest.cc
index b8043ec..5a919c0 100644
--- a/common_audio/resampler/resampler_unittest.cc
+++ b/common_audio/resampler/resampler_unittest.cc
@@ -21,11 +21,11 @@
namespace {
// Rates we must support.
-const int kMaxRate = 96000;
-const int kRates[] = {8000, 16000, 32000, 44000, 48000, kMaxRate};
-const size_t kRatesSize = sizeof(kRates) / sizeof(*kRates);
-const int kMaxChannels = 2;
-const size_t kDataSize = static_cast<size_t>(kMaxChannels * kMaxRate / 100);
+constexpr int kMaxRate = 96000;
+constexpr int kRates[] = {8000, 16000, 32000, 44000, 48000, kMaxRate};
+constexpr size_t kRatesSize = sizeof(kRates) / sizeof(*kRates);
+constexpr int kMaxChannels = 2;
+constexpr size_t kDataSize = static_cast<size_t>(kMaxChannels * kMaxRate / 100);
// TODO(andrew): should we be supporting these combinations?
bool ValidRates(int in_rate, int out_rate) {
diff --git a/common_audio/signal_processing/real_fft_unittest.cc b/common_audio/signal_processing/real_fft_unittest.cc
index 7cabe7d..4162e15 100644
--- a/common_audio/signal_processing/real_fft_unittest.cc
+++ b/common_audio/signal_processing/real_fft_unittest.cc
@@ -17,16 +17,16 @@
namespace {
// FFT order.
-const int kOrder = 5;
+constexpr int kOrder = 5;
// Lengths for real FFT's time and frequency bufffers.
// For N-point FFT, the length requirements from API are N and N+2 respectively.
-const int kTimeDataLength = 1 << kOrder;
-const int kFreqDataLength = (1 << kOrder) + 2;
+constexpr int kTimeDataLength = 1 << kOrder;
+constexpr int kFreqDataLength = (1 << kOrder) + 2;
// For complex FFT's time and freq buffer. The implementation requires
// 2*N 16-bit words.
-const int kComplexFftDataLength = 2 << kOrder;
+constexpr int kComplexFftDataLength = 2 << kOrder;
// Reference data for time signal.
-const int16_t kRefData[kTimeDataLength] = {
+constexpr int16_t kRefData[kTimeDataLength] = {
11739, 6848, -8688, 31980, -30295, 25242, 27085, 19410,
-26299, 15607, -10791, 11778, -23819, 14498, -25772, 10076,
1173, 6848, -8688, 31980, -30295, 2522, 27085, 19410,
diff --git a/common_audio/vad/vad_filterbank_unittest.cc b/common_audio/vad/vad_filterbank_unittest.cc
index 51d8d0f..18e9f70 100644
--- a/common_audio/vad/vad_filterbank_unittest.cc
+++ b/common_audio/vad/vad_filterbank_unittest.cc
@@ -21,7 +21,7 @@
namespace webrtc {
namespace test {
-const int kNumValidFrameLengths = 3;
+constexpr int kNumValidFrameLengths = 3;
TEST_F(VadTest, vad_filterbank) {
VadInstT* self = reinterpret_cast<VadInstT*>(malloc(sizeof(VadInstT)));
diff --git a/common_video/h264/pps_parser_unittest.cc b/common_video/h264/pps_parser_unittest.cc
index e3a9c08..e0c1480 100644
--- a/common_video/h264/pps_parser_unittest.cc
+++ b/common_video/h264/pps_parser_unittest.cc
@@ -26,14 +26,14 @@
namespace {
// Contains enough of the image slice to contain slice QP.
-const uint8_t kH264BitstreamChunk[] = {
+constexpr uint8_t kH264BitstreamChunk[] = {
0x00, 0x00, 0x00, 0x01, 0x67, 0x42, 0x80, 0x20, 0xda, 0x01, 0x40, 0x16,
0xe8, 0x06, 0xd0, 0xa1, 0x35, 0x00, 0x00, 0x00, 0x01, 0x68, 0xce, 0x06,
0xe2, 0x00, 0x00, 0x00, 0x01, 0x65, 0xb8, 0x40, 0xf0, 0x8c, 0x03, 0xf2,
0x75, 0x67, 0xad, 0x41, 0x64, 0x24, 0x0e, 0xa0, 0xb2, 0x12, 0x1e, 0xf8,
};
-const size_t kPpsBufferMaxSize = 256;
-const uint32_t kIgnored = 0;
+constexpr size_t kPpsBufferMaxSize = 256;
+constexpr uint32_t kIgnored = 0;
} // namespace
void WritePps(const PpsParser::PpsState& pps,
diff --git a/common_video/h264/sps_vui_rewriter_unittest.cc b/common_video/h264/sps_vui_rewriter_unittest.cc
index 854196a..cc88531 100644
--- a/common_video/h264/sps_vui_rewriter_unittest.cc
+++ b/common_video/h264/sps_vui_rewriter_unittest.cc
@@ -35,15 +35,15 @@
kRewriteRequired_VuiSuboptimal,
};
-const size_t kSpsBufferMaxSize = 256;
-const size_t kWidth = 640;
-const size_t kHeight = 480;
+constexpr size_t kSpsBufferMaxSize = 256;
+constexpr size_t kWidth = 640;
+constexpr size_t kHeight = 480;
-const uint8_t kStartSequence[] = {0x00, 0x00, 0x00, 0x01};
-const uint8_t kAud[] = {H264::NaluType::kAud, 0x09, 0x10};
-const uint8_t kSpsNaluType[] = {H264::NaluType::kSps};
-const uint8_t kIdr1[] = {H264::NaluType::kIdr, 0xFF, 0x00, 0x00, 0x04};
-const uint8_t kIdr2[] = {H264::NaluType::kIdr, 0xFF, 0x00, 0x11};
+constexpr uint8_t kStartSequence[] = {0x00, 0x00, 0x00, 0x01};
+constexpr uint8_t kAud[] = {H264::NaluType::kAud, 0x09, 0x10};
+constexpr uint8_t kSpsNaluType[] = {H264::NaluType::kSps};
+constexpr uint8_t kIdr1[] = {H264::NaluType::kIdr, 0xFF, 0x00, 0x00, 0x04};
+constexpr uint8_t kIdr2[] = {H264::NaluType::kIdr, 0xFF, 0x00, 0x11};
struct VuiHeader {
uint32_t vui_parameters_present_flag;
diff --git a/common_video/h265/h265_bitstream_parser_unittest.cc b/common_video/h265/h265_bitstream_parser_unittest.cc
index 754300b..ec629ea 100644
--- a/common_video/h265/h265_bitstream_parser_unittest.cc
+++ b/common_video/h265/h265_bitstream_parser_unittest.cc
@@ -24,7 +24,7 @@
namespace webrtc {
// VPS/SPS/PPS part of below chunk.
-const uint8_t kH265VpsSpsPps[] = {
+constexpr uint8_t kH265VpsSpsPps[] = {
0x00, 0x00, 0x00, 0x01, 0x40, 0x01, 0x0c, 0x01, 0xff, 0xff, 0x04, 0x08,
0x00, 0x00, 0x03, 0x00, 0x9d, 0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x78,
0x95, 0x98, 0x09, 0x00, 0x00, 0x00, 0x01, 0x42, 0x01, 0x01, 0x04, 0x08,
@@ -34,7 +34,7 @@
0x00, 0x00, 0x00, 0x01, 0x44, 0x01, 0xc1, 0x72, 0xb4, 0x62, 0x40};
// Contains enough of the image slice to contain slice QP.
-const uint8_t kH265BitstreamChunk[] = {
+constexpr uint8_t kH265BitstreamChunk[] = {
0x00, 0x00, 0x00, 0x01, 0x40, 0x01, 0x0c, 0x01, 0xff, 0xff, 0x04, 0x08,
0x00, 0x00, 0x03, 0x00, 0x9d, 0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x78,
0x95, 0x98, 0x09, 0x00, 0x00, 0x00, 0x01, 0x42, 0x01, 0x01, 0x04, 0x08,
@@ -48,13 +48,13 @@
};
// Contains enough of the image slice to contain slice QP.
-const uint8_t kH265BitstreamNextImageSliceChunk[] = {
+constexpr uint8_t kH265BitstreamNextImageSliceChunk[] = {
0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xe0, 0x24, 0xbf, 0x82, 0x05,
0x21, 0x12, 0x22, 0xa3, 0x29, 0xb4, 0x21, 0x91, 0xa1, 0xaa, 0x40,
};
// Contains enough of the image slice to contain slice QP.
-const uint8_t kH265SliceChunk[] = {
+constexpr uint8_t kH265SliceChunk[] = {
0xa4, 0x04, 0x55, 0xa2, 0x6d, 0xce, 0xc0, 0xc3, 0xed, 0x0b, 0xac, 0xbc,
0x00, 0xc4, 0x44, 0x2e, 0xf7, 0x55, 0xfd, 0x05, 0x86, 0x92, 0x19, 0xdf,
0x58, 0xec, 0x38, 0x36, 0xb7, 0x7c, 0x00, 0x15, 0x33, 0x78, 0x03, 0x67,
@@ -62,13 +62,13 @@
};
// Contains enough of data for the second slice of a frame.
-const uint8_t kH265SecondSliceChunkInAFrame[] = {
+constexpr uint8_t kH265SecondSliceChunkInAFrame[] = {
0x02, 0x01, 0x23, 0xfc, 0x20, 0x22, 0xad, 0x13, 0x68, 0xce, 0xc3, 0x5a,
0x00, 0xdc, 0xeb, 0x86, 0x4b, 0x0b, 0xa7, 0x6a, 0xe1, 0x9c, 0x5c, 0xea,
};
// Contains short term ref pic set slice to verify Log2Ceiling path.
-const uint8_t kH265SliceStrChunk[] = {
+constexpr uint8_t kH265SliceStrChunk[] = {
0x00, 0x00, 0x00, 0x01, 0x40, 0x01, 0x0c, 0x01, 0xff, 0xff, 0x01, 0x00,
0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00,
0x00, 0x99, 0x94, 0x90, 0x24, 0x00, 0x00, 0x00, 0x01, 0x42, 0x01, 0x01,
@@ -82,7 +82,7 @@
};
// Contains enough of the image slice to contain invalid slice QP -52.
-const uint8_t kH265BitstreamInvalidQPChunk[] = {
+constexpr uint8_t kH265BitstreamInvalidQPChunk[] = {
0x00, 0x00, 0x00, 0x01, 0x40, 0x01, 0x0c, 0x01, 0xff, 0xff, 0x04, 0x08,
0x00, 0x00, 0x03, 0x00, 0x9d, 0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x78,
0x95, 0x98, 0x09, 0x00, 0x00, 0x00, 0x01, 0x42, 0x01, 0x01, 0x04, 0x08,
@@ -94,7 +94,7 @@
};
// Contains enough of the image slice to contain invalid slice QP 52.
-const uint8_t kH265BitstreamInvalidQPChunk52[] = {
+constexpr uint8_t kH265BitstreamInvalidQPChunk52[] = {
0x00, 0x00, 0x00, 0x01, 0x40, 0x01, 0x0c, 0x01, 0xff, 0xff, 0x04, 0x08,
0x00, 0x00, 0x03, 0x00, 0x9d, 0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x78,
0x95, 0x98, 0x09, 0x00, 0x00, 0x00, 0x01, 0x42, 0x01, 0x01, 0x04, 0x08,
@@ -108,7 +108,7 @@
// Bitstream that contains pred_weight_table. Contains enough data to parse
// over pred_weight_table for slice QP. This is bear.hevc from Chromium source,
// used for H265 hardware decoder's parser test, with some slices truncated.
-const uint8_t kH265BitstreamWithPredWeightTable[] = {
+constexpr uint8_t kH265BitstreamWithPredWeightTable[] = {
0x00, 0x00, 0x00, 0x01, 0x40, 0x01, 0x0c, 0x01, 0xff, 0xff, 0x01, 0x60,
0x00, 0x00, 0x03, 0x00, 0x80, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00,
0x3c, 0x95, 0xc0, 0x90, 0x00, 0x00, 0x00, 0x01, 0x42, 0x01, 0x01, 0x01,
diff --git a/media/base/sdp_video_format_utils_unittest.cc b/media/base/sdp_video_format_utils_unittest.cc
index cde1e30..f94aff3 100644
--- a/media/base/sdp_video_format_utils_unittest.cc
+++ b/media/base/sdp_video_format_utils_unittest.cc
@@ -19,11 +19,11 @@
namespace webrtc {
namespace {
// Max frame rate for VP8 and VP9 video.
-const char kVPxFmtpMaxFrameRate[] = "max-fr";
+constexpr char kVPxFmtpMaxFrameRate[] = "max-fr";
// Max frame size for VP8 and VP9 video.
-const char kVPxFmtpMaxFrameSize[] = "max-fs";
+constexpr char kVPxFmtpMaxFrameSize[] = "max-fs";
// Nonstandard per-layer PLI for video.
-const char kCodecParamPerLayerPictureLossIndication[] =
+constexpr char kCodecParamPerLayerPictureLossIndication[] =
"x-google-per-layer-pli";
} // namespace
diff --git a/media/engine/webrtc_video_engine_unittest.cc b/media/engine/webrtc_video_engine_unittest.cc
index 5f22336..c9b1c8d 100644
--- a/media/engine/webrtc_video_engine_unittest.cc
+++ b/media/engine/webrtc_video_engine_unittest.cc
@@ -152,26 +152,26 @@
using ::webrtc::test::FunctionVideoDecoderFactory;
using ::webrtc::test::RtcpPacketParser;
-const uint8_t kRedRtxPayloadType = 125;
+constexpr uint8_t kRedRtxPayloadType = 125;
-const uint32_t kSsrc = 1234u;
-const uint32_t kSsrcs4[] = {1, 2, 3, 4};
-const int kVideoWidth = 640;
-const int kVideoHeight = 360;
-const int kFramerate = 30;
+constexpr uint32_t kSsrc = 1234u;
+constexpr uint32_t kSsrcs4[] = {1, 2, 3, 4};
+constexpr int kVideoWidth = 640;
+constexpr int kVideoHeight = 360;
+constexpr int kFramerate = 30;
constexpr TimeDelta kFrameDuration = TimeDelta::Millis(1000 / kFramerate);
-const uint32_t kSsrcs1[] = {1};
-const uint32_t kSsrcs3[] = {1, 2, 3};
-const uint32_t kRtxSsrcs1[] = {4};
-const uint32_t kFlexfecSsrc = 5;
-const uint32_t kIncomingUnsignalledSsrc = 0xC0FFEE;
-const int64_t kUnsignalledReceiveStreamCooldownMs = 500;
+constexpr uint32_t kSsrcs1[] = {1};
+constexpr uint32_t kSsrcs3[] = {1, 2, 3};
+constexpr uint32_t kRtxSsrcs1[] = {4};
+constexpr uint32_t kFlexfecSsrc = 5;
+constexpr uint32_t kIncomingUnsignalledSsrc = 0xC0FFEE;
+constexpr int64_t kUnsignalledReceiveStreamCooldownMs = 500;
constexpr uint32_t kRtpHeaderSize = 12;
constexpr size_t kNumSimulcastStreams = 3;
-const char kUnsupportedExtensionName[] =
+constexpr char kUnsupportedExtensionName[] =
"urn:ietf:params:rtp-hdrext:unsupported";
Codec RemoveFeedbackParams(Codec&& codec) {
diff --git a/media/engine/webrtc_voice_engine_unittest.cc b/media/engine/webrtc_voice_engine_unittest.cc
index 6dfe2bb..b30d44a 100644
--- a/media/engine/webrtc_voice_engine_unittest.cc
+++ b/media/engine/webrtc_voice_engine_unittest.cc
@@ -122,13 +122,13 @@
const webrtc::Codec kUnknownCodec =
webrtc::CreateAudioCodec(127, "XYZ", 32000, 1);
-const uint32_t kSsrc0 = 0;
-const uint32_t kSsrc1 = 1;
-const uint32_t kSsrcX = 0x99;
-const uint32_t kSsrcY = 0x17;
-const uint32_t kSsrcZ = 0x42;
-const uint32_t kSsrcW = 0x02;
-const uint32_t kSsrcs4[] = {11, 200, 30, 44};
+constexpr uint32_t kSsrc0 = 0;
+constexpr uint32_t kSsrc1 = 1;
+constexpr uint32_t kSsrcX = 0x99;
+constexpr uint32_t kSsrcY = 0x17;
+constexpr uint32_t kSsrcZ = 0x42;
+constexpr uint32_t kSsrcW = 0x02;
+constexpr uint32_t kSsrcs4[] = {11, 200, 30, 44};
constexpr int kRtpHistoryMs = 5000;
diff --git a/modules/audio_coding/codecs/cng/audio_encoder_cng_unittest.cc b/modules/audio_coding/codecs/cng/audio_encoder_cng_unittest.cc
index 4f5e3af..9ba69d1 100644
--- a/modules/audio_coding/codecs/cng/audio_encoder_cng_unittest.cc
+++ b/modules/audio_coding/codecs/cng/audio_encoder_cng_unittest.cc
@@ -41,9 +41,9 @@
namespace webrtc {
namespace {
-const size_t kMaxNumSamples = 48 * 10 * 2; // 10 ms @ 48 kHz stereo.
-const size_t kMockReturnEncodedBytes = 17;
-const int kCngPayloadType = 18;
+constexpr size_t kMaxNumSamples = 48 * 10 * 2; // 10 ms @ 48 kHz stereo.
+constexpr size_t kMockReturnEncodedBytes = 17;
+constexpr int kCngPayloadType = 18;
} // namespace
class AudioEncoderCngTest : public ::testing::Test {
diff --git a/modules/audio_coding/codecs/opus/opus_unittest.cc b/modules/audio_coding/codecs/opus/opus_unittest.cc
index af00347..3d86918 100644
--- a/modules/audio_coding/codecs/opus/opus_unittest.cc
+++ b/modules/audio_coding/codecs/opus/opus_unittest.cc
@@ -113,7 +113,7 @@
using ::testing::Values;
// Maximum number of bytes in output bitstream.
-const size_t kMaxBytes = 2000;
+constexpr size_t kMaxBytes = 2000;
class OpusTest
: public TestWithParam<::testing::tuple<size_t, int, bool, int, int>> {
diff --git a/modules/audio_coding/codecs/red/audio_encoder_copy_red_unittest.cc b/modules/audio_coding/codecs/red/audio_encoder_copy_red_unittest.cc
index 0349926..14d6e73 100644
--- a/modules/audio_coding/codecs/red/audio_encoder_copy_red_unittest.cc
+++ b/modules/audio_coding/codecs/red/audio_encoder_copy_red_unittest.cc
@@ -43,8 +43,8 @@
namespace webrtc {
namespace {
-const size_t kMaxNumSamples = 48 * 10 * 2; // 10 ms @ 48 kHz stereo.
-const size_t kRedLastHeaderLength =
+constexpr size_t kMaxNumSamples = 48 * 10 * 2; // 10 ms @ 48 kHz stereo.
+constexpr size_t kRedLastHeaderLength =
1; // 1 byte RED header for the last element.
} // namespace
diff --git a/modules/audio_coding/neteq/expand_unittest.cc b/modules/audio_coding/neteq/expand_unittest.cc
index 6e2c283..c641c1c 100644
--- a/modules/audio_coding/neteq/expand_unittest.cc
+++ b/modules/audio_coding/neteq/expand_unittest.cc
@@ -28,6 +28,28 @@
namespace webrtc {
+namespace {
+class FakeStatisticsCalculator : public StatisticsCalculator {
+ public:
+ FakeStatisticsCalculator(TickTimer* tick_timer)
+ : StatisticsCalculator(tick_timer) {}
+
+ void LogDelayedPacketOutageEvent(int num_samples, int /* fs_hz */) override {
+ last_outage_duration_samples_ = num_samples;
+ }
+
+ int last_outage_duration_samples() const {
+ return last_outage_duration_samples_;
+ }
+
+ private:
+ int last_outage_duration_samples_ = 0;
+};
+
+// This is the same size that is given to the SyncBuffer object in NetEq.
+constexpr size_t kNetEqSyncBufferLengthMs = 720;
+} // namespace
+
TEST(Expand, CreateAndDestroy) {
int fs = 8000;
size_t channels = 1;
@@ -54,28 +76,6 @@
delete expand;
}
-namespace {
-class FakeStatisticsCalculator : public StatisticsCalculator {
- public:
- FakeStatisticsCalculator(TickTimer* tick_timer)
- : StatisticsCalculator(tick_timer) {}
-
- void LogDelayedPacketOutageEvent(int num_samples, int /* fs_hz */) override {
- last_outage_duration_samples_ = num_samples;
- }
-
- int last_outage_duration_samples() const {
- return last_outage_duration_samples_;
- }
-
- private:
- int last_outage_duration_samples_ = 0;
-};
-
-// This is the same size that is given to the SyncBuffer object in NetEq.
-const size_t kNetEqSyncBufferLengthMs = 720;
-} // namespace
-
class ExpandTest : public ::testing::Test {
protected:
ExpandTest()
diff --git a/modules/audio_coding/neteq/merge_unittest.cc b/modules/audio_coding/neteq/merge_unittest.cc
index eb5ee93..140b3c7 100644
--- a/modules/audio_coding/neteq/merge_unittest.cc
+++ b/modules/audio_coding/neteq/merge_unittest.cc
@@ -43,7 +43,7 @@
namespace {
// This is the same size that is given to the SyncBuffer object in NetEq.
-const size_t kNetEqSyncBufferLengthMs = 720;
+constexpr size_t kNetEqSyncBufferLengthMs = 720;
} // namespace
class MergeTest : public testing::TestWithParam<size_t> {
diff --git a/modules/audio_coding/neteq/nack_tracker_unittest.cc b/modules/audio_coding/neteq/nack_tracker_unittest.cc
index 1aca036..2830a5b 100644
--- a/modules/audio_coding/neteq/nack_tracker_unittest.cc
+++ b/modules/audio_coding/neteq/nack_tracker_unittest.cc
@@ -23,10 +23,10 @@
namespace webrtc {
namespace {
-const int kSampleRateHz = 16000;
-const int kPacketSizeMs = 30;
-const uint32_t kTimestampIncrement = 480; // 30 ms.
-const int64_t kShortRoundTripTimeMs = 1;
+constexpr int kSampleRateHz = 16000;
+constexpr int kPacketSizeMs = 30;
+constexpr uint32_t kTimestampIncrement = 480; // 30 ms.
+constexpr int64_t kShortRoundTripTimeMs = 1;
bool IsNackListCorrect(const std::vector<uint16_t>& nack_list,
const uint16_t* lost_sequence_numbers,
diff --git a/modules/audio_coding/neteq/time_stretch_unittest.cc b/modules/audio_coding/neteq/time_stretch_unittest.cc
index 539312a..0cf9fd3 100644
--- a/modules/audio_coding/neteq/time_stretch_unittest.cc
+++ b/modules/audio_coding/neteq/time_stretch_unittest.cc
@@ -28,7 +28,7 @@
namespace webrtc {
namespace {
-const size_t kNumChannels = 1;
+constexpr size_t kNumChannels = 1;
} // namespace
TEST(TimeStretch, CreateAndDestroy) {
diff --git a/modules/audio_coding/neteq/tools/packet_unittest.cc b/modules/audio_coding/neteq/tools/packet_unittest.cc
index df516d8..f90ca5f 100644
--- a/modules/audio_coding/neteq/tools/packet_unittest.cc
+++ b/modules/audio_coding/neteq/tools/packet_unittest.cc
@@ -25,7 +25,7 @@
namespace test {
namespace {
-const int kHeaderLengthBytes = 12;
+constexpr int kHeaderLengthBytes = 12;
void MakeRtpHeader(int payload_type,
int seq_number,
diff --git a/modules/audio_device/fine_audio_buffer_unittest.cc b/modules/audio_device/fine_audio_buffer_unittest.cc
index 531f646..beb6ae3 100644
--- a/modules/audio_device/fine_audio_buffer_unittest.cc
+++ b/modules/audio_device/fine_audio_buffer_unittest.cc
@@ -28,9 +28,9 @@
namespace webrtc {
-const int kSampleRate = 44100;
-const int kChannels = 2;
-const int kSamplesPer10Ms = kSampleRate * 10 / 1000;
+constexpr int kSampleRate = 44100;
+constexpr int kChannels = 2;
+constexpr int kSamplesPer10Ms = kSampleRate * 10 / 1000;
// The fake audio data is 0,1,..SCHAR_MAX-1,0,1,... This is to make it easy
// to detect errors. This function verifies that the buffers contain such data.
diff --git a/modules/audio_mixer/audio_mixer_impl_unittest.cc b/modules/audio_mixer/audio_mixer_impl_unittest.cc
index 82d2419..9cd6b42 100644
--- a/modules/audio_mixer/audio_mixer_impl_unittest.cc
+++ b/modules/audio_mixer/audio_mixer_impl_unittest.cc
@@ -45,7 +45,7 @@
namespace {
constexpr int kDefaultSampleRateHz = 48000;
-const char kSourceCountHistogramName[] =
+constexpr char kSourceCountHistogramName[] =
"WebRTC.Audio.AudioMixer.NewHighestSourceCount";
// Utility function that resets the frame member variables with
diff --git a/modules/audio_processing/agc/loudness_histogram_unittest.cc b/modules/audio_processing/agc/loudness_histogram_unittest.cc
index a4f1020..6e2157b 100644
--- a/modules/audio_processing/agc/loudness_histogram_unittest.cc
+++ b/modules/audio_processing/agc/loudness_histogram_unittest.cc
@@ -33,7 +33,7 @@
double loudness;
};
-const double kRelativeErrTol = 1e-10;
+constexpr double kRelativeErrTol = 1e-10;
class LoudnessHistogramTest : public ::testing::Test {
protected:
diff --git a/modules/audio_processing/audio_buffer_unittest.cc b/modules/audio_processing/audio_buffer_unittest.cc
index 19711c6..b2b928b 100644
--- a/modules/audio_processing/audio_buffer_unittest.cc
+++ b/modules/audio_processing/audio_buffer_unittest.cc
@@ -22,9 +22,9 @@
namespace {
-const size_t kSampleRateHz = 48000u;
-const size_t kStereo = 2u;
-const size_t kMono = 1u;
+constexpr size_t kSampleRateHz = 48000u;
+constexpr size_t kStereo = 2u;
+constexpr size_t kMono = 1u;
void ExpectNumChannels(const AudioBuffer& ab, size_t num_channels) {
EXPECT_EQ(ab.num_channels(), num_channels);
diff --git a/modules/audio_processing/audio_processing_unittest.cc b/modules/audio_processing/audio_processing_unittest.cc
index 6882031..61f00de 100644
--- a/modules/audio_processing/audio_processing_unittest.cc
+++ b/modules/audio_processing/audio_processing_unittest.cc
@@ -85,7 +85,7 @@
// All sample rates used by APM internally during processing. Other input /
// output rates are resampled to / from one of these.
-const int kProcessSampleRates[] = {16000, 32000, 48000};
+constexpr int kProcessSampleRates[] = {16000, 32000, 48000};
enum StreamDirection { kForward = 0, kReverse };
diff --git a/modules/audio_processing/echo_control_mobile_bit_exact_unittest.cc b/modules/audio_processing/echo_control_mobile_bit_exact_unittest.cc
index 4491054..3b495a0 100644
--- a/modules/audio_processing/echo_control_mobile_bit_exact_unittest.cc
+++ b/modules/audio_processing/echo_control_mobile_bit_exact_unittest.cc
@@ -26,7 +26,7 @@
// TODO(peah): Increase the number of frames to proces when the issue of
// non repeatable test results have been found.
-const int kNumFramesToProcess = 200;
+constexpr int kNumFramesToProcess = 200;
void SetupComponent(int sample_rate_hz,
EchoControlMobileImpl::RoutingMode routing_mode,
diff --git a/modules/audio_processing/gain_control_unittest.cc b/modules/audio_processing/gain_control_unittest.cc
index 050d220..7db0cd3 100644
--- a/modules/audio_processing/gain_control_unittest.cc
+++ b/modules/audio_processing/gain_control_unittest.cc
@@ -26,7 +26,7 @@
namespace webrtc {
namespace {
-const int kNumFramesToProcess = 100;
+constexpr int kNumFramesToProcess = 100;
void ProcessOneFrame(int sample_rate_hz,
AudioBuffer* render_audio_buffer,
diff --git a/modules/audio_processing/splitting_filter_unittest.cc b/modules/audio_processing/splitting_filter_unittest.cc
index 9c6a793..773f4c9 100644
--- a/modules/audio_processing/splitting_filter_unittest.cc
+++ b/modules/audio_processing/splitting_filter_unittest.cc
@@ -21,8 +21,8 @@
namespace webrtc {
namespace {
-const size_t kSamplesPer16kHzChannel = 160;
-const size_t kSamplesPer48kHzChannel = 480;
+constexpr size_t kSamplesPer16kHzChannel = 160;
+constexpr size_t kSamplesPer48kHzChannel = 480;
} // namespace
diff --git a/modules/audio_processing/utility/delay_estimator_unittest.cc b/modules/audio_processing/utility/delay_estimator_unittest.cc
index ba77688f..11b28fb 100644
--- a/modules/audio_processing/utility/delay_estimator_unittest.cc
+++ b/modules/audio_processing/utility/delay_estimator_unittest.cc
@@ -30,11 +30,11 @@
// Length of binary spectrum sequence.
constexpr int kSequenceLength = 400;
-const int kDifferentHistorySize = 3;
-const int kDifferentLookahead = 1;
+constexpr int kDifferentHistorySize = 3;
+constexpr int kDifferentLookahead = 1;
-const int kEnable[] = {0, 1};
-const size_t kSizeEnable = sizeof(kEnable) / sizeof(*kEnable);
+constexpr int kEnable[] = {0, 1};
+constexpr size_t kSizeEnable = sizeof(kEnable) / sizeof(*kEnable);
class DelayEstimatorTest : public ::testing::Test {
protected:
diff --git a/modules/audio_processing/vad/voice_activity_detector_unittest.cc b/modules/audio_processing/vad/voice_activity_detector_unittest.cc
index 5922c8b..410209e 100644
--- a/modules/audio_processing/vad/voice_activity_detector_unittest.cc
+++ b/modules/audio_processing/vad/voice_activity_detector_unittest.cc
@@ -24,11 +24,11 @@
namespace webrtc {
namespace {
-const int kStartTimeSec = 16;
-const float kMeanSpeechProbability = 0.3f;
-const float kMaxNoiseProbability = 0.1f;
-const size_t kNumChunks = 300u;
-const size_t kNumChunksPerIsacBlock = 3;
+constexpr int kStartTimeSec = 16;
+constexpr float kMeanSpeechProbability = 0.3f;
+constexpr float kMaxNoiseProbability = 0.1f;
+constexpr size_t kNumChunks = 300u;
+constexpr size_t kNumChunksPerIsacBlock = 3;
void GenerateNoise(std::vector<int16_t>* data) {
for (size_t i = 0; i < data->size(); ++i) {
diff --git a/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc b/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
index 5e0156e..d5141c1 100644
--- a/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
+++ b/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
@@ -71,9 +71,9 @@
return dips;
}
-const uint32_t kInitialBitrateKbps = 60;
+constexpr uint32_t kInitialBitrateKbps = 60;
const DataRate kInitialBitrate = DataRate::KilobitsPerSec(kInitialBitrateKbps);
-const float kDefaultPacingRate = 2.5f;
+constexpr float kDefaultPacingRate = 2.5f;
CallClient* CreateVideoSendingClient(
Scenario* s,
diff --git a/modules/congestion_controller/pcc/bitrate_controller_unittest.cc b/modules/congestion_controller/pcc/bitrate_controller_unittest.cc
index b16beaa..7f9c70e 100644
--- a/modules/congestion_controller/pcc/bitrate_controller_unittest.cc
+++ b/modules/congestion_controller/pcc/bitrate_controller_unittest.cc
@@ -42,7 +42,7 @@
constexpr double kDelayGradientNegativeBound = 10;
const DataRate kTargetSendingRate = DataRate::KilobitsPerSec(300);
-const double kEpsilon = 0.05;
+constexpr double kEpsilon = 0.05;
const Timestamp kStartTime = Timestamp::Micros(0);
const TimeDelta kPacketsDelta = TimeDelta::Millis(1);
const TimeDelta kIntervalDuration = TimeDelta::Millis(1000);
diff --git a/modules/desktop_capture/desktop_and_cursor_composer_unittest.cc b/modules/desktop_capture/desktop_and_cursor_composer_unittest.cc
index 913258f..ba0a60d 100644
--- a/modules/desktop_capture/desktop_and_cursor_composer_unittest.cc
+++ b/modules/desktop_capture/desktop_and_cursor_composer_unittest.cc
@@ -33,15 +33,15 @@
using testing::ElementsAre;
-const int kFrameXCoord = 100;
-const int kFrameYCoord = 200;
-const int kScreenWidth = 100;
-const int kScreenHeight = 100;
-const int kCursorWidth = 10;
-const int kCursorHeight = 10;
+constexpr int kFrameXCoord = 100;
+constexpr int kFrameYCoord = 200;
+constexpr int kScreenWidth = 100;
+constexpr int kScreenHeight = 100;
+constexpr int kCursorWidth = 10;
+constexpr int kCursorHeight = 10;
-const int kTestCursorSize = 3;
-const uint32_t kTestCursorData[kTestCursorSize][kTestCursorSize] = {
+constexpr int kTestCursorSize = 3;
+constexpr uint32_t kTestCursorData[kTestCursorSize][kTestCursorSize] = {
{
0xffffffff,
0x99990000,
diff --git a/modules/desktop_capture/screen_capturer_unittest.cc b/modules/desktop_capture/screen_capturer_unittest.cc
index ccbce1c..bc33f0a3 100644
--- a/modules/desktop_capture/screen_capturer_unittest.cc
+++ b/modules/desktop_capture/screen_capturer_unittest.cc
@@ -28,7 +28,7 @@
using ::testing::_;
-const int kTestSharedMemoryId = 123;
+constexpr int kTestSharedMemoryId = 123;
namespace webrtc {
diff --git a/modules/desktop_capture/win/wgc_capture_source_unittest.cc b/modules/desktop_capture/win/wgc_capture_source_unittest.cc
index dc37ec2..6003930 100644
--- a/modules/desktop_capture/win/wgc_capture_source_unittest.cc
+++ b/modules/desktop_capture/win/wgc_capture_source_unittest.cc
@@ -30,10 +30,10 @@
const WCHAR kWindowTitle[] = L"WGC Capture Source Test Window";
-const int kFirstXCoord = 25;
-const int kFirstYCoord = 50;
-const int kSecondXCoord = 50;
-const int kSecondYCoord = 75;
+constexpr int kFirstXCoord = 25;
+constexpr int kFirstYCoord = 50;
+constexpr int kSecondXCoord = 50;
+constexpr int kSecondYCoord = 75;
} // namespace
diff --git a/modules/desktop_capture/win/window_capture_utils_unittest.cc b/modules/desktop_capture/win/window_capture_utils_unittest.cc
index ec70c80..eda18ef 100644
--- a/modules/desktop_capture/win/window_capture_utils_unittest.cc
+++ b/modules/desktop_capture/win/window_capture_utils_unittest.cc
@@ -25,7 +25,7 @@
namespace webrtc {
namespace {
-const char kWindowThreadName[] = "window_capture_utils_test_thread";
+constexpr char kWindowThreadName[] = "window_capture_utils_test_thread";
const WCHAR kWindowTitle[] = L"Window Capture Utils Test";
std::unique_ptr<Thread> SetUpUnresponsiveWindow(std::mutex& mtx,
diff --git a/modules/pacing/pacing_controller_unittest.cc b/modules/pacing/pacing_controller_unittest.cc
index 8a272f0..b8134b8 100644
--- a/modules/pacing/pacing_controller_unittest.cc
+++ b/modules/pacing/pacing_controller_unittest.cc
@@ -54,7 +54,7 @@
// For 1.8 Mbps, this comes to be about 120 kbps with 1200 probe packets.
constexpr DataRate kProbingErrorMargin = DataRate::KilobitsPerSec(150);
-const float kPaceMultiplier = 2.5f;
+constexpr float kPaceMultiplier = 2.5f;
constexpr uint32_t kAudioSsrc = 12345;
constexpr uint32_t kVideoSsrc = 234565;
diff --git a/modules/remote_bitrate_estimator/inter_arrival_unittest.cc b/modules/remote_bitrate_estimator/inter_arrival_unittest.cc
index 50d3b0f..f034680 100644
--- a/modules/remote_bitrate_estimator/inter_arrival_unittest.cc
+++ b/modules/remote_bitrate_estimator/inter_arrival_unittest.cc
@@ -29,8 +29,9 @@
kInterArrivalShift = kAbsSendTimeFraction + kAbsSendTimeInterArrivalUpshift,
};
-const double kRtpTimestampToMs = 1.0 / 90.0;
-const double kAstToMs = 1000.0 / static_cast<double>(1 << kInterArrivalShift);
+constexpr double kRtpTimestampToMs = 1.0 / 90.0;
+constexpr double kAstToMs =
+ 1000.0 / static_cast<double>(1 << kInterArrivalShift);
class InterArrivalTest : public ::testing::Test {
protected:
diff --git a/modules/remote_bitrate_estimator/overuse_detector_unittest.cc b/modules/remote_bitrate_estimator/overuse_detector_unittest.cc
index 8b064bd..7e7a328 100644
--- a/modules/remote_bitrate_estimator/overuse_detector_unittest.cc
+++ b/modules/remote_bitrate_estimator/overuse_detector_unittest.cc
@@ -26,7 +26,7 @@
namespace webrtc {
namespace testing {
-const double kRtpTimestampToMs = 1.0 / 90.0;
+constexpr double kRtpTimestampToMs = 1.0 / 90.0;
class OveruseDetectorTest : public ::testing::Test {
public:
diff --git a/modules/rtp_rtcp/source/flexfec_sender_unittest.cc b/modules/rtp_rtcp/source/flexfec_sender_unittest.cc
index 9c35cc8..56e509e 100644
--- a/modules/rtp_rtcp/source/flexfec_sender_unittest.cc
+++ b/modules/rtp_rtcp/source/flexfec_sender_unittest.cc
@@ -40,7 +40,7 @@
constexpr int kFlexfecPayloadType = 123;
constexpr uint32_t kMediaSsrc = 1234;
constexpr uint32_t kFlexfecSsrc = 5678;
-const char kNoMid[] = "";
+constexpr char kNoMid[] = "";
const std::vector<RtpExtension> kNoRtpHeaderExtensions;
const std::vector<RtpExtensionSize> kNoRtpHeaderExtensionSizes;
// Assume a single protected media SSRC.
diff --git a/modules/rtp_rtcp/source/nack_rtx_unittest.cc b/modules/rtp_rtcp/source/nack_rtx_unittest.cc
index 8f2265d..11a0a99 100644
--- a/modules/rtp_rtcp/source/nack_rtx_unittest.cc
+++ b/modules/rtp_rtcp/source/nack_rtx_unittest.cc
@@ -43,16 +43,16 @@
namespace webrtc {
-const int kVideoNackListSize = 30;
-const uint32_t kTestSsrc = 3456;
-const uint32_t kTestRtxSsrc = kTestSsrc + 1;
-const uint16_t kTestSequenceNumber = 2345;
-const uint32_t kTestNumberOfPackets = 1350;
-const int kTestNumberOfRtxPackets = 149;
-const int kNumFrames = 30;
-const int kPayloadType = 123;
-const int kRtxPayloadType = 98;
-const int64_t kMaxRttMs = 1000;
+constexpr int kVideoNackListSize = 30;
+constexpr uint32_t kTestSsrc = 3456;
+constexpr uint32_t kTestRtxSsrc = kTestSsrc + 1;
+constexpr uint16_t kTestSequenceNumber = 2345;
+constexpr uint32_t kTestNumberOfPackets = 1350;
+constexpr int kTestNumberOfRtxPackets = 149;
+constexpr int kNumFrames = 30;
+constexpr int kPayloadType = 123;
+constexpr int kRtxPayloadType = 98;
+constexpr int64_t kMaxRttMs = 1000;
class VerifyingMediaStream : public RtpPacketSinkInterface {
public:
diff --git a/modules/rtp_rtcp/source/receive_statistics_unittest.cc b/modules/rtp_rtcp/source/receive_statistics_unittest.cc
index 5eb552b..b45ff3e 100644
--- a/modules/rtp_rtcp/source/receive_statistics_unittest.cc
+++ b/modules/rtp_rtcp/source/receive_statistics_unittest.cc
@@ -31,12 +31,12 @@
using ::testing::SizeIs;
using ::testing::UnorderedElementsAre;
-const size_t kPacketSize1 = 100;
-const size_t kPacketSize2 = 300;
-const uint32_t kSsrc1 = 101;
-const uint32_t kSsrc2 = 202;
-const uint32_t kSsrc3 = 203;
-const uint32_t kSsrc4 = 304;
+constexpr size_t kPacketSize1 = 100;
+constexpr size_t kPacketSize2 = 300;
+constexpr uint32_t kSsrc1 = 101;
+constexpr uint32_t kSsrc2 = 202;
+constexpr uint32_t kSsrc3 = 203;
+constexpr uint32_t kSsrc4 = 304;
RtpPacketReceived CreateRtpPacket(uint32_t ssrc,
size_t header_size,
diff --git a/modules/rtp_rtcp/source/rtcp_packet/bye_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/bye_unittest.cc
index af47d67..ff79371 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/bye_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/bye_unittest.cc
@@ -25,9 +25,9 @@
namespace webrtc {
namespace {
-const uint32_t kSenderSsrc = 0x12345678;
-const uint32_t kCsrc1 = 0x22232425;
-const uint32_t kCsrc2 = 0x33343536;
+constexpr uint32_t kSenderSsrc = 0x12345678;
+constexpr uint32_t kCsrc1 = 0x22232425;
+constexpr uint32_t kCsrc2 = 0x33343536;
} // namespace
TEST(RtcpPacketByeTest, CreateAndParseWithoutReason) {
diff --git a/modules/rtp_rtcp/source/rtcp_packet/compound_packet_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/compound_packet_unittest.cc
index 7645c26..39e09c9 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/compound_packet_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/compound_packet_unittest.cc
@@ -40,9 +40,9 @@
namespace webrtc {
-const uint32_t kSenderSsrc = 0x12345678;
-const uint32_t kRemoteSsrc = 0x23456789;
-const uint8_t kSeqNo = 13;
+constexpr uint32_t kSenderSsrc = 0x12345678;
+constexpr uint32_t kRemoteSsrc = 0x23456789;
+constexpr uint8_t kSeqNo = 13;
TEST(RtcpCompoundPacketTest, AppendPacket) {
CompoundPacket compound;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/dlrr_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/dlrr_unittest.cc
index 751df2d..7298e52 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/dlrr_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/dlrr_unittest.cc
@@ -22,12 +22,12 @@
namespace webrtc {
namespace {
-const uint32_t kSsrc = 0x12345678;
-const uint32_t kLastRR = 0x23344556;
-const uint32_t kDelay = 0x33343536;
-const uint8_t kBlock[] = {0x05, 0x00, 0x00, 0x03, 0x12, 0x34, 0x56, 0x78,
- 0x23, 0x34, 0x45, 0x56, 0x33, 0x34, 0x35, 0x36};
-const size_t kBlockSizeBytes = sizeof(kBlock);
+constexpr uint32_t kSsrc = 0x12345678;
+constexpr uint32_t kLastRR = 0x23344556;
+constexpr uint32_t kDelay = 0x33343536;
+constexpr uint8_t kBlock[] = {0x05, 0x00, 0x00, 0x03, 0x12, 0x34, 0x56, 0x78,
+ 0x23, 0x34, 0x45, 0x56, 0x33, 0x34, 0x35, 0x36};
+constexpr size_t kBlockSizeBytes = sizeof(kBlock);
} // namespace
TEST(RtcpPacketDlrrTest, Empty) {
diff --git a/modules/rtp_rtcp/source/rtcp_packet/pli_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/pli_unittest.cc
index 64d799e..fe737a9 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/pli_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/pli_unittest.cc
@@ -23,11 +23,11 @@
namespace webrtc {
namespace {
-const uint32_t kSenderSsrc = 0x12345678;
-const uint32_t kRemoteSsrc = 0x23456789;
+constexpr uint32_t kSenderSsrc = 0x12345678;
+constexpr uint32_t kRemoteSsrc = 0x23456789;
// Manually created Pli packet matching constants above.
-const uint8_t kPacket[] = {0x81, 206, 0x00, 0x02, 0x12, 0x34,
- 0x56, 0x78, 0x23, 0x45, 0x67, 0x89};
+constexpr uint8_t kPacket[] = {0x81, 206, 0x00, 0x02, 0x12, 0x34,
+ 0x56, 0x78, 0x23, 0x45, 0x67, 0x89};
} // namespace
TEST(RtcpPacketPliTest, Parse) {
diff --git a/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request_unittest.cc
index 450b7cd..45b75e6 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request_unittest.cc
@@ -23,11 +23,11 @@
namespace webrtc {
namespace {
-const uint32_t kSenderSsrc = 0x12345678;
-const uint32_t kRemoteSsrc = 0x23456789;
+constexpr uint32_t kSenderSsrc = 0x12345678;
+constexpr uint32_t kRemoteSsrc = 0x23456789;
// Manually created packet matching constants above.
-const uint8_t kPacket[] = {0x85, 205, 0x00, 0x02, 0x12, 0x34,
- 0x56, 0x78, 0x23, 0x45, 0x67, 0x89};
+constexpr uint8_t kPacket[] = {0x85, 205, 0x00, 0x02, 0x12, 0x34,
+ 0x56, 0x78, 0x23, 0x45, 0x67, 0x89};
} // namespace
TEST(RtcpPacketRapidResyncRequestTest, Parse) {
diff --git a/modules/rtp_rtcp/source/rtcp_packet/receiver_report_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/receiver_report_unittest.cc
index 98ff4d2..916dfcd 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/receiver_report_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/receiver_report_unittest.cc
@@ -29,21 +29,21 @@
namespace webrtc {
namespace {
-const uint32_t kSenderSsrc = 0x12345678;
-const uint32_t kRemoteSsrc = 0x23456789;
-const uint8_t kFractionLost = 55;
-const int32_t kCumulativeLost = 0x111213;
-const uint32_t kExtHighestSeqNum = 0x22232425;
-const uint32_t kJitter = 0x33343536;
-const uint32_t kLastSr = 0x44454647;
-const uint32_t kDelayLastSr = 0x55565758;
+constexpr uint32_t kSenderSsrc = 0x12345678;
+constexpr uint32_t kRemoteSsrc = 0x23456789;
+constexpr uint8_t kFractionLost = 55;
+constexpr int32_t kCumulativeLost = 0x111213;
+constexpr uint32_t kExtHighestSeqNum = 0x22232425;
+constexpr uint32_t kJitter = 0x33343536;
+constexpr uint32_t kLastSr = 0x44454647;
+constexpr uint32_t kDelayLastSr = 0x55565758;
// Manually created ReceiverReport with one ReportBlock matching constants
// above.
// Having this block allows to test Create and Parse separately.
-const uint8_t kPacket[] = {0x81, 201, 0x00, 0x07, 0x12, 0x34, 0x56, 0x78,
- 0x23, 0x45, 0x67, 0x89, 55, 0x11, 0x12, 0x13,
- 0x22, 0x23, 0x24, 0x25, 0x33, 0x34, 0x35, 0x36,
- 0x44, 0x45, 0x46, 0x47, 0x55, 0x56, 0x57, 0x58};
+constexpr uint8_t kPacket[] = {0x81, 201, 0x00, 0x07, 0x12, 0x34, 0x56, 0x78,
+ 0x23, 0x45, 0x67, 0x89, 55, 0x11, 0x12, 0x13,
+ 0x22, 0x23, 0x24, 0x25, 0x33, 0x34, 0x35, 0x36,
+ 0x44, 0x45, 0x46, 0x47, 0x55, 0x56, 0x57, 0x58};
} // namespace
TEST(RtcpPacketReceiverReportTest, ParseWithOneReportBlock) {
diff --git a/modules/rtp_rtcp/source/rtcp_packet/remb_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/remb_unittest.cc
index 34fe54c..bc3fa0c 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/remb_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/remb_unittest.cc
@@ -28,15 +28,15 @@
namespace webrtc {
namespace {
-const uint32_t kSenderSsrc = 0x12345678;
-const uint32_t kRemoteSsrcs[] = {0x23456789, 0x2345678a, 0x2345678b};
-const uint32_t kBitrateBps = 0x3fb93 * 2; // 522022;
-const int64_t kBitrateBps64bit = int64_t{0x3fb93} << 30;
-const uint8_t kPacket[] = {0x8f, 206, 0x00, 0x07, 0x12, 0x34, 0x56, 0x78,
- 0x00, 0x00, 0x00, 0x00, 'R', 'E', 'M', 'B',
- 0x03, 0x07, 0xfb, 0x93, 0x23, 0x45, 0x67, 0x89,
- 0x23, 0x45, 0x67, 0x8a, 0x23, 0x45, 0x67, 0x8b};
-const size_t kPacketLength = sizeof(kPacket);
+constexpr uint32_t kSenderSsrc = 0x12345678;
+constexpr uint32_t kRemoteSsrcs[] = {0x23456789, 0x2345678a, 0x2345678b};
+constexpr uint32_t kBitrateBps = 0x3fb93 * 2; // 522022;
+constexpr int64_t kBitrateBps64bit = int64_t{0x3fb93} << 30;
+constexpr uint8_t kPacket[] = {0x8f, 206, 0x00, 0x07, 0x12, 0x34, 0x56, 0x78,
+ 0x00, 0x00, 0x00, 0x00, 'R', 'E', 'M', 'B',
+ 0x03, 0x07, 0xfb, 0x93, 0x23, 0x45, 0x67, 0x89,
+ 0x23, 0x45, 0x67, 0x8a, 0x23, 0x45, 0x67, 0x8b};
+constexpr size_t kPacketLength = sizeof(kPacket);
} // namespace
TEST(RtcpPacketRembTest, Create) {
diff --git a/modules/rtp_rtcp/source/rtcp_packet/report_block_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/report_block_unittest.cc
index 68399f0..a7fa06d 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/report_block_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/report_block_unittest.cc
@@ -22,15 +22,15 @@
namespace webrtc {
namespace {
-const uint32_t kRemoteSsrc = 0x23456789;
-const uint8_t kFractionLost = 55;
+constexpr uint32_t kRemoteSsrc = 0x23456789;
+constexpr uint8_t kFractionLost = 55;
// Use values that are streamed differently LE and BE.
-const int32_t kCumulativeLost = 0x111213;
-const uint32_t kExtHighestSeqNum = 0x22232425;
-const uint32_t kJitter = 0x33343536;
-const uint32_t kLastSr = 0x44454647;
-const uint32_t kDelayLastSr = 0x55565758;
-const size_t kBufferLength = ReportBlock::kLength;
+constexpr int32_t kCumulativeLost = 0x111213;
+constexpr uint32_t kExtHighestSeqNum = 0x22232425;
+constexpr uint32_t kJitter = 0x33343536;
+constexpr uint32_t kLastSr = 0x44454647;
+constexpr uint32_t kDelayLastSr = 0x55565758;
+constexpr size_t kBufferLength = ReportBlock::kLength;
TEST(RtcpPacketReportBlockTest, ParseChecksLength) {
uint8_t buffer[kBufferLength];
diff --git a/modules/rtp_rtcp/source/rtcp_packet/rrtr_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/rrtr_unittest.cc
index ce8640c..0e71089 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/rrtr_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/rrtr_unittest.cc
@@ -22,11 +22,11 @@
namespace webrtc {
namespace {
-const uint32_t kNtpSec = 0x12345678;
-const uint32_t kNtpFrac = 0x23456789;
-const uint8_t kBlock[] = {0x04, 0x00, 0x00, 0x02, 0x12, 0x34,
- 0x56, 0x78, 0x23, 0x45, 0x67, 0x89};
-const size_t kBlockSizeBytes = sizeof(kBlock);
+constexpr uint32_t kNtpSec = 0x12345678;
+constexpr uint32_t kNtpFrac = 0x23456789;
+constexpr uint8_t kBlock[] = {0x04, 0x00, 0x00, 0x02, 0x12, 0x34,
+ 0x56, 0x78, 0x23, 0x45, 0x67, 0x89};
+constexpr size_t kBlockSizeBytes = sizeof(kBlock);
static_assert(
kBlockSizeBytes == Rrtr::kLength,
"Size of manually created Rrtr block should match class constant");
diff --git a/modules/rtp_rtcp/source/rtcp_packet/sdes_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/sdes_unittest.cc
index df1a7b4..c20155f 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/sdes_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/sdes_unittest.cc
@@ -23,12 +23,12 @@
namespace webrtc {
namespace {
-const uint32_t kSenderSsrc = 0x12345678;
-const uint8_t kPadding = 0;
-const uint8_t kTerminatorTag = 0;
-const uint8_t kCnameTag = 1;
-const uint8_t kNameTag = 2;
-const uint8_t kEmailTag = 3;
+constexpr uint32_t kSenderSsrc = 0x12345678;
+constexpr uint8_t kPadding = 0;
+constexpr uint8_t kTerminatorTag = 0;
+constexpr uint8_t kCnameTag = 1;
+constexpr uint8_t kNameTag = 2;
+constexpr uint8_t kEmailTag = 3;
} // namespace
TEST(RtcpPacketSdesTest, CreateAndParseWithoutChunks) {
diff --git a/modules/rtp_rtcp/source/rtcp_packet/sender_report_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/sender_report_unittest.cc
index f7d2478..9ffe6c7 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/sender_report_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/sender_report_unittest.cc
@@ -29,16 +29,16 @@
namespace webrtc {
namespace {
-const uint32_t kSenderSsrc = 0x12345678;
-const uint32_t kRemoteSsrc = 0x23456789;
+constexpr uint32_t kSenderSsrc = 0x12345678;
+constexpr uint32_t kRemoteSsrc = 0x23456789;
const NtpTime kNtp(0x11121418, 0x22242628);
-const uint32_t kRtpTimestamp = 0x33343536;
-const uint32_t kPacketCount = 0x44454647;
-const uint32_t kOctetCount = 0x55565758;
-const uint8_t kPacket[] = {0x80, 200, 0x00, 0x06, 0x12, 0x34, 0x56,
- 0x78, 0x11, 0x12, 0x14, 0x18, 0x22, 0x24,
- 0x26, 0x28, 0x33, 0x34, 0x35, 0x36, 0x44,
- 0x45, 0x46, 0x47, 0x55, 0x56, 0x57, 0x58};
+constexpr uint32_t kRtpTimestamp = 0x33343536;
+constexpr uint32_t kPacketCount = 0x44454647;
+constexpr uint32_t kOctetCount = 0x55565758;
+constexpr uint8_t kPacket[] = {0x80, 200, 0x00, 0x06, 0x12, 0x34, 0x56,
+ 0x78, 0x11, 0x12, 0x14, 0x18, 0x22, 0x24,
+ 0x26, 0x28, 0x33, 0x34, 0x35, 0x36, 0x44,
+ 0x45, 0x46, 0x47, 0x55, 0x56, 0x57, 0x58};
} // namespace
TEST(RtcpPacketSenderReportTest, CreateWithoutReportBlocks) {
diff --git a/modules/rtp_rtcp/source/rtcp_packet/target_bitrate_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/target_bitrate_unittest.cc
index dcaa85e..1e467f9 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/target_bitrate_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/target_bitrate_unittest.cc
@@ -29,13 +29,14 @@
constexpr uint32_t kSsrc = 0x12345678;
// clang-format off
-const uint8_t kPacket[] = { TargetBitrate::kBlockType, // Block ID.
- 0x00, // Reserved.
- 0x00, 0x04, // Length = 4 words.
- 0x00, 0x01, 0x02, 0x03, // S0T0 0x010203 kbps.
- 0x01, 0x02, 0x03, 0x04, // S0T1 0x020304 kbps.
- 0x10, 0x03, 0x04, 0x05, // S1T0 0x030405 kbps.
- 0x11, 0x04, 0x05, 0x06 }; // S1T1 0x040506 kbps.
+constexpr uint8_t kPacket[] = {
+ TargetBitrate::kBlockType, // Block ID.
+ 0x00, // Reserved.
+ 0x00, 0x04, // Length = 4 words.
+ 0x00, 0x01, 0x02, 0x03, // S0T0 0x010203 kbps.
+ 0x01, 0x02, 0x03, 0x04, // S0T1 0x020304 kbps.
+ 0x10, 0x03, 0x04, 0x05, // S1T0 0x030405 kbps.
+ 0x11, 0x04, 0x05, 0x06 }; // S1T1 0x040506 kbps.
constexpr size_t kPacketLengthBlocks = ((sizeof(kPacket) + 3) / 4) - 1;
// clang-format on
diff --git a/modules/rtp_rtcp/source/rtcp_packet/tmmbn_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/tmmbn_unittest.cc
index ce1544c..00ea2d6 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/tmmbn_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/tmmbn_unittest.cc
@@ -26,13 +26,13 @@
namespace webrtc {
namespace {
-const uint32_t kSenderSsrc = 0x12345678;
-const uint32_t kRemoteSsrc = 0x23456789;
-const uint32_t kBitrateBps = 312000;
-const uint16_t kOverhead = 0x1fe;
-const uint8_t kPacket[] = {0x84, 205, 0x00, 0x04, 0x12, 0x34, 0x56,
- 0x78, 0x00, 0x00, 0x00, 0x00, 0x23, 0x45,
- 0x67, 0x89, 0x0a, 0x61, 0x61, 0xfe};
+constexpr uint32_t kSenderSsrc = 0x12345678;
+constexpr uint32_t kRemoteSsrc = 0x23456789;
+constexpr uint32_t kBitrateBps = 312000;
+constexpr uint16_t kOverhead = 0x1fe;
+constexpr uint8_t kPacket[] = {0x84, 205, 0x00, 0x04, 0x12, 0x34, 0x56,
+ 0x78, 0x00, 0x00, 0x00, 0x00, 0x23, 0x45,
+ 0x67, 0x89, 0x0a, 0x61, 0x61, 0xfe};
} // namespace
TEST(RtcpPacketTmmbnTest, Create) {
diff --git a/modules/rtp_rtcp/source/rtcp_packet/tmmbr_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/tmmbr_unittest.cc
index 4f45577..ecdd959 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/tmmbr_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/tmmbr_unittest.cc
@@ -25,13 +25,13 @@
namespace webrtc {
namespace {
-const uint32_t kSenderSsrc = 0x12345678;
-const uint32_t kRemoteSsrc = 0x23456789;
-const uint32_t kBitrateBps = 312000;
-const uint16_t kOverhead = 0x1fe;
-const uint8_t kPacket[] = {0x83, 205, 0x00, 0x04, 0x12, 0x34, 0x56,
- 0x78, 0x00, 0x00, 0x00, 0x00, 0x23, 0x45,
- 0x67, 0x89, 0x0a, 0x61, 0x61, 0xfe};
+constexpr uint32_t kSenderSsrc = 0x12345678;
+constexpr uint32_t kRemoteSsrc = 0x23456789;
+constexpr uint32_t kBitrateBps = 312000;
+constexpr uint16_t kOverhead = 0x1fe;
+constexpr uint8_t kPacket[] = {0x83, 205, 0x00, 0x04, 0x12, 0x34, 0x56,
+ 0x78, 0x00, 0x00, 0x00, 0x00, 0x23, 0x45,
+ 0x67, 0x89, 0x0a, 0x61, 0x61, 0xfe};
} // namespace
TEST(RtcpPacketTmmbrTest, Create) {
diff --git a/modules/rtp_rtcp/source/rtcp_packet_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet_unittest.cc
index 2a87759..793535f 100644
--- a/modules/rtp_rtcp/source/rtcp_packet_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet_unittest.cc
@@ -26,7 +26,7 @@
using ::webrtc::rtcp::ReceiverReport;
using ::webrtc::rtcp::ReportBlock;
-const uint32_t kSenderSsrc = 0x12345678;
+constexpr uint32_t kSenderSsrc = 0x12345678;
TEST(RtcpPacketTest, BuildWithTooSmallBuffer) {
ReportBlock rb;
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl_unittest.cc b/modules/rtp_rtcp/source/rtp_rtcp_impl_unittest.cc
index 6d88e28..24c1011 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_impl_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_rtcp_impl_unittest.cc
@@ -55,15 +55,15 @@
namespace webrtc {
namespace {
-const uint32_t kSenderSsrc = 0x12345;
-const uint32_t kReceiverSsrc = 0x23456;
+constexpr uint32_t kSenderSsrc = 0x12345;
+constexpr uint32_t kReceiverSsrc = 0x23456;
constexpr TimeDelta kOneWayNetworkDelay = TimeDelta::Millis(100);
-const uint8_t kBaseLayerTid = 0;
-const uint8_t kHigherLayerTid = 1;
-const uint16_t kSequenceNumber = 100;
-const uint8_t kPayloadType = 100;
-const int kWidth = 320;
-const int kHeight = 100;
+constexpr uint8_t kBaseLayerTid = 0;
+constexpr uint8_t kHigherLayerTid = 1;
+constexpr uint16_t kSequenceNumber = 100;
+constexpr uint8_t kPayloadType = 100;
+constexpr int kWidth = 320;
+constexpr int kHeight = 100;
MATCHER_P2(Near, value, margin, "") {
return value - margin <= arg && arg <= value + margin;
diff --git a/modules/rtp_rtcp/source/rtp_sender_audio_unittest.cc b/modules/rtp_rtcp/source/rtp_sender_audio_unittest.cc
index 2cb50849..7cc4e1e 100644
--- a/modules/rtp_rtcp/source/rtp_sender_audio_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_audio_unittest.cc
@@ -39,9 +39,9 @@
kAbsoluteCaptureTimeExtensionId = 2,
};
-const uint16_t kSeqNum = 33;
-const uint32_t kSsrc = 725242;
-const uint64_t kStartTime = 123456789;
+constexpr uint16_t kSeqNum = 33;
+constexpr uint32_t kSsrc = 725242;
+constexpr uint64_t kStartTime = 123456789;
using ::testing::ElementsAreArray;
diff --git a/modules/rtp_rtcp/source/rtp_sender_unittest.cc b/modules/rtp_rtcp/source/rtp_sender_unittest.cc
index 2607c58..3049de6 100644
--- a/modules/rtp_rtcp/source/rtp_sender_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_unittest.cc
@@ -60,15 +60,15 @@
kVideoTimingExtensionId,
};
-const int kPayload = 100;
-const int kRtxPayload = 98;
-const uint32_t kTimestamp = 10;
-const uint16_t kSeqNum = 33;
-const uint32_t kSsrc = 725242;
-const uint32_t kRtxSsrc = 12345;
-const uint32_t kFlexFecSsrc = 45678;
-const uint64_t kStartTime = 123456789;
-const uint8_t kPayloadData[] = {47, 11, 32, 93, 89};
+constexpr int kPayload = 100;
+constexpr int kRtxPayload = 98;
+constexpr uint32_t kTimestamp = 10;
+constexpr uint16_t kSeqNum = 33;
+constexpr uint32_t kSsrc = 725242;
+constexpr uint32_t kRtxSsrc = 12345;
+constexpr uint32_t kFlexFecSsrc = 45678;
+constexpr uint64_t kStartTime = 123456789;
+constexpr uint8_t kPayloadData[] = {47, 11, 32, 93, 89};
constexpr TimeDelta kDefaultExpectedRetransmissionTime = TimeDelta::Millis(125);
constexpr Frequency kRtpClockRate = Frequency::Hertz(90'000);
constexpr absl::string_view kMid = "mid";
diff --git a/modules/rtp_rtcp/source/rtp_video_stream_receiver_frame_transformer_delegate_unittest.cc b/modules/rtp_rtcp/source/rtp_video_stream_receiver_frame_transformer_delegate_unittest.cc
index 92860b1..18a0f67 100644
--- a/modules/rtp_rtcp/source/rtp_video_stream_receiver_frame_transformer_delegate_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_video_stream_receiver_frame_transformer_delegate_unittest.cc
@@ -54,8 +54,8 @@
using ::testing::Return;
using ::testing::SaveArg;
-const int kFirstSeqNum = 1;
-const int kLastSeqNum = 2;
+constexpr int kFirstSeqNum = 1;
+constexpr int kLastSeqNum = 2;
std::unique_ptr<RtpFrameObject> CreateRtpFrameObject(
const RTPVideoHeader& video_header,
diff --git a/modules/video_coding/codecs/h264/h264_encoder_impl_unittest.cc b/modules/video_coding/codecs/h264/h264_encoder_impl_unittest.cc
index e714e27..08d4174 100644
--- a/modules/video_coding/codecs/h264/h264_encoder_impl_unittest.cc
+++ b/modules/video_coding/codecs/h264/h264_encoder_impl_unittest.cc
@@ -20,8 +20,8 @@
namespace {
-const int kMaxPayloadSize = 1024;
-const int kNumCores = 1;
+constexpr int kMaxPayloadSize = 1024;
+constexpr int kNumCores = 1;
const VideoEncoder::Capabilities kCapabilities(false);
const VideoEncoder::Settings kSettings(kCapabilities,
diff --git a/modules/video_coding/codecs/test/videocodec_test_fixture_config_unittest.cc b/modules/video_coding/codecs/test/videocodec_test_fixture_config_unittest.cc
index 581a628..60c8ff3 100644
--- a/modules/video_coding/codecs/test/videocodec_test_fixture_config_unittest.cc
+++ b/modules/video_coding/codecs/test/videocodec_test_fixture_config_unittest.cc
@@ -25,7 +25,7 @@
using Config = VideoCodecTestFixture::Config;
namespace {
-const size_t kNumTemporalLayers = 2;
+constexpr size_t kNumTemporalLayers = 2;
} // namespace
TEST(Config, NumberOfCoresWithUseSingleCore) {
diff --git a/modules/video_coding/codecs/test/videocodec_test_stats_impl_unittest.cc b/modules/video_coding/codecs/test/videocodec_test_stats_impl_unittest.cc
index a68d8ac..b740efa 100644
--- a/modules/video_coding/codecs/test/videocodec_test_stats_impl_unittest.cc
+++ b/modules/video_coding/codecs/test/videocodec_test_stats_impl_unittest.cc
@@ -23,7 +23,7 @@
namespace {
-const size_t kTimestamp = 12345;
+constexpr size_t kTimestamp = 12345;
using ::testing::AllOf;
using ::testing::Contains;
diff --git a/modules/video_coding/codecs/test/videoprocessor_unittest.cc b/modules/video_coding/codecs/test/videoprocessor_unittest.cc
index 0e44884..c71c06b 100644
--- a/modules/video_coding/codecs/test/videoprocessor_unittest.cc
+++ b/modules/video_coding/codecs/test/videoprocessor_unittest.cc
@@ -41,8 +41,8 @@
namespace {
-const int kWidth = 352;
-const int kHeight = 288;
+constexpr int kWidth = 352;
+constexpr int kHeight = 288;
} // namespace
diff --git a/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc b/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
index cfafc72..4e2e648 100644
--- a/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
+++ b/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc
@@ -39,21 +39,21 @@
namespace webrtc {
namespace {
// 5 frames per second at 90 kHz.
-const uint32_t kTimestampDelta5Fps = 90000 / 5;
-const int kDefaultQp = 54;
-const int kDefaultTl0BitrateKbps = 200;
-const int kDefaultTl1BitrateKbps = 2000;
-const int kFrameRate = 5;
-const int kSyncPeriodSeconds = 2;
-const int kMaxSyncPeriodSeconds = 4;
+constexpr uint32_t kTimestampDelta5Fps = 90000 / 5;
+constexpr int kDefaultQp = 54;
+constexpr int kDefaultTl0BitrateKbps = 200;
+constexpr int kDefaultTl1BitrateKbps = 2000;
+constexpr int kFrameRate = 5;
+constexpr int kSyncPeriodSeconds = 2;
+constexpr int kMaxSyncPeriodSeconds = 4;
// Expected flags for corresponding temporal layers.
-const int kTl0Flags = VP8_EFLAG_NO_UPD_GF | VP8_EFLAG_NO_UPD_ARF |
- VP8_EFLAG_NO_REF_GF | VP8_EFLAG_NO_REF_ARF;
-const int kTl1Flags =
+constexpr int kTl0Flags = VP8_EFLAG_NO_UPD_GF | VP8_EFLAG_NO_UPD_ARF |
+ VP8_EFLAG_NO_REF_GF | VP8_EFLAG_NO_REF_ARF;
+constexpr int kTl1Flags =
VP8_EFLAG_NO_REF_ARF | VP8_EFLAG_NO_UPD_ARF | VP8_EFLAG_NO_UPD_LAST;
-const int kTl1SyncFlags = VP8_EFLAG_NO_REF_ARF | VP8_EFLAG_NO_REF_GF |
- VP8_EFLAG_NO_UPD_ARF | VP8_EFLAG_NO_UPD_LAST;
+constexpr int kTl1SyncFlags = VP8_EFLAG_NO_REF_ARF | VP8_EFLAG_NO_REF_GF |
+ VP8_EFLAG_NO_UPD_ARF | VP8_EFLAG_NO_UPD_LAST;
const std::vector<uint32_t> kDefault2TlBitratesBps = {
kDefaultTl0BitrateKbps * 1000,
(kDefaultTl1BitrateKbps - kDefaultTl0BitrateKbps) * 1000};
diff --git a/modules/video_coding/h26x_packet_buffer_unittest.cc b/modules/video_coding/h26x_packet_buffer_unittest.cc
index 467184e..f786776 100644
--- a/modules/video_coding/h26x_packet_buffer_unittest.cc
+++ b/modules/video_coding/h26x_packet_buffer_unittest.cc
@@ -50,7 +50,7 @@
constexpr int kBufferSize = 2048;
// Example sprop string from https://tools.ietf.org/html/rfc3984.
-const char kExampleSpropString[] = "Z0IACpZTBYmI,aMljiA==";
+constexpr char kExampleSpropString[] = "Z0IACpZTBYmI,aMljiA==";
const std::vector<uint8_t> kExampleSpropRawSps{0x67, 0x42, 0x00, 0x0A, 0x96,
0x53, 0x05, 0x89, 0x88};
const std::vector<uint8_t> kExampleSpropRawPps{0x68, 0xC9, 0x63, 0x88};
diff --git a/modules/video_coding/utility/frame_dropper_unittest.cc b/modules/video_coding/utility/frame_dropper_unittest.cc
index ac3fade..7ca03b2 100644
--- a/modules/video_coding/utility/frame_dropper_unittest.cc
+++ b/modules/video_coding/utility/frame_dropper_unittest.cc
@@ -18,11 +18,11 @@
namespace {
-const float kTargetBitRateKbps = 300;
-const float kIncomingFrameRate = 30;
-const size_t kFrameSizeBytes = 1250;
+constexpr float kTargetBitRateKbps = 300;
+constexpr float kIncomingFrameRate = 30;
+constexpr size_t kFrameSizeBytes = 1250;
-const size_t kLargeFrameSizeBytes = 25000;
+constexpr size_t kLargeFrameSizeBytes = 25000;
const bool kIncludeKeyFrame = true;
const bool kDoNotIncludeKeyFrame = false;
diff --git a/modules/video_coding/utility/ivf_file_writer_unittest.cc b/modules/video_coding/utility/ivf_file_writer_unittest.cc
index bc6c877..3038d87 100644
--- a/modules/video_coding/utility/ivf_file_writer_unittest.cc
+++ b/modules/video_coding/utility/ivf_file_writer_unittest.cc
@@ -26,8 +26,8 @@
namespace webrtc {
namespace {
-const int kHeaderSize = 32;
-const int kFrameHeaderSize = 12;
+constexpr int kHeaderSize = 32;
+constexpr int kFrameHeaderSize = 12;
uint8_t dummy_payload[4] = {0, 1, 2, 3};
// As the default parameter when the width and height of encodedImage are 0,
// the values are copied from ivf_file_writer.cc
diff --git a/modules/video_coding/utility/qp_parser_unittest.cc b/modules/video_coding/utility/qp_parser_unittest.cc
index a7fe387..2e5b3ba 100644
--- a/modules/video_coding/utility/qp_parser_unittest.cc
+++ b/modules/video_coding/utility/qp_parser_unittest.cc
@@ -24,14 +24,14 @@
namespace {
// ffmpeg -s 16x16 -f rawvideo -pix_fmt rgb24 -r 30 -i /dev/zero -c:v libvpx
// -qmin 20 -qmax 20 -crf 20 -frames:v 1 -y out.ivf
-const uint8_t kCodedFrameVp8Qp25[] = {
+constexpr uint8_t kCodedFrameVp8Qp25[] = {
0x10, 0x02, 0x00, 0x9d, 0x01, 0x2a, 0x10, 0x00, 0x10, 0x00,
0x02, 0x47, 0x08, 0x85, 0x85, 0x88, 0x85, 0x84, 0x88, 0x0c,
0x82, 0x00, 0x0c, 0x0d, 0x60, 0x00, 0xfe, 0xfc, 0x5c, 0xd0};
// ffmpeg -s 16x16 -f rawvideo -pix_fmt rgb24 -r 30 -i /dev/zero -c:v libvpx-vp9
// -qmin 24 -qmax 24 -crf 24 -frames:v 1 -y out.ivf
-const uint8_t kCodedFrameVp9Qp96[] = {
+constexpr uint8_t kCodedFrameVp9Qp96[] = {
0xa2, 0x49, 0x83, 0x42, 0xe0, 0x00, 0xf0, 0x00, 0xf6, 0x00,
0x38, 0x24, 0x1c, 0x18, 0xc0, 0x00, 0x00, 0x30, 0x70, 0x00,
0x00, 0x4a, 0xa7, 0xff, 0xfc, 0xb9, 0x01, 0xbf, 0xff, 0xff,
@@ -39,22 +39,22 @@
// ffmpeg -s 16x16 -f rawvideo -pix_fmt yuv420p -r 30 -i /dev/zero -c:v libx264
// -qmin 38 -qmax 38 -crf 38 -profile:v baseline -frames:v 2 -y out.264
-const uint8_t kCodedFrameH264SpsPpsIdrQp38[] = {
+constexpr uint8_t kCodedFrameH264SpsPpsIdrQp38[] = {
0x00, 0x00, 0x00, 0x01, 0x67, 0x42, 0xc0, 0x0a, 0xd9, 0x1e, 0x84,
0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0xf0, 0x3c,
0x48, 0x99, 0x20, 0x00, 0x00, 0x00, 0x01, 0x68, 0xcb, 0x80, 0xc4,
0xb2, 0x00, 0x00, 0x01, 0x65, 0x88, 0x84, 0xf1, 0x18, 0xa0, 0x00,
0x20, 0x5b, 0x1c, 0x00, 0x04, 0x07, 0xe3, 0x80, 0x00, 0x80, 0xfe};
-const uint8_t kCodedFrameH264SpsPpsIdrQp49[] = {
+constexpr uint8_t kCodedFrameH264SpsPpsIdrQp49[] = {
0x00, 0x00, 0x00, 0x01, 0x67, 0x42, 0xc0, 0x0a, 0xd9, 0x1e, 0x84,
0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0xf0, 0x3c,
0x48, 0x99, 0x20, 0x00, 0x00, 0x00, 0x01, 0x68, 0xcb, 0x80, 0x5d,
0x2c, 0x80, 0x00, 0x00, 0x01, 0x65, 0x88, 0x84, 0xf1, 0x18, 0xa0,
0x00, 0x5e, 0x38, 0x00, 0x08, 0x03, 0xc7, 0x00, 0x01, 0x00, 0x7c};
-const uint8_t kCodedFrameH264InterSliceQpDelta0[] = {0x00, 0x00, 0x00, 0x01,
- 0x41, 0x9a, 0x39, 0xea};
+constexpr uint8_t kCodedFrameH264InterSliceQpDelta0[] = {
+ 0x00, 0x00, 0x00, 0x01, 0x41, 0x9a, 0x39, 0xea};
} // namespace
diff --git a/modules/video_coding/utility/quality_scaler_unittest.cc b/modules/video_coding/utility/quality_scaler_unittest.cc
index dca0f4a..677654c 100644
--- a/modules/video_coding/utility/quality_scaler_unittest.cc
+++ b/modules/video_coding/utility/quality_scaler_unittest.cc
@@ -24,10 +24,10 @@
namespace webrtc {
namespace {
-const int kFramerate = 30;
-const int kLowQp = 15;
-const int kHighQp = 40;
-const int kMinFramesNeededToScale = 60; // From quality_scaler.cc.
+constexpr int kFramerate = 30;
+constexpr int kLowQp = 15;
+constexpr int kHighQp = 40;
+constexpr int kMinFramesNeededToScale = 60; // From quality_scaler.cc.
constexpr TimeDelta kDefaultTimeout = TimeDelta::Millis(150);
} // namespace
diff --git a/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc b/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc
index 8909182..4392e7b 100644
--- a/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc
+++ b/modules/video_coding/utility/simulcast_rate_allocator_unittest.cc
@@ -46,7 +46,7 @@
constexpr uint32_t kSimulcastScreenshareMaxBitrateKbps = 1250;
// Default video hysteresis factor: allocatable bitrate for next layer must
// exceed 20% of min setting in order to be initially turned on.
-const double kDefaultHysteresis = 1.2;
+constexpr double kDefaultHysteresis = 1.2;
class MockTemporalLayers : public Vp8FrameBufferController {
public:
diff --git a/modules/video_coding/video_codec_initializer_unittest.cc b/modules/video_coding/video_codec_initializer_unittest.cc
index 045c86a..6688050 100644
--- a/modules/video_coding/video_codec_initializer_unittest.cc
+++ b/modules/video_coding/video_codec_initializer_unittest.cc
@@ -40,21 +40,21 @@
namespace webrtc {
namespace {
-const int kDefaultWidth = 1280;
-const int kDefaultHeight = 720;
-const int kDefaultFrameRate = 30;
-const uint32_t kDefaultMinBitrateBps = 60000;
-const uint32_t kDefaultTargetBitrateBps = 2000000;
-const uint32_t kDefaultMaxBitrateBps = 2000000;
-const uint32_t kDefaultMinTransmitBitrateBps = 400000;
-const int kDefaultMaxQp = 48;
-const uint32_t kScreenshareTl0BitrateBps = 120000;
-const uint32_t kScreenshareConferenceTl0BitrateBps = 200000;
-const uint32_t kScreenshareCodecTargetBitrateBps = 200000;
-const uint32_t kScreenshareDefaultFramerate = 5;
+constexpr int kDefaultWidth = 1280;
+constexpr int kDefaultHeight = 720;
+constexpr int kDefaultFrameRate = 30;
+constexpr uint32_t kDefaultMinBitrateBps = 60000;
+constexpr uint32_t kDefaultTargetBitrateBps = 2000000;
+constexpr uint32_t kDefaultMaxBitrateBps = 2000000;
+constexpr uint32_t kDefaultMinTransmitBitrateBps = 400000;
+constexpr int kDefaultMaxQp = 48;
+constexpr uint32_t kScreenshareTl0BitrateBps = 120000;
+constexpr uint32_t kScreenshareConferenceTl0BitrateBps = 200000;
+constexpr uint32_t kScreenshareCodecTargetBitrateBps = 200000;
+constexpr uint32_t kScreenshareDefaultFramerate = 5;
// Bitrates for the temporal layers of the higher screenshare simulcast stream.
-const uint32_t kHighScreenshareTl0Bps = 800000;
-const uint32_t kHighScreenshareTl1Bps = 1200000;
+constexpr uint32_t kHighScreenshareTl0Bps = 800000;
+constexpr uint32_t kHighScreenshareTl1Bps = 1200000;
} // namespace
// TODO(sprang): Extend coverage to handle the rest of the codec initializer.
diff --git a/p2p/base/p2p_transport_channel_unittest.cc b/p2p/base/p2p_transport_channel_unittest.cc
index fa2ea48..7abf8450 100644
--- a/p2p/base/p2p_transport_channel_unittest.cc
+++ b/p2p/base/p2p_transport_channel_unittest.cc
@@ -129,14 +129,14 @@
// Default timeout for tests in this file.
// Should be large enough for slow buildbots to run the tests reliably.
-const int kDefaultTimeout = 10000;
-const int kMediumTimeout = 3000;
-const int kShortTimeout = 1000;
+constexpr int kDefaultTimeout = 10000;
+constexpr int kMediumTimeout = 3000;
+constexpr int kShortTimeout = 1000;
-const int kOnlyLocalPorts = webrtc::PORTALLOCATOR_DISABLE_STUN |
- webrtc::PORTALLOCATOR_DISABLE_RELAY |
- webrtc::PORTALLOCATOR_DISABLE_TCP;
-const int LOW_RTT = 20;
+constexpr int kOnlyLocalPorts = webrtc::PORTALLOCATOR_DISABLE_STUN |
+ webrtc::PORTALLOCATOR_DISABLE_RELAY |
+ webrtc::PORTALLOCATOR_DISABLE_TCP;
+constexpr int LOW_RTT = 20;
// Addresses on the public internet.
const SocketAddress kPublicAddrs[2] = {SocketAddress("11.11.11.11", 0),
SocketAddress("22.22.22.22", 0)};
diff --git a/p2p/base/port_allocator_unittest.cc b/p2p/base/port_allocator_unittest.cc
index ec53ea3..8bc61da 100644
--- a/p2p/base/port_allocator_unittest.cc
+++ b/p2p/base/port_allocator_unittest.cc
@@ -30,13 +30,19 @@
using ::webrtc::CreateEnvironment;
using ::webrtc::IceCandidateType;
-static const char kContentName[] = "test content";
+namespace {
+constexpr char kContentName[] = "test content";
// Based on ICE_UFRAG_LENGTH
-static const char kIceUfrag[] = "UF00";
+constexpr char kIceUfrag[] = "UF00";
// Based on ICE_PWD_LENGTH
-static const char kIcePwd[] = "TESTICEPWD00000000000000";
-static const char kTurnUsername[] = "test";
-static const char kTurnPassword[] = "test";
+constexpr char kIcePwd[] = "TESTICEPWD00000000000000";
+constexpr char kTurnUsername[] = "test";
+constexpr char kTurnPassword[] = "test";
+
+// Constants for testing candidates
+constexpr char kIpv4Address[] = "12.34.56.78";
+constexpr char kIpv4AddressWithPort[] = "12.34.56.78:443";
+} // namespace
class PortAllocatorTest : public ::testing::Test, public sigslot::has_slots<> {
public:
@@ -288,10 +294,6 @@
allocator_->DiscardCandidatePool();
}
-// Constants for testing candidates
-const char kIpv4Address[] = "12.34.56.78";
-const char kIpv4AddressWithPort[] = "12.34.56.78:443";
-
TEST_F(PortAllocatorTest, SanitizeEmptyCandidateDefaultConfig) {
webrtc::Candidate input;
webrtc::Candidate output = allocator_->SanitizeCandidate(input);
diff --git a/p2p/base/regathering_controller_unittest.cc b/p2p/base/regathering_controller_unittest.cc
index 33ead46..51f8214 100644
--- a/p2p/base/regathering_controller_unittest.cc
+++ b/p2p/base/regathering_controller_unittest.cc
@@ -34,17 +34,17 @@
namespace {
-const int kOnlyLocalPorts = webrtc::PORTALLOCATOR_DISABLE_STUN |
- webrtc::PORTALLOCATOR_DISABLE_RELAY |
- webrtc::PORTALLOCATOR_DISABLE_TCP;
+constexpr int kOnlyLocalPorts = webrtc::PORTALLOCATOR_DISABLE_STUN |
+ webrtc::PORTALLOCATOR_DISABLE_RELAY |
+ webrtc::PORTALLOCATOR_DISABLE_TCP;
// The address of the public STUN server.
const webrtc::SocketAddress kStunAddr("99.99.99.1", webrtc::STUN_SERVER_PORT);
// The addresses for the public TURN server.
const webrtc::SocketAddress kTurnUdpIntAddr("99.99.99.3",
webrtc::STUN_SERVER_PORT);
const webrtc::RelayCredentials kRelayCredentials("test", "test");
-const char kIceUfrag[] = "UF00";
-const char kIcePwd[] = "TESTICEPWD00000000000000";
+constexpr char kIceUfrag[] = "UF00";
+constexpr char kIcePwd[] = "TESTICEPWD00000000000000";
} // namespace
diff --git a/p2p/base/stun_port_unittest.cc b/p2p/base/stun_port_unittest.cc
index dc5c215..6d74db4 100644
--- a/p2p/base/stun_port_unittest.cc
+++ b/p2p/base/stun_port_unittest.cc
@@ -95,13 +95,14 @@
const SocketAddress kBadHostnameAddr("not-a-real-hostname", 5000);
// STUN timeout (with all retries) is webrtc::STUN_TOTAL_TIMEOUT.
// Add some margin of error for slow bots.
-const int kTimeoutMs = webrtc::STUN_TOTAL_TIMEOUT;
+constexpr int kTimeoutMs = webrtc::STUN_TOTAL_TIMEOUT;
// stun prio = 100 (srflx) << 24 | 30 (IPv4) << 8 | 256 - 1 (component)
-const uint32_t kStunCandidatePriority = (100 << 24) | (30 << 8) | (256 - 1);
+constexpr uint32_t kStunCandidatePriority = (100 << 24) | (30 << 8) | (256 - 1);
// stun prio = 100 (srflx) << 24 | 40 (IPv6) << 8 | 256 - 1 (component)
-const uint32_t kIPv6StunCandidatePriority = (100 << 24) | (40 << 8) | (256 - 1);
-const int kInfiniteLifetime = -1;
-const int kHighCostPortKeepaliveLifetimeMs = 2 * 60 * 1000;
+constexpr uint32_t kIPv6StunCandidatePriority =
+ (100 << 24) | (40 << 8) | (256 - 1);
+constexpr int kInfiniteLifetime = -1;
+constexpr int kHighCostPortKeepaliveLifetimeMs = 2 * 60 * 1000;
constexpr uint64_t kTiebreakerDefault = 44444;
diff --git a/p2p/base/turn_port_unittest.cc b/p2p/base/turn_port_unittest.cc
index 15903be..5afce1b 100644
--- a/p2p/base/turn_port_unittest.cc
+++ b/p2p/base/turn_port_unittest.cc
@@ -112,13 +112,13 @@
const SocketAddress kTurnInvalidAddr("www.google.invalid.", 3478);
const SocketAddress kTurnValidAddr("www.google.valid.", 3478);
-const char kCandidateFoundation[] = "foundation";
-const char kIceUfrag1[] = "TESTICEUFRAG0001";
-const char kIceUfrag2[] = "TESTICEUFRAG0002";
-const char kIcePwd1[] = "TESTICEPWD00000000000001";
-const char kIcePwd2[] = "TESTICEPWD00000000000002";
-const char kTurnUsername[] = "test";
-const char kTurnPassword[] = "test";
+constexpr char kCandidateFoundation[] = "foundation";
+constexpr char kIceUfrag1[] = "TESTICEUFRAG0001";
+constexpr char kIceUfrag2[] = "TESTICEUFRAG0002";
+constexpr char kIcePwd1[] = "TESTICEPWD00000000000001";
+constexpr char kIcePwd2[] = "TESTICEPWD00000000000002";
+constexpr char kTurnUsername[] = "test";
+constexpr char kTurnPassword[] = "test";
// This test configures the virtual socket server to simulate delay so that we
// can verify operations take no more than the expected number of round trips.
constexpr unsigned int kSimulatedRtt = 50;
diff --git a/p2p/dtls/dtls_transport_unittest.cc b/p2p/dtls/dtls_transport_unittest.cc
index 1e7067d..b1dced7 100644
--- a/p2p/dtls/dtls_transport_unittest.cc
+++ b/p2p/dtls/dtls_transport_unittest.cc
@@ -67,7 +67,7 @@
static const int kFakePacketId = 0x1234;
static const int kTimeout = 10000;
-const uint8_t kRtpLeadByte = 0x80;
+constexpr uint8_t kRtpLeadByte = 0x80;
static bool IsRtpLeadByte(uint8_t b) {
return b == kRtpLeadByte;
diff --git a/pc/channel_unittest.cc b/pc/channel_unittest.cc
index 7209a3b..611339c 100644
--- a/pc/channel_unittest.cc
+++ b/pc/channel_unittest.cc
@@ -88,14 +88,14 @@
webrtc::CreateAudioCodec(103, "ISAC", 40000, 1);
const webrtc::Codec kH264Codec = webrtc::CreateVideoCodec(97, "H264");
const webrtc::Codec kH264SvcCodec = webrtc::CreateVideoCodec(99, "H264-SVC");
-const uint32_t kSsrc1 = 0x1111;
-const uint32_t kSsrc2 = 0x2222;
-const uint32_t kSsrc3 = 0x3333;
-const uint32_t kSsrc4 = 0x4444;
-const int kAudioPts[] = {0, 8};
-const int kVideoPts[] = {97, 99};
-const char kAudioMid[] = "0";
-const char kVideoMid[] = "1";
+constexpr uint32_t kSsrc1 = 0x1111;
+constexpr uint32_t kSsrc2 = 0x2222;
+constexpr uint32_t kSsrc3 = 0x3333;
+constexpr uint32_t kSsrc4 = 0x4444;
+constexpr int kAudioPts[] = {0, 8};
+constexpr int kVideoPts[] = {97, 99};
+constexpr char kAudioMid[] = "0";
+constexpr char kVideoMid[] = "1";
enum class NetworkIsWorker { Yes, No };
template <class ChannelT,
diff --git a/pc/dtls_srtp_transport_unittest.cc b/pc/dtls_srtp_transport_unittest.cc
index a4c27fe..1101ab2 100644
--- a/pc/dtls_srtp_transport_unittest.cc
+++ b/pc/dtls_srtp_transport_unittest.cc
@@ -46,7 +46,7 @@
using ::webrtc::RtpTransport;
using ::webrtc::SrtpTransport;
-const int kRtpAuthTagLen = 10;
+constexpr int kRtpAuthTagLen = 10;
class DtlsSrtpTransportTest : public ::testing::Test,
public sigslot::has_slots<> {
diff --git a/pc/jsep_session_description_unittest.cc b/pc/jsep_session_description_unittest.cc
index 842462d..5960d58 100644
--- a/pc/jsep_session_description_unittest.cc
+++ b/pc/jsep_session_description_unittest.cc
@@ -39,17 +39,17 @@
using ::testing::Values;
namespace {
-const char kAudioMid[] = "audio";
-const char kVideoMid[] = "video";
-const char kCandidateUfrag[] = "ufrag";
-const char kCandidatePwd[] = "pwd";
-const char kCandidateUfragVoice[] = "ufrag_voice";
-const char kCandidatePwdVoice[] = "pwd_voice";
-const char kCandidateUfragVideo[] = "ufrag_video";
-const char kCandidatePwdVideo[] = "pwd_video";
-const char kCandidateFoundation[] = "a0+B/1";
-const uint32_t kCandidatePriority = 2130706432U; // pref = 1.0
-const uint32_t kCandidateGeneration = 2;
+constexpr char kAudioMid[] = "audio";
+constexpr char kVideoMid[] = "video";
+constexpr char kCandidateUfrag[] = "ufrag";
+constexpr char kCandidatePwd[] = "pwd";
+constexpr char kCandidateUfragVoice[] = "ufrag_voice";
+constexpr char kCandidatePwdVoice[] = "pwd_voice";
+constexpr char kCandidateUfragVideo[] = "ufrag_video";
+constexpr char kCandidatePwdVideo[] = "pwd_video";
+constexpr char kCandidateFoundation[] = "a0+B/1";
+constexpr uint32_t kCandidatePriority = 2130706432U; // pref = 1.0
+constexpr uint32_t kCandidateGeneration = 2;
// This creates a session description with both audio and video media contents.
// In SDP this is described by two m lines, one audio and one video.
diff --git a/pc/jsep_transport_unittest.cc b/pc/jsep_transport_unittest.cc
index f425777..06bf6fd 100644
--- a/pc/jsep_transport_unittest.cc
+++ b/pc/jsep_transport_unittest.cc
@@ -61,11 +61,11 @@
namespace webrtc {
namespace {
-const char kIceUfrag1[] = "U001";
-const char kIcePwd1[] = "TESTICEPWD00000000000001";
-const char kIceUfrag2[] = "U002";
-const char kIcePwd2[] = "TESTIEPWD00000000000002";
-const char kTransportName[] = "Test Transport";
+constexpr char kIceUfrag1[] = "U001";
+constexpr char kIcePwd1[] = "TESTICEPWD00000000000001";
+constexpr char kIceUfrag2[] = "U002";
+constexpr char kIcePwd2[] = "TESTIEPWD00000000000002";
+constexpr char kTransportName[] = "Test Transport";
struct NegotiateRoleParams {
ConnectionRole local_role;
diff --git a/pc/legacy_stats_collector_unittest.cc b/pc/legacy_stats_collector_unittest.cc
index 5f6aff4..36d9a49 100644
--- a/pc/legacy_stats_collector_unittest.cc
+++ b/pc/legacy_stats_collector_unittest.cc
@@ -61,30 +61,21 @@
#include "test/gmock.h"
#include "test/gtest.h"
+namespace webrtc {
+
using ::testing::_;
using ::testing::AtMost;
using ::testing::Eq;
using ::testing::Return;
using ::testing::UnorderedElementsAre;
-using ::webrtc::ConnectionInfo;
-using ::webrtc::SsrcReceiverInfo;
-using ::webrtc::TransportChannelStats;
-using ::webrtc::VideoMediaInfo;
-using ::webrtc::VideoReceiverInfo;
-using ::webrtc::VideoSenderInfo;
-using ::webrtc::VoiceMediaInfo;
-using ::webrtc::VoiceReceiverInfo;
-using ::webrtc::VoiceSenderInfo;
-
-namespace webrtc {
// Error return values
-const char kNotFound[] = "NOT FOUND";
+constexpr char kNotFound[] = "NOT FOUND";
// Constant names for track identification.
-const char kLocalTrackId[] = "local_track_id";
-const char kRemoteTrackId[] = "remote_track_id";
-const uint32_t kSsrcOfTrack = 1234;
+constexpr char kLocalTrackId[] = "local_track_id";
+constexpr char kRemoteTrackId[] = "remote_track_id";
+constexpr uint32_t kSsrcOfTrack = 1234;
class FakeAudioProcessor : public AudioProcessorInterface {
public:
diff --git a/pc/media_session_unittest.cc b/pc/media_session_unittest.cc
index b63161b..0501ef0 100644
--- a/pc/media_session_unittest.cc
+++ b/pc/media_session_unittest.cc
@@ -87,9 +87,9 @@
using Candidates = std::vector<Candidate>;
-const char kAudioMid[] = "0";
-const char kVideoMid[] = "1";
-const char kDataMid[] = "2";
+constexpr char kAudioMid[] = "0";
+constexpr char kVideoMid[] = "1";
+constexpr char kDataMid[] = "2";
class CodecLookupHelperForTesting : public CodecLookupHelper {
public:
@@ -144,11 +144,11 @@
// H.265 level-id, according to H.265 spec, is calculated this way:
// For any given H.265 level a.b, level-id = (a * 10 + b) * 3. For level 6.0,
// level-id = (6 * 10 + 0) * 3 = 180. Similar for all other H.265 levels.
-const char kVideoCodecsH265Level6LevelId[] = "180";
-const char kVideoCodecsH265Level52LevelId[] = "156";
-const char kVideoCodecsH265Level5LevelId[] = "150";
-const char kVideoCodecsH265Level4LevelId[] = "120";
-const char kVideoCodecsH265Level31LevelId[] = "93";
+constexpr char kVideoCodecsH265Level6LevelId[] = "180";
+constexpr char kVideoCodecsH265Level52LevelId[] = "156";
+constexpr char kVideoCodecsH265Level5LevelId[] = "150";
+constexpr char kVideoCodecsH265Level4LevelId[] = "120";
+constexpr char kVideoCodecsH265Level31LevelId[] = "93";
const SdpVideoFormat kH265MainProfileLevel31Sdp(
"H265",
@@ -357,19 +357,19 @@
3),
};
-const uint32_t kSimulcastParamsSsrc[] = {10, 11, 20, 21, 30, 31};
-const uint32_t kSimSsrc[] = {10, 20, 30};
-const uint32_t kFec1Ssrc[] = {10, 11};
-const uint32_t kFec2Ssrc[] = {20, 21};
-const uint32_t kFec3Ssrc[] = {30, 31};
+constexpr uint32_t kSimulcastParamsSsrc[] = {10, 11, 20, 21, 30, 31};
+constexpr uint32_t kSimSsrc[] = {10, 20, 30};
+constexpr uint32_t kFec1Ssrc[] = {10, 11};
+constexpr uint32_t kFec2Ssrc[] = {20, 21};
+constexpr uint32_t kFec3Ssrc[] = {30, 31};
-const char kMediaStream1[] = "stream_1";
-const char kMediaStream2[] = "stream_2";
-const char kVideoTrack1[] = "video_1";
-const char kVideoTrack2[] = "video_2";
-const char kAudioTrack1[] = "audio_1";
-const char kAudioTrack2[] = "audio_2";
-const char kAudioTrack3[] = "audio_3";
+constexpr char kMediaStream1[] = "stream_1";
+constexpr char kMediaStream2[] = "stream_2";
+constexpr char kVideoTrack1[] = "video_1";
+constexpr char kVideoTrack2[] = "video_2";
+constexpr char kAudioTrack1[] = "audio_1";
+constexpr char kAudioTrack2[] = "audio_2";
+constexpr char kAudioTrack3[] = "audio_3";
const char* kMediaProtocols[] = {"RTP/AVP", "RTP/SAVP", "RTP/AVPF",
"RTP/SAVPF"};
@@ -4882,18 +4882,18 @@
* 6 | x x x | x x x | x x x x x
*/
// Codecs used by offerer in the AudioCodecsAnswerTest
-const int kOfferSendCodecs[] = {0, 1, 3, 5, 6};
-const int kOfferRecvCodecs[] = {1, 2, 3, 4, 6};
+constexpr int kOfferSendCodecs[] = {0, 1, 3, 5, 6};
+constexpr int kOfferRecvCodecs[] = {1, 2, 3, 4, 6};
// Codecs used in the answerer in the AudioCodecsAnswerTest. The order is
// jumbled to catch the answer not following the order in the offer.
-const int kAnswerSendCodecs[] = {6, 5, 2, 3, 4};
-const int kAnswerRecvCodecs[] = {6, 5, 4, 1, 0};
+constexpr int kAnswerSendCodecs[] = {6, 5, 2, 3, 4};
+constexpr int kAnswerRecvCodecs[] = {6, 5, 4, 1, 0};
// The resulting sets of codecs in the answer in the AudioCodecsAnswerTest
-const int kResultSend_RecvCodecs[] = {0, 1, 5, 6};
-const int kResultRecv_SendCodecs[] = {2, 3, 4, 6};
-const int kResultSendrecv_SendCodecs[] = {3, 6};
-const int kResultSendrecv_RecvCodecs[] = {1, 6};
-const int kResultSendrecv_SendrecvCodecs[] = {6};
+constexpr int kResultSend_RecvCodecs[] = {0, 1, 5, 6};
+constexpr int kResultRecv_SendCodecs[] = {2, 3, 4, 6};
+constexpr int kResultSendrecv_SendCodecs[] = {3, 6};
+constexpr int kResultSendrecv_RecvCodecs[] = {1, 6};
+constexpr int kResultSendrecv_SendrecvCodecs[] = {6};
template <typename T, int IDXS>
std::vector<T> VectorFromIndices(const T* array, const int (&indices)[IDXS]) {
diff --git a/pc/peer_connection_end_to_end_unittest.cc b/pc/peer_connection_end_to_end_unittest.cc
index 2fcf4dc..32c0b9a 100644
--- a/pc/peer_connection_end_to_end_unittest.cc
+++ b/pc/peer_connection_end_to_end_unittest.cc
@@ -73,7 +73,7 @@
namespace {
-const int kMaxWait = 25000;
+constexpr int kMaxWait = 25000;
} // namespace
diff --git a/pc/peer_connection_factory_unittest.cc b/pc/peer_connection_factory_unittest.cc
index 568c123..cde9c61 100644
--- a/pc/peer_connection_factory_unittest.cc
+++ b/pc/peer_connection_factory_unittest.cc
@@ -87,23 +87,25 @@
using ::testing::Return;
using ::testing::UnorderedElementsAre;
-const char kStunIceServer[] = "stun:stun.l.google.com:19302";
-const char kTurnIceServer[] = "turn:test.com:1234";
-const char kTurnIceServerWithTransport[] = "turn:hello.com?transport=tcp";
-const char kSecureTurnIceServer[] = "turns:hello.com?transport=tcp";
-const char kSecureTurnIceServerWithoutTransportParam[] = "turns:hello.com:443";
-const char kSecureTurnIceServerWithoutTransportAndPortParam[] =
+constexpr char kStunIceServer[] = "stun:stun.l.google.com:19302";
+constexpr char kTurnIceServer[] = "turn:test.com:1234";
+constexpr char kTurnIceServerWithTransport[] = "turn:hello.com?transport=tcp";
+constexpr char kSecureTurnIceServer[] = "turns:hello.com?transport=tcp";
+constexpr char kSecureTurnIceServerWithoutTransportParam[] =
+ "turns:hello.com:443";
+constexpr char kSecureTurnIceServerWithoutTransportAndPortParam[] =
"turns:hello.com";
-const char kTurnIceServerWithNoUsernameInUri[] = "turn:test.com:1234";
-const char kTurnPassword[] = "turnpassword";
-const int kDefaultStunPort = 3478;
-const int kDefaultStunTlsPort = 5349;
-const char kTurnUsername[] = "test";
-const char kStunIceServerWithIPv4Address[] = "stun:1.2.3.4:1234";
-const char kStunIceServerWithIPv4AddressWithoutPort[] = "stun:1.2.3.4";
-const char kStunIceServerWithIPv6Address[] = "stun:[2401:fa00:4::]:1234";
-const char kStunIceServerWithIPv6AddressWithoutPort[] = "stun:[2401:fa00:4::]";
-const char kTurnIceServerWithIPv6Address[] = "turn:[2401:fa00:4::]:1234";
+constexpr char kTurnIceServerWithNoUsernameInUri[] = "turn:test.com:1234";
+constexpr char kTurnPassword[] = "turnpassword";
+constexpr int kDefaultStunPort = 3478;
+constexpr int kDefaultStunTlsPort = 5349;
+constexpr char kTurnUsername[] = "test";
+constexpr char kStunIceServerWithIPv4Address[] = "stun:1.2.3.4:1234";
+constexpr char kStunIceServerWithIPv4AddressWithoutPort[] = "stun:1.2.3.4";
+constexpr char kStunIceServerWithIPv6Address[] = "stun:[2401:fa00:4::]:1234";
+constexpr char kStunIceServerWithIPv6AddressWithoutPort[] =
+ "stun:[2401:fa00:4::]";
+constexpr char kTurnIceServerWithIPv6Address[] = "turn:[2401:fa00:4::]:1234";
class NullPeerConnectionObserver : public PeerConnectionObserver {
public:
diff --git a/pc/peer_connection_histogram_unittest.cc b/pc/peer_connection_histogram_unittest.cc
index d802c6d..7641345 100644
--- a/pc/peer_connection_histogram_unittest.cc
+++ b/pc/peer_connection_histogram_unittest.cc
@@ -48,9 +48,15 @@
#include "test/wait_until.h"
namespace webrtc {
-
namespace {
+using ::testing::NiceMock;
+using RTCConfiguration = PeerConnectionInterface::RTCConfiguration;
+using RTCOfferAnswerOptions = PeerConnectionInterface::RTCOfferAnswerOptions;
+
+class PeerConnectionWrapperForUsageHistogramTest;
+typedef PeerConnectionWrapperForUsageHistogramTest* RawWrapperPtr;
+
constexpr const char kBasicRemoteDescription[] = R"(v=0
o=- 0 0 IN IP4 127.0.0.1
s=-
@@ -68,11 +74,7 @@
a=rtpmap:101 fake_audio_codec/8000
)";
-using RTCConfiguration = PeerConnectionInterface::RTCConfiguration;
-using RTCOfferAnswerOptions = PeerConnectionInterface::RTCOfferAnswerOptions;
-using ::testing::NiceMock;
-
-const char kUsagePatternMetric[] = "WebRTC.PeerConnection.UsagePattern";
+constexpr char kUsagePatternMetric[] = "WebRTC.PeerConnection.UsagePattern";
constexpr TimeDelta kDefaultTimeout = TimeDelta::Millis(10000);
const SocketAddress kLocalAddrs[2] = {SocketAddress("1.1.1.1", 0),
SocketAddress("2.2.2.2", 0)};
@@ -87,10 +89,6 @@
return signature;
}
-class PeerConnectionWrapperForUsageHistogramTest;
-
-typedef PeerConnectionWrapperForUsageHistogramTest* RawWrapperPtr;
-
class ObserverForUsageHistogramTest : public MockPeerConnectionObserver {
public:
void OnIceCandidate(const IceCandidate* candidate) override;
@@ -812,5 +810,4 @@
#endif
} // namespace
-
} // namespace webrtc
diff --git a/pc/peer_connection_interface_unittest.cc b/pc/peer_connection_interface_unittest.cc
index d54564d..04ac3fd 100644
--- a/pc/peer_connection_interface_unittest.cc
+++ b/pc/peer_connection_interface_unittest.cc
@@ -107,30 +107,30 @@
using RTCConfiguration = PeerConnectionInterface::RTCConfiguration;
using RTCOfferAnswerOptions = PeerConnectionInterface::RTCOfferAnswerOptions;
-const char kStreamId1[] = "local_stream_1";
-const char kStreamId2[] = "local_stream_2";
-const char kStreamId3[] = "local_stream_3";
-const int kDefaultStunPort = 3478;
-const char kStunAddressOnly[] = "stun:address";
-const char kStunInvalidPort[] = "stun:address:-1";
-const char kStunAddressPortAndMore1[] = "stun:address:port:more";
-const char kStunAddressPortAndMore2[] = "stun:address:port more";
-const char kTurnIceServerUri[] = "turn:turn.example.org";
-const char kTurnUsername[] = "user";
-const char kTurnPassword[] = "password";
-const char kTurnHostname[] = "turn.example.org";
-const uint32_t kTimeout = 10000U;
+constexpr char kStreamId1[] = "local_stream_1";
+constexpr char kStreamId2[] = "local_stream_2";
+constexpr char kStreamId3[] = "local_stream_3";
+constexpr int kDefaultStunPort = 3478;
+constexpr char kStunAddressOnly[] = "stun:address";
+constexpr char kStunInvalidPort[] = "stun:address:-1";
+constexpr char kStunAddressPortAndMore1[] = "stun:address:port:more";
+constexpr char kStunAddressPortAndMore2[] = "stun:address:port more";
+constexpr char kTurnIceServerUri[] = "turn:turn.example.org";
+constexpr char kTurnUsername[] = "user";
+constexpr char kTurnPassword[] = "password";
+constexpr char kTurnHostname[] = "turn.example.org";
+constexpr uint32_t kTimeout = 10000U;
-const char kStreams[][8] = {"stream1", "stream2"};
-const char kAudioTracks[][32] = {"audiotrack0", "audiotrack1"};
-const char kVideoTracks[][32] = {"videotrack0", "videotrack1"};
+constexpr char kStreams[][8] = {"stream1", "stream2"};
+constexpr char kAudioTracks[][32] = {"audiotrack0", "audiotrack1"};
+constexpr char kVideoTracks[][32] = {"videotrack0", "videotrack1"};
-const char kRecvonly[] = "recvonly";
-const char kSendrecv[] = "sendrecv";
+constexpr char kRecvonly[] = "recvonly";
+constexpr char kSendrecv[] = "sendrecv";
// Reference SDP with a MediaStream with label "stream1" and audio track with
// id "audio_1" and a video track with id "video_1;
-const char kSdpStringWithStream1PlanB[] =
+constexpr char kSdpStringWithStream1PlanB[] =
"v=0\r\n"
"o=- 0 0 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -160,7 +160,7 @@
// Same string as above but with the MID changed to the Unified Plan default and
// a=msid added. This is needed so that this SDP can be used as an answer for a
// Unified Plan offer.
-const char kSdpStringWithStream1UnifiedPlan[] =
+constexpr char kSdpStringWithStream1UnifiedPlan[] =
"v=0\r\n"
"o=- 0 0 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -190,7 +190,7 @@
// Reference SDP with a MediaStream with label "stream1" and audio track with
// id "audio_1";
-const char kSdpStringWithStream1AudioTrackOnly[] =
+constexpr char kSdpStringWithStream1AudioTrackOnly[] =
"v=0\r\n"
"o=- 0 0 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -210,7 +210,7 @@
// Reference SDP with two MediaStreams with label "stream1" and "stream2. Each
// MediaStreams have one audio track and one video track.
// This uses MSID.
-const char kSdpStringWithStream1And2PlanB[] =
+constexpr char kSdpStringWithStream1And2PlanB[] =
"v=0\r\n"
"o=- 0 0 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -242,7 +242,7 @@
"a=ssrc:2 msid:stream1 videotrack0\r\n"
"a=ssrc:4 cname:stream2\r\n"
"a=ssrc:4 msid:stream2 videotrack1\r\n";
-const char kSdpStringWithStream1And2UnifiedPlan[] =
+constexpr char kSdpStringWithStream1And2UnifiedPlan[] =
"v=0\r\n"
"o=- 0 0 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -294,7 +294,7 @@
"a=ssrc:4 msid:stream2 videotrack1\r\n";
// Reference SDP without MediaStreams. Msid is not supported.
-const char kSdpStringWithoutStreams[] =
+constexpr char kSdpStringWithoutStreams[] =
"v=0\r\n"
"o=- 0 0 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -319,7 +319,7 @@
"a=rtpmap:120 VP8/90000\r\n";
// Reference SDP without MediaStreams. Msid is supported.
-const char kSdpStringWithMsidWithoutStreams[] =
+constexpr char kSdpStringWithMsidWithoutStreams[] =
"v=0\r\n"
"o=- 0 0 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -345,7 +345,7 @@
"a=rtpmap:120 VP8/90000\r\n";
// Reference SDP without MediaStreams and audio only.
-const char kSdpStringWithoutStreamsAudioOnly[] =
+constexpr char kSdpStringWithoutStreamsAudioOnly[] =
"v=0\r\n"
"o=- 0 0 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -361,7 +361,7 @@
"a=rtpmap:111 OPUS/48000/2\r\n";
// Reference SENDONLY SDP without MediaStreams. Msid is not supported.
-const char kSdpStringSendOnlyWithoutStreams[] =
+constexpr char kSdpStringSendOnlyWithoutStreams[] =
"v=0\r\n"
"o=- 0 0 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -387,14 +387,14 @@
"a=rtcp-mux\r\n"
"a=rtpmap:120 VP8/90000\r\n";
-const char kSdpStringInit[] =
+constexpr char kSdpStringInit[] =
"v=0\r\n"
"o=- 0 0 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
"t=0 0\r\n"
"a=msid-semantic: WMS\r\n";
-const char kSdpStringAudio[] =
+constexpr char kSdpStringAudio[] =
"m=audio 1 RTP/AVPF 111\r\n"
"a=ice-ufrag:e5785931\r\n"
"a=ice-pwd:36fb7878390db89481c1d46daa4278d8\r\n"
@@ -405,7 +405,7 @@
"a=rtcp-mux\r\n"
"a=rtpmap:111 OPUS/48000/2\r\n";
-const char kSdpStringVideo[] =
+constexpr char kSdpStringVideo[] =
"m=video 1 RTP/AVPF 120\r\n"
"a=ice-ufrag:e5785931\r\n"
"a=ice-pwd:36fb7878390db89481c1d46daa4278d8\r\n"
@@ -416,19 +416,19 @@
"a=rtcp-mux\r\n"
"a=rtpmap:120 VP8/90000\r\n";
-const char kSdpStringMs1Audio0[] =
+constexpr char kSdpStringMs1Audio0[] =
"a=ssrc:1 cname:stream1\r\n"
"a=ssrc:1 msid:stream1 audiotrack0\r\n";
-const char kSdpStringMs1Video0[] =
+constexpr char kSdpStringMs1Video0[] =
"a=ssrc:2 cname:stream1\r\n"
"a=ssrc:2 msid:stream1 videotrack0\r\n";
-const char kSdpStringMs1Audio1[] =
+constexpr char kSdpStringMs1Audio1[] =
"a=ssrc:3 cname:stream1\r\n"
"a=ssrc:3 msid:stream1 audiotrack1\r\n";
-const char kSdpStringMs1Video1[] =
+constexpr char kSdpStringMs1Video1[] =
"a=ssrc:4 cname:stream1\r\n"
"a=ssrc:4 msid:stream1 videotrack1\r\n";
diff --git a/pc/peer_connection_signaling_unittest.cc b/pc/peer_connection_signaling_unittest.cc
index 61c4a7a..571d224 100644
--- a/pc/peer_connection_signaling_unittest.cc
+++ b/pc/peer_connection_signaling_unittest.cc
@@ -82,7 +82,7 @@
using ::testing::Values;
namespace {
-const int64_t kWaitTimeout = 10000;
+constexpr int64_t kWaitTimeout = 10000;
} // namespace
class PeerConnectionWrapperForSignalingTest : public PeerConnectionWrapper {
diff --git a/pc/rtc_stats_collector_unittest.cc b/pc/rtc_stats_collector_unittest.cc
index f3f2a92..77a9ebb 100644
--- a/pc/rtc_stats_collector_unittest.cc
+++ b/pc/rtc_stats_collector_unittest.cc
@@ -105,7 +105,7 @@
namespace {
-const int64_t kGetStatsReportTimeoutMs = 1000;
+constexpr int64_t kGetStatsReportTimeoutMs = 1000;
// Fake data used by `SetupExampleStatsVoiceGraph()` to fill in remote outbound
// stats.
diff --git a/pc/rtp_sender_receiver_unittest.cc b/pc/rtp_sender_receiver_unittest.cc
index 5074c1d..5b32de7 100644
--- a/pc/rtp_sender_receiver_unittest.cc
+++ b/pc/rtp_sender_receiver_unittest.cc
@@ -71,15 +71,15 @@
namespace {
-const char kStreamId1[] = "local_stream_1";
-const char kVideoTrackId[] = "video_1";
-const char kAudioTrackId[] = "audio_1";
-const uint32_t kVideoSsrc = 98;
-const uint32_t kVideoSsrc2 = 100;
-const uint32_t kAudioSsrc = 99;
-const uint32_t kAudioSsrc2 = 101;
-const uint32_t kVideoSsrcSimulcast = 102;
-const uint32_t kVideoSimulcastLayerCount = 2;
+constexpr char kStreamId1[] = "local_stream_1";
+constexpr char kVideoTrackId[] = "video_1";
+constexpr char kAudioTrackId[] = "audio_1";
+constexpr uint32_t kVideoSsrc = 98;
+constexpr uint32_t kVideoSsrc2 = 100;
+constexpr uint32_t kAudioSsrc = 99;
+constexpr uint32_t kAudioSsrc2 = 101;
+constexpr uint32_t kVideoSsrcSimulcast = 102;
+constexpr uint32_t kVideoSimulcastLayerCount = 2;
class MockSetStreamsObserver
: public webrtc::RtpSenderBase::SetStreamsObserver {
diff --git a/pc/webrtc_sdp_unittest.cc b/pc/webrtc_sdp_unittest.cc
index 5bb0a0c..12c6a79 100644
--- a/pc/webrtc_sdp_unittest.cc
+++ b/pc/webrtc_sdp_unittest.cc
@@ -64,39 +64,45 @@
using ::testing::Field;
using ::testing::Property;
-const uint32_t kDefaultSctpPort = 5000;
-const uint16_t kUnusualSctpPort = 9556;
-const char kSessionTime[] = "t=0 0\r\n";
-const uint32_t kCandidatePriority = 2130706432U; // pref = 1.0
-const char kAttributeIceUfragVoice[] = "a=ice-ufrag:ufrag_voice\r\n";
-const char kAttributeIcePwdVoice[] = "a=ice-pwd:pwd_voice\r\n";
-const char kAttributeIceUfragVideo[] = "a=ice-ufrag:ufrag_video\r\n";
-const char kAttributeIcePwdVideo[] = "a=ice-pwd:pwd_video\r\n";
-const uint32_t kCandidateGeneration = 2;
-const char kCandidateFoundation1[] = "a0+B/1";
-const char kCandidateFoundation2[] = "a0+B/2";
-const char kCandidateFoundation3[] = "a0+B/3";
-const char kCandidateFoundation4[] = "a0+B/4";
-const char kFingerprint[] =
+constexpr uint32_t kDefaultSctpPort = 5000;
+constexpr uint16_t kUnusualSctpPort = 9556;
+constexpr char kSessionTime[] = "t=0 0\r\n";
+constexpr uint32_t kCandidatePriority = 2130706432U; // pref = 1.0
+constexpr char kAttributeIceUfragVoice[] = "a=ice-ufrag:ufrag_voice\r\n";
+constexpr char kAttributeIcePwdVoice[] = "a=ice-pwd:pwd_voice\r\n";
+constexpr char kAttributeIceUfragVideo[] = "a=ice-ufrag:ufrag_video\r\n";
+constexpr char kAttributeIcePwdVideo[] = "a=ice-pwd:pwd_video\r\n";
+constexpr uint32_t kCandidateGeneration = 2;
+constexpr char kCandidateFoundation1[] = "a0+B/1";
+constexpr char kCandidateFoundation2[] = "a0+B/2";
+constexpr char kCandidateFoundation3[] = "a0+B/3";
+constexpr char kCandidateFoundation4[] = "a0+B/4";
+constexpr char kFingerprint[] =
"a=fingerprint:sha-1 "
"4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB\r\n";
-const char kExtmapAllowMixed[] = "a=extmap-allow-mixed\r\n";
-const int kExtmapId = 1;
-const char kExtmapUri[] = "http://example.com/082005/ext.htm#ttime";
-const char kExtmap[] = "a=extmap:1 http://example.com/082005/ext.htm#ttime\r\n";
-const char kExtmapWithDirectionAndAttribute[] =
+constexpr char kExtmapAllowMixed[] = "a=extmap-allow-mixed\r\n";
+constexpr int kExtmapId = 1;
+constexpr char kExtmapUri[] = "http://example.com/082005/ext.htm#ttime";
+constexpr char kExtmap[] =
+ "a=extmap:1 http://example.com/082005/ext.htm#ttime\r\n";
+constexpr char kExtmapWithDirectionAndAttribute[] =
"a=extmap:1/sendrecv http://example.com/082005/ext.htm#ttime a1 a2\r\n";
-const char kExtmapWithDirectionAndAttributeEncrypted[] =
+constexpr char kExtmapWithDirectionAndAttributeEncrypted[] =
"a=extmap:1/sendrecv urn:ietf:params:rtp-hdrext:encrypt "
"http://example.com/082005/ext.htm#ttime a1 a2\r\n";
-const uint8_t kIdentityDigest[] = {0x4A, 0xAD, 0xB9, 0xB1, 0x3F, 0x82, 0x18,
- 0x3B, 0x54, 0x02, 0x12, 0xDF, 0x3E, 0x5D,
- 0x49, 0x6B, 0x19, 0xE5, 0x7C, 0xAB};
+constexpr uint8_t kIdentityDigest[] = {0x4A, 0xAD, 0xB9, 0xB1, 0x3F, 0x82, 0x18,
+ 0x3B, 0x54, 0x02, 0x12, 0xDF, 0x3E, 0x5D,
+ 0x49, 0x6B, 0x19, 0xE5, 0x7C, 0xAB};
-const char kDtlsSctp[] = "DTLS/SCTP";
-const char kUdpDtlsSctp[] = "UDP/DTLS/SCTP";
-const char kTcpDtlsSctp[] = "TCP/DTLS/SCTP";
+constexpr char kDtlsSctp[] = "DTLS/SCTP";
+constexpr char kUdpDtlsSctp[] = "UDP/DTLS/SCTP";
+constexpr char kTcpDtlsSctp[] = "TCP/DTLS/SCTP";
+
+constexpr char kMediaSectionMsidLine[] =
+ "a=msid:local_stream_1 audio_track_id_1";
+constexpr char kSsrcAttributeMsidLine[] =
+ "a=ssrc:1 msid:local_stream_1 audio_track_id_1";
struct CodecParams {
int max_ptime;
@@ -109,7 +115,7 @@
};
// Reference sdp string
-const char kSdpFullString[] =
+constexpr char kSdpFullString[] =
"v=0\r\n"
"o=- 18446744069414584320 18446462598732840960 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -172,7 +178,7 @@
"a=ssrc:3 cname:stream_1_cname\r\n";
// SDP reference string without the candidates.
-const char kSdpString[] =
+constexpr char kSdpString[] =
"v=0\r\n"
"o=- 18446744069414584320 18446462598732840960 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -211,7 +217,7 @@
"a=ssrc:3 cname:stream_1_cname\r\n";
// draft-ietf-mmusic-sctp-sdp-03
-const char kSdpSctpDataChannelString[] =
+constexpr char kSdpSctpDataChannelString[] =
"m=application 9 UDP/DTLS/SCTP 5000\r\n"
"c=IN IP4 0.0.0.0\r\n"
"a=ice-ufrag:ufrag_data\r\n"
@@ -225,7 +231,7 @@
// draft-ietf-mmusic-sctp-sdp-12
// Note - this is invalid per draft-ietf-mmusic-sctp-sdp-26,
// since the separator after "sctp-port" needs to be a colon.
-const char kSdpSctpDataChannelStringWithSctpPort[] =
+constexpr char kSdpSctpDataChannelStringWithSctpPort[] =
"m=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\n"
"a=sctp-port 5000\r\n"
"c=IN IP4 0.0.0.0\r\n"
@@ -237,7 +243,7 @@
"a=mid:data_content_name\r\n";
// draft-ietf-mmusic-sctp-sdp-26
-const char kSdpSctpDataChannelStringWithSctpColonPort[] =
+constexpr char kSdpSctpDataChannelStringWithSctpColonPort[] =
"m=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\n"
"a=sctp-port:5000\r\n"
"c=IN IP4 0.0.0.0\r\n"
@@ -248,7 +254,7 @@
"a=mid:data_content_name\r\n";
-const char kSdpSctpDataChannelWithCandidatesString[] =
+constexpr char kSdpSctpDataChannelWithCandidatesString[] =
"m=application 2345 UDP/DTLS/SCTP 5000\r\n"
"c=IN IP4 74.125.127.126\r\n"
"a=candidate:a0+B/1 1 udp 2130706432 192.168.1.5 1234 typ host "
@@ -266,7 +272,7 @@
"a=mid:data_content_name\r\n"
"a=sctpmap:5000 webrtc-datachannel 1024\r\n";
-const char kSdpConferenceString[] =
+constexpr char kSdpConferenceString[] =
"v=0\r\n"
"o=- 18446744069414584320 18446462598732840960 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -279,14 +285,14 @@
"c=IN IP4 0.0.0.0\r\n"
"a=x-google-flag:conference\r\n";
-const char kSdpSessionString[] =
+constexpr char kSdpSessionString[] =
"v=0\r\n"
"o=- 18446744069414584320 18446462598732840960 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
"t=0 0\r\n"
"a=msid-semantic: WMS local_stream\r\n";
-const char kSdpAudioString[] =
+constexpr char kSdpAudioString[] =
"m=audio 9 RTP/SAVPF 111\r\n"
"c=IN IP4 0.0.0.0\r\n"
"a=rtcp:9 IN IP4 0.0.0.0\r\n"
@@ -300,7 +306,7 @@
"a=ssrc:1 cname:stream_1_cname\r\n"
"a=ssrc:1 msid:local_stream audio_track_id_1\r\n";
-const char kSdpVideoString[] =
+constexpr char kSdpVideoString[] =
"m=video 9 RTP/SAVPF 120\r\n"
"c=IN IP4 0.0.0.0\r\n"
"a=rtcp:9 IN IP4 0.0.0.0\r\n"
@@ -315,7 +321,7 @@
"a=ssrc:2 msid:local_stream video_track_id_1\r\n";
// Reference sdp string using bundle-only.
-const char kBundleOnlySdpFullString[] =
+constexpr char kBundleOnlySdpFullString[] =
"v=0\r\n"
"o=- 18446744069414584320 18446462598732840960 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -369,7 +375,7 @@
// Plan B SDP reference string, with 2 streams, 2 audio tracks and 3 video
// tracks.
-const char kPlanBSdpFullString[] =
+constexpr char kPlanBSdpFullString[] =
"v=0\r\n"
"o=- 18446744069414584320 18446462598732840960 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -442,7 +448,7 @@
// Unified Plan SDP reference string, with 2 streams, 2 audio tracks and 3 video
// tracks.
-const char kUnifiedPlanSdpFullString[] =
+constexpr char kUnifiedPlanSdpFullString[] =
"v=0\r\n"
"o=- 18446744069414584320 18446462598732840960 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -558,7 +564,7 @@
// there are 0 media stream ids.
// This Unified Plan SDP represents a SDP that signals the msid using both
// a=msid and a=ssrc msid semantics.
-const char kUnifiedPlanSdpFullStringWithSpecialMsid[] =
+constexpr char kUnifiedPlanSdpFullStringWithSpecialMsid[] =
"v=0\r\n"
"o=- 18446744069414584320 18446462598732840960 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -638,7 +644,7 @@
"a=ssrc:7 msid:- audio_track_id_3\r\n";
// SDP string for unified plan without SSRCs
-const char kUnifiedPlanSdpFullStringNoSsrc[] =
+constexpr char kUnifiedPlanSdpFullStringNoSsrc[] =
"v=0\r\n"
"o=- 18446744069414584320 18446462598732840960 IN IP4 127.0.0.1\r\n"
"s=-\r\n"
@@ -732,101 +738,101 @@
// One candidate reference string as per W3c spec.
// candidate:<blah> not a=candidate:<blah>CRLF
-const char kRawCandidate[] =
+constexpr char kRawCandidate[] =
"candidate:a0+B/1 1 udp 2130706432 192.168.1.5 1234 typ host generation 2";
// One candidate reference string.
-const char kSdpOneCandidate[] =
+constexpr char kSdpOneCandidate[] =
"a=candidate:a0+B/1 1 udp 2130706432 192.168.1.5 1234 typ host "
"generation 2\r\n";
-const char kSdpTcpActiveCandidate[] =
+constexpr char kSdpTcpActiveCandidate[] =
"candidate:a0+B/1 1 tcp 2130706432 192.168.1.5 9 typ host "
"tcptype active generation 2";
-const char kSdpTcpPassiveCandidate[] =
+constexpr char kSdpTcpPassiveCandidate[] =
"candidate:a0+B/1 1 tcp 2130706432 192.168.1.5 9 typ host "
"tcptype passive generation 2";
-const char kSdpTcpSOCandidate[] =
+constexpr char kSdpTcpSOCandidate[] =
"candidate:a0+B/1 1 tcp 2130706432 192.168.1.5 9 typ host "
"tcptype so generation 2";
-const char kSdpTcpInvalidCandidate[] =
+constexpr char kSdpTcpInvalidCandidate[] =
"candidate:a0+B/1 1 tcp 2130706432 192.168.1.5 9 typ host "
"tcptype invalid generation 2";
// One candidate reference string with IPV6 address.
-const char kRawIPV6Candidate[] =
+constexpr char kRawIPV6Candidate[] =
"candidate:a0+B/1 1 udp 2130706432 "
"abcd:abcd:abcd:abcd:abcd:abcd:abcd:abcd 1234 typ host generation 2";
// One candidate reference string.
-const char kSdpOneCandidateWithUfragPwd[] =
+constexpr char kSdpOneCandidateWithUfragPwd[] =
"a=candidate:a0+B/1 1 udp 2130706432 192.168.1.5 1234 typ host network_name"
" eth0 ufrag user_rtp pwd password_rtp generation 2\r\n";
-const char kRawHostnameCandidate[] =
+constexpr char kRawHostnameCandidate[] =
"candidate:a0+B/1 1 udp 2130706432 a.test 1234 typ host generation 2";
// Session id and version
-const char kSessionId[] = "18446744069414584320";
-const char kSessionVersion[] = "18446462598732840960";
+constexpr char kSessionId[] = "18446744069414584320";
+constexpr char kSessionVersion[] = "18446462598732840960";
// ICE options.
-const char kIceOption1[] = "iceoption1";
-const char kIceOption2[] = "iceoption2";
-const char kIceOption3[] = "iceoption3";
+constexpr char kIceOption1[] = "iceoption1";
+constexpr char kIceOption2[] = "iceoption2";
+constexpr char kIceOption3[] = "iceoption3";
// ICE ufrags/passwords.
-const char kUfragVoice[] = "ufrag_voice";
-const char kPwdVoice[] = "pwd_voice";
-const char kUfragVideo[] = "ufrag_video";
-const char kPwdVideo[] = "pwd_video";
-const char kUfragData[] = "ufrag_data";
-const char kPwdData[] = "pwd_data";
+constexpr char kUfragVoice[] = "ufrag_voice";
+constexpr char kPwdVoice[] = "pwd_voice";
+constexpr char kUfragVideo[] = "ufrag_video";
+constexpr char kPwdVideo[] = "pwd_video";
+constexpr char kUfragData[] = "ufrag_data";
+constexpr char kPwdData[] = "pwd_data";
// Extra ufrags/passwords for extra unified plan m= sections.
-const char kUfragVoice2[] = "ufrag_voice_2";
-const char kPwdVoice2[] = "pwd_voice_2";
-const char kUfragVoice3[] = "ufrag_voice_3";
-const char kPwdVoice3[] = "pwd_voice_3";
-const char kUfragVideo2[] = "ufrag_video_2";
-const char kPwdVideo2[] = "pwd_video_2";
-const char kUfragVideo3[] = "ufrag_video_3";
-const char kPwdVideo3[] = "pwd_video_3";
+constexpr char kUfragVoice2[] = "ufrag_voice_2";
+constexpr char kPwdVoice2[] = "pwd_voice_2";
+constexpr char kUfragVoice3[] = "ufrag_voice_3";
+constexpr char kPwdVoice3[] = "pwd_voice_3";
+constexpr char kUfragVideo2[] = "ufrag_video_2";
+constexpr char kPwdVideo2[] = "pwd_video_2";
+constexpr char kUfragVideo3[] = "ufrag_video_3";
+constexpr char kPwdVideo3[] = "pwd_video_3";
// Content name
-const char kAudioContentName[] = "audio_content_name";
-const char kVideoContentName[] = "video_content_name";
-const char kDataContentName[] = "data_content_name";
+constexpr char kAudioContentName[] = "audio_content_name";
+constexpr char kVideoContentName[] = "video_content_name";
+constexpr char kDataContentName[] = "data_content_name";
// Extra content names for extra unified plan m= sections.
-const char kAudioContentName2[] = "audio_content_name_2";
-const char kAudioContentName3[] = "audio_content_name_3";
-const char kVideoContentName2[] = "video_content_name_2";
-const char kVideoContentName3[] = "video_content_name_3";
+constexpr char kAudioContentName2[] = "audio_content_name_2";
+constexpr char kAudioContentName3[] = "audio_content_name_3";
+constexpr char kVideoContentName2[] = "video_content_name_2";
+constexpr char kVideoContentName3[] = "video_content_name_3";
// MediaStream 1
-const char kStreamId1[] = "local_stream_1";
-const char kStream1Cname[] = "stream_1_cname";
-const char kAudioTrackId1[] = "audio_track_id_1";
-const uint32_t kAudioTrack1Ssrc = 1;
-const char kVideoTrackId1[] = "video_track_id_1";
-const uint32_t kVideoTrack1Ssrc1 = 2;
-const uint32_t kVideoTrack1Ssrc2 = 3;
+constexpr char kStreamId1[] = "local_stream_1";
+constexpr char kStream1Cname[] = "stream_1_cname";
+constexpr char kAudioTrackId1[] = "audio_track_id_1";
+constexpr uint32_t kAudioTrack1Ssrc = 1;
+constexpr char kVideoTrackId1[] = "video_track_id_1";
+constexpr uint32_t kVideoTrack1Ssrc1 = 2;
+constexpr uint32_t kVideoTrack1Ssrc2 = 3;
// MediaStream 2
-const char kStreamId2[] = "local_stream_2";
-const char kStream2Cname[] = "stream_2_cname";
-const char kAudioTrackId2[] = "audio_track_id_2";
-const uint32_t kAudioTrack2Ssrc = 4;
-const char kVideoTrackId2[] = "video_track_id_2";
-const uint32_t kVideoTrack2Ssrc = 5;
-const char kVideoTrackId3[] = "video_track_id_3";
-const uint32_t kVideoTrack3Ssrc = 6;
-const char kAudioTrackId3[] = "audio_track_id_3";
-const uint32_t kAudioTrack3Ssrc = 7;
+constexpr char kStreamId2[] = "local_stream_2";
+constexpr char kStream2Cname[] = "stream_2_cname";
+constexpr char kAudioTrackId2[] = "audio_track_id_2";
+constexpr uint32_t kAudioTrack2Ssrc = 4;
+constexpr char kVideoTrackId2[] = "video_track_id_2";
+constexpr uint32_t kVideoTrack2Ssrc = 5;
+constexpr char kVideoTrackId3[] = "video_track_id_3";
+constexpr uint32_t kVideoTrack3Ssrc = 6;
+constexpr char kAudioTrackId3[] = "audio_track_id_3";
+constexpr uint32_t kAudioTrack3Ssrc = 7;
// Candidate
-const char kDummyMid[] = "dummy_mid";
-const int kDummyIndex = 123;
+constexpr char kDummyMid[] = "dummy_mid";
+constexpr int kDummyIndex = 123;
// Misc
SdpType kDummyType = SdpType::kOffer;
@@ -3745,10 +3751,6 @@
jsep_desc.description()->msid_signaling());
}
-const char kMediaSectionMsidLine[] = "a=msid:local_stream_1 audio_track_id_1";
-const char kSsrcAttributeMsidLine[] =
- "a=ssrc:1 msid:local_stream_1 audio_track_id_1";
-
TEST_F(WebRtcSdpTest, SerializeOnlyMediaSectionMsid) {
jdesc_.description()->set_msid_signaling(kMsidSignalingMediaSection);
std::string sdp = SdpSerialize(jdesc_);
diff --git a/rtc_base/async_dns_resolver_unittest.cc b/rtc_base/async_dns_resolver_unittest.cc
index ae03b20..bf595c2 100644
--- a/rtc_base/async_dns_resolver_unittest.cc
+++ b/rtc_base/async_dns_resolver_unittest.cc
@@ -29,7 +29,7 @@
using ::testing::IsTrue;
const TimeDelta kDefaultTimeout = TimeDelta::Millis(1000);
-const int kPortNumber = 3027;
+constexpr int kPortNumber = 3027;
TEST(AsyncDnsResolver, ConstructorWorks) {
AsyncDnsResolver resolver;
diff --git a/rtc_base/buffer_unittest.cc b/rtc_base/buffer_unittest.cc
index 47eb2e4..405d8fb 100644
--- a/rtc_base/buffer_unittest.cc
+++ b/rtc_base/buffer_unittest.cc
@@ -28,10 +28,8 @@
using ::testing::ElementsAre;
using ::testing::ElementsAreArray;
-// clang-format off
-const uint8_t kTestData[] = {0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7,
- 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf};
-// clang-format on
+constexpr uint8_t kTestData[] = {0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7,
+ 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf};
void TestBuf(const Buffer& b1, size_t size, size_t capacity) {
EXPECT_EQ(b1.size(), size);
diff --git a/rtc_base/copy_on_write_buffer_unittest.cc b/rtc_base/copy_on_write_buffer_unittest.cc
index 6d73ee2..59247e5 100644
--- a/rtc_base/copy_on_write_buffer_unittest.cc
+++ b/rtc_base/copy_on_write_buffer_unittest.cc
@@ -24,10 +24,8 @@
namespace {
-// clang-format off
-const uint8_t kTestData[] = {0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7,
- 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf};
-// clang-format on
+constexpr uint8_t kTestData[] = {0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7,
+ 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf};
} // namespace
diff --git a/rtc_base/cpu_time_unittest.cc b/rtc_base/cpu_time_unittest.cc
index 591ae80..8bbc48c 100644
--- a/rtc_base/cpu_time_unittest.cc
+++ b/rtc_base/cpu_time_unittest.cc
@@ -27,9 +27,9 @@
#endif
namespace {
-const int kAllowedErrorMillisecs = 30;
-const int kProcessingTimeMillisecs = 500;
-const int kWorkingThreads = 2;
+constexpr int kAllowedErrorMillisecs = 30;
+constexpr int kProcessingTimeMillisecs = 500;
+constexpr int kWorkingThreads = 2;
// Consumes approximately kProcessingTimeMillisecs of CPU time in single thread.
void WorkingFunction(int64_t* counter) {
diff --git a/rtc_base/rate_statistics_unittest.cc b/rtc_base/rate_statistics_unittest.cc
index a037b7b..e5fda5c 100644
--- a/rtc_base/rate_statistics_unittest.cc
+++ b/rtc_base/rate_statistics_unittest.cc
@@ -21,7 +21,7 @@
using webrtc::RateStatistics;
-const int64_t kWindowMs = 500;
+constexpr int64_t kWindowMs = 500;
class RateStatisticsTest : public ::testing::Test {
protected:
diff --git a/rtc_base/rate_tracker_unittest.cc b/rtc_base/rate_tracker_unittest.cc
index 7eed504..d2ceaba 100644
--- a/rtc_base/rate_tracker_unittest.cc
+++ b/rtc_base/rate_tracker_unittest.cc
@@ -16,7 +16,7 @@
namespace webrtc {
namespace {
-const uint32_t kBucketIntervalMs = 100;
+constexpr uint32_t kBucketIntervalMs = 100;
} // namespace
class RateTrackerForTest : public RateTracker {
diff --git a/rtc_base/rolling_accumulator_unittest.cc b/rtc_base/rolling_accumulator_unittest.cc
index b32aa8c..c321e3c 100644
--- a/rtc_base/rolling_accumulator_unittest.cc
+++ b/rtc_base/rolling_accumulator_unittest.cc
@@ -18,7 +18,7 @@
namespace {
-const double kLearningRate = 0.5;
+constexpr double kLearningRate = 0.5;
// Add `n` samples drawn from uniform distribution in [a;b].
void FillStatsFromUniformDistribution(RollingAccumulator<double>& stats,
diff --git a/rtc_base/ssl_identity_unittest.cc b/rtc_base/ssl_identity_unittest.cc
index ec1a800..a35afdc 100644
--- a/rtc_base/ssl_identity_unittest.cc
+++ b/rtc_base/ssl_identity_unittest.cc
@@ -41,7 +41,7 @@
namespace webrtc {
namespace {
-const char kTestCertificate[] =
+constexpr char kTestCertificate[] =
"-----BEGIN CERTIFICATE-----\n"
"MIIB6TCCAVICAQYwDQYJKoZIhvcNAQEEBQAwWzELMAkGA1UEBhMCQVUxEzARBgNV\n"
"BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRswGQYD\n"
@@ -87,7 +87,7 @@
// and the update changes the string form of the keys, these will have to be
// updated too. The fingerprint, fingerprint algorithm and base64 certificate
// were created by calling `identity->certificate().GetStats()`.
-const char kRSA_PRIVATE_KEY_PEM[] =
+constexpr char kRSA_PRIVATE_KEY_PEM[] =
"-----BEGIN PRI" // Linebreak to avoid detection of private
"VATE KEY-----\n" // keys by linters.
"MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAMQPqDStRlYeDpkX\n"
@@ -105,14 +105,14 @@
"bhvEzY/fu8gEp+EzsER96/D79az5z1BaMGL5OPM2xHBPJATKlswnAa7Lp3QKGZGk\n"
"TxslfL18J71s\n"
"-----END PRIVATE KEY-----\n";
-const char kRSA_PUBLIC_KEY_PEM[] =
+constexpr char kRSA_PUBLIC_KEY_PEM[] =
"-----BEGIN PUBLIC KEY-----\n"
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDED6g0rUZWHg6ZF3q0Zr/mtZ2j\n"
"PL0lUmNIBtqZZ656H1YlkVtzEalgvtNtDLCI94T2XkgJ7f8vxS/56+BGuzV3MHUa\n"
"Nf9cRCu1P3/3I0oNWrp8rxwh8HBXDK99Ryxbx69GYHBcG4CLhSzRJe5CuRzDvQD8\n"
"9Z7VI3pPAZgY/MjJfQIDAQAB\n"
"-----END PUBLIC KEY-----\n";
-const char kRSA_CERT_PEM[] =
+constexpr char kRSA_CERT_PEM[] =
"-----BEGIN CERTIFICATE-----\n"
"MIIBnDCCAQWgAwIBAgIJAOEHLgeWYwrpMA0GCSqGSIb3DQEBCwUAMBAxDjAMBgNV\n"
"BAMMBXRlc3QxMB4XDTE2MDQyNDE4MTAyMloXDTE2MDUyNTE4MTAyMlowEDEOMAwG\n"
@@ -124,11 +124,11 @@
"yTpU3ixErjQvoZew5ngXTEvTY8BSQUijJEaLWh8n6NDKRbEGTdAk8nPAmq9hdCFq\n"
"e3UkexqNHm3g/VxG4NUC1Y+w29ai0/Rgh+VvgbDwK+Q=\n"
"-----END CERTIFICATE-----\n";
-const char kRSA_FINGERPRINT[] =
+constexpr char kRSA_FINGERPRINT[] =
"3C:E8:B2:70:09:CF:A9:09:5A:F4:EF:8F:8D:8A:32:FF:EA:04:91:BA:6E:D4:17:78:16"
":2A:EE:F9:9A:DD:E2:2B";
-const char kRSA_FINGERPRINT_ALGORITHM[] = "sha-256";
-const char kRSA_BASE64_CERTIFICATE[] =
+constexpr char kRSA_FINGERPRINT_ALGORITHM[] = "sha-256";
+constexpr char kRSA_BASE64_CERTIFICATE[] =
"MIIBnDCCAQWgAwIBAgIJAOEHLgeWYwrpMA0GCSqGSIb3DQEBCwUAMBAxDjAMBgNVBAMMBXRlc3"
"QxMB4XDTE2MDQyNDE4MTAyMloXDTE2MDUyNTE4MTAyMlowEDEOMAwGA1UEAwwFdGVzdDEwgZ8w"
"DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMQPqDStRlYeDpkXerRmv+a1naM8vSVSY0gG2plnrn"
@@ -138,19 +138,19 @@
"i8dxyTpU3ixErjQvoZew5ngXTEvTY8BSQUijJEaLWh8n6NDKRbEGTdAk8nPAmq9hdCFqe3Ukex"
"qNHm3g/VxG4NUC1Y+w29ai0/Rgh+VvgbDwK+Q=";
-const char kECDSA_PRIVATE_KEY_PEM[] =
+constexpr char kECDSA_PRIVATE_KEY_PEM[] =
"-----BEGIN PRI" // Linebreak to avoid detection of private
"VATE KEY-----\n" // keys by linters.
"MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg/AkEA2hklq7dQ2rN\n"
"ZxYL6hOUACL4pn7P4FYlA3ZQhIChRANCAAR7YgdO3utP/8IqVRq8G4VZKreMAxeN\n"
"rUa12twthv4uFjuHAHa9D9oyAjncmn+xvZZRyVmKrA56jRzENcEEHoAg\n"
"-----END PRIVATE KEY-----\n";
-const char kECDSA_PUBLIC_KEY_PEM[] =
+constexpr char kECDSA_PUBLIC_KEY_PEM[] =
"-----BEGIN PUBLIC KEY-----\n"
"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEe2IHTt7rT//CKlUavBuFWSq3jAMX\n"
"ja1GtdrcLYb+LhY7hwB2vQ/aMgI53Jp/sb2WUclZiqwOeo0cxDXBBB6AIA==\n"
"-----END PUBLIC KEY-----\n";
-const char kECDSA_CERT_PEM[] =
+constexpr char kECDSA_CERT_PEM[] =
"-----BEGIN CERTIFICATE-----\n"
"MIIBFDCBu6ADAgECAgkArpkxjw62sW4wCgYIKoZIzj0EAwIwEDEOMAwGA1UEAwwF\n"
"dGVzdDMwHhcNMTYwNDI0MTgxNDM4WhcNMTYwNTI1MTgxNDM4WjAQMQ4wDAYDVQQD\n"
@@ -159,11 +159,11 @@
"gCAwCgYIKoZIzj0EAwIDSAAwRQIhANyreQ/K5yuPPpirsd0e/4WGLHou6bIOSQks\n"
"DYzo56NmAiAKOr3u8ol3LmygbUCwEvtWrS8QcJDygxHPACo99hkekw==\n"
"-----END CERTIFICATE-----\n";
-const char kECDSA_FINGERPRINT[] =
+constexpr char kECDSA_FINGERPRINT[] =
"9F:47:FA:88:76:3D:18:B8:00:A0:59:9D:C3:5D:34:0B:1F:B8:99:9E:68:DA:F3:A5:DA"
":50:33:A9:FF:4D:31:89";
-const char kECDSA_FINGERPRINT_ALGORITHM[] = "sha-256";
-const char kECDSA_BASE64_CERTIFICATE[] =
+constexpr char kECDSA_FINGERPRINT_ALGORITHM[] = "sha-256";
+constexpr char kECDSA_BASE64_CERTIFICATE[] =
"MIIBFDCBu6ADAgECAgkArpkxjw62sW4wCgYIKoZIzj0EAwIwEDEOMAwGA1UEAwwFdGVzdDMwHh"
"cNMTYwNDI0MTgxNDM4WhcNMTYwNTI1MTgxNDM4WjAQMQ4wDAYDVQQDDAV0ZXN0MzBZMBMGByqG"
"SM49AgEGCCqGSM49AwEHA0IABHtiB07e60//wipVGrwbhVkqt4wDF42tRrXa3C2G/i4WO4cAdr"
diff --git a/rtc_base/ssl_stream_adapter_unittest.cc b/rtc_base/ssl_stream_adapter_unittest.cc
index f78aaf1..6c19323 100644
--- a/rtc_base/ssl_stream_adapter_unittest.cc
+++ b/rtc_base/ssl_stream_adapter_unittest.cc
@@ -68,7 +68,7 @@
using ::testing::WithParamInterface;
// Generated using `openssl genrsa -out key.pem 2048`
-const char kRSA_PRIVATE_KEY_PEM[] =
+constexpr char kRSA_PRIVATE_KEY_PEM[] =
"-----BEGIN RSA PRI" // Linebreak to avoid detection of private
"VATE KEY-----\n" // keys by linters.
"MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC4XOJ6agj673j+\n"
@@ -104,7 +104,7 @@
// `openssl req -new -x509 -key key.pem -out cert.pem -days 365`
// after setting the machine date to something that will ensure the
// certificate is expired.
-const char kCERT_PEM[] =
+constexpr char kCERT_PEM[] =
"-----BEGIN CERTIFICATE-----\n"
"MIIDjTCCAnWgAwIBAgIUTkCy4o8+4W/86RYmgWc8FEhWTzYwDQYJKoZIhvcNAQEL\n"
"BQAwVjELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n"
@@ -129,7 +129,7 @@
"-----END CERTIFICATE-----\n";
// Google GTS CA 1C3 certificate. Obtained from https://www.webrtc.org
-const char kIntCert1[] =
+constexpr char kIntCert1[] =
"-----BEGIN CERTIFICATE-----\n"
"MIIFljCCA36gAwIBAgINAgO8U1lrNMcY9QFQZjANBgkqhkiG9w0BAQsFADBHMQsw\n"
"CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU\n"
@@ -164,7 +164,7 @@
"-----END CERTIFICATE-----\n";
// Google GTS Root R1 certificate. Obtained from https://www.webrtc.org
-const char kCACert[] =
+constexpr char kCACert[] =
"-----BEGIN CERTIFICATE-----\n"
"MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBH\n"
"MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM\n"
@@ -403,8 +403,8 @@
BufferQueue buffer_;
};
-const int kBufferCapacity = 1;
-const size_t kDefaultBufferSize = 2048;
+constexpr int kBufferCapacity = 1;
+constexpr size_t kDefaultBufferSize = 2048;
class SSLStreamAdapterTestBase : public ::testing::Test,
public sigslot::has_slots<> {
diff --git a/rtc_base/swap_queue_unittest.cc b/rtc_base/swap_queue_unittest.cc
index e8ce02a..207a28c 100644
--- a/rtc_base/swap_queue_unittest.cc
+++ b/rtc_base/swap_queue_unittest.cc
@@ -22,7 +22,7 @@
namespace {
// Test parameter for the basic sample based SwapQueue Tests.
-const size_t kChunkSize = 3;
+constexpr size_t kChunkSize = 3;
// Queue item verification function for the vector test.
bool LengthVerifierFunction(const std::vector<int>& v) {
diff --git a/system_wrappers/source/metrics_default_unittest.cc b/system_wrappers/source/metrics_default_unittest.cc
index be612e7..bc4d7c8 100644
--- a/system_wrappers/source/metrics_default_unittest.cc
+++ b/system_wrappers/source/metrics_default_unittest.cc
@@ -22,8 +22,8 @@
namespace webrtc {
namespace {
-const int kSample = 22;
-const char kName[] = "Name";
+constexpr int kSample = 22;
+constexpr char kName[] = "Name";
int NumSamples(absl::string_view name,
const std::map<std::string,
diff --git a/system_wrappers/source/metrics_unittest.cc b/system_wrappers/source/metrics_unittest.cc
index 4952daa..4ba72c8 100644
--- a/system_wrappers/source/metrics_unittest.cc
+++ b/system_wrappers/source/metrics_unittest.cc
@@ -25,7 +25,7 @@
#if RTC_METRICS_ENABLED
namespace webrtc {
namespace {
-const int kSample = 22;
+constexpr int kSample = 22;
void AddSparseSample(absl::string_view name, int sample) {
RTC_HISTOGRAM_COUNTS_SPARSE_100(name, sample);
diff --git a/test/testsupport/video_frame_writer_unittest.cc b/test/testsupport/video_frame_writer_unittest.cc
index 2c32409..9c858a1 100644
--- a/test/testsupport/video_frame_writer_unittest.cc
+++ b/test/testsupport/video_frame_writer_unittest.cc
@@ -32,15 +32,15 @@
namespace test {
namespace {
-const size_t kFrameWidth = 50;
-const size_t kFrameHeight = 20;
-const size_t kFrameLength = 3 * kFrameWidth * kFrameHeight / 2; // I420.
-const size_t kFrameRate = 30;
+constexpr size_t kFrameWidth = 50;
+constexpr size_t kFrameHeight = 20;
+constexpr size_t kFrameLength = 3 * kFrameWidth * kFrameHeight / 2; // I420.
+constexpr size_t kFrameRate = 30;
// Size of header: "YUV4MPEG2 W50 H20 F30:1 C420\n"
-const size_t kFileHeaderSize = 29;
+constexpr size_t kFileHeaderSize = 29;
// Size of header: "FRAME\n"
-const size_t kFrameHeaderSize = 6;
+constexpr size_t kFrameHeaderSize = 6;
scoped_refptr<I420Buffer> CreateI420Buffer(int width, int height) {
scoped_refptr<I420Buffer> buffer(I420Buffer::Create(width, height));
diff --git a/test/testsupport/y4m_frame_writer_unittest.cc b/test/testsupport/y4m_frame_writer_unittest.cc
index f2acc00..af287e6 100644
--- a/test/testsupport/y4m_frame_writer_unittest.cc
+++ b/test/testsupport/y4m_frame_writer_unittest.cc
@@ -24,10 +24,10 @@
namespace test {
namespace {
-const size_t kFrameWidth = 50;
-const size_t kFrameHeight = 20;
-const size_t kFrameLength = 3 * kFrameWidth * kFrameHeight / 2; // I420.
-const size_t kFrameRate = 30;
+constexpr size_t kFrameWidth = 50;
+constexpr size_t kFrameHeight = 20;
+constexpr size_t kFrameLength = 3 * kFrameWidth * kFrameHeight / 2; // I420.
+constexpr size_t kFrameRate = 30;
const std::string kFileHeader = "YUV4MPEG2 W50 H20 F30:1 C420\n";
const std::string kFrameHeader = "FRAME\n";
diff --git a/test/testsupport/yuv_frame_writer_unittest.cc b/test/testsupport/yuv_frame_writer_unittest.cc
index 63c3cd1..19a259e 100644
--- a/test/testsupport/yuv_frame_writer_unittest.cc
+++ b/test/testsupport/yuv_frame_writer_unittest.cc
@@ -24,9 +24,9 @@
namespace test {
namespace {
-const size_t kFrameWidth = 50;
-const size_t kFrameHeight = 20;
-const size_t kFrameLength = 3 * kFrameWidth * kFrameHeight / 2; // I420.
+constexpr size_t kFrameWidth = 50;
+constexpr size_t kFrameHeight = 20;
+constexpr size_t kFrameLength = 3 * kFrameWidth * kFrameHeight / 2; // I420.
} // namespace
class YuvFrameWriterTest : public ::testing::Test {
diff --git a/video/adaptation/overuse_frame_detector_unittest.cc b/video/adaptation/overuse_frame_detector_unittest.cc
index b836cc3..30fa879 100644
--- a/video/adaptation/overuse_frame_detector_unittest.cc
+++ b/video/adaptation/overuse_frame_detector_unittest.cc
@@ -36,11 +36,11 @@
using ::testing::InvokeWithoutArgs;
namespace {
-const int kWidth = 640;
-const int kHeight = 480;
+constexpr int kWidth = 640;
+constexpr int kHeight = 480;
// Corresponds to load of 15%
-const int kFrameIntervalUs = 33 * kNumMicrosecsPerMillisec;
-const int kProcessTimeUs = 5 * kNumMicrosecsPerMillisec;
+constexpr int kFrameIntervalUs = 33 * kNumMicrosecsPerMillisec;
+constexpr int kProcessTimeUs = 5 * kNumMicrosecsPerMillisec;
} // namespace
class MockCpuOveruseObserver : public OveruseFrameDetectorObserverInterface {
diff --git a/video/corruption_detection/halton_frame_sampler_unittest.cc b/video/corruption_detection/halton_frame_sampler_unittest.cc
index 135ccfb..9ee5ff0 100644
--- a/video/corruption_detection/halton_frame_sampler_unittest.cc
+++ b/video/corruption_detection/halton_frame_sampler_unittest.cc
@@ -38,15 +38,15 @@
using Coordinates = HaltonFrameSampler::Coordinates;
// Defaults for sampling tests.
-const int kDefaultScaledWidth = 4;
-const int kDefaultScaledHeight = 4;
-const double kDefaultStdDevGaussianBlur = 0.02;
+constexpr int kDefaultScaledWidth = 4;
+constexpr int kDefaultScaledHeight = 4;
+constexpr double kDefaultStdDevGaussianBlur = 0.02;
#if GTEST_HAS_DEATH_TEST
// Defaults for blurring tests.
-const int kDefaultRow = 3;
-const int kDefaultColumn = 2;
-const double kDefaultStdDev = 1.12;
+constexpr int kDefaultRow = 3;
+constexpr int kDefaultColumn = 2;
+constexpr double kDefaultStdDev = 1.12;
#endif // GTEST_HAS_DEATH_TEST
VideoFrame MakeDefaultFrame() {
diff --git a/video/receive_statistics_proxy_unittest.cc b/video/receive_statistics_proxy_unittest.cc
index 101b745..520d2a2 100644
--- a/video/receive_statistics_proxy_unittest.cc
+++ b/video/receive_statistics_proxy_unittest.cc
@@ -50,10 +50,10 @@
using ::testing::DoubleEq;
const TimeDelta kFreqOffsetProcessInterval = TimeDelta::Seconds(40);
-const uint32_t kRemoteSsrc = 456;
-const int kMinRequiredSamples = 200;
-const int kWidth = 1280;
-const int kHeight = 720;
+constexpr uint32_t kRemoteSsrc = 456;
+constexpr int kMinRequiredSamples = 200;
+constexpr int kWidth = 1280;
+constexpr int kHeight = 720;
} // namespace
// TODO(sakal): ReceiveStatisticsProxy is lacking unittesting.
diff --git a/video/rtp_video_stream_receiver2_unittest.cc b/video/rtp_video_stream_receiver2_unittest.cc
index db5e0cc..a188a00 100644
--- a/video/rtp_video_stream_receiver2_unittest.cc
+++ b/video/rtp_video_stream_receiver2_unittest.cc
@@ -82,7 +82,7 @@
using ::testing::SizeIs;
using ::testing::Values;
-const uint8_t kH264StartCode[] = {0x00, 0x00, 0x00, 0x01};
+constexpr uint8_t kH264StartCode[] = {0x00, 0x00, 0x00, 0x01};
// Corruption detection metrics for testing.
constexpr double kStd = 1.0;
diff --git a/video/send_delay_stats_unittest.cc b/video/send_delay_stats_unittest.cc
index 5bd0d98..b4eef11 100644
--- a/video/send_delay_stats_unittest.cc
+++ b/video/send_delay_stats_unittest.cc
@@ -24,14 +24,14 @@
namespace webrtc {
namespace {
-const uint32_t kSsrc1 = 17;
-const uint32_t kSsrc2 = 42;
-const uint32_t kRtxSsrc1 = 18;
-const uint32_t kRtxSsrc2 = 43;
-const uint16_t kPacketId = 2345;
+constexpr uint32_t kSsrc1 = 17;
+constexpr uint32_t kSsrc2 = 42;
+constexpr uint32_t kRtxSsrc1 = 18;
+constexpr uint32_t kRtxSsrc2 = 43;
+constexpr uint16_t kPacketId = 2345;
const TimeDelta kMaxPacketDelay = TimeDelta::Seconds(11);
-const int kMinRequiredPeriodicSamples = 5;
-const int kProcessIntervalMs = 2000;
+constexpr int kMinRequiredPeriodicSamples = 5;
+constexpr int kProcessIntervalMs = 2000;
} // namespace
class SendDelayStatsTest : public ::testing::Test {
diff --git a/video/send_statistics_proxy_unittest.cc b/video/send_statistics_proxy_unittest.cc
index 0ef5aba..089f4b7 100644
--- a/video/send_statistics_proxy_unittest.cc
+++ b/video/send_statistics_proxy_unittest.cc
@@ -53,17 +53,17 @@
using ::testing::Optional;
-const uint32_t kFirstSsrc = 17;
-const uint32_t kSecondSsrc = 42;
-const uint32_t kFirstRtxSsrc = 18;
-const uint32_t kSecondRtxSsrc = 43;
-const uint32_t kFlexFecSsrc = 55;
-const int kFpsPeriodicIntervalMs = 2000;
-const int kWidth = 640;
-const int kHeight = 480;
-const int kQpIdx0 = 21;
-const int kQpIdx1 = 39;
-const int kRtpClockRateHz = 90000;
+constexpr uint32_t kFirstSsrc = 17;
+constexpr uint32_t kSecondSsrc = 42;
+constexpr uint32_t kFirstRtxSsrc = 18;
+constexpr uint32_t kSecondRtxSsrc = 43;
+constexpr uint32_t kFlexFecSsrc = 55;
+constexpr int kFpsPeriodicIntervalMs = 2000;
+constexpr int kWidth = 640;
+constexpr int kHeight = 480;
+constexpr int kQpIdx0 = 21;
+constexpr int kQpIdx1 = 39;
+constexpr int kRtpClockRateHz = 90000;
const CodecSpecificInfo kDefaultCodecInfo = []() {
CodecSpecificInfo codec_info;
codec_info.codecType = kVideoCodecVP8;
diff --git a/video/stats_counter_unittest.cc b/video/stats_counter_unittest.cc
index 9f67afc..fba22bd 100644
--- a/video/stats_counter_unittest.cc
+++ b/video/stats_counter_unittest.cc
@@ -17,8 +17,8 @@
namespace webrtc {
namespace {
-const int kDefaultProcessIntervalMs = 2000;
-const uint32_t kStreamId = 123456;
+constexpr int kDefaultProcessIntervalMs = 2000;
+constexpr uint32_t kStreamId = 123456;
class StatsCounterObserverImpl : public StatsCounterObserver {
public:
diff --git a/video/video_stream_encoder_unittest.cc b/video/video_stream_encoder_unittest.cc
index 99f1275..0f0976e 100644
--- a/video/video_stream_encoder_unittest.cc
+++ b/video/video_stream_encoder_unittest.cc
@@ -143,21 +143,21 @@
using ::testing::StrictMock;
namespace {
-const int kMinPixelsPerFrame = 320 * 180;
-const int kQpLow = 1;
-const int kQpHigh = 2;
-const int kMinFramerateFps = 2;
-const int kMinBalancedFramerateFps = 7;
+constexpr int kMinPixelsPerFrame = 320 * 180;
+constexpr int kQpLow = 1;
+constexpr int kQpHigh = 2;
+constexpr int kMinFramerateFps = 2;
+constexpr int kMinBalancedFramerateFps = 7;
constexpr TimeDelta kFrameTimeout = TimeDelta::Millis(100);
-const size_t kMaxPayloadLength = 1440;
+constexpr size_t kMaxPayloadLength = 1440;
const DataRate kTargetBitrate = DataRate::KilobitsPerSec(1000);
const DataRate kLowTargetBitrate = DataRate::KilobitsPerSec(100);
const DataRate kStartBitrate = DataRate::KilobitsPerSec(600);
const DataRate kSimulcastTargetBitrate = DataRate::KilobitsPerSec(3150);
-const int kMaxInitialFramedrop = 4;
-const int kDefaultFramerate = 30;
-const int64_t kFrameIntervalMs = kNumMillisecsPerSec / kDefaultFramerate;
-const int64_t kProcessIntervalMs = 1000;
+constexpr int kMaxInitialFramedrop = 4;
+constexpr int kDefaultFramerate = 30;
+constexpr int64_t kFrameIntervalMs = kNumMillisecsPerSec / kDefaultFramerate;
+constexpr int64_t kProcessIntervalMs = 1000;
const VideoEncoder::ResolutionBitrateLimits
kEncoderBitrateLimits540p(960 * 540, 100 * 1000, 100 * 1000, 2000 * 1000);
const VideoEncoder::ResolutionBitrateLimits
@@ -168,7 +168,7 @@
0x05, 0x03, 0xC7, 0xE0, 0x1B,
0x41, 0x10, 0x8D, 0x00};
-const uint8_t kCodedFrameVp8Qp25[] = {
+constexpr uint8_t kCodedFrameVp8Qp25[] = {
0x10, 0x02, 0x00, 0x9d, 0x01, 0x2a, 0x10, 0x00, 0x10, 0x00,
0x02, 0x47, 0x08, 0x85, 0x85, 0x88, 0x85, 0x84, 0x88, 0x0c,
0x82, 0x00, 0x0c, 0x0d, 0x60, 0x00, 0xfe, 0xfc, 0x5c, 0xd0};