
RTPStream, and NetEq as such. Also mark all other virtual overrides in the same files. This will make further changes to these classes safer by ensuring that the compile breaks if the base class changes and not all overrides are fixed. This also deletes ACMTest.cc, which existed solely to define ~ACMTest(), which was marked pure virtual in the header. (Pure virtual destructors still need a definition.) Because there is another pure virtual method in this class, the class is already abstract, so there's no benefit to making the desturctor pure. Making it non-pure allows removing the separate source file. BUG=none TEST=none R=henrik.lundin@webrtc.org, niklas.enbom@webrtc.org Review URL: https://webrtc-codereview.appspot.com/29389004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7144 4adac7df-926f-26a2-2b94-8c16560cd09d
67 lines
1.9 KiB
C++
67 lines
1.9 KiB
C++
/*
|
|
* 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 WEBRTC_MODULES_UTILITY_SOURCE_CODER_H_
|
|
#define WEBRTC_MODULES_UTILITY_SOURCE_CODER_H_
|
|
|
|
#include "webrtc/common_types.h"
|
|
#include "webrtc/modules/audio_coding/main/interface/audio_coding_module.h"
|
|
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
|
|
#include "webrtc/typedefs.h"
|
|
|
|
namespace webrtc {
|
|
class AudioFrame;
|
|
|
|
class AudioCoder : public AudioPacketizationCallback
|
|
{
|
|
public:
|
|
AudioCoder(uint32_t instanceID);
|
|
~AudioCoder();
|
|
|
|
int32_t SetEncodeCodec(
|
|
const CodecInst& codecInst,
|
|
ACMAMRPackingFormat amrFormat = AMRBandwidthEfficient);
|
|
|
|
int32_t SetDecodeCodec(
|
|
const CodecInst& codecInst,
|
|
ACMAMRPackingFormat amrFormat = AMRBandwidthEfficient);
|
|
|
|
int32_t Decode(AudioFrame& decodedAudio, uint32_t sampFreqHz,
|
|
const int8_t* incomingPayload, int32_t payloadLength);
|
|
|
|
int32_t PlayoutData(AudioFrame& decodedAudio, uint16_t& sampFreqHz);
|
|
|
|
int32_t Encode(const AudioFrame& audio, int8_t* encodedData,
|
|
uint32_t& encodedLengthInBytes);
|
|
|
|
protected:
|
|
virtual int32_t SendData(
|
|
FrameType frameType,
|
|
uint8_t payloadType,
|
|
uint32_t timeStamp,
|
|
const uint8_t* payloadData,
|
|
uint16_t payloadSize,
|
|
const RTPFragmentationHeader* fragmentation) OVERRIDE;
|
|
|
|
private:
|
|
scoped_ptr<AudioCodingModule> _acm;
|
|
|
|
CodecInst _receiveCodec;
|
|
|
|
uint32_t _encodeTimestamp;
|
|
int8_t* _encodedData;
|
|
uint32_t _encodedLengthInBytes;
|
|
|
|
uint32_t _decodeTimestamp;
|
|
};
|
|
} // namespace webrtc
|
|
|
|
#endif // WEBRTC_MODULES_UTILITY_SOURCE_CODER_H_
|