#include "webrtc/common_types.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/interface/module.h"
+#include "webrtc/system_wrappers/interface/clock.h"
#include "webrtc/typedefs.h"
namespace webrtc {
struct WebRtcRTPHeader;
class AudioFrame;
class RTPFragmentationHeader;
-class Clock;
#define WEBRTC_10MS_PCM_AUDIO 960 // 16 bits super wideband 48 kHz
const uint16_t delayMS) = 0; // average delay in ms
};
-// Version string for testing, to distinguish instances of ACM1 from ACM2.
-extern const char kLegacyAcmVersion[];
-extern const char kExperimentalAcmVersion[];
-
class AudioCodingModule: public Module {
protected:
AudioCodingModule() {}
public:
+ struct Config {
+ Config()
+ : id(0),
+ neteq_config(),
+ clock(Clock::GetRealTimeClock()) {}
+
+ int id;
+ NetEq::Config neteq_config;
+ Clock* clock;
+ };
+
///////////////////////////////////////////////////////////////////////////
// Creation and destruction of a ACM.
//
//
static bool IsCodecValid(const CodecInst& codec);
- // Returns the version of ACM. This facilitates distinguishing instances of
- // ACM1 from ACM2 while testing. This API will be removed when ACM1 is
- // completely removed.
- virtual const char* Version() const = 0;
-
///////////////////////////////////////////////////////////////////////////
// Sender
//
AudioDecodingCallStats* call_stats) const = 0;
};
-struct AudioCodingModuleFactory {
- AudioCodingModuleFactory() {}
- virtual ~AudioCodingModuleFactory() {}
-
- virtual AudioCodingModule* Create(int id) const;
-};
-
-struct NewAudioCodingModuleFactory : AudioCodingModuleFactory {
- NewAudioCodingModuleFactory() {}
- virtual ~NewAudioCodingModuleFactory() {}
-
- virtual AudioCodingModule* Create(int id) const;
-};
-
} // namespace webrtc
#endif // WEBRTC_MODULES_AUDIO_CODING_MAIN_INTERFACE_AUDIO_CODING_MODULE_H_