Index: webrtc/modules/audio_coding/neteq/neteq_impl.h |
diff --git a/webrtc/modules/audio_coding/neteq/neteq_impl.h b/webrtc/modules/audio_coding/neteq/neteq_impl.h |
index 9d4a9ff26966c703065c36f4da367e44562cc06f..7f39474a738c3caee668692ec86766800fcab4a7 100644 |
--- a/webrtc/modules/audio_coding/neteq/neteq_impl.h |
+++ b/webrtc/modules/audio_coding/neteq/neteq_impl.h |
@@ -66,22 +66,34 @@ class NetEqImpl : public webrtc::NetEq { |
kVadPassive |
}; |
+ struct Dependencies { |
+ // The constructor populates the Dependencies struct with the default |
+ // implementations of the objects. They can all be replaced by the user |
+ // before sending the struct to the NetEqImpl constructor. However, there |
+ // are dependencies between some of the classes inside the struct, so |
+ // swapping out one may make it necessary to re-create another one. |
+ explicit Dependencies(const NetEq::Config& config); |
+ ~Dependencies(); |
+ |
+ std::unique_ptr<TickTimer> tick_timer; |
+ std::unique_ptr<BufferLevelFilter> buffer_level_filter; |
+ std::unique_ptr<DecoderDatabase> decoder_database; |
+ std::unique_ptr<DelayPeakDetector> delay_peak_detector; |
+ std::unique_ptr<DelayManager> delay_manager; |
+ std::unique_ptr<DtmfBuffer> dtmf_buffer; |
+ std::unique_ptr<DtmfToneGenerator> dtmf_tone_generator; |
+ std::unique_ptr<PacketBuffer> packet_buffer; |
+ std::unique_ptr<PayloadSplitter> payload_splitter; |
+ std::unique_ptr<TimestampScaler> timestamp_scaler; |
+ std::unique_ptr<AccelerateFactory> accelerate_factory; |
+ std::unique_ptr<ExpandFactory> expand_factory; |
+ std::unique_ptr<PreemptiveExpandFactory> preemptive_expand_factory; |
+ }; |
+ |
// Creates a new NetEqImpl object. The object will assume ownership of all |
// injected dependencies, and will delete them when done. |
kwiberg-webrtc
2016/04/26 13:00:04
You no longer need the second sentence in this com
hlundin-webrtc
2016/04/26 13:20:38
Done.
|
NetEqImpl(const NetEq::Config& config, |
- std::unique_ptr<TickTimer> tick_timer, |
- BufferLevelFilter* buffer_level_filter, |
- DecoderDatabase* decoder_database, |
- DelayManager* delay_manager, |
- DelayPeakDetector* delay_peak_detector, |
- DtmfBuffer* dtmf_buffer, |
- DtmfToneGenerator* dtmf_tone_generator, |
- PacketBuffer* packet_buffer, |
- PayloadSplitter* payload_splitter, |
- TimestampScaler* timestamp_scaler, |
- AccelerateFactory* accelerate_factory, |
- ExpandFactory* expand_factory, |
- PreemptiveExpandFactory* preemptive_expand_factory, |
+ Dependencies&& deps, |
bool create_components = true); |
~NetEqImpl() override; |