| Index: webrtc/modules/rtp_rtcp/source/rtp_receiver_audio.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtp_receiver_audio.cc b/webrtc/modules/rtp_rtcp/source/rtp_receiver_audio.cc
|
| index 38b2830b79cbe9c3e903044b8c3b2eb746d49fdb..082d2a8b18514f215d0192e2dcee57ac71299198 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtp_receiver_audio.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtp_receiver_audio.cc
|
| @@ -26,16 +26,12 @@ RTPReceiverStrategy* RTPReceiverStrategy::CreateAudioStrategy(
|
| RTPReceiverAudio::RTPReceiverAudio(RtpData* data_callback)
|
| : RTPReceiverStrategy(data_callback),
|
| TelephoneEventHandler(),
|
| - last_received_frequency_(8000),
|
| telephone_event_forward_to_decoder_(false),
|
| telephone_event_payload_type_(-1),
|
| cng_nb_payload_type_(-1),
|
| cng_wb_payload_type_(-1),
|
| cng_swb_payload_type_(-1),
|
| cng_fb_payload_type_(-1),
|
| - cng_payload_type_(-1),
|
| - g722_payload_type_(-1),
|
| - last_received_g722_(false),
|
| num_energy_(0),
|
| current_remote_energy_() {
|
| last_payload_.Audio.channels = 1;
|
| @@ -61,53 +57,12 @@ bool RTPReceiverAudio::TelephoneEventPayloadType(
|
| return telephone_event_payload_type_ == payload_type;
|
| }
|
|
|
| -bool RTPReceiverAudio::CNGPayloadType(int8_t payload_type,
|
| - uint32_t* frequency,
|
| - bool* cng_payload_type_has_changed) {
|
| +bool RTPReceiverAudio::CNGPayloadType(int8_t payload_type) {
|
| rtc::CritScope lock(&crit_sect_);
|
| - *cng_payload_type_has_changed = false;
|
| -
|
| - // We can have four CNG on 8000Hz, 16000Hz, 32000Hz and 48000Hz.
|
| - if (cng_nb_payload_type_ == payload_type) {
|
| - *frequency = 8000;
|
| - if (cng_payload_type_ != -1 && cng_payload_type_ != cng_nb_payload_type_)
|
| - *cng_payload_type_has_changed = true;
|
| -
|
| - cng_payload_type_ = cng_nb_payload_type_;
|
| - return true;
|
| - } else if (cng_wb_payload_type_ == payload_type) {
|
| - // if last received codec is G.722 we must use frequency 8000
|
| - if (last_received_g722_) {
|
| - *frequency = 8000;
|
| - } else {
|
| - *frequency = 16000;
|
| - }
|
| - if (cng_payload_type_ != -1 && cng_payload_type_ != cng_wb_payload_type_)
|
| - *cng_payload_type_has_changed = true;
|
| - cng_payload_type_ = cng_wb_payload_type_;
|
| - return true;
|
| - } else if (cng_swb_payload_type_ == payload_type) {
|
| - *frequency = 32000;
|
| - if ((cng_payload_type_ != -1) &&
|
| - (cng_payload_type_ != cng_swb_payload_type_))
|
| - *cng_payload_type_has_changed = true;
|
| - cng_payload_type_ = cng_swb_payload_type_;
|
| - return true;
|
| - } else if (cng_fb_payload_type_ == payload_type) {
|
| - *frequency = 48000;
|
| - if (cng_payload_type_ != -1 && cng_payload_type_ != cng_fb_payload_type_)
|
| - *cng_payload_type_has_changed = true;
|
| - cng_payload_type_ = cng_fb_payload_type_;
|
| - return true;
|
| - } else {
|
| - // not CNG
|
| - if (g722_payload_type_ == payload_type) {
|
| - last_received_g722_ = true;
|
| - } else {
|
| - last_received_g722_ = false;
|
| - }
|
| - }
|
| - return false;
|
| + return payload_type == cng_nb_payload_type_ ||
|
| + payload_type == cng_wb_payload_type_ ||
|
| + payload_type == cng_swb_payload_type_ ||
|
| + payload_type == cng_fb_payload_type_;
|
| }
|
|
|
| bool RTPReceiverAudio::ShouldReportCsrcChanges(uint8_t payload_type) const {
|
| @@ -157,7 +112,7 @@ int32_t RTPReceiverAudio::OnNewPayloadTypeCreated(
|
| telephone_event_payload_type_ = payload_type;
|
| }
|
| if (RtpUtility::StringCompare(payload_name, "cn", 2)) {
|
| - // we can have three CNG on 8000Hz, 16000Hz and 32000Hz
|
| + // We support comfort noise at four different frequencies.
|
| if (frequency == 8000) {
|
| cng_nb_payload_type_ = payload_type;
|
| } else if (frequency == 16000) {
|
| @@ -204,14 +159,6 @@ int32_t RTPReceiverAudio::ParseRtpPacket(WebRtcRTPHeader* rtp_header,
|
| is_red);
|
| }
|
|
|
| -int RTPReceiverAudio::GetPayloadTypeFrequency() const {
|
| - rtc::CritScope lock(&crit_sect_);
|
| - if (last_received_g722_) {
|
| - return 8000;
|
| - }
|
| - return last_received_frequency_;
|
| -}
|
| -
|
| RTPAliveType RTPReceiverAudio::ProcessDeadOrAlive(
|
| uint16_t last_payload_length) const {
|
|
|
| @@ -225,26 +172,10 @@ RTPAliveType RTPReceiverAudio::ProcessDeadOrAlive(
|
| }
|
|
|
| void RTPReceiverAudio::CheckPayloadChanged(int8_t payload_type,
|
| - PayloadUnion* specific_payload,
|
| + PayloadUnion* /* specific_payload */,
|
| bool* should_discard_changes) {
|
| - *should_discard_changes = false;
|
| -
|
| - if (TelephoneEventPayloadType(payload_type)) {
|
| - // Don't do callbacks for DTMF packets.
|
| - *should_discard_changes = true;
|
| - return;
|
| - }
|
| - // frequency is updated for CNG
|
| - bool cng_payload_type_has_changed = false;
|
| - bool is_cng_payload_type = CNGPayloadType(payload_type,
|
| - &specific_payload->Audio.frequency,
|
| - &cng_payload_type_has_changed);
|
| -
|
| - if (is_cng_payload_type) {
|
| - // Don't do callbacks for DTMF packets.
|
| - *should_discard_changes = true;
|
| - return;
|
| - }
|
| + *should_discard_changes =
|
| + TelephoneEventPayloadType(payload_type) || CNGPayloadType(payload_type);
|
| }
|
|
|
| int RTPReceiverAudio::Energy(uint8_t array_of_energy[kRtpCsrcSize]) const {
|
| @@ -337,16 +268,8 @@ int32_t RTPReceiverAudio::ParseAudioCodecSpecific(
|
| {
|
| rtc::CritScope lock(&crit_sect_);
|
|
|
| - if (!telephone_event_packet) {
|
| - last_received_frequency_ = audio_specific.frequency;
|
| - }
|
| -
|
| // Check if this is a CNG packet, receiver might want to know
|
| - uint32_t ignored;
|
| - bool also_ignored;
|
| - if (CNGPayloadType(rtp_header->header.payloadType,
|
| - &ignored,
|
| - &also_ignored)) {
|
| + if (CNGPayloadType(rtp_header->header.payloadType)) {
|
| rtp_header->type.Audio.isCNG = true;
|
| rtp_header->frameType = kAudioFrameCN;
|
| } else {
|
|
|