Index: webrtc/api/webrtcsession.cc |
diff --git a/webrtc/api/webrtcsession.cc b/webrtc/api/webrtcsession.cc |
index 80352cf83246f3ff5f42a4bfa4be64f496a5e153..8d86abecc50d9eb327e97a5ef1c250315c874319 100644 |
--- a/webrtc/api/webrtcsession.cc |
+++ b/webrtc/api/webrtcsession.cc |
@@ -1817,6 +1817,8 @@ bool WebRtcSession::CreateVoiceChannel(const cricket::ContentInfo* content, |
voice_channel_->SignalDtlsSetupFailure.connect( |
this, &WebRtcSession::OnDtlsSetupFailure); |
+ voice_channel_->SignalFirstPacketReceived.connect( |
+ this, &WebRtcSession::OnChannelFirstPacketReceived); |
SignalVoiceChannelCreated(); |
voice_channel_->SignalSentPacket.connect(this, |
@@ -1840,6 +1842,8 @@ bool WebRtcSession::CreateVideoChannel(const cricket::ContentInfo* content, |
} |
video_channel_->SignalDtlsSetupFailure.connect( |
this, &WebRtcSession::OnDtlsSetupFailure); |
+ video_channel_->SignalFirstPacketReceived.connect( |
+ this, &WebRtcSession::OnChannelFirstPacketReceived); |
SignalVideoChannelCreated(); |
video_channel_->SignalSentPacket.connect(this, |
@@ -1881,6 +1885,21 @@ void WebRtcSession::OnDtlsSetupFailure(cricket::BaseChannel*, bool rtcp) { |
rtcp ? kDtlsSetupFailureRtcp : kDtlsSetupFailureRtp); |
} |
+void WebRtcSession::OnChannelFirstPacketReceived( |
+ cricket::BaseChannel* channel) { |
+ ASSERT(signaling_thread()->IsCurrent()); |
+ |
+ if (!has_received_audio_packet_ && |
+ channel->MediaType() == cricket::MEDIA_TYPE_AUDIO) { |
+ has_received_audio_packet_ = true; |
pthatcher1
2016/06/08 17:35:55
To be consistent with naming, might as well call i
Zhi Huang
2016/06/09 00:37:36
Done.
|
+ SignalFirstAudioPacketReceived(); |
+ } else if (!has_received_video_packet_ && |
+ channel->MediaType() == cricket::MEDIA_TYPE_VIDEO) { |
+ has_received_video_packet_ = true; |
+ SignalFirstVideoPacketReceived(); |
+ } |
+} |
+ |
void WebRtcSession::OnDataChannelMessageReceived( |
cricket::DataChannel* channel, |
const cricket::ReceiveDataParams& params, |