Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(873)

Side by Side Diff: webrtc/pc/channel.cc

Issue 2889453002: Move bundle filter from BaseChannel to RtpTransport. (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2004 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 767 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 LOG(LS_ERROR) << "Dropping incoming " << content_name_ << " " 778 LOG(LS_ERROR) << "Dropping incoming " << content_name_ << " "
779 << PacketType(rtcp) 779 << PacketType(rtcp)
780 << " packet: wrong size=" << packet->size(); 780 << " packet: wrong size=" << packet->size();
781 return false; 781 return false;
782 } 782 }
783 if (rtcp) { 783 if (rtcp) {
784 // Permit all (seemingly valid) RTCP packets. 784 // Permit all (seemingly valid) RTCP packets.
785 return true; 785 return true;
786 } 786 }
787 // Check whether we handle this payload. 787 // Check whether we handle this payload.
788 return bundle_filter_.DemuxPacket(packet->data(), packet->size()); 788 return rtp_transport_.HandlesPacket(packet->data(), packet->size());
789 }
790
791 bool BaseChannel::HandlesPayloadType(int packet_type) {
792 return rtp_transport_.HandlesPayloadType(packet_type);
789 } 793 }
790 794
791 void BaseChannel::HandlePacket(bool rtcp, rtc::CopyOnWriteBuffer* packet, 795 void BaseChannel::HandlePacket(bool rtcp, rtc::CopyOnWriteBuffer* packet,
792 const rtc::PacketTime& packet_time) { 796 const rtc::PacketTime& packet_time) {
793 RTC_DCHECK(network_thread_->IsCurrent()); 797 RTC_DCHECK(network_thread_->IsCurrent());
794 if (!WantsPacket(rtcp, packet)) { 798 if (!WantsPacket(rtcp, packet)) {
795 return; 799 return;
796 } 800 }
797 801
798 // We are only interested in the first rtp packet because that 802 // We are only interested in the first rtp packet because that
(...skipping 642 matching lines...) Expand 10 before | Expand all | Expand 10 after
1441 delete data; 1445 delete data;
1442 break; 1446 break;
1443 } 1447 }
1444 case MSG_FIRSTPACKETRECEIVED: { 1448 case MSG_FIRSTPACKETRECEIVED: {
1445 SignalFirstPacketReceived(this); 1449 SignalFirstPacketReceived(this);
1446 break; 1450 break;
1447 } 1451 }
1448 } 1452 }
1449 } 1453 }
1450 1454
1455 void BaseChannel::AddHandledPayloadType(int payload_type) {
1456 rtp_transport_.AddHandledPayloadType(payload_type);
1457 }
1458
1451 void BaseChannel::FlushRtcpMessages_n() { 1459 void BaseChannel::FlushRtcpMessages_n() {
1452 // Flush all remaining RTCP messages. This should only be called in 1460 // Flush all remaining RTCP messages. This should only be called in
1453 // destructor. 1461 // destructor.
1454 RTC_DCHECK(network_thread_->IsCurrent()); 1462 RTC_DCHECK(network_thread_->IsCurrent());
1455 rtc::MessageList rtcp_messages; 1463 rtc::MessageList rtcp_messages;
1456 network_thread_->Clear(this, MSG_SEND_RTCP_PACKET, &rtcp_messages); 1464 network_thread_->Clear(this, MSG_SEND_RTCP_PACKET, &rtcp_messages);
1457 for (const auto& message : rtcp_messages) { 1465 for (const auto& message : rtcp_messages) {
1458 network_thread_->Send(RTC_FROM_HERE, this, MSG_SEND_RTCP_PACKET, 1466 network_thread_->Send(RTC_FROM_HERE, this, MSG_SEND_RTCP_PACKET,
1459 message.pdata); 1467 message.pdata);
1460 } 1468 }
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
1759 } 1767 }
1760 1768
1761 AudioRecvParameters recv_params = last_recv_params_; 1769 AudioRecvParameters recv_params = last_recv_params_;
1762 RtpParametersFromMediaDescription(audio, &recv_params); 1770 RtpParametersFromMediaDescription(audio, &recv_params);
1763 if (!media_channel()->SetRecvParameters(recv_params)) { 1771 if (!media_channel()->SetRecvParameters(recv_params)) {
1764 SafeSetError("Failed to set local audio description recv parameters.", 1772 SafeSetError("Failed to set local audio description recv parameters.",
1765 error_desc); 1773 error_desc);
1766 return false; 1774 return false;
1767 } 1775 }
1768 for (const AudioCodec& codec : audio->codecs()) { 1776 for (const AudioCodec& codec : audio->codecs()) {
1769 bundle_filter()->AddPayloadType(codec.id); 1777 AddHandledPayloadType(codec.id);
1770 } 1778 }
1771 last_recv_params_ = recv_params; 1779 last_recv_params_ = recv_params;
1772 1780
1773 // TODO(pthatcher): Move local streams into AudioSendParameters, and 1781 // TODO(pthatcher): Move local streams into AudioSendParameters, and
1774 // only give it to the media channel once we have a remote 1782 // only give it to the media channel once we have a remote
1775 // description too (without a remote description, we won't be able 1783 // description too (without a remote description, we won't be able
1776 // to send them anyway). 1784 // to send them anyway).
1777 if (!UpdateLocalStreams_w(audio->streams(), action, error_desc)) { 1785 if (!UpdateLocalStreams_w(audio->streams(), action, error_desc)) {
1778 SafeSetError("Failed to set local audio description streams.", error_desc); 1786 SafeSetError("Failed to set local audio description streams.", error_desc);
1779 return false; 1787 return false;
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
2032 } 2040 }
2033 2041
2034 VideoRecvParameters recv_params = last_recv_params_; 2042 VideoRecvParameters recv_params = last_recv_params_;
2035 RtpParametersFromMediaDescription(video, &recv_params); 2043 RtpParametersFromMediaDescription(video, &recv_params);
2036 if (!media_channel()->SetRecvParameters(recv_params)) { 2044 if (!media_channel()->SetRecvParameters(recv_params)) {
2037 SafeSetError("Failed to set local video description recv parameters.", 2045 SafeSetError("Failed to set local video description recv parameters.",
2038 error_desc); 2046 error_desc);
2039 return false; 2047 return false;
2040 } 2048 }
2041 for (const VideoCodec& codec : video->codecs()) { 2049 for (const VideoCodec& codec : video->codecs()) {
2042 bundle_filter()->AddPayloadType(codec.id); 2050 AddHandledPayloadType(codec.id);
2043 } 2051 }
2044 last_recv_params_ = recv_params; 2052 last_recv_params_ = recv_params;
2045 2053
2046 // TODO(pthatcher): Move local streams into VideoSendParameters, and 2054 // TODO(pthatcher): Move local streams into VideoSendParameters, and
2047 // only give it to the media channel once we have a remote 2055 // only give it to the media channel once we have a remote
2048 // description too (without a remote description, we won't be able 2056 // description too (without a remote description, we won't be able
2049 // to send them anyway). 2057 // to send them anyway).
2050 if (!UpdateLocalStreams_w(video->streams(), action, error_desc)) { 2058 if (!UpdateLocalStreams_w(video->streams(), action, error_desc)) {
2051 SafeSetError("Failed to set local video description streams.", error_desc); 2059 SafeSetError("Failed to set local video description streams.", error_desc);
2052 return false; 2060 return false;
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
2227 } 2235 }
2228 2236
2229 DataRecvParameters recv_params = last_recv_params_; 2237 DataRecvParameters recv_params = last_recv_params_;
2230 RtpParametersFromMediaDescription(data, &recv_params); 2238 RtpParametersFromMediaDescription(data, &recv_params);
2231 if (!media_channel()->SetRecvParameters(recv_params)) { 2239 if (!media_channel()->SetRecvParameters(recv_params)) {
2232 SafeSetError("Failed to set remote data description recv parameters.", 2240 SafeSetError("Failed to set remote data description recv parameters.",
2233 error_desc); 2241 error_desc);
2234 return false; 2242 return false;
2235 } 2243 }
2236 for (const DataCodec& codec : data->codecs()) { 2244 for (const DataCodec& codec : data->codecs()) {
2237 bundle_filter()->AddPayloadType(codec.id); 2245 AddHandledPayloadType(codec.id);
2238 } 2246 }
2239 last_recv_params_ = recv_params; 2247 last_recv_params_ = recv_params;
2240 2248
2241 // TODO(pthatcher): Move local streams into DataSendParameters, and 2249 // TODO(pthatcher): Move local streams into DataSendParameters, and
2242 // only give it to the media channel once we have a remote 2250 // only give it to the media channel once we have a remote
2243 // description too (without a remote description, we won't be able 2251 // description too (without a remote description, we won't be able
2244 // to send them anyway). 2252 // to send them anyway).
2245 if (!UpdateLocalStreams_w(data->streams(), action, error_desc)) { 2253 if (!UpdateLocalStreams_w(data->streams(), action, error_desc)) {
2246 SafeSetError("Failed to set local data description streams.", error_desc); 2254 SafeSetError("Failed to set local data description streams.", error_desc);
2247 return false; 2255 return false;
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
2400 2408
2401 void RtpDataChannel::OnDataChannelReadyToSend(bool writable) { 2409 void RtpDataChannel::OnDataChannelReadyToSend(bool writable) {
2402 // This is usded for congestion control to indicate that the stream is ready 2410 // This is usded for congestion control to indicate that the stream is ready
2403 // to send by the MediaChannel, as opposed to OnReadyToSend, which indicates 2411 // to send by the MediaChannel, as opposed to OnReadyToSend, which indicates
2404 // that the transport channel is ready. 2412 // that the transport channel is ready.
2405 signaling_thread()->Post(RTC_FROM_HERE, this, MSG_READYTOSENDDATA, 2413 signaling_thread()->Post(RTC_FROM_HERE, this, MSG_READYTOSENDDATA,
2406 new DataChannelReadyToSendMessageData(writable)); 2414 new DataChannelReadyToSendMessageData(writable));
2407 } 2415 }
2408 2416
2409 } // namespace cricket 2417 } // namespace cricket
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698