
Reason for revert:
webrtc_perf_tests started failing on Win32 Release, Mac32 Release and Linux64 Release (all running large tests). These were not caught by try bots.
Original issue's description:
> Implement AudioReceiveStream::GetStats().
>
> R=tommi@webrtc.org
> TBR=hta@webrtc.org
> BUG=webrtc:4690
>
> Committed: a457752f4a
TBR=tommi@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4690
Review URL: https://codereview.webrtc.org/1411083006
Cr-Commit-Position: refs/heads/master@{#10340}
139 lines
4.2 KiB
C++
139 lines
4.2 KiB
C++
/*
|
|
* 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 WEBRTC_VOICE_ENGINE_VOICE_ENGINE_IMPL_H
|
|
#define WEBRTC_VOICE_ENGINE_VOICE_ENGINE_IMPL_H
|
|
|
|
#include "webrtc/engine_configurations.h"
|
|
#include "webrtc/system_wrappers/interface/atomic32.h"
|
|
#include "webrtc/voice_engine/voe_base_impl.h"
|
|
|
|
#ifdef WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API
|
|
#include "webrtc/voice_engine/voe_audio_processing_impl.h"
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_CODEC_API
|
|
#include "webrtc/voice_engine/voe_codec_impl.h"
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_DTMF_API
|
|
#include "webrtc/voice_engine/voe_dtmf_impl.h"
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API
|
|
#include "webrtc/voice_engine/voe_external_media_impl.h"
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_FILE_API
|
|
#include "webrtc/voice_engine/voe_file_impl.h"
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_HARDWARE_API
|
|
#include "webrtc/voice_engine/voe_hardware_impl.h"
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_NETEQ_STATS_API
|
|
#include "webrtc/voice_engine/voe_neteq_stats_impl.h"
|
|
#endif
|
|
#include "webrtc/voice_engine/voe_network_impl.h"
|
|
#ifdef WEBRTC_VOICE_ENGINE_RTP_RTCP_API
|
|
#include "webrtc/voice_engine/voe_rtp_rtcp_impl.h"
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API
|
|
#include "webrtc/voice_engine/voe_video_sync_impl.h"
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API
|
|
#include "webrtc/voice_engine/voe_volume_control_impl.h"
|
|
#endif
|
|
|
|
namespace webrtc {
|
|
|
|
class VoiceEngineImpl : public voe::SharedData, // Must be the first base class
|
|
public VoiceEngine,
|
|
#ifdef WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API
|
|
public VoEAudioProcessingImpl,
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_CODEC_API
|
|
public VoECodecImpl,
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_DTMF_API
|
|
public VoEDtmfImpl,
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API
|
|
public VoEExternalMediaImpl,
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_FILE_API
|
|
public VoEFileImpl,
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_HARDWARE_API
|
|
public VoEHardwareImpl,
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_NETEQ_STATS_API
|
|
public VoENetEqStatsImpl,
|
|
#endif
|
|
public VoENetworkImpl,
|
|
#ifdef WEBRTC_VOICE_ENGINE_RTP_RTCP_API
|
|
public VoERTP_RTCPImpl,
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API
|
|
public VoEVideoSyncImpl,
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API
|
|
public VoEVolumeControlImpl,
|
|
#endif
|
|
public VoEBaseImpl {
|
|
public:
|
|
VoiceEngineImpl(const Config* config, bool owns_config)
|
|
: SharedData(*config),
|
|
#ifdef WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API
|
|
VoEAudioProcessingImpl(this),
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_CODEC_API
|
|
VoECodecImpl(this),
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_DTMF_API
|
|
VoEDtmfImpl(this),
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API
|
|
VoEExternalMediaImpl(this),
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_FILE_API
|
|
VoEFileImpl(this),
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_HARDWARE_API
|
|
VoEHardwareImpl(this),
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_NETEQ_STATS_API
|
|
VoENetEqStatsImpl(this),
|
|
#endif
|
|
VoENetworkImpl(this),
|
|
#ifdef WEBRTC_VOICE_ENGINE_RTP_RTCP_API
|
|
VoERTP_RTCPImpl(this),
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API
|
|
VoEVideoSyncImpl(this),
|
|
#endif
|
|
#ifdef WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API
|
|
VoEVolumeControlImpl(this),
|
|
#endif
|
|
VoEBaseImpl(this),
|
|
_ref_count(0),
|
|
own_config_(owns_config ? config : NULL) {
|
|
}
|
|
~VoiceEngineImpl() override { assert(_ref_count.Value() == 0); }
|
|
|
|
int AddRef();
|
|
|
|
// This implements the Release() method for all the inherited interfaces.
|
|
int Release() override;
|
|
|
|
private:
|
|
Atomic32 _ref_count;
|
|
rtc::scoped_ptr<const Config> own_config_;
|
|
};
|
|
|
|
} // namespace webrtc
|
|
|
|
#endif // WEBRTC_VOICE_ENGINE_VOICE_ENGINE_IMPL_H
|