| Index: webrtc/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.h
|
| diff --git a/webrtc/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.h b/webrtc/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.h
|
| index 6d3d102cbafa8a4ca38c63e41089e0a46d49048c..0d9b3667471d308d6ffa76b0b2bf2d3df4d66aab 100644
|
| --- a/webrtc/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.h
|
| +++ b/webrtc/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.h
|
| @@ -13,6 +13,7 @@
|
|
|
| #include "webrtc/api/audio_codecs/audio_encoder.h"
|
| #include "webrtc/api/audio_codecs/audio_format.h"
|
| +#include "webrtc/api/audio_codecs/ilbc/audio_encoder_ilbc_config.h"
|
| #include "webrtc/base/constructormagic.h"
|
| #include "webrtc/modules/audio_coding/codecs/ilbc/ilbc.h"
|
|
|
| @@ -20,21 +21,15 @@ namespace webrtc {
|
|
|
| struct CodecInst;
|
|
|
| -class AudioEncoderIlbc final : public AudioEncoder {
|
| +class AudioEncoderIlbcImpl final : public AudioEncoder {
|
| public:
|
| - struct Config {
|
| - bool IsOk() const;
|
| -
|
| - int payload_type = 102;
|
| - int frame_size_ms = 30; // Valid values are 20, 30, 40, and 60 ms.
|
| - // Note that frame size 40 ms produces encodings with two 20 ms frames in
|
| - // them, and frame size 60 ms consists of two 30 ms frames.
|
| - };
|
| + static rtc::Optional<AudioEncoderIlbcConfig> SdpToConfig(
|
| + const SdpAudioFormat& format);
|
|
|
| - explicit AudioEncoderIlbc(const Config& config);
|
| - explicit AudioEncoderIlbc(const CodecInst& codec_inst);
|
| - AudioEncoderIlbc(int payload_type, const SdpAudioFormat& format);
|
| - ~AudioEncoderIlbc() override;
|
| + AudioEncoderIlbcImpl(const AudioEncoderIlbcConfig& config, int payload_type);
|
| + explicit AudioEncoderIlbcImpl(const CodecInst& codec_inst);
|
| + AudioEncoderIlbcImpl(int payload_type, const SdpAudioFormat& format);
|
| + ~AudioEncoderIlbcImpl() override;
|
|
|
| static constexpr const char* GetPayloadName() { return "ILBC"; }
|
| static rtc::Optional<AudioCodecInfo> QueryAudioEncoder(
|
| @@ -53,14 +48,15 @@ class AudioEncoderIlbc final : public AudioEncoder {
|
| private:
|
| size_t RequiredOutputSizeBytes() const;
|
|
|
| - static const size_t kMaxSamplesPerPacket = 480;
|
| - const Config config_;
|
| + static constexpr size_t kMaxSamplesPerPacket = 480;
|
| + const int frame_size_ms_;
|
| + const int payload_type_;
|
| const size_t num_10ms_frames_per_packet_;
|
| size_t num_10ms_frames_buffered_;
|
| uint32_t first_timestamp_in_buffer_;
|
| int16_t input_buffer_[kMaxSamplesPerPacket];
|
| IlbcEncoderInstance* encoder_;
|
| - RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderIlbc);
|
| + RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderIlbcImpl);
|
| };
|
|
|
| } // namespace webrtc
|
|
|