Pass event log to ANA.

BUG=webrtc:6845

Review-Url: https://codereview.webrtc.org/2553413002
Cr-Commit-Position: refs/heads/master@{#16052}
This commit is contained in:
michaelt 2017-01-13 06:02:29 -08:00 committed by Commit bot
parent bb341975fd
commit bf279fc4b9
8 changed files with 30 additions and 12 deletions

View File

@ -14,7 +14,8 @@
namespace webrtc {
AudioNetworkAdaptorImpl::Config::Config() = default;
AudioNetworkAdaptorImpl::Config::Config()
: event_log(nullptr), clock(nullptr){};
AudioNetworkAdaptorImpl::Config::~Config() = default;

View File

@ -22,11 +22,14 @@
namespace webrtc {
class RtcEventLog;
class AudioNetworkAdaptorImpl final : public AudioNetworkAdaptor {
public:
struct Config {
Config();
~Config();
RtcEventLog* event_log;
const Clock* clock;
};

View File

@ -66,6 +66,7 @@ rtc::ArrayView<std::unique_ptr<AudioEncoder>>
AudioEncoder::ReclaimContainedEncoders() { return nullptr; }
bool AudioEncoder::EnableAudioNetworkAdaptor(const std::string& config_string,
RtcEventLog* event_log,
const Clock* clock) {
return false;
}

View File

@ -23,6 +23,7 @@
namespace webrtc {
class Clock;
class RtcEventLog;
// This is the interface class for encoders in AudioCoding module. Each codec
// type must have an implementation of this class.
@ -163,6 +164,7 @@ class AudioEncoder {
// Enables audio network adaptor. Returns true if successful.
virtual bool EnableAudioNetworkAdaptor(const std::string& config_string,
RtcEventLog* event_log,
const Clock* clock);
// Disables audio network adaptor.

View File

@ -181,9 +181,11 @@ AudioEncoderOpus::AudioEncoderOpus(
audio_network_adaptor_creator_(
audio_network_adaptor_creator
? std::move(audio_network_adaptor_creator)
: [this](const std::string& config_string, const Clock* clock) {
: [this](const std::string& config_string,
RtcEventLog* event_log,
const Clock* clock) {
return DefaultAudioNetworkAdaptorCreator(config_string,
clock);
event_log, clock);
}),
bitrate_smoother_(bitrate_smoother
? std::move(bitrate_smoother) : std::unique_ptr<SmoothingFilter>(
@ -268,8 +270,10 @@ void AudioEncoderOpus::SetMaxPlaybackRate(int frequency_hz) {
bool AudioEncoderOpus::EnableAudioNetworkAdaptor(
const std::string& config_string,
RtcEventLog* event_log,
const Clock* clock) {
audio_network_adaptor_ = audio_network_adaptor_creator_(config_string, clock);
audio_network_adaptor_ =
audio_network_adaptor_creator_(config_string, event_log, clock);
return audio_network_adaptor_.get() != nullptr;
}
@ -526,9 +530,11 @@ void AudioEncoderOpus::ApplyAudioNetworkAdaptor() {
std::unique_ptr<AudioNetworkAdaptor>
AudioEncoderOpus::DefaultAudioNetworkAdaptorCreator(
const std::string& config_string,
RtcEventLog* event_log,
const Clock* clock) const {
AudioNetworkAdaptorImpl::Config config;
config.clock = clock;
config.event_log = event_log;
return std::unique_ptr<AudioNetworkAdaptor>(new AudioNetworkAdaptorImpl(
config, ControllerManagerImpl::Create(
config_string, NumChannels(), supported_frame_lengths_ms(),

View File

@ -25,6 +25,8 @@
namespace webrtc {
class RtcEventLog;
struct CodecInst;
class AudioEncoderOpus final : public AudioEncoder {
@ -78,6 +80,7 @@ class AudioEncoderOpus final : public AudioEncoder {
using AudioNetworkAdaptorCreator =
std::function<std::unique_ptr<AudioNetworkAdaptor>(const std::string&,
RtcEventLog*,
const Clock*)>;
AudioEncoderOpus(
const Config& config,
@ -106,6 +109,7 @@ class AudioEncoderOpus final : public AudioEncoder {
bool SetApplication(Application application) override;
void SetMaxPlaybackRate(int frequency_hz) override;
bool EnableAudioNetworkAdaptor(const std::string& config_string,
RtcEventLog* event_log,
const Clock* clock) override;
void DisableAudioNetworkAdaptor() override;
void OnReceivedUplinkPacketLossFraction(
@ -151,6 +155,7 @@ class AudioEncoderOpus final : public AudioEncoder {
void ApplyAudioNetworkAdaptor();
std::unique_ptr<AudioNetworkAdaptor> DefaultAudioNetworkAdaptorCreator(
const std::string& config_string,
RtcEventLog* event_log,
const Clock* clock) const;
void MaybeUpdateUplinkBandwidth();

View File

@ -59,7 +59,7 @@ AudioEncoderOpusStates CreateCodec(size_t num_channels) {
std::weak_ptr<MockAudioNetworkAdaptor*> mock_ptr(
states.mock_audio_network_adaptor);
AudioEncoderOpus::AudioNetworkAdaptorCreator creator = [mock_ptr](
const std::string&, const Clock*) {
const std::string&, RtcEventLog* event_log, const Clock*) {
std::unique_ptr<MockAudioNetworkAdaptor> adaptor(
new NiceMock<MockAudioNetworkAdaptor>());
EXPECT_CALL(*adaptor, Die());
@ -266,7 +266,7 @@ TEST(AudioEncoderOpusTest, SetReceiverFrameLengthRange) {
TEST(AudioEncoderOpusTest,
InvokeAudioNetworkAdaptorOnReceivedUplinkPacketLossFraction) {
auto states = CreateCodec(2);
states.encoder->EnableAudioNetworkAdaptor("", nullptr);
states.encoder->EnableAudioNetworkAdaptor("", nullptr, nullptr);
auto config = CreateEncoderRuntimeConfig();
EXPECT_CALL(**states.mock_audio_network_adaptor, GetEncoderRuntimeConfig())
@ -283,7 +283,7 @@ TEST(AudioEncoderOpusTest,
TEST(AudioEncoderOpusTest, InvokeAudioNetworkAdaptorOnReceivedUplinkBandwidth) {
auto states = CreateCodec(2);
states.encoder->EnableAudioNetworkAdaptor("", nullptr);
states.encoder->EnableAudioNetworkAdaptor("", nullptr, nullptr);
auto config = CreateEncoderRuntimeConfig();
EXPECT_CALL(**states.mock_audio_network_adaptor, GetEncoderRuntimeConfig())
@ -305,7 +305,7 @@ TEST(AudioEncoderOpusTest, InvokeAudioNetworkAdaptorOnReceivedUplinkBandwidth) {
TEST(AudioEncoderOpusTest, InvokeAudioNetworkAdaptorOnReceivedRtt) {
auto states = CreateCodec(2);
states.encoder->EnableAudioNetworkAdaptor("", nullptr);
states.encoder->EnableAudioNetworkAdaptor("", nullptr, nullptr);
auto config = CreateEncoderRuntimeConfig();
EXPECT_CALL(**states.mock_audio_network_adaptor, GetEncoderRuntimeConfig())
@ -321,7 +321,7 @@ TEST(AudioEncoderOpusTest, InvokeAudioNetworkAdaptorOnReceivedRtt) {
TEST(AudioEncoderOpusTest, InvokeAudioNetworkAdaptorOnReceivedOverhead) {
auto states = CreateCodec(2);
states.encoder->EnableAudioNetworkAdaptor("", nullptr);
states.encoder->EnableAudioNetworkAdaptor("", nullptr, nullptr);
auto config = CreateEncoderRuntimeConfig();
EXPECT_CALL(**states.mock_audio_network_adaptor, GetEncoderRuntimeConfig())
@ -450,7 +450,7 @@ TEST(AudioEncoderOpusTest, ConfigComplexityAdaptation) {
TEST(AudioEncoderOpusTest, EmptyConfigDoesNotAffectEncoderSettings) {
auto states = CreateCodec(2);
states.encoder->EnableAudioNetworkAdaptor("", nullptr);
states.encoder->EnableAudioNetworkAdaptor("", nullptr, nullptr);
auto config = CreateEncoderRuntimeConfig();
AudioNetworkAdaptor::EncoderRuntimeConfig empty_config;
@ -471,7 +471,7 @@ TEST(AudioEncoderOpusTest, EmptyConfigDoesNotAffectEncoderSettings) {
TEST(AudioEncoderOpusTest, UpdateUplinkBandwidthInAudioNetworkAdaptor) {
rtc::ScopedFakeClock fake_clock;
auto states = CreateCodec(2);
states.encoder->EnableAudioNetworkAdaptor("", nullptr);
states.encoder->EnableAudioNetworkAdaptor("", nullptr, nullptr);
std::array<int16_t, 480 * 2> audio;
audio.fill(0);
rtc::Buffer encoded;

View File

@ -1532,7 +1532,7 @@ bool Channel::EnableAudioNetworkAdaptor(const std::string& config_string) {
audio_coding_->ModifyEncoder([&](std::unique_ptr<AudioEncoder>* encoder) {
if (*encoder) {
success = (*encoder)->EnableAudioNetworkAdaptor(
config_string, Clock::GetRealTimeClock());
config_string, event_log_proxy_.get(), Clock::GetRealTimeClock());
}
});
return success;