Make AudioDecoder stateless
The channels_ member varable is removed from the base class, and the
associated accessor function is changed to Channels() which is a pure
virtual function.
R=jmarusic@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/43779004
Cr-Commit-Position: refs/heads/master@{#8775}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8775 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/audio_coding/neteq/neteq_impl.cc b/webrtc/modules/audio_coding/neteq/neteq_impl.cc
index fb9656b..32c6629 100644
--- a/webrtc/modules/audio_coding/neteq/neteq_impl.cc
+++ b/webrtc/modules/audio_coding/neteq/neteq_impl.cc
@@ -644,8 +644,8 @@
decoder_database_->GetDecoderInfo(payload_type);
assert(decoder_info);
if (decoder_info->fs_hz != fs_hz_ ||
- decoder->channels() != algorithm_buffer_->Channels())
- SetSampleRateAndChannels(decoder_info->fs_hz, decoder->channels());
+ decoder->Channels() != algorithm_buffer_->Channels())
+ SetSampleRateAndChannels(decoder_info->fs_hz, decoder->Channels());
}
// TODO(hlundin): Move this code to DelayManager class.
@@ -1153,9 +1153,9 @@
// If sampling rate or number of channels has changed, we need to make
// a reset.
if (decoder_info->fs_hz != fs_hz_ ||
- decoder->channels() != algorithm_buffer_->Channels()) {
+ decoder->Channels() != algorithm_buffer_->Channels()) {
// TODO(tlegrand): Add unittest to cover this event.
- SetSampleRateAndChannels(decoder_info->fs_hz, decoder->channels());
+ SetSampleRateAndChannels(decoder_info->fs_hz, decoder->Channels());
}
sync_buffer_->set_end_timestamp(timestamp_);
playout_timestamp_ = timestamp_;
@@ -1219,7 +1219,7 @@
// since in this case, the we will increment the CNGplayedTS counter.
// Increase with number of samples per channel.
assert(*decoded_length == 0 ||
- (decoder && decoder->channels() == sync_buffer_->Channels()));
+ (decoder && decoder->Channels() == sync_buffer_->Channels()));
sync_buffer_->IncreaseEndTimestamp(
*decoded_length / static_cast<int>(sync_buffer_->Channels()));
}
@@ -1239,8 +1239,8 @@
assert(decoder); // At this point, we must have a decoder object.
// The number of channels in the |sync_buffer_| should be the same as the
// number decoder channels.
- assert(sync_buffer_->Channels() == decoder->channels());
- assert(decoded_buffer_length_ >= kMaxFrameSize * decoder->channels());
+ assert(sync_buffer_->Channels() == decoder->Channels());
+ assert(decoded_buffer_length_ >= kMaxFrameSize * decoder->Channels());
assert(*operation == kNormal || *operation == kAccelerate ||
*operation == kMerge || *operation == kPreemptiveExpand);
packet_list->pop_front();
@@ -1254,8 +1254,9 @@
", pt=" << static_cast<int>(packet->header.payloadType) <<
", ssrc=" << packet->header.ssrc <<
", len=" << packet->payload_length;
- memset(&decoded_buffer_[*decoded_length], 0, decoder_frame_length_ *
- decoder->channels() * sizeof(decoded_buffer_[0]));
+ memset(&decoded_buffer_[*decoded_length], 0,
+ decoder_frame_length_ * decoder->Channels() *
+ sizeof(decoded_buffer_[0]));
decode_length = decoder_frame_length_;
} else if (!packet->primary) {
// This is a redundant payload; call the special decoder method.
@@ -1288,11 +1289,11 @@
if (decode_length > 0) {
*decoded_length += decode_length;
// Update |decoder_frame_length_| with number of samples per channel.
- decoder_frame_length_ = decode_length /
- static_cast<int>(decoder->channels());
- LOG(LS_VERBOSE) << "Decoded " << decode_length << " samples (" <<
- decoder->channels() << " channel(s) -> " << decoder_frame_length_ <<
- " samples per channel)";
+ decoder_frame_length_ =
+ decode_length / static_cast<int>(decoder->Channels());
+ LOG(LS_VERBOSE) << "Decoded " << decode_length << " samples ("
+ << decoder->Channels() << " channel(s) -> "
+ << decoder_frame_length_ << " samples per channel)";
} else if (decode_length < 0) {
// Error.
LOG_FERR2(LS_WARNING, Decode, decode_length, payload_length);