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 "chrome/renderer/media/cast_transport_sender_ipc.h" | 5 #include "chrome/renderer/media/cast_transport_sender_ipc.h" |
6 | 6 |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/id_map.h" | 8 #include "base/id_map.h" |
9 #include "chrome/common/cast_messages.h" | 9 #include "chrome/common/cast_messages.h" |
10 #include "chrome/renderer/media/cast_ipc_dispatcher.h" | 10 #include "chrome/renderer/media/cast_ipc_dispatcher.h" |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 void CastTransportSenderIPC::InsertCodedVideoFrame( | 56 void CastTransportSenderIPC::InsertCodedVideoFrame( |
57 const media::cast::transport::EncodedVideoFrame* video_frame, | 57 const media::cast::transport::EncodedVideoFrame* video_frame, |
58 const base::TimeTicks& capture_time) { | 58 const base::TimeTicks& capture_time) { |
59 Send(new CastHostMsg_InsertCodedVideoFrame(channel_id_, | 59 Send(new CastHostMsg_InsertCodedVideoFrame(channel_id_, |
60 *video_frame, | 60 *video_frame, |
61 capture_time)); | 61 capture_time)); |
62 } | 62 } |
63 | 63 |
64 void CastTransportSenderIPC::SendRtcpFromRtpSender( | 64 void CastTransportSenderIPC::SendRtcpFromRtpSender( |
65 uint32 packet_type_flags, | 65 uint32 packet_type_flags, |
66 const media::cast::transport::RtcpSenderInfo& sender_info, | 66 uint32 ntp_seconds, |
| 67 uint32 ntp_fraction, |
| 68 uint32 rtp_timestamp, |
67 const media::cast::transport::RtcpDlrrReportBlock& dlrr, | 69 const media::cast::transport::RtcpDlrrReportBlock& dlrr, |
68 uint32 sending_ssrc, | 70 uint32 sending_ssrc, |
69 const std::string& c_name) { | 71 const std::string& c_name) { |
70 struct media::cast::transport::SendRtcpFromRtpSenderData data; | 72 struct media::cast::transport::SendRtcpFromRtpSenderData data; |
71 data.packet_type_flags = packet_type_flags; | 73 data.packet_type_flags = packet_type_flags; |
72 data.sending_ssrc = sending_ssrc; | 74 data.sending_ssrc = sending_ssrc; |
73 data.c_name = c_name; | 75 data.c_name = c_name; |
| 76 data.ntp_seconds = ntp_seconds; |
| 77 data.ntp_fraction = ntp_fraction; |
| 78 data.rtp_timestamp = rtp_timestamp; |
74 Send(new CastHostMsg_SendRtcpFromRtpSender( | 79 Send(new CastHostMsg_SendRtcpFromRtpSender( |
75 channel_id_, | 80 channel_id_, |
76 data, | 81 data, |
77 sender_info, | |
78 dlrr)); | 82 dlrr)); |
79 } | 83 } |
80 | 84 |
81 void CastTransportSenderIPC::ResendPackets( | 85 void CastTransportSenderIPC::ResendPackets( |
82 bool is_audio, | 86 bool is_audio, |
83 const media::cast::MissingFramesAndPacketsMap& missing_packets) { | 87 const media::cast::MissingFramesAndPacketsMap& missing_packets) { |
84 Send(new CastHostMsg_ResendPackets(channel_id_, | 88 Send(new CastHostMsg_ResendPackets(channel_id_, |
85 is_audio, | 89 is_audio, |
86 missing_packets)); | 90 missing_packets)); |
87 } | 91 } |
88 | 92 |
89 void CastTransportSenderIPC::SubscribeAudioRtpStatsCallback( | |
90 const media::cast::transport::CastTransportRtpStatistics& callback) { | |
91 audio_rtp_callback_ = callback; | |
92 } | |
93 | |
94 void CastTransportSenderIPC::SubscribeVideoRtpStatsCallback( | |
95 const media::cast::transport::CastTransportRtpStatistics& callback) { | |
96 video_rtp_callback_ = callback; | |
97 } | |
98 | |
99 | |
100 void CastTransportSenderIPC::OnReceivedPacket( | 93 void CastTransportSenderIPC::OnReceivedPacket( |
101 const media::cast::Packet& packet) { | 94 const media::cast::Packet& packet) { |
102 if (!packet_callback_.is_null()) { | 95 if (!packet_callback_.is_null()) { |
103 // TODO(hubbe): Perhaps an non-ownership-transferring cb here? | 96 // TODO(hubbe): Perhaps an non-ownership-transferring cb here? |
104 scoped_ptr<media::cast::transport::Packet> packet_copy( | 97 scoped_ptr<media::cast::transport::Packet> packet_copy( |
105 new media::cast::transport::Packet(packet)); | 98 new media::cast::transport::Packet(packet)); |
106 packet_callback_.Run(packet_copy.Pass()); | 99 packet_callback_.Run(packet_copy.Pass()); |
107 } else { | 100 } else { |
108 DVLOG(1) << "CastIPCDispatcher::OnReceivedPacket no packet callback yet."; | 101 DVLOG(1) << "CastIPCDispatcher::OnReceivedPacket no packet callback yet."; |
109 } | 102 } |
110 } | 103 } |
111 | 104 |
112 void CastTransportSenderIPC::OnNotifyStatusChange( | 105 void CastTransportSenderIPC::OnNotifyStatusChange( |
113 media::cast::transport::CastTransportStatus status) { | 106 media::cast::transport::CastTransportStatus status) { |
114 status_callback_.Run(status); | 107 status_callback_.Run(status); |
115 } | 108 } |
116 | 109 |
117 void CastTransportSenderIPC::OnRtpStatistics( | |
118 bool audio, | |
119 const media::cast::transport::RtcpSenderInfo& sender_info, | |
120 base::TimeTicks time_sent, | |
121 uint32 rtp_timestamp) { | |
122 const media::cast::transport::CastTransportRtpStatistics& callback = | |
123 audio ? audio_rtp_callback_ : video_rtp_callback_; | |
124 callback.Run(sender_info, time_sent, rtp_timestamp); | |
125 } | |
126 | |
127 void CastTransportSenderIPC::OnRawEvents( | 110 void CastTransportSenderIPC::OnRawEvents( |
128 const std::vector<media::cast::PacketEvent>& packet_events) { | 111 const std::vector<media::cast::PacketEvent>& packet_events) { |
129 raw_events_callback_.Run(packet_events); | 112 raw_events_callback_.Run(packet_events); |
130 } | 113 } |
131 | 114 |
132 void CastTransportSenderIPC::Send(IPC::Message* message) { | 115 void CastTransportSenderIPC::Send(IPC::Message* message) { |
133 if (CastIPCDispatcher::Get()) { | 116 if (CastIPCDispatcher::Get()) { |
134 CastIPCDispatcher::Get()->Send(message); | 117 CastIPCDispatcher::Get()->Send(message); |
135 } else { | 118 } else { |
136 delete message; | 119 delete message; |
137 } | 120 } |
138 } | 121 } |
OLD | NEW |