| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "media/cast/net/cast_transport_sender_impl.h" | 5 #include "media/cast/net/cast_transport_sender_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <utility> |
| 8 | 9 |
| 9 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
| 10 #include "base/values.h" | 11 #include "base/values.h" |
| 11 #include "build/build_config.h" | 12 #include "build/build_config.h" |
| 12 #include "media/cast/net/cast_transport_defines.h" | 13 #include "media/cast/net/cast_transport_defines.h" |
| 13 #include "media/cast/net/udp_transport.h" | 14 #include "media/cast/net/udp_transport.h" |
| 14 #include "net/base/net_errors.h" | 15 #include "net/base/net_errors.h" |
| 15 #include "net/base/network_interfaces.h" | 16 #include "net/base/network_interfaces.h" |
| 16 | 17 |
| 17 namespace media { | 18 namespace media { |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 net::NetLog* net_log, | 60 net::NetLog* net_log, |
| 60 base::TickClock* clock, | 61 base::TickClock* clock, |
| 61 const net::IPEndPoint& local_end_point, | 62 const net::IPEndPoint& local_end_point, |
| 62 const net::IPEndPoint& remote_end_point, | 63 const net::IPEndPoint& remote_end_point, |
| 63 scoped_ptr<base::DictionaryValue> options, | 64 scoped_ptr<base::DictionaryValue> options, |
| 64 const CastTransportStatusCallback& status_callback, | 65 const CastTransportStatusCallback& status_callback, |
| 65 const BulkRawEventsCallback& raw_events_callback, | 66 const BulkRawEventsCallback& raw_events_callback, |
| 66 base::TimeDelta raw_events_callback_interval, | 67 base::TimeDelta raw_events_callback_interval, |
| 67 const PacketReceiverCallback& packet_callback, | 68 const PacketReceiverCallback& packet_callback, |
| 68 const scoped_refptr<base::SingleThreadTaskRunner>& transport_task_runner) { | 69 const scoped_refptr<base::SingleThreadTaskRunner>& transport_task_runner) { |
| 69 return scoped_ptr<CastTransportSender>( | 70 return scoped_ptr<CastTransportSender>(new CastTransportSenderImpl( |
| 70 new CastTransportSenderImpl(net_log, | 71 net_log, clock, local_end_point, remote_end_point, std::move(options), |
| 71 clock, | 72 status_callback, raw_events_callback, raw_events_callback_interval, |
| 72 local_end_point, | 73 transport_task_runner.get(), packet_callback, NULL)); |
| 73 remote_end_point, | |
| 74 options.Pass(), | |
| 75 status_callback, | |
| 76 raw_events_callback, | |
| 77 raw_events_callback_interval, | |
| 78 transport_task_runner.get(), | |
| 79 packet_callback, | |
| 80 NULL)); | |
| 81 } | 74 } |
| 82 | 75 |
| 83 PacketReceiverCallback CastTransportSender::PacketReceiverForTesting() { | 76 PacketReceiverCallback CastTransportSender::PacketReceiverForTesting() { |
| 84 return PacketReceiverCallback(); | 77 return PacketReceiverCallback(); |
| 85 } | 78 } |
| 86 | 79 |
| 87 CastTransportSenderImpl::CastTransportSenderImpl( | 80 CastTransportSenderImpl::CastTransportSenderImpl( |
| 88 net::NetLog* net_log, | 81 net::NetLog* net_log, |
| 89 base::TickClock* clock, | 82 base::TickClock* clock, |
| 90 const net::IPEndPoint& local_end_point, | 83 const net::IPEndPoint& local_end_point, |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 342 void CastTransportSenderImpl::SendRawEvents() { | 335 void CastTransportSenderImpl::SendRawEvents() { |
| 343 DCHECK(!raw_events_callback_.is_null()); | 336 DCHECK(!raw_events_callback_.is_null()); |
| 344 | 337 |
| 345 if (!recent_frame_events_.empty() || !recent_packet_events_.empty()) { | 338 if (!recent_frame_events_.empty() || !recent_packet_events_.empty()) { |
| 346 scoped_ptr<std::vector<FrameEvent>> frame_events( | 339 scoped_ptr<std::vector<FrameEvent>> frame_events( |
| 347 new std::vector<FrameEvent>()); | 340 new std::vector<FrameEvent>()); |
| 348 frame_events->swap(recent_frame_events_); | 341 frame_events->swap(recent_frame_events_); |
| 349 scoped_ptr<std::vector<PacketEvent>> packet_events( | 342 scoped_ptr<std::vector<PacketEvent>> packet_events( |
| 350 new std::vector<PacketEvent>()); | 343 new std::vector<PacketEvent>()); |
| 351 packet_events->swap(recent_packet_events_); | 344 packet_events->swap(recent_packet_events_); |
| 352 raw_events_callback_.Run(frame_events.Pass(), packet_events.Pass()); | 345 raw_events_callback_.Run(std::move(frame_events), std::move(packet_events)); |
| 353 } | 346 } |
| 354 | 347 |
| 355 transport_task_runner_->PostDelayedTask( | 348 transport_task_runner_->PostDelayedTask( |
| 356 FROM_HERE, | 349 FROM_HERE, |
| 357 base::Bind(&CastTransportSenderImpl::SendRawEvents, | 350 base::Bind(&CastTransportSenderImpl::SendRawEvents, |
| 358 weak_factory_.GetWeakPtr()), | 351 weak_factory_.GetWeakPtr()), |
| 359 raw_events_callback_interval_); | 352 raw_events_callback_interval_); |
| 360 } | 353 } |
| 361 | 354 |
| 362 bool CastTransportSenderImpl::OnReceivedPacket(scoped_ptr<Packet> packet) { | 355 bool CastTransportSenderImpl::OnReceivedPacket(scoped_ptr<Packet> packet) { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 379 return true; | 372 return true; |
| 380 } | 373 } |
| 381 if (video_rtcp_session_ && | 374 if (video_rtcp_session_ && |
| 382 video_rtcp_session_->IncomingRtcpPacket(data, length)) { | 375 video_rtcp_session_->IncomingRtcpPacket(data, length)) { |
| 383 return true; | 376 return true; |
| 384 } | 377 } |
| 385 if (packet_callback_.is_null()) { | 378 if (packet_callback_.is_null()) { |
| 386 VLOG(1) << "Stale packet received."; | 379 VLOG(1) << "Stale packet received."; |
| 387 return false; | 380 return false; |
| 388 } | 381 } |
| 389 packet_callback_.Run(packet.Pass()); | 382 packet_callback_.Run(std::move(packet)); |
| 390 return true; | 383 return true; |
| 391 } | 384 } |
| 392 | 385 |
| 393 void CastTransportSenderImpl::OnReceivedLogMessage( | 386 void CastTransportSenderImpl::OnReceivedLogMessage( |
| 394 EventMediaType media_type, | 387 EventMediaType media_type, |
| 395 const RtcpReceiverLogMessage& log) { | 388 const RtcpReceiverLogMessage& log) { |
| 396 if (raw_events_callback_.is_null()) | 389 if (raw_events_callback_.is_null()) |
| 397 return; | 390 return; |
| 398 | 391 |
| 399 // Add received log messages into our log system. | 392 // Add received log messages into our log system. |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 490 sender_ssrc); | 483 sender_ssrc); |
| 491 rtcp.SendRtcpFromRtpReceiver(time_data, | 484 rtcp.SendRtcpFromRtpReceiver(time_data, |
| 492 cast_message, | 485 cast_message, |
| 493 target_delay, | 486 target_delay, |
| 494 rtcp_events, | 487 rtcp_events, |
| 495 rtp_receiver_statistics); | 488 rtp_receiver_statistics); |
| 496 } | 489 } |
| 497 | 490 |
| 498 } // namespace cast | 491 } // namespace cast |
| 499 } // namespace media | 492 } // namespace media |
| OLD | NEW |