| Index: webrtc/api/audio_codecs/g722/audio_encoder_g722.cc
 | 
| diff --git a/webrtc/api/audio_codecs/g722/audio_encoder_g722.cc b/webrtc/api/audio_codecs/g722/audio_encoder_g722.cc
 | 
| index b3e406304d123c8f03e29c96499ab3e91bec69a8..5828f4a26eb2d0cede87479c6d3431fa53191a82 100644
 | 
| --- a/webrtc/api/audio_codecs/g722/audio_encoder_g722.cc
 | 
| +++ b/webrtc/api/audio_codecs/g722/audio_encoder_g722.cc
 | 
| @@ -13,15 +13,34 @@
 | 
|  #include <memory>
 | 
|  #include <vector>
 | 
|  
 | 
| +#include "webrtc/common_types.h"
 | 
|  #include "webrtc/modules/audio_coding/codecs/g722/audio_encoder_g722.h"
 | 
|  #include "webrtc/rtc_base/ptr_util.h"
 | 
|  #include "webrtc/rtc_base/safe_conversions.h"
 | 
| +#include "webrtc/rtc_base/safe_minmax.h"
 | 
| +#include "webrtc/rtc_base/string_to_number.h"
 | 
|  
 | 
|  namespace webrtc {
 | 
|  
 | 
|  rtc::Optional<AudioEncoderG722Config> AudioEncoderG722::SdpToConfig(
 | 
|      const SdpAudioFormat& format) {
 | 
| -  return AudioEncoderG722Impl::SdpToConfig(format);
 | 
| +  if (STR_CASE_CMP(format.name.c_str(), "g722") != 0 ||
 | 
| +      format.clockrate_hz != 8000) {
 | 
| +    return rtc::Optional<AudioEncoderG722Config>();
 | 
| +  }
 | 
| +
 | 
| +  AudioEncoderG722Config config;
 | 
| +  config.num_channels = rtc::checked_cast<int>(format.num_channels);
 | 
| +  auto ptime_iter = format.parameters.find("ptime");
 | 
| +  if (ptime_iter != format.parameters.end()) {
 | 
| +    auto ptime = rtc::StringToNumber<int>(ptime_iter->second);
 | 
| +    if (ptime && *ptime > 0) {
 | 
| +      const int whole_packets = *ptime / 10;
 | 
| +      config.frame_size_ms = rtc::SafeClamp<int>(whole_packets * 10, 10, 60);
 | 
| +    }
 | 
| +  }
 | 
| +  return config.IsOk() ? rtc::Optional<AudioEncoderG722Config>(config)
 | 
| +                       : rtc::Optional<AudioEncoderG722Config>();
 | 
|  }
 | 
|  
 | 
|  void AudioEncoderG722::AppendSupportedEncoders(
 | 
| 
 |