Files
platform-external-webrtc/webrtc
sprang@webrtc.org 6811b6e308 Callback for send bitrate estimates - new roll
Issue https://webrtc-codereview.appspot.com/4459004/ was commited as
r5259, after which flakiness was detected and a rollback was performed
at r5261.

Patch Set 1 of this issue is the code submitted in r5259. Subsequent
patch sets fixes a race condition which caused the seen problems.

The root cause was a dead lock between a thread sending rtp packets and
and a timed module processing thread:

webrtc::RTPSender::BitrateUpdated()  // Get RTPSender stats lock
webrtc::Bitrate::Process()  // Get Bitrate lock
webrtc::RTPSender::ProcessBitrate()
webrtc::ModuleRtpRtcpImpl::Process()
...

webrtc::Bitrate::Update()  // Get Bitrate lock
webrtc::RTPSender::UpdateRtpStats()  // Get RTPSender stats lock
webrtc::RTPSender::SendToNetwork()
...

This is fixed in Bitrate::Process() by releasing the lock before
calling the callback.

BUG=2235
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/5619004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5281 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-13 09:46:59 +00:00
..
2013-11-20 11:48:56 +00:00
2012-10-22 18:19:23 +00:00
2012-10-22 18:19:23 +00:00
2012-10-22 18:19:23 +00:00

Name: WebRTC
URL: http://www.webrtc.org
Version: 90
License: BSD
License File: LICENSE

Description:
WebRTC provides real time voice and video processing
functionality to enable the implementation of 
PeerConnection/MediaStream.

Third party code used in this project is described 
in the file LICENSE_THIRD_PARTY.