Mark all virtual overrides in the hierarchy of AudioPacketizationCallback,
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
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_receiver_unittest.cc b/webrtc/modules/audio_coding/main/acm2/acm_receiver_unittest.cc
index b2ff3bc..94d51b7 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_receiver_unittest.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_receiver_unittest.cc
@@ -54,7 +54,7 @@
~AcmReceiverTest() {}
- void SetUp() {
+ virtual void SetUp() OVERRIDE {
ASSERT_TRUE(receiver_.get() != NULL);
ASSERT_TRUE(acm_.get() != NULL);
for (int n = 0; n < ACMCodecDB::kNumCodecs; n++) {
@@ -75,7 +75,7 @@
rtp_header_.type.Audio.isCNG = false;
}
- void TearDown() {
+ virtual void TearDown() OVERRIDE {
}
void InsertOnePacketOfSilence(int codec_id) {
@@ -125,7 +125,7 @@
uint32_t timestamp,
const uint8_t* payload_data,
uint16_t payload_len_bytes,
- const RTPFragmentationHeader* fragmentation) {
+ const RTPFragmentationHeader* fragmentation) OVERRIDE {
if (frame_type == kFrameEmpty)
return 0;
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_send_test.h b/webrtc/modules/audio_coding/main/acm2/acm_send_test.h
index 5e9bd97..db5d9e5 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_send_test.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_send_test.h
@@ -42,7 +42,7 @@
// Returns the next encoded packet. Returns NULL if the test duration was
// exceeded. Ownership of the packet is handed over to the caller.
// Inherited from PacketSource.
- Packet* NextPacket();
+ virtual Packet* NextPacket() OVERRIDE;
// Inherited from AudioPacketizationCallback.
virtual int32_t SendData(
diff --git a/webrtc/modules/audio_coding/main/acm2/audio_coding_module_unittest.cc b/webrtc/modules/audio_coding/main/acm2/audio_coding_module_unittest.cc
index 621f183..009218d 100644
--- a/webrtc/modules/audio_coding/main/acm2/audio_coding_module_unittest.cc
+++ b/webrtc/modules/audio_coding/main/acm2/audio_coding_module_unittest.cc
@@ -124,9 +124,9 @@
~AudioCodingModuleTest() {}
- void TearDown() {}
+ void TearDown() OVERRIDE {}
- void SetUp() {
+ void SetUp() OVERRIDE {
acm_.reset(AudioCodingModule::Create(id_, clock_));
RegisterCodec();
@@ -309,7 +309,7 @@
clock_ = fake_clock_.get();
}
- void SetUp() {
+ virtual void SetUp() OVERRIDE {
AudioCodingModuleTest::SetUp();
StartThreads();
}
@@ -321,7 +321,7 @@
ASSERT_TRUE(pull_audio_thread_->Start(thread_id));
}
- void TearDown() {
+ virtual void TearDown() OVERRIDE {
AudioCodingModuleTest::TearDown();
pull_audio_thread_->Stop();
send_thread_->Stop();
@@ -437,7 +437,7 @@
~AcmIsacMtTest() {}
- void SetUp() {
+ virtual void SetUp() OVERRIDE {
AudioCodingModuleTest::SetUp();
// Set up input audio source to read from specified file, loop after 5
@@ -460,7 +460,7 @@
StartThreads();
}
- virtual void RegisterCodec() {
+ virtual void RegisterCodec() OVERRIDE {
COMPILE_ASSERT(kSampleRateHz == 16000, test_designed_for_isac_16khz);
AudioCodingModule::Codec("ISAC", &codec_, kSampleRateHz, 1);
codec_.pltype = kPayloadType;
@@ -471,7 +471,7 @@
ASSERT_EQ(0, acm_->RegisterSendCodec(codec_));
}
- void InsertPacket() {
+ virtual void InsertPacket() OVERRIDE {
int num_calls = packet_cb_.num_calls(); // Store locally for thread safety.
if (num_calls > last_packet_number_) {
// Get the new payload out from the callback handler.
@@ -490,16 +490,16 @@
&last_payload_vec_[0], last_payload_vec_.size(), rtp_header_));
}
- void InsertAudio() {
+ virtual void InsertAudio() OVERRIDE {
memcpy(input_frame_.data_, audio_loop_.GetNextBlock(), kNumSamples10ms);
AudioCodingModuleTest::InsertAudio();
}
- void Encode() { ASSERT_GE(acm_->Process(), 0); }
+ virtual void Encode() OVERRIDE { ASSERT_GE(acm_->Process(), 0); }
// This method is the same as AudioCodingModuleMtTest::TestDone(), but here
// it is using the constants defined in this class (i.e., shorter test run).
- virtual bool TestDone() {
+ virtual bool TestDone() OVERRIDE {
if (packet_cb_.num_calls() > kNumPackets) {
CriticalSectionScoped lock(crit_sect_.get());
if (pull_audio_count_ > kNumPullCalls) {
@@ -694,7 +694,7 @@
// Returns a pointer to the next packet. Returns NULL if the source is
// depleted (i.e., the test duration is exceeded), or if an error occurred.
// Inherited from test::PacketSource.
- test::Packet* NextPacket() OVERRIDE {
+ virtual test::Packet* NextPacket() OVERRIDE {
// Get the next packet from AcmSendTest. Ownership of |packet| is
// transferred to this method.
test::Packet* packet = send_test_->NextPacket();
diff --git a/webrtc/modules/audio_coding/main/test/ACMTest.cc b/webrtc/modules/audio_coding/main/test/ACMTest.cc
deleted file mode 100644
index dbbdade..0000000
--- a/webrtc/modules/audio_coding/main/test/ACMTest.cc
+++ /dev/null
@@ -1,13 +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.
- */
-
-#include "ACMTest.h"
-
-ACMTest::~ACMTest() {}
diff --git a/webrtc/modules/audio_coding/main/test/ACMTest.h b/webrtc/modules/audio_coding/main/test/ACMTest.h
index 767add1..f73961f 100644
--- a/webrtc/modules/audio_coding/main/test/ACMTest.h
+++ b/webrtc/modules/audio_coding/main/test/ACMTest.h
@@ -14,7 +14,7 @@
class ACMTest {
public:
ACMTest() {}
- virtual ~ACMTest() = 0;
+ virtual ~ACMTest() {}
virtual void Perform() = 0;
};
diff --git a/webrtc/modules/audio_coding/main/test/Channel.h b/webrtc/modules/audio_coding/main/test/Channel.h
index 7611c9d..cdb99c0 100644
--- a/webrtc/modules/audio_coding/main/test/Channel.h
+++ b/webrtc/modules/audio_coding/main/test/Channel.h
@@ -50,10 +50,11 @@
Channel(int16_t chID = -1);
~Channel();
- int32_t SendData(const FrameType frameType, const uint8_t payloadType,
- const uint32_t timeStamp, const uint8_t* payloadData,
- const uint16_t payloadSize,
- const RTPFragmentationHeader* fragmentation);
+ virtual int32_t SendData(
+ const FrameType frameType, const uint8_t payloadType,
+ const uint32_t timeStamp, const uint8_t* payloadData,
+ const uint16_t payloadSize,
+ const RTPFragmentationHeader* fragmentation) OVERRIDE;
void RegisterReceiverACM(AudioCodingModule *acm);
diff --git a/webrtc/modules/audio_coding/main/test/EncodeDecodeTest.h b/webrtc/modules/audio_coding/main/test/EncodeDecodeTest.h
index dbe3f0cb..693c96e 100644
--- a/webrtc/modules/audio_coding/main/test/EncodeDecodeTest.h
+++ b/webrtc/modules/audio_coding/main/test/EncodeDecodeTest.h
@@ -29,10 +29,11 @@
public:
TestPacketization(RTPStream *rtpStream, uint16_t frequency);
~TestPacketization();
- virtual int32_t SendData(const FrameType frameType, const uint8_t payloadType,
- const uint32_t timeStamp, const uint8_t* payloadData,
- const uint16_t payloadSize,
- const RTPFragmentationHeader* fragmentation);
+ virtual int32_t SendData(
+ const FrameType frameType, const uint8_t payloadType,
+ const uint32_t timeStamp, const uint8_t* payloadData,
+ const uint16_t payloadSize,
+ const RTPFragmentationHeader* fragmentation) OVERRIDE;
private:
static void MakeRTPheader(uint8_t* rtpHeader, uint8_t payloadType,
@@ -100,7 +101,7 @@
public:
EncodeDecodeTest();
explicit EncodeDecodeTest(int testMode);
- virtual void Perform();
+ virtual void Perform() OVERRIDE;
uint16_t _playoutFreq;
uint8_t _testMode;
diff --git a/webrtc/modules/audio_coding/main/test/RTPFile.h b/webrtc/modules/audio_coding/main/test/RTPFile.h
index 9b6d5fc..460553b 100644
--- a/webrtc/modules/audio_coding/main/test/RTPFile.h
+++ b/webrtc/modules/audio_coding/main/test/RTPFile.h
@@ -65,14 +65,14 @@
~RTPBuffer();
- void Write(const uint8_t payloadType, const uint32_t timeStamp,
- const int16_t seqNo, const uint8_t* payloadData,
- const uint16_t payloadSize, uint32_t frequency);
+ virtual void Write(const uint8_t payloadType, const uint32_t timeStamp,
+ const int16_t seqNo, const uint8_t* payloadData,
+ const uint16_t payloadSize, uint32_t frequency) OVERRIDE;
- uint16_t Read(WebRtcRTPHeader* rtpInfo, uint8_t* payloadData,
- uint16_t payloadSize, uint32_t* offset);
+ virtual uint16_t Read(WebRtcRTPHeader* rtpInfo, uint8_t* payloadData,
+ uint16_t payloadSize, uint32_t* offset) OVERRIDE;
- virtual bool EndOfFile() const;
+ virtual bool EndOfFile() const OVERRIDE;
private:
RWLockWrapper* _queueRWLock;
@@ -97,14 +97,14 @@
void ReadHeader();
- void Write(const uint8_t payloadType, const uint32_t timeStamp,
- const int16_t seqNo, const uint8_t* payloadData,
- const uint16_t payloadSize, uint32_t frequency);
+ virtual void Write(const uint8_t payloadType, const uint32_t timeStamp,
+ const int16_t seqNo, const uint8_t* payloadData,
+ const uint16_t payloadSize, uint32_t frequency) OVERRIDE;
- uint16_t Read(WebRtcRTPHeader* rtpInfo, uint8_t* payloadData,
- uint16_t payloadSize, uint32_t* offset);
+ virtual uint16_t Read(WebRtcRTPHeader* rtpInfo, uint8_t* payloadData,
+ uint16_t payloadSize, uint32_t* offset) OVERRIDE;
- bool EndOfFile() const {
+ virtual bool EndOfFile() const OVERRIDE {
return _rtpEOF;
}
diff --git a/webrtc/modules/audio_coding/main/test/TestAllCodecs.h b/webrtc/modules/audio_coding/main/test/TestAllCodecs.h
index 73eac47..2fbf9ef 100644
--- a/webrtc/modules/audio_coding/main/test/TestAllCodecs.h
+++ b/webrtc/modules/audio_coding/main/test/TestAllCodecs.h
@@ -28,10 +28,11 @@
void RegisterReceiverACM(AudioCodingModule* acm);
- int32_t SendData(FrameType frame_type, uint8_t payload_type,
- uint32_t timestamp, const uint8_t* payload_data,
- uint16_t payload_size,
- const RTPFragmentationHeader* fragmentation);
+ virtual int32_t SendData(
+ FrameType frame_type, uint8_t payload_type,
+ uint32_t timestamp, const uint8_t* payload_data,
+ uint16_t payload_size,
+ const RTPFragmentationHeader* fragmentation) OVERRIDE;
uint16_t payload_size();
uint32_t timestamp_diff();
@@ -52,7 +53,7 @@
explicit TestAllCodecs(int test_mode);
~TestAllCodecs();
- void Perform();
+ virtual void Perform() OVERRIDE;
private:
// The default value of '-1' indicates that the registration is based only on
diff --git a/webrtc/modules/audio_coding/main/test/TestStereo.h b/webrtc/modules/audio_coding/main/test/TestStereo.h
index 9cb70e9..8aefa7f 100644
--- a/webrtc/modules/audio_coding/main/test/TestStereo.h
+++ b/webrtc/modules/audio_coding/main/test/TestStereo.h
@@ -33,12 +33,13 @@
void RegisterReceiverACM(AudioCodingModule* acm);
- virtual int32_t SendData(const FrameType frame_type,
- const uint8_t payload_type,
- const uint32_t timestamp,
- const uint8_t* payload_data,
- const uint16_t payload_size,
- const RTPFragmentationHeader* fragmentation);
+ virtual int32_t SendData(
+ const FrameType frame_type,
+ const uint8_t payload_type,
+ const uint32_t timestamp,
+ const uint8_t* payload_data,
+ const uint16_t payload_size,
+ const RTPFragmentationHeader* fragmentation) OVERRIDE;
uint16_t payload_size();
uint32_t timestamp_diff();
@@ -63,7 +64,7 @@
explicit TestStereo(int test_mode);
~TestStereo();
- void Perform();
+ virtual void Perform() OVERRIDE;
private:
// The default value of '-1' indicates that the registration is based only on
// codec name and a sampling frequncy matching is not required. This is useful
diff --git a/webrtc/modules/audio_coding/main/test/dual_stream_unittest.cc b/webrtc/modules/audio_coding/main/test/dual_stream_unittest.cc
index ecd1e79..7cd2466 100644
--- a/webrtc/modules/audio_coding/main/test/dual_stream_unittest.cc
+++ b/webrtc/modules/audio_coding/main/test/dual_stream_unittest.cc
@@ -35,10 +35,11 @@
void ApiTest();
- int32_t SendData(FrameType frameType, uint8_t payload_type,
- uint32_t timestamp, const uint8_t* payload_data,
- uint16_t payload_size,
- const RTPFragmentationHeader* fragmentation);
+ virtual int32_t SendData(
+ FrameType frameType, uint8_t payload_type,
+ uint32_t timestamp, const uint8_t* payload_data,
+ uint16_t payload_size,
+ const RTPFragmentationHeader* fragmentation) OVERRIDE;
void Perform(bool start_in_sync, int num_channels_input);
diff --git a/webrtc/modules/audio_coding/neteq/neteq_impl.h b/webrtc/modules/audio_coding/neteq/neteq_impl.h
index bc7734b..d3dff18 100644
--- a/webrtc/modules/audio_coding/neteq/neteq_impl.h
+++ b/webrtc/modules/audio_coding/neteq/neteq_impl.h
@@ -82,7 +82,7 @@
virtual int InsertPacket(const WebRtcRTPHeader& rtp_header,
const uint8_t* payload,
int length_bytes,
- uint32_t receive_timestamp);
+ uint32_t receive_timestamp) OVERRIDE;
// Inserts a sync-packet into packet queue. Sync-packets are decoded to
// silence and are intended to keep AV-sync intact in an event of long packet
@@ -94,7 +94,7 @@
// can be implied by inserting a sync-packet.
// Returns kOk on success, kFail on failure.
virtual int InsertSyncPacket(const WebRtcRTPHeader& rtp_header,
- uint32_t receive_timestamp);
+ uint32_t receive_timestamp) OVERRIDE;
// Instructs NetEq to deliver 10 ms of audio data. The data is written to
// |output_audio|, which can hold (at least) |max_length| elements.
@@ -106,12 +106,12 @@
// Returns kOK on success, or kFail in case of an error.
virtual int GetAudio(size_t max_length, int16_t* output_audio,
int* samples_per_channel, int* num_channels,
- NetEqOutputType* type);
+ NetEqOutputType* type) OVERRIDE;
// Associates |rtp_payload_type| with |codec| and stores the information in
// the codec database. Returns kOK on success, kFail on failure.
virtual int RegisterPayloadType(enum NetEqDecoder codec,
- uint8_t rtp_payload_type);
+ uint8_t rtp_payload_type) OVERRIDE;
// Provides an externally created decoder object |decoder| to insert in the
// decoder database. The decoder implements a decoder of type |codec| and
@@ -119,80 +119,81 @@
// failure.
virtual int RegisterExternalDecoder(AudioDecoder* decoder,
enum NetEqDecoder codec,
- uint8_t rtp_payload_type);
+ uint8_t rtp_payload_type) OVERRIDE;
// Removes |rtp_payload_type| from the codec database. Returns 0 on success,
// -1 on failure.
- virtual int RemovePayloadType(uint8_t rtp_payload_type);
+ virtual int RemovePayloadType(uint8_t rtp_payload_type) OVERRIDE;
- virtual bool SetMinimumDelay(int delay_ms);
+ virtual bool SetMinimumDelay(int delay_ms) OVERRIDE;
- virtual bool SetMaximumDelay(int delay_ms);
+ virtual bool SetMaximumDelay(int delay_ms) OVERRIDE;
- virtual int LeastRequiredDelayMs() const;
+ virtual int LeastRequiredDelayMs() const OVERRIDE;
- virtual int SetTargetDelay() { return kNotImplemented; }
+ virtual int SetTargetDelay() OVERRIDE { return kNotImplemented; }
- virtual int TargetDelay() { return kNotImplemented; }
+ virtual int TargetDelay() OVERRIDE { return kNotImplemented; }
- virtual int CurrentDelay() { return kNotImplemented; }
+ virtual int CurrentDelay() OVERRIDE { return kNotImplemented; }
// Sets the playout mode to |mode|.
- virtual void SetPlayoutMode(NetEqPlayoutMode mode);
+ virtual void SetPlayoutMode(NetEqPlayoutMode mode) OVERRIDE;
// Returns the current playout mode.
- virtual NetEqPlayoutMode PlayoutMode() const;
+ virtual NetEqPlayoutMode PlayoutMode() const OVERRIDE;
// Writes the current network statistics to |stats|. The statistics are reset
// after the call.
- virtual int NetworkStatistics(NetEqNetworkStatistics* stats);
+ virtual int NetworkStatistics(NetEqNetworkStatistics* stats) OVERRIDE;
// Writes the last packet waiting times (in ms) to |waiting_times|. The number
// of values written is no more than 100, but may be smaller if the interface
// is polled again before 100 packets has arrived.
- virtual void WaitingTimes(std::vector<int>* waiting_times);
+ virtual void WaitingTimes(std::vector<int>* waiting_times) OVERRIDE;
// Writes the current RTCP statistics to |stats|. The statistics are reset
// and a new report period is started with the call.
- virtual void GetRtcpStatistics(RtcpStatistics* stats);
+ virtual void GetRtcpStatistics(RtcpStatistics* stats) OVERRIDE;
// Same as RtcpStatistics(), but does not reset anything.
- virtual void GetRtcpStatisticsNoReset(RtcpStatistics* stats);
+ virtual void GetRtcpStatisticsNoReset(RtcpStatistics* stats) OVERRIDE;
// Enables post-decode VAD. When enabled, GetAudio() will return
// kOutputVADPassive when the signal contains no speech.
- virtual void EnableVad();
+ virtual void EnableVad() OVERRIDE;
// Disables post-decode VAD.
- virtual void DisableVad();
+ virtual void DisableVad() OVERRIDE;
- virtual bool GetPlayoutTimestamp(uint32_t* timestamp);
+ virtual bool GetPlayoutTimestamp(uint32_t* timestamp) OVERRIDE;
- virtual int SetTargetNumberOfChannels() { return kNotImplemented; }
+ virtual int SetTargetNumberOfChannels() OVERRIDE { return kNotImplemented; }
- virtual int SetTargetSampleRate() { return kNotImplemented; }
+ virtual int SetTargetSampleRate() OVERRIDE { return kNotImplemented; }
// Returns the error code for the last occurred error. If no error has
// occurred, 0 is returned.
- virtual int LastError();
+ virtual int LastError() OVERRIDE;
// Returns the error code last returned by a decoder (audio or comfort noise).
// When LastError() returns kDecoderErrorCode or kComfortNoiseErrorCode, check
// this method to get the decoder's error code.
- virtual int LastDecoderError();
+ virtual int LastDecoderError() OVERRIDE;
// Flushes both the packet buffer and the sync buffer.
- virtual void FlushBuffers();
+ virtual void FlushBuffers() OVERRIDE;
virtual void PacketBufferStatistics(int* current_num_packets,
- int* max_num_packets) const;
+ int* max_num_packets) const OVERRIDE;
// Get sequence number and timestamp of the latest RTP.
// This method is to facilitate NACK.
- virtual int DecodedRtpInfo(int* sequence_number, uint32_t* timestamp) const;
+ virtual int DecodedRtpInfo(int* sequence_number,
+ uint32_t* timestamp) const OVERRIDE;
// This accessor method is only intended for testing purposes.
- virtual const SyncBuffer* sync_buffer_for_test() const;
+ const SyncBuffer* sync_buffer_for_test() const;
protected:
static const int kOutputSizeMs = 10;