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

Side by Side Diff: media/cast/transport/cast_transport_sender_impl.cc

Issue 281453003: Cast: Simplify code path for RTCP sender report (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 | Annotate | Revision Log
OLDNEW
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/transport/cast_transport_sender_impl.h" 5 #include "media/cast/transport/cast_transport_sender_impl.h"
6 6
7 #include "base/single_thread_task_runner.h" 7 #include "base/single_thread_task_runner.h"
8 #include "media/cast/transport/cast_transport_config.h" 8 #include "media/cast/transport/cast_transport_config.h"
9 #include "media/cast/transport/cast_transport_defines.h" 9 #include "media/cast/transport/cast_transport_defines.h"
10 10
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 108
109 void CastTransportSenderImpl::InsertCodedVideoFrame( 109 void CastTransportSenderImpl::InsertCodedVideoFrame(
110 const EncodedVideoFrame* video_frame, 110 const EncodedVideoFrame* video_frame,
111 const base::TimeTicks& capture_time) { 111 const base::TimeTicks& capture_time) {
112 DCHECK(video_sender_) << "Video sender uninitialized"; 112 DCHECK(video_sender_) << "Video sender uninitialized";
113 video_sender_->InsertCodedVideoFrame(video_frame, capture_time); 113 video_sender_->InsertCodedVideoFrame(video_frame, capture_time);
114 } 114 }
115 115
116 void CastTransportSenderImpl::SendRtcpFromRtpSender( 116 void CastTransportSenderImpl::SendRtcpFromRtpSender(
117 uint32 packet_type_flags, 117 uint32 packet_type_flags,
118 const RtcpSenderInfo& sender_info, 118 uint32 ntp_seconds,
119 uint32 ntp_fraction,
120 uint32 rtp_timestamp,
119 const RtcpDlrrReportBlock& dlrr, 121 const RtcpDlrrReportBlock& dlrr,
120 uint32 sending_ssrc, 122 uint32 sending_ssrc,
121 const std::string& c_name) { 123 const std::string& c_name) {
124 RtcpSenderInfo sender_info;
125 sender_info.ntp_seconds = ntp_seconds;
126 sender_info.ntp_fraction = ntp_fraction;
127 sender_info.rtp_timestamp = rtp_timestamp;
128 if (audio_sender_ && audio_sender_->ssrc() == sending_ssrc) {
129 sender_info.send_packet_count = audio_sender_->send_packet_count();
130 sender_info.send_octet_count = audio_sender_->send_octet_count();
131 } else if (video_sender_ && video_sender_->ssrc() == sending_ssrc) {
132 sender_info.send_packet_count = video_sender_->send_packet_count();
133 sender_info.send_octet_count = video_sender_->send_octet_count();
134 } else {
135 LOG(ERROR) << "Sending RTCP with an invalid SSRC.";
136 return;
137 }
122 rtcp_builder_.SendRtcpFromRtpSender( 138 rtcp_builder_.SendRtcpFromRtpSender(
123 packet_type_flags, sender_info, dlrr, sending_ssrc, c_name); 139 packet_type_flags, sender_info, dlrr, sending_ssrc, c_name);
124 } 140 }
125 141
126 void CastTransportSenderImpl::ResendPackets( 142 void CastTransportSenderImpl::ResendPackets(
127 bool is_audio, 143 bool is_audio,
128 const MissingFramesAndPacketsMap& missing_packets) { 144 const MissingFramesAndPacketsMap& missing_packets) {
129 if (is_audio) { 145 if (is_audio) {
130 DCHECK(audio_sender_) << "Audio sender uninitialized"; 146 DCHECK(audio_sender_) << "Audio sender uninitialized";
131 audio_sender_->ResendPackets(missing_packets); 147 audio_sender_->ResendPackets(missing_packets);
132 } else { 148 } else {
133 DCHECK(video_sender_) << "Video sender uninitialized"; 149 DCHECK(video_sender_) << "Video sender uninitialized";
134 video_sender_->ResendPackets(missing_packets); 150 video_sender_->ResendPackets(missing_packets);
135 } 151 }
136 } 152 }
137 153
138 void CastTransportSenderImpl::SubscribeAudioRtpStatsCallback(
139 const CastTransportRtpStatistics& callback) {
140 DCHECK(audio_sender_) << "Audio sender uninitialized";
141 audio_sender_->SubscribeAudioRtpStatsCallback(callback);
142 }
143
144 void CastTransportSenderImpl::SubscribeVideoRtpStatsCallback(
145 const CastTransportRtpStatistics& callback) {
146 DCHECK(video_sender_) << "Video sender uninitialized";
147 video_sender_->SubscribeVideoRtpStatsCallback(callback);
148 }
149
150 void CastTransportSenderImpl::SendRawEvents() { 154 void CastTransportSenderImpl::SendRawEvents() {
151 DCHECK(event_subscriber_.get()); 155 DCHECK(event_subscriber_.get());
152 DCHECK(!raw_events_callback_.is_null()); 156 DCHECK(!raw_events_callback_.is_null());
153 std::vector<PacketEvent> packet_events; 157 std::vector<PacketEvent> packet_events;
154 event_subscriber_->GetPacketEventsAndReset(&packet_events); 158 event_subscriber_->GetPacketEventsAndReset(&packet_events);
155 raw_events_callback_.Run(packet_events); 159 raw_events_callback_.Run(packet_events);
156 } 160 }
157 161
158 } // namespace transport 162 } // namespace transport
159 } // namespace cast 163 } // namespace cast
160 } // namespace media 164 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698