Adding audio network adaptor to AudioEncoderOpus.

BUG=webrtc:6303

Review-Url: https://codereview.webrtc.org/2362703002
Cr-Commit-Position: refs/heads/master@{#14555}
This commit is contained in:
minyue
2016-10-06 07:13:54 -07:00
committed by Commit bot
parent 81b9291dfd
commit 41b9c801c2
12 changed files with 489 additions and 73 deletions

View File

@ -21,6 +21,8 @@
namespace webrtc {
class Clock;
// This is the interface class for encoders in AudioCoding module. Each codec
// type must have an implementation of this class.
class AudioEncoder {
@ -162,6 +164,31 @@ class AudioEncoder {
virtual rtc::ArrayView<std::unique_ptr<AudioEncoder>>
ReclaimContainedEncoders();
// Enables audio network adaptor. Returns true if successful.
virtual bool EnableAudioNetworkAdaptor(const std::string& config_string,
const Clock* clock);
// Disables audio network adaptor.
virtual void DisableAudioNetworkAdaptor();
// Provides uplink bandwidth to this encoder to allow it to adapt.
virtual void OnReceivedUplinkBandwidth(int uplink_bandwidth_bps);
// Provides uplink packet loss fraction to this encoder to allow it to adapt.
virtual void OnReceivedUplinkPacketLossFraction(
float uplink_packet_loss_fraction);
// Provides target audio bitrate to this encoder to allow it to adapt.
virtual void OnReceivedTargetAudioBitrate(int target_audio_bitrate_bps);
// Provides RTT to this encoder to allow it to adapt.
virtual void OnReceivedRtt(int rtt_ms);
// To allow encoder to adapt its frame length, it must be provided the frame
// length range that receives can accept.
virtual void SetReceiverFrameLengthRange(int min_frame_length_ms,
int max_frame_length_ms);
protected:
// Subclasses implement this to perform the actual encoding. Called by
// Encode().