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 |