Move NetEq headers to api/
This CL also introduces NetEqFactory and NetEqControllerFactory interfaces, as well as several convenience classes for working with them: DefaultNetEqFactory, DefaultNetEqControllerFactory and CustomNetEqFactory. Bug: webrtc:11005 Change-Id: I1e8fc5154636ac2aad1a856828f80a2a758ad392 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156945 Commit-Queue: Ivo Creusen <ivoc@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29671}
This commit is contained in:
@ -19,16 +19,16 @@
|
||||
|
||||
#include "absl/types/optional.h"
|
||||
#include "api/audio/audio_frame.h"
|
||||
#include "api/neteq/neteq.h"
|
||||
#include "api/neteq/neteq_controller.h"
|
||||
#include "api/neteq/neteq_controller_factory.h"
|
||||
#include "api/neteq/tick_timer.h"
|
||||
#include "api/rtp_packet_info.h"
|
||||
#include "modules/audio_coding/neteq/audio_multi_vector.h"
|
||||
#include "modules/audio_coding/neteq/defines.h" // Modes, Operations
|
||||
#include "modules/audio_coding/neteq/expand_uma_logger.h"
|
||||
#include "modules/audio_coding/neteq/include/neteq.h"
|
||||
#include "modules/audio_coding/neteq/neteq_controller.h"
|
||||
#include "modules/audio_coding/neteq/packet.h"
|
||||
#include "modules/audio_coding/neteq/random_vector.h"
|
||||
#include "modules/audio_coding/neteq/statistics_calculator.h"
|
||||
#include "modules/audio_coding/neteq/tick_timer.h"
|
||||
#include "rtc_base/constructor_magic.h"
|
||||
#include "rtc_base/critical_section.h"
|
||||
#include "rtc_base/thread_annotations.h"
|
||||
@ -96,10 +96,10 @@ class NetEqImpl : public webrtc::NetEq {
|
||||
// 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.
|
||||
Dependencies(
|
||||
const NetEq::Config& config,
|
||||
Clock* clock,
|
||||
const rtc::scoped_refptr<AudioDecoderFactory>& decoder_factory);
|
||||
Dependencies(const NetEq::Config& config,
|
||||
Clock* clock,
|
||||
const rtc::scoped_refptr<AudioDecoderFactory>& decoder_factory,
|
||||
const NetEqControllerFactory& controller_factory);
|
||||
~Dependencies();
|
||||
|
||||
Clock* const clock;
|
||||
@ -133,7 +133,7 @@ class NetEqImpl : public webrtc::NetEq {
|
||||
int GetAudio(
|
||||
AudioFrame* audio_frame,
|
||||
bool* muted,
|
||||
absl::optional<Operations> action_override = absl::nullopt) override;
|
||||
absl::optional<Operation> action_override = absl::nullopt) override;
|
||||
|
||||
void SetCodecs(const std::map<int, SdpAudioFormat>& codecs) override;
|
||||
|
||||
@ -195,7 +195,7 @@ class NetEqImpl : public webrtc::NetEq {
|
||||
|
||||
// This accessor method is only intended for testing purposes.
|
||||
const SyncBuffer* sync_buffer_for_test() const;
|
||||
Operations last_operation_for_test() const;
|
||||
Operation last_operation_for_test() const;
|
||||
|
||||
protected:
|
||||
static const int kOutputSizeMs = 10;
|
||||
@ -216,7 +216,7 @@ class NetEqImpl : public webrtc::NetEq {
|
||||
// Returns 0 on success, otherwise an error code.
|
||||
int GetAudioInternal(AudioFrame* audio_frame,
|
||||
bool* muted,
|
||||
absl::optional<Operations> action_override)
|
||||
absl::optional<Operation> action_override)
|
||||
RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_sect_);
|
||||
|
||||
// Provides a decision to the GetAudioInternal method. The decision what to
|
||||
@ -224,11 +224,11 @@ class NetEqImpl : public webrtc::NetEq {
|
||||
// |packet_list|, and a DTMF event to play is written to |dtmf_event|. When
|
||||
// DTMF should be played, |play_dtmf| is set to true by the method.
|
||||
// Returns 0 on success, otherwise an error code.
|
||||
int GetDecision(Operations* operation,
|
||||
int GetDecision(Operation* operation,
|
||||
PacketList* packet_list,
|
||||
DtmfEvent* dtmf_event,
|
||||
bool* play_dtmf,
|
||||
absl::optional<Operations> action_override)
|
||||
absl::optional<Operation> action_override)
|
||||
RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_sect_);
|
||||
|
||||
// Decodes the speech packets in |packet_list|, and writes the results to
|
||||
@ -238,7 +238,7 @@ class NetEqImpl : public webrtc::NetEq {
|
||||
// to |speech_type|. If |packet_list| contains any SID frames for RFC 3389
|
||||
// comfort noise, those are not decoded.
|
||||
int Decode(PacketList* packet_list,
|
||||
Operations* operation,
|
||||
Operation* operation,
|
||||
int* decoded_length,
|
||||
AudioDecoder::SpeechType* speech_type)
|
||||
RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_sect_);
|
||||
@ -251,7 +251,7 @@ class NetEqImpl : public webrtc::NetEq {
|
||||
|
||||
// Sub-method to Decode(). Performs the actual decoding.
|
||||
int DecodeLoop(PacketList* packet_list,
|
||||
const Operations& operation,
|
||||
const Operation& operation,
|
||||
AudioDecoder* decoder,
|
||||
int* decoded_length,
|
||||
AudioDecoder::SpeechType* speech_type)
|
||||
@ -374,8 +374,8 @@ class NetEqImpl : public webrtc::NetEq {
|
||||
int last_output_sample_rate_hz_ RTC_GUARDED_BY(crit_sect_);
|
||||
size_t output_size_samples_ RTC_GUARDED_BY(crit_sect_);
|
||||
size_t decoder_frame_length_ RTC_GUARDED_BY(crit_sect_);
|
||||
Modes last_mode_ RTC_GUARDED_BY(crit_sect_);
|
||||
Operations last_operation_ RTC_GUARDED_BY(crit_sect_);
|
||||
Mode last_mode_ RTC_GUARDED_BY(crit_sect_);
|
||||
Operation last_operation_ RTC_GUARDED_BY(crit_sect_);
|
||||
size_t decoded_buffer_length_ RTC_GUARDED_BY(crit_sect_);
|
||||
std::unique_ptr<int16_t[]> decoded_buffer_ RTC_GUARDED_BY(crit_sect_);
|
||||
uint32_t playout_timestamp_ RTC_GUARDED_BY(crit_sect_);
|
||||
|
||||
Reference in New Issue
Block a user