| Index: webrtc/modules/audio_coding/neteq/timestamp_scaler.cc
|
| diff --git a/webrtc/modules/audio_coding/neteq/timestamp_scaler.cc b/webrtc/modules/audio_coding/neteq/timestamp_scaler.cc
|
| index b228e017b2a30ffbcd70364d9d48d97e2b8d29f6..1da7566f3cc79b73fc70770449a6eb2f22c42709 100644
|
| --- a/webrtc/modules/audio_coding/neteq/timestamp_scaler.cc
|
| +++ b/webrtc/modules/audio_coding/neteq/timestamp_scaler.cc
|
| @@ -11,7 +11,6 @@
|
| #include "webrtc/modules/audio_coding/neteq/timestamp_scaler.h"
|
|
|
| #include "webrtc/modules/audio_coding/neteq/decoder_database.h"
|
| -#include "webrtc/modules/audio_coding/neteq/defines.h"
|
| #include "webrtc/system_wrappers/include/logging.h"
|
|
|
| namespace webrtc {
|
| @@ -43,32 +42,18 @@ uint32_t TimestampScaler::ToInternal(uint32_t external_timestamp,
|
| // Payload type is unknown. Do not scale.
|
| return external_timestamp;
|
| }
|
| - switch (info->codec_type) {
|
| - case NetEqDecoder::kDecoderG722:
|
| - case NetEqDecoder::kDecoderG722_2ch: {
|
| - // Use timestamp scaling with factor 2 (two output samples per RTP
|
| - // timestamp).
|
| - numerator_ = 2;
|
| - denominator_ = 1;
|
| - break;
|
| - }
|
| - case NetEqDecoder::kDecoderAVT:
|
| - case NetEqDecoder::kDecoderCNGnb:
|
| - case NetEqDecoder::kDecoderCNGwb:
|
| - case NetEqDecoder::kDecoderCNGswb32kHz:
|
| - case NetEqDecoder::kDecoderCNGswb48kHz: {
|
| - // Do not change the timestamp scaling settings for DTMF or CNG.
|
| - break;
|
| - }
|
| - default: {
|
| - // Do not use timestamp scaling for any other codec.
|
| - numerator_ = 1;
|
| - denominator_ = 1;
|
| - break;
|
| + if (!(info->IsComfortNoise() || info->IsDtmf())) {
|
| + // Do not change the timestamp scaling settings for DTMF or CNG.
|
| + numerator_ = info->SampleRateHz();
|
| + if (info->codec_type == NetEqDecoder::kDecoderArbitrary) {
|
| + // We have no format mapping for "arbitrary" external codecs, so we cannot
|
| + // support timestamp scaling of them.
|
| + denominator_ = numerator_;
|
| + } else {
|
| + denominator_ = info->GetFormat().clockrate_hz;
|
| }
|
| }
|
| -
|
| - if (!(numerator_ == 1 && denominator_ == 1)) {
|
| + if (numerator_ != denominator_) {
|
| // We have a scale factor != 1.
|
| if (!first_packet_received_) {
|
| external_ref_ = external_timestamp;
|
| @@ -88,7 +73,7 @@ uint32_t TimestampScaler::ToInternal(uint32_t external_timestamp,
|
|
|
|
|
| uint32_t TimestampScaler::ToExternal(uint32_t internal_timestamp) const {
|
| - if (!first_packet_received_ || (numerator_ == 1 && denominator_ == 1)) {
|
| + if (!first_packet_received_ || (numerator_ == denominator_)) {
|
| // Not initialized, or scale factor is 1.
|
| return internal_timestamp;
|
| } else {
|
|
|