Chromium Code Reviews| 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..778e2050f2aecfd169274d779854f39d5d15e3b8 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,13 @@ 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. |
|
hlundin-webrtc
2016/10/04 11:38:18
Wording is a bit choppy in this comment. Bonus poi
ossu
2016/10/04 12:40:24
I've reworded here and moved it down to where the
|
| - 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 +113,6 @@ 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 |
|
hlundin-webrtc
2016/10/04 11:38:18
lol
|
| 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 { |
| @@ -227,24 +174,8 @@ RTPAliveType RTPReceiverAudio::ProcessDeadOrAlive( |
| void RTPReceiverAudio::CheckPayloadChanged(int8_t payload_type, |
|
danilchap
2016/10/03 14:29:38
may be pull string further and change signature of
hlundin-webrtc
2016/10/04 11:38:18
Would be nice, but I'm afraid that will lead into
|
| PayloadUnion* specific_payload, |
|
hlundin-webrtc
2016/10/04 11:38:18
/* specific_payload */
ossu
2016/10/04 12:40:24
Done.
|
| 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 { |