Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / webrtc / modules / audio_coding / main / acm2 / acm_opus.cc
index 961fda1..8991dae 100644 (file)
@@ -15,8 +15,6 @@
 #include "webrtc/modules/audio_coding/main/acm2/acm_codec_database.h"
 #include "webrtc/modules/audio_coding/main/acm2/acm_common_defs.h"
 #include "webrtc/system_wrappers/interface/trace.h"
-
-#define SIGN(x) (x > 0 ? 1 : -1)
 #endif
 
 namespace webrtc {
@@ -30,7 +28,6 @@ ACMOpus::ACMOpus(int16_t /* codec_id */)
       sample_freq_(0),
       bitrate_(0),
       channels_(1),
-      fec_enabled_(false),
       packet_loss_rate_(0) {
   return;
 }
@@ -60,10 +57,6 @@ void ACMOpus::DestructEncoderSafe() {
   return;
 }
 
-void ACMOpus::InternalDestructEncoderInst(void* /* ptr_inst */) {
-  return;
-}
-
 int16_t ACMOpus::SetBitRateSafe(const int32_t /*rate*/) {
   return -1;
 }
@@ -75,8 +68,7 @@ ACMOpus::ACMOpus(int16_t codec_id)
       sample_freq_(32000),  // Default sampling frequency.
       bitrate_(20000),  // Default bit-rate.
       channels_(1),  // Default mono.
-      fec_enabled_(false),  // Default FEC is off.
-      packet_loss_rate_(0) {
+      packet_loss_rate_(0) {  // Initial packet loss rate.
   codec_id_ = codec_id;
   // Opus has internal DTX, but we dont use it for now.
   has_internal_dtx_ = false;
@@ -181,20 +173,12 @@ void ACMOpus::DestructEncoderSafe() {
   }
 }
 
-void ACMOpus::InternalDestructEncoderInst(void* ptr_inst) {
-  if (ptr_inst != NULL) {
-    WebRtcOpus_EncoderFree(static_cast<OpusEncInst*>(ptr_inst));
-  }
-  return;
-}
-
 int16_t ACMOpus::SetBitRateSafe(const int32_t rate) {
   if (rate < 6000 || rate > 510000) {
     WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceAudioCoding, unique_id_,
                  "SetBitRateSafe: Invalid rate Opus");
     return -1;
   }
-  // Initial packet loss rate.
 
   bitrate_ = rate;
 
@@ -210,15 +194,11 @@ int16_t ACMOpus::SetBitRateSafe(const int32_t rate) {
 int ACMOpus::SetFEC(bool enable_fec) {
   // Ask the encoder to enable FEC.
   if (enable_fec) {
-    if (WebRtcOpus_EnableFec(encoder_inst_ptr_) == 0) {
-      fec_enabled_ = true;
+    if (WebRtcOpus_EnableFec(encoder_inst_ptr_) == 0)
       return 0;
-    }
   } else {
-    if (WebRtcOpus_DisableFec(encoder_inst_ptr_) == 0) {
-      fec_enabled_ = false;
+    if (WebRtcOpus_DisableFec(encoder_inst_ptr_) == 0)
       return 0;
-    }
   }
   return -1;
 }
@@ -239,13 +219,13 @@ int ACMOpus::SetPacketLossRate(int loss_rate) {
   const int kLossRate5Margin = 1;
   int opt_loss_rate;
   if (loss_rate >= kPacketLossRate20 + kLossRate20Margin *
-      SIGN(kPacketLossRate20 - packet_loss_rate_)) {
+      (kPacketLossRate20 - packet_loss_rate_ > 0 ? 1 : -1)) {
     opt_loss_rate = kPacketLossRate20;
   } else if (loss_rate >= kPacketLossRate10 + kLossRate10Margin *
-      SIGN(kPacketLossRate10 - packet_loss_rate_)) {
+      (kPacketLossRate10 - packet_loss_rate_ > 0 ? 1 : -1)) {
     opt_loss_rate = kPacketLossRate10;
   } else if (loss_rate >= kPacketLossRate5 + kLossRate5Margin *
-      SIGN(kPacketLossRate5 - packet_loss_rate_)) {
+      (kPacketLossRate5 - packet_loss_rate_ > 0 ? 1 : -1)) {
     opt_loss_rate = kPacketLossRate5;
   } else if (loss_rate >= kPacketLossRate1) {
     opt_loss_rate = kPacketLossRate1;
@@ -266,9 +246,9 @@ int ACMOpus::SetPacketLossRate(int loss_rate) {
   return -1;
 }
 
-int ACMOpus::SetOpusMaxBandwidth(int max_bandwidth) {
-  // Ask the encoder to change the maximum required bandwidth.
-  return WebRtcOpus_SetMaxBandwidth(encoder_inst_ptr_, max_bandwidth);
+int ACMOpus::SetOpusMaxPlaybackRate(int frequency_hz) {
+  // Informs Opus encoder of the maximum playback rate the receiver will render.
+  return WebRtcOpus_SetMaxPlaybackRate(encoder_inst_ptr_, frequency_hz);
 }
 
 #endif  // WEBRTC_CODEC_OPUS