Expose RtpCodecParameters to VoiceMediaInfo stats.
Payload type -> RtpCodecParameters maps added for sender and receiver.
This is a follow-up to https://codereview.webrtc.org/2484193002/ which
did the same thing for VideoMediaInfo. This information will be used to
produce RTCCodecStats[1].
Voice[Sender/Receiver]Info is updated with current codec payload type
for every stream which can be used to look up the codec in
VoiceMediaInfo.
[1] https://w3c.github.io/webrtc-stats/#codec-dict*
BUG=chromium:659117
Review-Url: https://codereview.webrtc.org/2503383002
Cr-Commit-Position: refs/heads/master@{#15144}
diff --git a/webrtc/media/base/mediachannel.h b/webrtc/media/base/mediachannel.h
index 80b9d4d..d4d339e 100644
--- a/webrtc/media/base/mediachannel.h
+++ b/webrtc/media/base/mediachannel.h
@@ -553,6 +553,7 @@
float fraction_lost;
int64_t rtt_ms;
std::string codec_name;
+ rtc::Optional<int> codec_payload_type;
std::vector<SsrcSenderInfo> local_stats;
std::vector<SsrcReceiverInfo> remote_stats;
};
@@ -598,6 +599,7 @@
int packets_lost;
float fraction_lost;
std::string codec_name;
+ rtc::Optional<int> codec_payload_type;
std::vector<SsrcReceiverInfo> local_stats;
std::vector<SsrcSenderInfo> remote_stats;
};
@@ -698,9 +700,6 @@
std::vector<SsrcGroup> ssrc_groups;
// TODO(hbos): Move this to |VideoMediaInfo::send_codecs|?
std::string encoder_implementation_name;
- // TODO(hbos): Move this to |MediaSenderInfo| when supported by
- // |VoiceSenderInfo| as well (which also extends that class).
- rtc::Optional<uint32_t> codec_payload_type;
int packets_cached;
int firs_rcvd;
int plis_rcvd;
@@ -746,9 +745,6 @@
std::vector<SsrcGroup> ssrc_groups;
// TODO(hbos): Move this to |VideoMediaInfo::receive_codecs|?
std::string decoder_implementation_name;
- // TODO(hbos): Move this to |MediaReceiverInfo| when supported by
- // |VoiceReceiverInfo| as well (which also extends that class).
- rtc::Optional<uint32_t> codec_payload_type;
int packets_concealed;
int firs_sent;
int plis_sent;
@@ -831,9 +827,13 @@
void Clear() {
senders.clear();
receivers.clear();
+ send_codecs.clear();
+ receive_codecs.clear();
}
std::vector<VoiceSenderInfo> senders;
std::vector<VoiceReceiverInfo> receivers;
+ RtpCodecParametersMap send_codecs;
+ RtpCodecParametersMap receive_codecs;
};
struct VideoMediaInfo {