| Index: webrtc/modules/audio_coding/neteq/decoder_database.h
|
| diff --git a/webrtc/modules/audio_coding/neteq/decoder_database.h b/webrtc/modules/audio_coding/neteq/decoder_database.h
|
| index 296d059f733d91bd231c7f41854722ffa35bdf7b..36248562bc483332917fc9f1ad4b0603f56ec6be 100644
|
| --- a/webrtc/modules/audio_coding/neteq/decoder_database.h
|
| +++ b/webrtc/modules/audio_coding/neteq/decoder_database.h
|
| @@ -41,13 +41,11 @@ class DecoderDatabase {
|
| // Class that stores decoder info in the database.
|
| class DecoderInfo {
|
| public:
|
| - DecoderInfo(
|
| - NetEqDecoder ct,
|
| - const std::string& nm,
|
| - AudioDecoderFactory* factory = nullptr);
|
| - DecoderInfo(NetEqDecoder ct,
|
| - const std::string& nm,
|
| - AudioDecoder* ext_dec);
|
| + explicit DecoderInfo(const SdpAudioFormat& audio_format,
|
| + AudioDecoderFactory* factory = nullptr);
|
| + explicit DecoderInfo(NetEqDecoder ct,
|
| + AudioDecoderFactory* factory = nullptr);
|
| + DecoderInfo(const SdpAudioFormat& audio_format, AudioDecoder* ext_dec);
|
| DecoderInfo(DecoderInfo&&);
|
| ~DecoderInfo();
|
|
|
| @@ -64,25 +62,30 @@ class DecoderDatabase {
|
| return decoder ? decoder->SampleRateHz() : cng_decoder_->sample_rate_hz;
|
| }
|
|
|
| - const SdpAudioFormat* GetFormat() const {
|
| - return audio_format_ ? &*audio_format_ : nullptr;
|
| - }
|
| + const SdpAudioFormat& GetFormat() const { return audio_format_; }
|
|
|
| - // Returns true if |codec_type| is comfort noise.
|
| + // Returns true if the decoder's format is comfort noise.
|
| bool IsComfortNoise() const;
|
|
|
| - // Returns true if |codec_type| is DTMF.
|
| + // Returns true if the decoder's format is DTMF.
|
| bool IsDtmf() const;
|
|
|
| - // Returns true if |codec_type| is RED.
|
| + // Returns true if the decoder's format is RED.
|
| bool IsRed() const;
|
|
|
| - const NetEqDecoder codec_type;
|
| - const std::string name;
|
| + // Returns true if the decoder's format is named |name|.
|
| + bool IsType(const char* name) const;
|
| + // Returns true if the decoder's format is named |name|.
|
| + bool IsType(const std::string& name) const;
|
| +
|
| + // TODO(ossu): |name| is kept here while we retain the old external decoder
|
| + // interface. Remove this once using an AudioDecoderFactory has
|
| + // supplanted the old functionality.
|
| + std::string name;
|
|
|
| private:
|
| - const rtc::Optional<SdpAudioFormat> audio_format_;
|
| - AudioDecoderFactory* factory_;
|
| + const SdpAudioFormat audio_format_;
|
| + AudioDecoderFactory* const factory_;
|
| mutable std::unique_ptr<AudioDecoder> decoder_;
|
|
|
| // Set iff this is an external decoder.
|
| @@ -90,7 +93,7 @@ class DecoderDatabase {
|
|
|
| // Set iff this is a comfort noise decoder.
|
| struct CngDecoder {
|
| - static rtc::Optional<CngDecoder> Create(NetEqDecoder ct);
|
| + static rtc::Optional<CngDecoder> Create(const SdpAudioFormat& format);
|
| int sample_rate_hz;
|
| };
|
| const rtc::Optional<CngDecoder> cng_decoder_;
|
| @@ -142,12 +145,6 @@ class DecoderDatabase {
|
| // no decoder is registered with that |rtp_payload_type|, NULL is returned.
|
| virtual const DecoderInfo* GetDecoderInfo(uint8_t rtp_payload_type) const;
|
|
|
| - // Returns one RTP payload type associated with |codec_type|, or
|
| - // kDecoderNotFound if no entry exists for that value. Note that one
|
| - // |codec_type| may be registered with several RTP payload types, and the
|
| - // method may return any of them.
|
| - virtual uint8_t GetRtpPayloadType(NetEqDecoder codec_type) const;
|
| -
|
| // Sets the active decoder to be |rtp_payload_type|. If this call results in a
|
| // change of active decoder, |new_decoder| is set to true. The previous active
|
| // decoder's AudioDecoder object is deleted.
|
| @@ -174,8 +171,11 @@ class DecoderDatabase {
|
| // object does not exist for that decoder, the object is created.
|
| AudioDecoder* GetDecoder(uint8_t rtp_payload_type) const;
|
|
|
| - // Returns true if |rtp_payload_type| is registered as a |codec_type|.
|
| - bool IsType(uint8_t rtp_payload_type, NetEqDecoder codec_type) const;
|
| + // Returns if |rtp_payload_type| is registered with a format named |name|.
|
| + bool IsType(uint8_t rtp_payload_type, const char* name) const;
|
| +
|
| + // Returns if |rtp_payload_type| is registered with a format named |name|.
|
| + bool IsType(uint8_t rtp_payload_type, const std::string& name) const;
|
|
|
| // Returns true if |rtp_payload_type| is registered as comfort noise.
|
| bool IsComfortNoise(uint8_t rtp_payload_type) const;
|
|
|