Add AbslStringify for cricket::Codec
This makes debug output easier to read. Bug: webrtc:360058654 Change-Id: I887be638489cde26868db0db2950262255213160 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/365144 Commit-Queue: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Florent Castelli <orphis@webrtc.org> Cr-Commit-Position: refs/heads/main@{#43216}
This commit is contained in:
parent
366f205d9b
commit
3203b626f4
@ -374,6 +374,7 @@ rtc_library("codec") {
|
||||
"//third_party/abseil-cpp/absl/algorithm:container",
|
||||
"//third_party/abseil-cpp/absl/container:inlined_vector",
|
||||
"//third_party/abseil-cpp/absl/strings",
|
||||
"//third_party/abseil-cpp/absl/strings:str_format",
|
||||
"//third_party/abseil-cpp/absl/strings:string_view",
|
||||
]
|
||||
}
|
||||
|
||||
@ -37,4 +37,7 @@ specific_include_rules = {
|
||||
".*fake_webrtc_call\.h": [
|
||||
"+video/config",
|
||||
],
|
||||
".*codec\.h": [
|
||||
"+absl/strings/str_format.h",
|
||||
]
|
||||
}
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
#include <vector>
|
||||
|
||||
#include "absl/container/inlined_vector.h"
|
||||
#include "absl/strings/str_format.h"
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "api/audio_codecs/audio_format.h"
|
||||
#include "api/rtp_parameters.h"
|
||||
@ -174,6 +175,26 @@ struct RTC_EXPORT Codec {
|
||||
|
||||
bool operator!=(const Codec& c) const { return !(*this == c); }
|
||||
|
||||
template <typename Sink>
|
||||
friend void AbslStringify(Sink& sink, const Codec& c) {
|
||||
absl::Format(&sink, "[%d:", c.id);
|
||||
switch (c.type) {
|
||||
case Codec::Type::kAudio:
|
||||
sink.Append("audio/");
|
||||
break;
|
||||
case Codec::Type::kVideo:
|
||||
sink.Append("video/");
|
||||
}
|
||||
absl::Format(&sink, "%s/%d/%d", c.name, c.clockrate, c.channels);
|
||||
for (auto param : c.params) {
|
||||
sink.Append(";");
|
||||
sink.Append(param.first);
|
||||
sink.Append("=");
|
||||
sink.Append(param.second);
|
||||
}
|
||||
sink.Append("]");
|
||||
}
|
||||
|
||||
protected:
|
||||
// Creates an empty codec.
|
||||
explicit Codec(Type type);
|
||||
|
||||
@ -640,3 +640,10 @@ TEST(CodecTest, H264CostrainedBaselineNotAddedIfAlreadySpecified) {
|
||||
EXPECT_EQ(supported_formats[3], kExplicitlySupportedFormats[3]);
|
||||
EXPECT_EQ(supported_formats.size(), kExplicitlySupportedFormats.size());
|
||||
}
|
||||
|
||||
TEST(CodecTest, AbslStringify) {
|
||||
Codec codec = cricket::CreateAudioCodec(47, "custom-audio", 48000, 2);
|
||||
EXPECT_EQ(absl::StrCat(codec), "[47:audio/custom-audio/48000/2]");
|
||||
codec.params["key"] = "value";
|
||||
EXPECT_EQ(absl::StrCat(codec), "[47:audio/custom-audio/48000/2;key=value]");
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user