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
This commit is contained in:
@ -121,7 +121,6 @@ AudioDecoderProxy::AudioDecoderProxy()
|
||||
void AudioDecoderProxy::SetDecoder(AudioDecoder* decoder) {
|
||||
CriticalSectionScoped decoder_lock(decoder_lock_.get());
|
||||
decoder_ = decoder;
|
||||
channels_ = decoder->channels();
|
||||
CHECK_EQ(decoder_->Init(), 0);
|
||||
}
|
||||
|
||||
@ -205,6 +204,11 @@ CNG_dec_inst* AudioDecoderProxy::CngDecoderInstance() {
|
||||
return decoder_->CngDecoderInstance();
|
||||
}
|
||||
|
||||
size_t AudioDecoderProxy::Channels() const {
|
||||
CriticalSectionScoped decoder_lock(decoder_lock_.get());
|
||||
return decoder_->Channels();
|
||||
}
|
||||
|
||||
int16_t ACMGenericCodec::EncoderParams(WebRtcACMCodecParams* enc_params) {
|
||||
*enc_params = acm_codec_params_;
|
||||
return 0;
|
||||
|
||||
@ -73,6 +73,7 @@ class AudioDecoderProxy final : public AudioDecoder {
|
||||
size_t encoded_len) const override;
|
||||
bool PacketHasFec(const uint8_t* encoded, size_t encoded_len) const override;
|
||||
CNG_dec_inst* CngDecoderInstance() override;
|
||||
size_t Channels() const override;
|
||||
|
||||
private:
|
||||
rtc::scoped_ptr<CriticalSectionWrapper> decoder_lock_;
|
||||
|
||||
Reference in New Issue
Block a user