Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(288)

Unified Diff: webrtc/pc/trackmediainfomap.cc

Issue 2883943003: Add media related stats (audio level etc.) to unsignaled streams. (Closed)
Patch Set: Fix the bug related to the unsignaled video track. Modified the test. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/pc/peerconnection_integrationtest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/pc/trackmediainfomap.cc
diff --git a/webrtc/pc/trackmediainfomap.cc b/webrtc/pc/trackmediainfomap.cc
index 33880b9380bcf7e7751af58b60331d68c2fb6eb7..b5c5ac6a024e6cf46ea1002f14fa900d513d782a 100644
--- a/webrtc/pc/trackmediainfomap.cc
+++ b/webrtc/pc/trackmediainfomap.cc
@@ -34,7 +34,9 @@ void GetAudioAndVideoTrackBySsrc(
std::map<uint32_t, AudioTrackInterface*>* local_audio_track_by_ssrc,
std::map<uint32_t, VideoTrackInterface*>* local_video_track_by_ssrc,
std::map<uint32_t, AudioTrackInterface*>* remote_audio_track_by_ssrc,
- std::map<uint32_t, VideoTrackInterface*>* remote_video_track_by_ssrc) {
+ std::map<uint32_t, VideoTrackInterface*>* remote_video_track_by_ssrc,
+ AudioTrackInterface** unsignaled_audio_track,
+ VideoTrackInterface** unsignaled_video_track) {
RTC_DCHECK(local_audio_track_by_ssrc->empty());
RTC_DCHECK(local_video_track_by_ssrc->empty());
RTC_DCHECK(remote_audio_track_by_ssrc->empty());
@@ -80,6 +82,12 @@ void GetAudioAndVideoTrackBySsrc(
RtpParameters params = rtp_receiver->GetParameters();
for (const RtpEncodingParameters& encoding : params.encodings) {
if (!encoding.ssrc) {
+ if (media_type == cricket::MEDIA_TYPE_AUDIO) {
+ *unsignaled_audio_track = static_cast<AudioTrackInterface*>(track);
+ } else {
+ RTC_DCHECK(media_type == cricket::MEDIA_TYPE_VIDEO);
+ *unsignaled_video_track = static_cast<VideoTrackInterface*>(track);
+ }
continue;
}
if (media_type == cricket::MEDIA_TYPE_AUDIO) {
@@ -110,12 +118,13 @@ TrackMediaInfoMap::TrackMediaInfoMap(
std::map<uint32_t, VideoTrackInterface*> local_video_track_by_ssrc;
std::map<uint32_t, AudioTrackInterface*> remote_audio_track_by_ssrc;
std::map<uint32_t, VideoTrackInterface*> remote_video_track_by_ssrc;
- GetAudioAndVideoTrackBySsrc(rtp_senders,
- rtp_receivers,
- &local_audio_track_by_ssrc,
- &local_video_track_by_ssrc,
- &remote_audio_track_by_ssrc,
- &remote_video_track_by_ssrc);
+ AudioTrackInterface* unsignaled_audio_track = nullptr;
+ VideoTrackInterface* unsignaled_video_track = nullptr;
+ GetAudioAndVideoTrackBySsrc(
+ rtp_senders, rtp_receivers, &local_audio_track_by_ssrc,
+ &local_video_track_by_ssrc, &remote_audio_track_by_ssrc,
+ &remote_video_track_by_ssrc, &unsignaled_audio_track,
+ &unsignaled_video_track);
if (voice_media_info_) {
for (auto& sender_info : voice_media_info_->senders) {
AudioTrackInterface* associated_track =
@@ -137,6 +146,9 @@ TrackMediaInfoMap::TrackMediaInfoMap(
RTC_DCHECK(voice_info_by_remote_track_.find(associated_track) ==
voice_info_by_remote_track_.end());
voice_info_by_remote_track_[associated_track] = &receiver_info;
+ } else if (unsignaled_audio_track) {
+ audio_track_by_receiver_info_[&receiver_info] = unsignaled_audio_track;
+ voice_info_by_remote_track_[unsignaled_audio_track] = &receiver_info;
}
}
}
@@ -161,6 +173,9 @@ TrackMediaInfoMap::TrackMediaInfoMap(
RTC_DCHECK(video_info_by_remote_track_.find(associated_track) ==
video_info_by_remote_track_.end());
video_info_by_remote_track_[associated_track] = &receiver_info;
+ } else if (unsignaled_video_track) {
+ video_track_by_receiver_info_[&receiver_info] = unsignaled_video_track;
+ video_info_by_remote_track_[unsignaled_video_track] = &receiver_info;
}
}
}
« no previous file with comments | « webrtc/pc/peerconnection_integrationtest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698