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 |