Add clock to ACM config struct
The purpose is to clean up the ACM interface a bit. This is a follow-up of a comment in http://review.webrtc.org/13379004/. R=turaj@webrtc.org Review URL: https://webrtc-codereview.appspot.com/16389005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6006 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -117,7 +117,7 @@ bool IsCng(int codec_id) {
|
|||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
AcmReceiver::AcmReceiver(const AudioCodingModule::Config& config, Clock* clock)
|
AcmReceiver::AcmReceiver(const AudioCodingModule::Config& config)
|
||||||
: id_(config.id),
|
: id_(config.id),
|
||||||
neteq_(NetEq::Create(config.neteq_config)),
|
neteq_(NetEq::Create(config.neteq_config)),
|
||||||
last_audio_decoder_(-1), // Invalid value.
|
last_audio_decoder_(-1), // Invalid value.
|
||||||
@ -128,11 +128,12 @@ AcmReceiver::AcmReceiver(const AudioCodingModule::Config& config, Clock* clock)
|
|||||||
current_sample_rate_hz_(config.neteq_config.sample_rate_hz),
|
current_sample_rate_hz_(config.neteq_config.sample_rate_hz),
|
||||||
nack_(),
|
nack_(),
|
||||||
nack_enabled_(false),
|
nack_enabled_(false),
|
||||||
clock_(clock),
|
clock_(config.clock),
|
||||||
av_sync_(false),
|
av_sync_(false),
|
||||||
initial_delay_manager_(),
|
initial_delay_manager_(),
|
||||||
missing_packets_sync_stream_(),
|
missing_packets_sync_stream_(),
|
||||||
late_packets_sync_stream_() {
|
late_packets_sync_stream_() {
|
||||||
|
assert(clock_);
|
||||||
for (int n = 0; n < ACMCodecDB::kMaxNumCodecs; ++n) {
|
for (int n = 0; n < ACMCodecDB::kMaxNumCodecs; ++n) {
|
||||||
decoders_[n].registered = false;
|
decoders_[n].registered = false;
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,6 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
class Clock;
|
|
||||||
struct CodecInst;
|
struct CodecInst;
|
||||||
class CriticalSectionWrapper;
|
class CriticalSectionWrapper;
|
||||||
class RWLockWrapper;
|
class RWLockWrapper;
|
||||||
@ -48,7 +47,7 @@ class AcmReceiver {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Constructor of the class
|
// Constructor of the class
|
||||||
explicit AcmReceiver(const AudioCodingModule::Config& config, Clock* clock);
|
explicit AcmReceiver(const AudioCodingModule::Config& config);
|
||||||
|
|
||||||
// Destructor of the class.
|
// Destructor of the class.
|
||||||
~AcmReceiver();
|
~AcmReceiver();
|
||||||
|
@ -48,8 +48,8 @@ class AcmReceiverTest : public AudioPacketizationCallback,
|
|||||||
last_packet_send_timestamp_(timestamp_),
|
last_packet_send_timestamp_(timestamp_),
|
||||||
last_frame_type_(kFrameEmpty) {
|
last_frame_type_(kFrameEmpty) {
|
||||||
AudioCodingModule::Config config;
|
AudioCodingModule::Config config;
|
||||||
acm_.reset(new AudioCodingModuleImpl(config, Clock::GetRealTimeClock()));
|
acm_.reset(new AudioCodingModuleImpl(config));
|
||||||
receiver_.reset(new AcmReceiver(config, Clock::GetRealTimeClock()));
|
receiver_.reset(new AcmReceiver(config));
|
||||||
}
|
}
|
||||||
|
|
||||||
~AcmReceiverTest() {}
|
~AcmReceiverTest() {}
|
||||||
|
@ -30,7 +30,8 @@ AudioCodingModule* AudioCodingModule::Create(int id) {
|
|||||||
AudioCodingModule* AudioCodingModule::Create(int id, Clock* clock) {
|
AudioCodingModule* AudioCodingModule::Create(int id, Clock* clock) {
|
||||||
AudioCodingModule::Config config;
|
AudioCodingModule::Config config;
|
||||||
config.id = id;
|
config.id = id;
|
||||||
return new acm2::AudioCodingModuleImpl(config, clock);
|
config.clock = clock;
|
||||||
|
return new acm2::AudioCodingModuleImpl(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get number of supported codecs
|
// Get number of supported codecs
|
||||||
@ -105,7 +106,7 @@ AudioCodingModule* AudioCodingModuleFactory::Create(int id) const {
|
|||||||
AudioCodingModule* NewAudioCodingModuleFactory::Create(int id) const {
|
AudioCodingModule* NewAudioCodingModuleFactory::Create(int id) const {
|
||||||
AudioCodingModule::Config config;
|
AudioCodingModule::Config config;
|
||||||
config.id = id;
|
config.id = id;
|
||||||
return new acm2::AudioCodingModuleImpl(config, Clock::GetRealTimeClock());
|
return new acm2::AudioCodingModuleImpl(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
@ -115,8 +115,7 @@ static int TimestampLessThan(uint32_t t1, uint32_t t2) {
|
|||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
AudioCodingModuleImpl::AudioCodingModuleImpl(
|
AudioCodingModuleImpl::AudioCodingModuleImpl(
|
||||||
const AudioCodingModule::Config& config,
|
const AudioCodingModule::Config& config)
|
||||||
Clock* clock)
|
|
||||||
: packetization_callback_(NULL),
|
: packetization_callback_(NULL),
|
||||||
id_(config.id),
|
id_(config.id),
|
||||||
expected_codec_ts_(0xD87F3F9F),
|
expected_codec_ts_(0xD87F3F9F),
|
||||||
@ -133,7 +132,7 @@ AudioCodingModuleImpl::AudioCodingModuleImpl(
|
|||||||
stereo_send_(false),
|
stereo_send_(false),
|
||||||
current_send_codec_idx_(-1),
|
current_send_codec_idx_(-1),
|
||||||
send_codec_registered_(false),
|
send_codec_registered_(false),
|
||||||
receiver_(config, clock),
|
receiver_(config),
|
||||||
acm_crit_sect_(CriticalSectionWrapper::CreateCriticalSection()),
|
acm_crit_sect_(CriticalSectionWrapper::CreateCriticalSection()),
|
||||||
vad_callback_(NULL),
|
vad_callback_(NULL),
|
||||||
is_first_red_(true),
|
is_first_red_(true),
|
||||||
|
@ -22,7 +22,6 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
class Clock;
|
|
||||||
class CriticalSectionWrapper;
|
class CriticalSectionWrapper;
|
||||||
class RWLockWrapper;
|
class RWLockWrapper;
|
||||||
|
|
||||||
@ -33,7 +32,7 @@ class ACMGenericCodec;
|
|||||||
|
|
||||||
class AudioCodingModuleImpl : public AudioCodingModule {
|
class AudioCodingModuleImpl : public AudioCodingModule {
|
||||||
public:
|
public:
|
||||||
AudioCodingModuleImpl(const AudioCodingModule::Config& config, Clock* clock);
|
explicit AudioCodingModuleImpl(const AudioCodingModule::Config& config);
|
||||||
~AudioCodingModuleImpl();
|
~AudioCodingModuleImpl();
|
||||||
|
|
||||||
virtual const char* Version() const;
|
virtual const char* Version() const;
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include "webrtc/modules/audio_coding/main/interface/audio_coding_module_typedefs.h"
|
#include "webrtc/modules/audio_coding/main/interface/audio_coding_module_typedefs.h"
|
||||||
#include "webrtc/modules/audio_coding/neteq4/interface/neteq.h"
|
#include "webrtc/modules/audio_coding/neteq4/interface/neteq.h"
|
||||||
#include "webrtc/modules/interface/module.h"
|
#include "webrtc/modules/interface/module.h"
|
||||||
|
#include "webrtc/system_wrappers/interface/clock.h"
|
||||||
#include "webrtc/typedefs.h"
|
#include "webrtc/typedefs.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
@ -26,7 +27,6 @@ struct CodecInst;
|
|||||||
struct WebRtcRTPHeader;
|
struct WebRtcRTPHeader;
|
||||||
class AudioFrame;
|
class AudioFrame;
|
||||||
class RTPFragmentationHeader;
|
class RTPFragmentationHeader;
|
||||||
class Clock;
|
|
||||||
|
|
||||||
#define WEBRTC_10MS_PCM_AUDIO 960 // 16 bits super wideband 48 kHz
|
#define WEBRTC_10MS_PCM_AUDIO 960 // 16 bits super wideband 48 kHz
|
||||||
|
|
||||||
@ -86,10 +86,12 @@ class AudioCodingModule: public Module {
|
|||||||
struct Config {
|
struct Config {
|
||||||
Config()
|
Config()
|
||||||
: id(0),
|
: id(0),
|
||||||
neteq_config() {}
|
neteq_config(),
|
||||||
|
clock(Clock::GetRealTimeClock()) {}
|
||||||
|
|
||||||
int id;
|
int id;
|
||||||
NetEq::Config neteq_config;
|
NetEq::Config neteq_config;
|
||||||
|
Clock* clock;
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
Reference in New Issue
Block a user