
This change prepares for switching default background noise (bgn) mode from on to off. The actual switch will be done later. In this change, the bgn mode is included as a setting in NetEq's config struct. We're also removing the connection between playout modes and bgn modes in ACM. In practice this means that bgn mode will change from off to on for streaming mode, but since the playout modes are not used it does not matter. BUG=3519 R=tina.legrand@webrtc.org Review URL: https://webrtc-codereview.appspot.com/21749004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6843 4adac7df-926f-26a2-2b94-8c16560cd09d
63 lines
2.9 KiB
C++
63 lines
2.9 KiB
C++
/*
|
|
* Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#include "webrtc/modules/audio_coding/neteq/interface/neteq.h"
|
|
|
|
#include "webrtc/modules/audio_coding/neteq/accelerate.h"
|
|
#include "webrtc/modules/audio_coding/neteq/buffer_level_filter.h"
|
|
#include "webrtc/modules/audio_coding/neteq/decoder_database.h"
|
|
#include "webrtc/modules/audio_coding/neteq/delay_manager.h"
|
|
#include "webrtc/modules/audio_coding/neteq/delay_peak_detector.h"
|
|
#include "webrtc/modules/audio_coding/neteq/dtmf_buffer.h"
|
|
#include "webrtc/modules/audio_coding/neteq/dtmf_tone_generator.h"
|
|
#include "webrtc/modules/audio_coding/neteq/expand.h"
|
|
#include "webrtc/modules/audio_coding/neteq/neteq_impl.h"
|
|
#include "webrtc/modules/audio_coding/neteq/packet_buffer.h"
|
|
#include "webrtc/modules/audio_coding/neteq/payload_splitter.h"
|
|
#include "webrtc/modules/audio_coding/neteq/preemptive_expand.h"
|
|
#include "webrtc/modules/audio_coding/neteq/timestamp_scaler.h"
|
|
|
|
namespace webrtc {
|
|
|
|
// Creates all classes needed and inject them into a new NetEqImpl object.
|
|
// Return the new object.
|
|
NetEq* NetEq::Create(const NetEq::Config& config) {
|
|
BufferLevelFilter* buffer_level_filter = new BufferLevelFilter;
|
|
DecoderDatabase* decoder_database = new DecoderDatabase;
|
|
DelayPeakDetector* delay_peak_detector = new DelayPeakDetector;
|
|
DelayManager* delay_manager =
|
|
new DelayManager(config.max_packets_in_buffer, delay_peak_detector);
|
|
delay_manager->SetMaximumDelay(config.max_delay_ms);
|
|
DtmfBuffer* dtmf_buffer = new DtmfBuffer(config.sample_rate_hz);
|
|
DtmfToneGenerator* dtmf_tone_generator = new DtmfToneGenerator;
|
|
PacketBuffer* packet_buffer = new PacketBuffer(config.max_packets_in_buffer);
|
|
PayloadSplitter* payload_splitter = new PayloadSplitter;
|
|
TimestampScaler* timestamp_scaler = new TimestampScaler(*decoder_database);
|
|
AccelerateFactory* accelerate_factory = new AccelerateFactory;
|
|
ExpandFactory* expand_factory = new ExpandFactory;
|
|
PreemptiveExpandFactory* preemptive_expand_factory =
|
|
new PreemptiveExpandFactory;
|
|
return new NetEqImpl(config,
|
|
buffer_level_filter,
|
|
decoder_database,
|
|
delay_manager,
|
|
delay_peak_detector,
|
|
dtmf_buffer,
|
|
dtmf_tone_generator,
|
|
packet_buffer,
|
|
payload_splitter,
|
|
timestamp_scaler,
|
|
accelerate_factory,
|
|
expand_factory,
|
|
preemptive_expand_factory);
|
|
}
|
|
|
|
} // namespace webrtc
|