Remove legacy VoiceEngine.
Now that voe::Channel is owned by Audio[Send|Receive]Stream, the legacy VoiceEngine and the VoEBase interface is unused. Also removes Atomic32, which was only used for ref counting VoiceEngine. Bug: webrtc:4690 Change-Id: I73b8a083df544a8ab6383d57075a65ce955c592a Reviewed-on: https://webrtc-review.googlesource.com/38723 Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org> Reviewed-by: Henrik Andreassson <henrika@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21595}
This commit is contained in:
committed by
Commit Bot
parent
f0839f2c96
commit
2d49e4e18d
@ -94,7 +94,6 @@ LEGACY_API_DIRS = (
|
|||||||
'modules/video_coding/include',
|
'modules/video_coding/include',
|
||||||
'rtc_base',
|
'rtc_base',
|
||||||
'system_wrappers/include',
|
'system_wrappers/include',
|
||||||
'voice_engine/include',
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# NOTE: The set of directories in API_DIRS should be the same as those
|
# NOTE: The set of directories in API_DIRS should be the same as those
|
||||||
|
|||||||
@ -34,7 +34,6 @@ Legacy API directory | Including subdirectories?
|
|||||||
`pc` | No
|
`pc` | No
|
||||||
`rtc_base` | No
|
`rtc_base` | No
|
||||||
`system_wrappers/include` | No
|
`system_wrappers/include` | No
|
||||||
`voice_engine/include` | No
|
|
||||||
|
|
||||||
While the files, types, functions, macros, build targets, etc. in the
|
While the files, types, functions, macros, build targets, etc. in the
|
||||||
API and legacy API directories will sometimes undergo incompatible
|
API and legacy API directories will sometimes undergo incompatible
|
||||||
|
|||||||
@ -17,7 +17,6 @@ rtc_static_library("system_wrappers") {
|
|||||||
sources = [
|
sources = [
|
||||||
"include/aligned_array.h",
|
"include/aligned_array.h",
|
||||||
"include/aligned_malloc.h",
|
"include/aligned_malloc.h",
|
||||||
"include/atomic32.h",
|
|
||||||
"include/clock.h",
|
"include/clock.h",
|
||||||
"include/cpu_info.h",
|
"include/cpu_info.h",
|
||||||
"include/event_wrapper.h",
|
"include/event_wrapper.h",
|
||||||
@ -28,7 +27,6 @@ rtc_static_library("system_wrappers") {
|
|||||||
"include/sleep.h",
|
"include/sleep.h",
|
||||||
"include/timestamp_extrapolator.h",
|
"include/timestamp_extrapolator.h",
|
||||||
"source/aligned_malloc.cc",
|
"source/aligned_malloc.cc",
|
||||||
"source/atomic32.cc",
|
|
||||||
"source/clock.cc",
|
"source/clock.cc",
|
||||||
"source/cpu_features.cc",
|
"source/cpu_features.cc",
|
||||||
"source/cpu_info.cc",
|
"source/cpu_info.cc",
|
||||||
|
|||||||
@ -1,59 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Atomic, system independent 32-bit integer. Unless you know what you're
|
|
||||||
// doing, use locks instead! :-)
|
|
||||||
//
|
|
||||||
// Note: assumes 32-bit (or higher) system
|
|
||||||
#ifndef SYSTEM_WRAPPERS_INCLUDE_ATOMIC32_H_
|
|
||||||
#define SYSTEM_WRAPPERS_INCLUDE_ATOMIC32_H_
|
|
||||||
|
|
||||||
#include <atomic>
|
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
#include "common_types.h" // NOLINT(build/include)
|
|
||||||
#include "rtc_base/constructormagic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
|
||||||
|
|
||||||
// DEPRECATED: Please use std::atomic<int32_t> instead.
|
|
||||||
// TODO(yuweih): Replace Atomic32 uses with std::atomic<int32_t> and remove this
|
|
||||||
// class. (bugs.webrtc.org/8428)
|
|
||||||
// 32 bit atomic variable. Note that this class relies on the compiler to
|
|
||||||
// align the 32 bit value correctly (on a 32 bit boundary), so as long as you're
|
|
||||||
// not doing things like reinterpret_cast over some custom allocated memory
|
|
||||||
// without being careful with alignment, you should be fine.
|
|
||||||
class Atomic32 {
|
|
||||||
public:
|
|
||||||
Atomic32(int32_t initial_value = 0);
|
|
||||||
~Atomic32();
|
|
||||||
|
|
||||||
// Prefix operator!
|
|
||||||
int32_t operator++();
|
|
||||||
int32_t operator--();
|
|
||||||
|
|
||||||
int32_t operator+=(int32_t value);
|
|
||||||
int32_t operator-=(int32_t value);
|
|
||||||
|
|
||||||
// Sets the value atomically to new_value if the value equals compare value.
|
|
||||||
// The function returns true if the exchange happened.
|
|
||||||
bool CompareExchange(int32_t new_value, int32_t compare_value);
|
|
||||||
int32_t Value() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(Atomic32);
|
|
||||||
|
|
||||||
std::atomic<int32_t> value_;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace webrtc
|
|
||||||
|
|
||||||
#endif // SYSTEM_WRAPPERS_INCLUDE_ATOMIC32_H_
|
|
||||||
@ -1,47 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2017 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 "system_wrappers/include/atomic32.h"
|
|
||||||
|
|
||||||
#include <assert.h>
|
|
||||||
|
|
||||||
#include "common_types.h" // NOLINT(build/include)
|
|
||||||
|
|
||||||
namespace webrtc {
|
|
||||||
|
|
||||||
Atomic32::Atomic32(int32_t initial_value) : value_(initial_value) {}
|
|
||||||
|
|
||||||
Atomic32::~Atomic32() {}
|
|
||||||
|
|
||||||
int32_t Atomic32::operator++() {
|
|
||||||
return ++value_;
|
|
||||||
}
|
|
||||||
|
|
||||||
int32_t Atomic32::operator--() {
|
|
||||||
return --value_;
|
|
||||||
}
|
|
||||||
|
|
||||||
int32_t Atomic32::operator+=(int32_t value) {
|
|
||||||
return value_ += value;
|
|
||||||
}
|
|
||||||
|
|
||||||
int32_t Atomic32::operator-=(int32_t value) {
|
|
||||||
return value_ -= value;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Atomic32::CompareExchange(int32_t new_value, int32_t compare_value) {
|
|
||||||
return value_.compare_exchange_strong(compare_value, new_value);
|
|
||||||
}
|
|
||||||
|
|
||||||
int32_t Atomic32::Value() const {
|
|
||||||
return value_.load();
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace webrtc
|
|
||||||
@ -17,16 +17,10 @@ rtc_static_library("voice_engine") {
|
|||||||
"channel.h",
|
"channel.h",
|
||||||
"channel_proxy.cc",
|
"channel_proxy.cc",
|
||||||
"channel_proxy.h",
|
"channel_proxy.h",
|
||||||
"include/voe_base.h",
|
|
||||||
"include/voe_errors.h",
|
|
||||||
"transport_feedback_packet_loss_tracker.cc",
|
"transport_feedback_packet_loss_tracker.cc",
|
||||||
"transport_feedback_packet_loss_tracker.h",
|
"transport_feedback_packet_loss_tracker.h",
|
||||||
"utility.cc",
|
"utility.cc",
|
||||||
"utility.h",
|
"utility.h",
|
||||||
"voe_base_impl.cc",
|
|
||||||
"voe_base_impl.h",
|
|
||||||
"voice_engine_impl.cc",
|
|
||||||
"voice_engine_impl.h",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
if (is_win) {
|
if (is_win) {
|
||||||
|
|||||||
@ -1,118 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// This sub-API supports the following functionalities:
|
|
||||||
//
|
|
||||||
// - Enables full duplex VoIP sessions via RTP using G.711 (mu-Law or A-Law).
|
|
||||||
// - Initialization and termination.
|
|
||||||
// - Trace information on text files or via callbacks.
|
|
||||||
// - Multi-channel support (mixing, sending to multiple destinations etc.).
|
|
||||||
//
|
|
||||||
// To support other codecs than G.711, the VoECodec sub-API must be utilized.
|
|
||||||
//
|
|
||||||
// Usage example, omitting error checking:
|
|
||||||
//
|
|
||||||
// using namespace webrtc;
|
|
||||||
// VoiceEngine* voe = VoiceEngine::Create();
|
|
||||||
// VoEBase* base = VoEBase::GetInterface(voe);
|
|
||||||
// base->Init();
|
|
||||||
// int ch = base->CreateChannel();
|
|
||||||
// base->StartPlayout(ch);
|
|
||||||
// ...
|
|
||||||
// base->DeleteChannel(ch);
|
|
||||||
// base->Terminate();
|
|
||||||
// base->Release();
|
|
||||||
// VoiceEngine::Delete(voe);
|
|
||||||
//
|
|
||||||
#ifndef VOICE_ENGINE_VOE_BASE_H_
|
|
||||||
#define VOICE_ENGINE_VOE_BASE_H_
|
|
||||||
|
|
||||||
#include "api/audio_codecs/audio_decoder_factory.h"
|
|
||||||
#include "common_types.h" // NOLINT(build/include)
|
|
||||||
#include "modules/audio_coding/include/audio_coding_module.h"
|
|
||||||
#include "rtc_base/scoped_ref_ptr.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
|
||||||
|
|
||||||
class AudioDeviceModule;
|
|
||||||
class AudioProcessing;
|
|
||||||
|
|
||||||
// VoiceEngine
|
|
||||||
class WEBRTC_DLLEXPORT VoiceEngine {
|
|
||||||
public:
|
|
||||||
// Creates a VoiceEngine object, which can then be used to acquire
|
|
||||||
// sub-APIs. Returns NULL on failure.
|
|
||||||
static VoiceEngine* Create();
|
|
||||||
|
|
||||||
// Deletes a created VoiceEngine object and releases the utilized resources.
|
|
||||||
// Note that if there are outstanding references held via other interfaces,
|
|
||||||
// the voice engine instance will not actually be deleted until those
|
|
||||||
// references have been released.
|
|
||||||
static bool Delete(VoiceEngine*& voiceEngine);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
VoiceEngine() {}
|
|
||||||
~VoiceEngine() {}
|
|
||||||
};
|
|
||||||
|
|
||||||
// VoEBase
|
|
||||||
class WEBRTC_DLLEXPORT VoEBase {
|
|
||||||
public:
|
|
||||||
struct ChannelConfig {
|
|
||||||
AudioCodingModule::Config acm_config;
|
|
||||||
bool enable_voice_pacing = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Factory for the VoEBase sub-API. Increases an internal reference
|
|
||||||
// counter if successful. Returns NULL if the API is not supported or if
|
|
||||||
// construction fails.
|
|
||||||
static VoEBase* GetInterface(VoiceEngine* voiceEngine);
|
|
||||||
|
|
||||||
// Releases the VoEBase sub-API and decreases an internal reference
|
|
||||||
// counter. Returns the new reference count. This value should be zero
|
|
||||||
// for all sub-APIs before the VoiceEngine object can be safely deleted.
|
|
||||||
virtual int Release() = 0;
|
|
||||||
|
|
||||||
// Initializes all common parts of the VoiceEngine; e.g. all
|
|
||||||
// encoders/decoders, the sound card and core receiving components.
|
|
||||||
// This method also makes it possible to install some user-defined external
|
|
||||||
// modules:
|
|
||||||
// - The Audio Device Module (ADM) which implements all the audio layer
|
|
||||||
// functionality in a separate (reference counted) module.
|
|
||||||
// - The AudioProcessing module is unused - only kept for API compatibility.
|
|
||||||
// - An AudioDecoderFactory - used to create audio decoders.
|
|
||||||
virtual int Init(
|
|
||||||
AudioDeviceModule* audio_device,
|
|
||||||
AudioProcessing* audio_processing,
|
|
||||||
const rtc::scoped_refptr<AudioDecoderFactory>& decoder_factory) = 0;
|
|
||||||
|
|
||||||
// Terminates all VoiceEngine functions and releases allocated resources.
|
|
||||||
virtual void Terminate() = 0;
|
|
||||||
|
|
||||||
// Creates a new channel and allocates the required resources for it.
|
|
||||||
// The second version accepts a |config| struct which includes an Audio Coding
|
|
||||||
// Module config and an option to enable voice pacing. Note that the
|
|
||||||
// decoder_factory member of the ACM config will be ignored (the decoder
|
|
||||||
// factory set through Init() will always be used).
|
|
||||||
// Returns channel ID or -1 in case of an error.
|
|
||||||
virtual int CreateChannel(const ChannelConfig& config) = 0;
|
|
||||||
|
|
||||||
// Deletes an existing channel and releases the utilized resources.
|
|
||||||
// Returns -1 in case of an error, 0 otherwise.
|
|
||||||
virtual int DeleteChannel(int channel) = 0;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
VoEBase() {}
|
|
||||||
virtual ~VoEBase() {}
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace webrtc
|
|
||||||
|
|
||||||
#endif // VOICE_ENGINE_VOE_BASE_H_
|
|
||||||
@ -1,165 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2011 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef VOICE_ENGINE_VOE_ERRORS_H_
|
|
||||||
#define VOICE_ENGINE_VOE_ERRORS_H_
|
|
||||||
|
|
||||||
// Warnings
|
|
||||||
#define VE_PORT_NOT_DEFINED 8001
|
|
||||||
#define VE_CHANNEL_NOT_VALID 8002
|
|
||||||
#define VE_FUNC_NOT_SUPPORTED 8003
|
|
||||||
#define VE_INVALID_LISTNR 8004
|
|
||||||
#define VE_INVALID_ARGUMENT 8005
|
|
||||||
#define VE_INVALID_PORT_NMBR 8006
|
|
||||||
#define VE_INVALID_PLNAME 8007
|
|
||||||
#define VE_INVALID_PLFREQ 8008
|
|
||||||
#define VE_INVALID_PLTYPE 8009
|
|
||||||
#define VE_INVALID_PACSIZE 8010
|
|
||||||
#define VE_NOT_SUPPORTED 8011
|
|
||||||
#define VE_ALREADY_LISTENING 8012
|
|
||||||
#define VE_CHANNEL_NOT_CREATED 8013
|
|
||||||
#define VE_MAX_ACTIVE_CHANNELS_REACHED 8014
|
|
||||||
#define VE_REC_CANNOT_PREPARE_HEADER 8015
|
|
||||||
#define VE_REC_CANNOT_ADD_BUFFER 8016
|
|
||||||
#define VE_PLAY_CANNOT_PREPARE_HEADER 8017
|
|
||||||
#define VE_ALREADY_SENDING 8018
|
|
||||||
#define VE_INVALID_IP_ADDRESS 8019
|
|
||||||
#define VE_ALREADY_PLAYING 8020
|
|
||||||
#define VE_NOT_ALL_VERSION_INFO 8021
|
|
||||||
// 8022 is not used
|
|
||||||
#define VE_INVALID_CHANNELS 8023
|
|
||||||
#define VE_SET_PLTYPE_FAILED 8024
|
|
||||||
// 8025 is not used
|
|
||||||
#define VE_NOT_INITED 8026
|
|
||||||
#define VE_NOT_SENDING 8027
|
|
||||||
#define VE_EXT_TRANSPORT_NOT_SUPPORTED 8028
|
|
||||||
#define VE_EXTERNAL_TRANSPORT_ENABLED 8029
|
|
||||||
#define VE_STOP_RECORDING_FAILED 8030
|
|
||||||
#define VE_INVALID_RATE 8031
|
|
||||||
#define VE_INVALID_PACKET 8032
|
|
||||||
#define VE_NO_GQOS 8033
|
|
||||||
#define VE_INVALID_TIMESTAMP 8034
|
|
||||||
#define VE_RECEIVE_PACKET_TIMEOUT 8035
|
|
||||||
// 8036 is not used
|
|
||||||
#define VE_INIT_FAILED_WRONG_EXPIRY 8037
|
|
||||||
#define VE_SENDING 8038
|
|
||||||
#define VE_ENABLE_IPV6_FAILED 8039
|
|
||||||
#define VE_FUNC_NO_STEREO 8040
|
|
||||||
// Range 8041-8080 is not used
|
|
||||||
#define VE_FW_TRAVERSAL_ALREADY_INITIALIZED 8081
|
|
||||||
#define VE_PACKET_RECEIPT_RESTARTED 8082
|
|
||||||
#define VE_NOT_ALL_INFO 8083
|
|
||||||
#define VE_CANNOT_SET_SEND_CODEC 8084
|
|
||||||
#define VE_CODEC_ERROR 8085
|
|
||||||
#define VE_NETEQ_ERROR 8086
|
|
||||||
#define VE_RTCP_ERROR 8087
|
|
||||||
#define VE_INVALID_OPERATION 8088
|
|
||||||
#define VE_CPU_INFO_ERROR 8089
|
|
||||||
#define VE_SOUNDCARD_ERROR 8090
|
|
||||||
#define VE_SPEECH_LEVEL_ERROR 8091
|
|
||||||
#define VE_SEND_ERROR 8092
|
|
||||||
#define VE_CANNOT_REMOVE_CONF_CHANNEL 8093
|
|
||||||
#define VE_PLTYPE_ERROR 8094
|
|
||||||
#define VE_SET_RED_FAILED 8095
|
|
||||||
#define VE_CANNOT_GET_PLAY_DATA 8096
|
|
||||||
#define VE_APM_ERROR 8097
|
|
||||||
#define VE_RUNTIME_PLAY_WARNING 8098
|
|
||||||
#define VE_RUNTIME_REC_WARNING 8099
|
|
||||||
#define VE_NOT_PLAYING 8100
|
|
||||||
#define VE_SOCKETS_NOT_INITED 8101
|
|
||||||
#define VE_CANNOT_GET_SOCKET_INFO 8102
|
|
||||||
#define VE_INVALID_MULTICAST_ADDRESS 8103
|
|
||||||
#define VE_DESTINATION_NOT_INITED 8104
|
|
||||||
#define VE_RECEIVE_SOCKETS_CONFLICT 8105
|
|
||||||
#define VE_SEND_SOCKETS_CONFLICT 8106
|
|
||||||
// 8107 is not used
|
|
||||||
#define VE_NOISE_WARNING 8109
|
|
||||||
#define VE_CANNOT_GET_SEND_CODEC 8110
|
|
||||||
#define VE_CANNOT_GET_REC_CODEC 8111
|
|
||||||
#define VE_ALREADY_INITED 8112
|
|
||||||
#define VE_CANNOT_SET_SECONDARY_SEND_CODEC 8113
|
|
||||||
#define VE_CANNOT_GET_SECONDARY_SEND_CODEC 8114
|
|
||||||
#define VE_CANNOT_REMOVE_SECONDARY_SEND_CODEC 8115
|
|
||||||
// 8116 is not used
|
|
||||||
|
|
||||||
// Errors causing limited functionality
|
|
||||||
#define VE_RTCP_SOCKET_ERROR 9001
|
|
||||||
#define VE_MIC_VOL_ERROR 9002
|
|
||||||
#define VE_SPEAKER_VOL_ERROR 9003
|
|
||||||
#define VE_CANNOT_ACCESS_MIC_VOL 9004
|
|
||||||
#define VE_CANNOT_ACCESS_SPEAKER_VOL 9005
|
|
||||||
#define VE_GET_MIC_VOL_ERROR 9006
|
|
||||||
#define VE_GET_SPEAKER_VOL_ERROR 9007
|
|
||||||
#define VE_THREAD_RTCP_ERROR 9008
|
|
||||||
#define VE_CANNOT_INIT_APM 9009
|
|
||||||
#define VE_SEND_SOCKET_TOS_ERROR 9010
|
|
||||||
#define VE_CANNOT_RETRIEVE_DEVICE_NAME 9013
|
|
||||||
#define VE_SRTP_ERROR 9014
|
|
||||||
// 9015 is not used
|
|
||||||
#define VE_INTERFACE_NOT_FOUND 9016
|
|
||||||
#define VE_TOS_GQOS_CONFLICT 9017
|
|
||||||
#define VE_CANNOT_ADD_CONF_CHANNEL 9018
|
|
||||||
#define VE_BUFFER_TOO_SMALL 9019
|
|
||||||
#define VE_CANNOT_EXECUTE_SETTING 9020
|
|
||||||
#define VE_CANNOT_RETRIEVE_SETTING 9021
|
|
||||||
// 9022 is not used
|
|
||||||
#define VE_RTP_KEEPALIVE_FAILED 9023
|
|
||||||
#define VE_SEND_DTMF_FAILED 9024
|
|
||||||
#define VE_CANNOT_RETRIEVE_CNAME 9025
|
|
||||||
// 9026 is not used
|
|
||||||
// 9027 is not used
|
|
||||||
#define VE_CANNOT_RETRIEVE_RTP_STAT 9028
|
|
||||||
#define VE_GQOS_ERROR 9029
|
|
||||||
#define VE_BINDING_SOCKET_TO_LOCAL_ADDRESS_FAILED 9030
|
|
||||||
#define VE_TOS_INVALID 9031
|
|
||||||
#define VE_TOS_ERROR 9032
|
|
||||||
#define VE_CANNOT_RETRIEVE_VALUE 9033
|
|
||||||
|
|
||||||
// Critical errors that stops voice functionality
|
|
||||||
#define VE_PLAY_UNDEFINED_SC_ERR 10001
|
|
||||||
#define VE_REC_CANNOT_OPEN_SC 10002
|
|
||||||
#define VE_SOCKET_ERROR 10003
|
|
||||||
#define VE_MMSYSERR_INVALHANDLE 10004
|
|
||||||
#define VE_MMSYSERR_NODRIVER 10005
|
|
||||||
#define VE_MMSYSERR_NOMEM 10006
|
|
||||||
#define VE_WAVERR_UNPREPARED 10007
|
|
||||||
#define VE_WAVERR_STILLPLAYING 10008
|
|
||||||
#define VE_UNDEFINED_SC_ERR 10009
|
|
||||||
#define VE_UNDEFINED_SC_REC_ERR 10010
|
|
||||||
#define VE_THREAD_ERROR 10011
|
|
||||||
#define VE_CANNOT_START_RECORDING 10012
|
|
||||||
#define VE_PLAY_CANNOT_OPEN_SC 10013
|
|
||||||
#define VE_NO_WINSOCK_2 10014
|
|
||||||
#define VE_SEND_SOCKET_ERROR 10015
|
|
||||||
#define VE_BAD_FILE 10016
|
|
||||||
#define VE_EXPIRED_COPY 10017
|
|
||||||
#define VE_NOT_AUTHORISED 10018
|
|
||||||
#define VE_RUNTIME_PLAY_ERROR 10019
|
|
||||||
#define VE_RUNTIME_REC_ERROR 10020
|
|
||||||
#define VE_BAD_ARGUMENT 10021
|
|
||||||
#define VE_LINUX_API_ONLY 10022
|
|
||||||
#define VE_REC_DEVICE_REMOVED 10023
|
|
||||||
#define VE_NO_MEMORY 10024
|
|
||||||
#define VE_BAD_HANDLE 10025
|
|
||||||
#define VE_RTP_RTCP_MODULE_ERROR 10026
|
|
||||||
#define VE_AUDIO_CODING_MODULE_ERROR 10027
|
|
||||||
#define VE_AUDIO_DEVICE_MODULE_ERROR 10028
|
|
||||||
#define VE_CANNOT_START_PLAYOUT 10029
|
|
||||||
#define VE_CANNOT_STOP_RECORDING 10030
|
|
||||||
#define VE_CANNOT_STOP_PLAYOUT 10031
|
|
||||||
#define VE_CANNOT_INIT_CHANNEL 10032
|
|
||||||
#define VE_RECV_SOCKET_ERROR 10033
|
|
||||||
#define VE_SOCKET_TRANSPORT_MODULE_ERROR 10034
|
|
||||||
#define VE_AUDIO_CONF_MIX_MODULE_ERROR 10035
|
|
||||||
|
|
||||||
// Warnings for other platforms (reserved range 8061-8080)
|
|
||||||
#define VE_IGNORED_FUNCTION 8061
|
|
||||||
|
|
||||||
#endif // VOICE_ENGINE_VOE_ERRORS_H_
|
|
||||||
@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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 "voice_engine/voe_base_impl.h"
|
|
||||||
|
|
||||||
#include "voice_engine/voice_engine_impl.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
|
||||||
|
|
||||||
VoEBase* VoEBase::GetInterface(VoiceEngine* voiceEngine) {
|
|
||||||
if (nullptr == voiceEngine) {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
|
|
||||||
s->AddRef();
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
VoEBaseImpl::VoEBaseImpl() {}
|
|
||||||
|
|
||||||
VoEBaseImpl::~VoEBaseImpl() {}
|
|
||||||
} // namespace webrtc
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef VOICE_ENGINE_VOE_BASE_IMPL_H_
|
|
||||||
#define VOICE_ENGINE_VOE_BASE_IMPL_H_
|
|
||||||
|
|
||||||
#include "voice_engine/include/voe_base.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
|
||||||
|
|
||||||
class VoEBaseImpl : public VoEBase {
|
|
||||||
public:
|
|
||||||
int Init(
|
|
||||||
AudioDeviceModule* audio_device,
|
|
||||||
AudioProcessing* audio_processing,
|
|
||||||
const rtc::scoped_refptr<AudioDecoderFactory>& decoder_factory) override {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
void Terminate() override {}
|
|
||||||
|
|
||||||
int CreateChannel(const ChannelConfig& config) override { return 1; }
|
|
||||||
int DeleteChannel(int channel) override { return 0; }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
VoEBaseImpl();
|
|
||||||
~VoEBaseImpl() override;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace webrtc
|
|
||||||
|
|
||||||
#endif // VOICE_ENGINE_VOE_BASE_IMPL_H_
|
|
||||||
@ -1,63 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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 "voice_engine/voice_engine_impl.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
|
||||||
|
|
||||||
// Counter to be ensure that we can add a correct ID in all static trace
|
|
||||||
// methods. It is not the nicest solution, especially not since we already
|
|
||||||
// have a counter in VoEBaseImpl. In other words, there is room for
|
|
||||||
// improvement here.
|
|
||||||
static int32_t gVoiceEngineInstanceCounter = 0;
|
|
||||||
|
|
||||||
VoiceEngine* GetVoiceEngine() {
|
|
||||||
VoiceEngineImpl* self = new VoiceEngineImpl();
|
|
||||||
if (self != NULL) {
|
|
||||||
self->AddRef(); // First reference. Released in VoiceEngine::Delete.
|
|
||||||
gVoiceEngineInstanceCounter++;
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
int VoiceEngineImpl::AddRef() {
|
|
||||||
return ++_ref_count;
|
|
||||||
}
|
|
||||||
|
|
||||||
// This implements the Release() method for all the inherited interfaces.
|
|
||||||
int VoiceEngineImpl::Release() {
|
|
||||||
int new_ref = --_ref_count;
|
|
||||||
assert(new_ref >= 0);
|
|
||||||
if (new_ref == 0) {
|
|
||||||
// Clear any pointers before starting destruction. Otherwise worker-
|
|
||||||
// threads will still have pointers to a partially destructed object.
|
|
||||||
// Example: AudioDeviceBuffer::RequestPlayoutData() can access a
|
|
||||||
// partially deconstructed |_ptrCbAudioTransport| during destruction
|
|
||||||
// if we don't call Terminate here.
|
|
||||||
Terminate();
|
|
||||||
delete this;
|
|
||||||
}
|
|
||||||
|
|
||||||
return new_ref;
|
|
||||||
}
|
|
||||||
|
|
||||||
VoiceEngine* VoiceEngine::Create() {
|
|
||||||
return GetVoiceEngine();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool VoiceEngine::Delete(VoiceEngine*& voiceEngine) {
|
|
||||||
if (voiceEngine == NULL)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
|
|
||||||
s->Release();
|
|
||||||
voiceEngine = NULL;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
} // namespace webrtc
|
|
||||||
@ -1,43 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef VOICE_ENGINE_VOICE_ENGINE_IMPL_H_
|
|
||||||
#define VOICE_ENGINE_VOICE_ENGINE_IMPL_H_
|
|
||||||
|
|
||||||
#include <memory>
|
|
||||||
|
|
||||||
#include "system_wrappers/include/atomic32.h"
|
|
||||||
#include "typedefs.h" // NOLINT(build/include)
|
|
||||||
#include "voice_engine/voe_base_impl.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
|
||||||
|
|
||||||
class VoiceEngineImpl : public VoiceEngine,
|
|
||||||
public VoEBaseImpl {
|
|
||||||
public:
|
|
||||||
VoiceEngineImpl()
|
|
||||||
: VoEBaseImpl(),
|
|
||||||
_ref_count(0) {}
|
|
||||||
~VoiceEngineImpl() override { assert(_ref_count.Value() == 0); }
|
|
||||||
|
|
||||||
int AddRef();
|
|
||||||
|
|
||||||
// This implements the Release() method for all the inherited interfaces.
|
|
||||||
int Release() override;
|
|
||||||
|
|
||||||
// This is *protected* so that FakeVoiceEngine can inherit from the class and
|
|
||||||
// manipulate the reference count. See: fake_voice_engine.h.
|
|
||||||
protected:
|
|
||||||
Atomic32 _ref_count;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace webrtc
|
|
||||||
|
|
||||||
#endif // VOICE_ENGINE_VOICE_ENGINE_IMPL_H_
|
|
||||||
Reference in New Issue
Block a user