Correct RTCAudioPlayoutStats type and add kind field.

Bug: webrtc:14653
Change-Id: Idb85ce440620fc5b818a3b23a63ac062a443cc81
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291330
Commit-Queue: Fredrik Hernqvist <fhernqvist@google.com>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39196}
diff --git a/api/stats/rtcstats_objects.h b/api/stats/rtcstats_objects.h
index 484d2d0..e5de210 100644
--- a/api/stats/rtcstats_objects.h
+++ b/api/stats/rtcstats_objects.h
@@ -709,6 +709,7 @@
   RTCAudioPlayoutStats(const RTCAudioPlayoutStats& other);
   ~RTCAudioPlayoutStats() override;
 
+  RTCStatsMember<std::string> kind;
   RTCStatsMember<double> synthesized_samples_duration;
   RTCStatsMember<uint64_t> synthesized_samples_events;
   RTCStatsMember<double> total_samples_duration;
diff --git a/pc/rtc_stats_collector_unittest.cc b/pc/rtc_stats_collector_unittest.cc
index 70eabfc..2a03c3b 100644
--- a/pc/rtc_stats_collector_unittest.cc
+++ b/pc/rtc_stats_collector_unittest.cc
@@ -2765,6 +2765,7 @@
   ASSERT_EQ(1U, stats_of_track_type.size());
 
   RTCAudioPlayoutStats expected_stats("AP", report->timestamp());
+  expected_stats.kind = "audio";
   expected_stats.synthesized_samples_duration = 1;
   expected_stats.synthesized_samples_events = 2;
   expected_stats.total_samples_count = 3;
diff --git a/pc/rtc_stats_integrationtest.cc b/pc/rtc_stats_integrationtest.cc
index 2a65726..b1d6b545 100644
--- a/pc/rtc_stats_integrationtest.cc
+++ b/pc/rtc_stats_integrationtest.cc
@@ -418,7 +418,7 @@
             VerifyRTCTransportStats(stats.cast_to<RTCTransportStats>());
       } else if (stats.type() == RTCAudioPlayoutStats::kType) {
         verify_successful &=
-            VerifyRTCAudioPlayoutSTats(stats.cast_to<RTCAudioPlayoutStats>());
+            VerifyRTCAudioPlayoutStats(stats.cast_to<RTCAudioPlayoutStats>());
       } else {
         EXPECT_TRUE(false) << "Unrecognized stats type: " << stats.type();
         verify_successful = false;
@@ -1128,8 +1128,12 @@
     return verifier.ExpectAllMembersSuccessfullyTested();
   }
 
-  bool VerifyRTCAudioPlayoutSTats(const RTCAudioPlayoutStats& audio_playout) {
+  bool VerifyRTCAudioPlayoutStats(const RTCAudioPlayoutStats& audio_playout) {
     RTCStatsVerifier verifier(report_.get(), &audio_playout);
+    verifier.TestMemberIsDefined(audio_playout.kind);
+    if (audio_playout.kind.is_defined()) {
+      EXPECT_EQ(*audio_playout.kind, "audio");
+    }
     verifier.TestMemberIsNonNegative<uint64_t>(
         audio_playout.synthesized_samples_events);
     verifier.TestMemberIsNonNegative<double>(
diff --git a/stats/rtcstats_objects.cc b/stats/rtcstats_objects.cc
index f392a08..b25e2dd 100644
--- a/stats/rtcstats_objects.cc
+++ b/stats/rtcstats_objects.cc
@@ -900,6 +900,7 @@
 RTCAudioPlayoutStats::RTCAudioPlayoutStats(const std::string& id,
                                            Timestamp timestamp)
     : RTCStats(std::move(id), timestamp),
+      kind("kind", "audio"),
       synthesized_samples_duration("synthesizedSamplesDuration"),
       synthesized_samples_events("synthesizedSamplesEvents"),
       total_samples_duration("totalSamplesDuration"),
@@ -912,7 +913,8 @@
 RTCAudioPlayoutStats::~RTCAudioPlayoutStats() {}
 
 // clang-format off
-WEBRTC_RTCSTATS_IMPL(RTCAudioPlayoutStats, RTCStats, "audio-playout",
+WEBRTC_RTCSTATS_IMPL(RTCAudioPlayoutStats, RTCStats, "media-playout",
+    &kind,
     &synthesized_samples_duration,
     &synthesized_samples_events,
     &total_samples_duration,