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:
parent
bb341975fd
commit
bf279fc4b9
@ -14,7 +14,8 @@
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
AudioNetworkAdaptorImpl::Config::Config() = default;
|
||||
AudioNetworkAdaptorImpl::Config::Config()
|
||||
: event_log(nullptr), clock(nullptr){};
|
||||
|
||||
AudioNetworkAdaptorImpl::Config::~Config() = default;
|
||||
|
||||
|
||||
@ -22,11 +22,14 @@
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
class RtcEventLog;
|
||||
|
||||
class AudioNetworkAdaptorImpl final : public AudioNetworkAdaptor {
|
||||
public:
|
||||
struct Config {
|
||||
Config();
|
||||
~Config();
|
||||
RtcEventLog* event_log;
|
||||
const Clock* clock;
|
||||
};
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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(),
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user