Benefits of this is that the send config previously had unclear locking
requirements, a lock was used to lock parts parts of it while
reconfiguring the VideoEncoder. Primary work was splitting out video
streams from config as well as encoder_settings as these change on
ReconfigureVideoEncoder. Now threading requirements for both member
configs are clear (as they are read-only), and encoder_settings doesn't
stay in the config as a stale pointer.
CreateVideoSendStream now takes video streams separately as well as the
encoder_settings pointer, analogous to ReconfigureVideoEncoder.
This change required changing so that pacing is silently enabled when
using suspend_below_min_bitrate rather than silently setting it.
R=henrik.lundin@webrtc.org, mflodman@webrtc.org, pthatcher@webrtc.org, stefan@webrtc.org
BUG=3260
Review URL: https://webrtc-codereview.appspot.com/20409004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6349 4adac7df-926f-26a2-2b94-8c16560cd09d
New interface uses two bitrates (max/min). The pace multiplier is also
removed from the interface and instead utilized outside. Min bitrate
will be filled with padding if there's not enough media to transmit.
Also fixes a bug in minimum transmission bitrate that made it ignore
REMBs. A regression test has been added to catch it.
BUG=3014
R=mflodman@webrtc.org, stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/10059004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5723 4adac7df-926f-26a2-2b94-8c16560cd09d
Replaces VideoCodec in VideoSendStream::Config with an EncoderSettings
struct. The EncoderSettings struct uses an external encoder for all
codecs. This means that external users, such as libjingle, will provide
the encoders themselves, removing the previous distinction of internal
and external codecs.
For now VideoSendStream translates to VideoCodec internally. In the
interrim (before the corresponding change is implemented in
VideoReceiveStream) tests convert EncoderSettings to VideoCodecs.
Removes Call::GetVideoCodecs().
Disables RampUpTest.WithPacingAndRtx as its further exposed with changes
to bitrates used in tests.
BUG=2854,2992
R=mflodman@webrtc.org, stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/7919004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5722 4adac7df-926f-26a2-2b94-8c16560cd09d
The variable playout_timestamp_ was not updated to the latest decoded
timestamp while comfort noise was played. Instead, it was upadted using
dead reckoning, which caused it to drift away from the timestamps of the
incoming CNG packets. Now it is updated also during comfort noise
playout.
Since the change is only in NetEq4, this change also makes the test
PlaysOutAudioAndVideoInSync use both ACM1/NetEq3 and ACM2/NetEq4.
Re-enabling one NetEq unit test that is no longer failing thanks to this CL.
BUG=2932
R=stefan@webrtc.org, turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/8799004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5649 4adac7df-926f-26a2-2b94-8c16560cd09d