| Index: media/cast/net/rtcp/rtcp_receiver.cc
|
| diff --git a/media/cast/net/rtcp/rtcp_receiver.cc b/media/cast/net/rtcp/rtcp_receiver.cc
|
| index d8b81b1a990e9b524f99fc072ecfcfd2f89d31ab..4ba9986a176a3230a23522520bf8226a3d851a69 100644
|
| --- a/media/cast/net/rtcp/rtcp_receiver.cc
|
| +++ b/media/cast/net/rtcp/rtcp_receiver.cc
|
| @@ -95,45 +95,21 @@ void RtcpReceiver::IncomingRtcpPacket(RtcpParser* rtcp_parser) {
|
| case kRtcpRrCode:
|
| HandleReceiverReport(rtcp_parser);
|
| break;
|
| - case kRtcpSdesCode:
|
| - HandleSDES(rtcp_parser);
|
| - break;
|
| - case kRtcpByeCode:
|
| - HandleBYE(rtcp_parser);
|
| - break;
|
| case kRtcpXrCode:
|
| HandleXr(rtcp_parser);
|
| break;
|
| - case kRtcpGenericRtpFeedbackNackCode:
|
| - HandleNACK(rtcp_parser);
|
| - break;
|
| - case kRtcpPayloadSpecificPliCode:
|
| - HandlePLI(rtcp_parser);
|
| - break;
|
| - case kRtcpPayloadSpecificRpsiCode:
|
| - HandleRpsi(rtcp_parser);
|
| - break;
|
| - case kRtcpPayloadSpecificFirCode:
|
| - HandleFIR(rtcp_parser);
|
| - break;
|
| case kRtcpPayloadSpecificAppCode:
|
| HandlePayloadSpecificApp(rtcp_parser);
|
| break;
|
| case kRtcpApplicationSpecificCastReceiverLogCode:
|
| HandleApplicationSpecificCastReceiverLog(rtcp_parser);
|
| break;
|
| - case kRtcpPayloadSpecificRembCode:
|
| - case kRtcpPayloadSpecificRembItemCode:
|
| case kRtcpPayloadSpecificCastCode:
|
| case kRtcpPayloadSpecificCastNackItemCode:
|
| case kRtcpApplicationSpecificCastReceiverLogFrameCode:
|
| case kRtcpApplicationSpecificCastReceiverLogEventCode:
|
| case kRtcpNotValidCode:
|
| case kRtcpReportBlockItemCode:
|
| - case kRtcpSdesChunkCode:
|
| - case kRtcpGenericRtpFeedbackSrReqCode:
|
| - case kRtcpGenericRtpFeedbackNackItemCode:
|
| - case kRtcpPayloadSpecificFirItemCode:
|
| case kRtcpXrRrtrCode:
|
| case kRtcpXrDlrrCode:
|
| case kRtcpXrUnknownItemCode:
|
| @@ -227,19 +203,6 @@ void RtcpReceiver::HandleReportBlock(const RtcpField* rtcp_field,
|
| rb.last_sender_report, rb.delay_last_sender_report);
|
| }
|
|
|
| -void RtcpReceiver::HandleSDES(RtcpParser* rtcp_parser) {
|
| - RtcpFieldTypes field_type = rtcp_parser->Iterate();
|
| - while (field_type == kRtcpSdesChunkCode) {
|
| - HandleSDESChunk(rtcp_parser);
|
| - field_type = rtcp_parser->Iterate();
|
| - }
|
| -}
|
| -
|
| -void RtcpReceiver::HandleSDESChunk(RtcpParser* rtcp_parser) {
|
| - const RtcpField& rtcp_field = rtcp_parser->Field();
|
| - VLOG(2) << "Cast RTCP received SDES with cname " << rtcp_field.c_name.name;
|
| -}
|
| -
|
| void RtcpReceiver::HandleXr(RtcpParser* rtcp_parser) {
|
| RtcpFieldTypes rtcp_field_type = rtcp_parser->FieldType();
|
| const RtcpField& rtcp_field = rtcp_parser->Field();
|
| @@ -285,80 +248,6 @@ void RtcpReceiver::HandleDlrr(RtcpParser* rtcp_parser) {
|
| rtcp_field.dlrr.delay_last_receiver_report);
|
| }
|
|
|
| -void RtcpReceiver::HandleNACK(RtcpParser* rtcp_parser) {
|
| - const RtcpField& rtcp_field = rtcp_parser->Field();
|
| - if (ssrc_ != rtcp_field.nack.media_ssrc) {
|
| - RtcpFieldTypes field_type;
|
| - // Message not to us. Iterate until we have passed this message.
|
| - do {
|
| - field_type = rtcp_parser->Iterate();
|
| - } while (field_type == kRtcpGenericRtpFeedbackNackItemCode);
|
| - return;
|
| - }
|
| - std::list<uint16> nackSequenceNumbers;
|
| -
|
| - RtcpFieldTypes field_type = rtcp_parser->Iterate();
|
| - while (field_type == kRtcpGenericRtpFeedbackNackItemCode) {
|
| - HandleNACKItem(&rtcp_field, &nackSequenceNumbers);
|
| - field_type = rtcp_parser->Iterate();
|
| - }
|
| -}
|
| -
|
| -void RtcpReceiver::HandleNACKItem(const RtcpField* rtcp_field,
|
| - std::list<uint16>* nack_sequence_numbers) {
|
| - nack_sequence_numbers->push_back(rtcp_field->nack_item.packet_id);
|
| -
|
| - uint16 bitmask = rtcp_field->nack_item.bitmask;
|
| - if (bitmask) {
|
| - for (int i = 1; i <= 16; ++i) {
|
| - if (bitmask & 1) {
|
| - nack_sequence_numbers->push_back(rtcp_field->nack_item.packet_id + i);
|
| - }
|
| - bitmask = bitmask >> 1;
|
| - }
|
| - }
|
| -}
|
| -
|
| -void RtcpReceiver::HandleBYE(RtcpParser* rtcp_parser) {
|
| - const RtcpField& rtcp_field = rtcp_parser->Field();
|
| - uint32 remote_ssrc = rtcp_field.bye.sender_ssrc;
|
| - if (remote_ssrc_ == remote_ssrc) {
|
| - VLOG(2) << "Cast RTCP received BYE from SSRC " << remote_ssrc;
|
| - }
|
| - rtcp_parser->Iterate();
|
| -}
|
| -
|
| -void RtcpReceiver::HandlePLI(RtcpParser* rtcp_parser) {
|
| - const RtcpField& rtcp_field = rtcp_parser->Field();
|
| - if (ssrc_ == rtcp_field.pli.media_ssrc) {
|
| - // Received a signal that we need to send a new key frame.
|
| - VLOG(2) << "Cast RTCP received PLI on our SSRC " << ssrc_;
|
| - }
|
| - rtcp_parser->Iterate();
|
| -}
|
| -
|
| -void RtcpReceiver::HandleRpsi(RtcpParser* rtcp_parser) {
|
| - const RtcpField& rtcp_field = rtcp_parser->Field();
|
| - if (rtcp_parser->Iterate() != kRtcpPayloadSpecificRpsiCode) {
|
| - return;
|
| - }
|
| - if (rtcp_field.rpsi.number_of_valid_bits % 8 != 0) {
|
| - // Continue
|
| - return;
|
| - }
|
| - uint64 rpsi_picture_id = 0;
|
| -
|
| - // Convert native_bit_string to rpsi_picture_id
|
| - uint8 bytes = rtcp_field.rpsi.number_of_valid_bits / 8;
|
| - for (uint8 n = 0; n < (bytes - 1); ++n) {
|
| - rpsi_picture_id += (rtcp_field.rpsi.native_bit_string[n] & 0x7f);
|
| - rpsi_picture_id <<= 7; // Prepare next.
|
| - }
|
| - rpsi_picture_id += (rtcp_field.rpsi.native_bit_string[bytes - 1] & 0x7f);
|
| -
|
| - VLOG(2) << "Cast RTCP received RPSI with picture_id " << rpsi_picture_id;
|
| -}
|
| -
|
| void RtcpReceiver::HandlePayloadSpecificApp(RtcpParser* rtcp_parser) {
|
| const RtcpField& rtcp_field = rtcp_parser->Field();
|
| uint32 remote_ssrc = rtcp_field.application_specific.sender_ssrc;
|
| @@ -367,22 +256,13 @@ void RtcpReceiver::HandlePayloadSpecificApp(RtcpParser* rtcp_parser) {
|
| RtcpFieldTypes field_type;
|
| do {
|
| field_type = rtcp_parser->Iterate();
|
| - } while (field_type == kRtcpPayloadSpecificRembCode ||
|
| - field_type == kRtcpPayloadSpecificRembItemCode ||
|
| - field_type == kRtcpPayloadSpecificCastCode ||
|
| + } while (field_type == kRtcpPayloadSpecificCastCode ||
|
| field_type == kRtcpPayloadSpecificCastNackItemCode);
|
| return;
|
| }
|
|
|
| RtcpFieldTypes packet_type = rtcp_parser->Iterate();
|
| switch (packet_type) {
|
| - case kRtcpPayloadSpecificRembCode:
|
| - packet_type = rtcp_parser->Iterate();
|
| - if (packet_type == kRtcpPayloadSpecificRembItemCode) {
|
| - HandlePayloadSpecificRembItem(rtcp_parser);
|
| - rtcp_parser->Iterate();
|
| - }
|
| - break;
|
| case kRtcpPayloadSpecificCastCode:
|
| packet_type = rtcp_parser->Iterate();
|
| if (packet_type == kRtcpPayloadSpecificCastCode) {
|
| @@ -394,19 +274,6 @@ void RtcpReceiver::HandlePayloadSpecificApp(RtcpParser* rtcp_parser) {
|
| }
|
| }
|
|
|
| -void RtcpReceiver::HandlePayloadSpecificRembItem(RtcpParser* rtcp_parser) {
|
| - const RtcpField& rtcp_field = rtcp_parser->Field();
|
| -
|
| - for (int i = 0; i < rtcp_field.remb_item.number_of_ssrcs; ++i) {
|
| - if (rtcp_field.remb_item.ssrcs[i] == ssrc_) {
|
| - // Found matching ssrc.
|
| - VLOG(2) << "Cast RTCP received REMB with received_bitrate "
|
| - << rtcp_field.remb_item.bitrate;
|
| - return;
|
| - }
|
| - }
|
| -}
|
| -
|
| void RtcpReceiver::HandleApplicationSpecificCastReceiverLog(
|
| RtcpParser* rtcp_parser) {
|
| const RtcpField& rtcp_field = rtcp_parser->Field();
|
| @@ -543,23 +410,5 @@ void RtcpReceiver::HandlePayloadSpecificCastNackItem(
|
| }
|
| }
|
|
|
| -void RtcpReceiver::HandleFIR(RtcpParser* rtcp_parser) {
|
| - const RtcpField& rtcp_field = rtcp_parser->Field();
|
| -
|
| - RtcpFieldTypes field_type = rtcp_parser->Iterate();
|
| - while (field_type == kRtcpPayloadSpecificFirItemCode) {
|
| - HandleFIRItem(&rtcp_field);
|
| - field_type = rtcp_parser->Iterate();
|
| - }
|
| -}
|
| -
|
| -void RtcpReceiver::HandleFIRItem(const RtcpField* rtcp_field) {
|
| - // Is it our sender that is requested to generate a new keyframe.
|
| - if (ssrc_ != rtcp_field->fir_item.ssrc)
|
| - return;
|
| -
|
| - VLOG(2) << "Cast RTCP received FIR on our SSRC " << ssrc_;
|
| -}
|
| -
|
| } // namespace cast
|
| } // namespace media
|
|
|