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

Side by Side Diff: trunk/src/media/cast/video_sender/video_sender.cc

Issue 129113003: Revert 243647 "Cast:Adding cast_transport_config and cleaning up" (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 11 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/video_sender/video_sender.h" 5 #include "media/cast/video_sender/video_sender.h"
6 6
7 #include <list> 7 #include <list>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 VideoSender::VideoSender( 54 VideoSender::VideoSender(
55 scoped_refptr<CastEnvironment> cast_environment, 55 scoped_refptr<CastEnvironment> cast_environment,
56 const VideoSenderConfig& video_config, 56 const VideoSenderConfig& video_config,
57 const scoped_refptr<GpuVideoAcceleratorFactories>& gpu_factories, 57 const scoped_refptr<GpuVideoAcceleratorFactories>& gpu_factories,
58 transport::PacedPacketSender* const paced_packet_sender) 58 transport::PacedPacketSender* const paced_packet_sender)
59 : rtp_max_delay_( 59 : rtp_max_delay_(
60 base::TimeDelta::FromMilliseconds(video_config.rtp_max_delay_ms)), 60 base::TimeDelta::FromMilliseconds(video_config.rtp_max_delay_ms)),
61 max_frame_rate_(video_config.max_frame_rate), 61 max_frame_rate_(video_config.max_frame_rate),
62 cast_environment_(cast_environment), 62 cast_environment_(cast_environment),
63 rtcp_feedback_(new LocalRtcpVideoSenderFeedback(this)), 63 rtcp_feedback_(new LocalRtcpVideoSenderFeedback(this)),
64 rtp_sender_(new transport::RtpSender(cast_environment->Clock(), 64 rtp_sender_(new transport::RtpSender(cast_environment,
65 NULL, 65 NULL,
66 &video_config, 66 &video_config,
67 paced_packet_sender)), 67 paced_packet_sender)),
68 last_acked_frame_id_(-1), 68 last_acked_frame_id_(-1),
69 last_sent_frame_id_(-1), 69 last_sent_frame_id_(-1),
70 duplicate_ack_(0), 70 duplicate_ack_(0),
71 last_skip_count_(0), 71 last_skip_count_(0),
72 congestion_control_(cast_environment->Clock(), 72 congestion_control_(cast_environment->Clock(),
73 video_config.congestion_control_back_off, 73 video_config.congestion_control_back_off,
74 video_config.max_bitrate, 74 video_config.max_bitrate,
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 cast_environment_->Logging()->InsertFrameEvent(now, kVideoFrameReceived, 141 cast_environment_->Logging()->InsertFrameEvent(now, kVideoFrameReceived,
142 GetVideoRtpTimestamp(capture_time), kFrameIdUnknown); 142 GetVideoRtpTimestamp(capture_time), kFrameIdUnknown);
143 143
144 if (!video_encoder_->EncodeVideoFrame(video_frame, capture_time, 144 if (!video_encoder_->EncodeVideoFrame(video_frame, capture_time,
145 base::Bind(&VideoSender::SendEncodedVideoFrameMainThread, 145 base::Bind(&VideoSender::SendEncodedVideoFrameMainThread,
146 weak_factory_.GetWeakPtr()))) { 146 weak_factory_.GetWeakPtr()))) {
147 } 147 }
148 } 148 }
149 149
150 void VideoSender::SendEncodedVideoFrameMainThread( 150 void VideoSender::SendEncodedVideoFrameMainThread(
151 scoped_ptr<transport::EncodedVideoFrame> video_frame, 151 scoped_ptr<EncodedVideoFrame> video_frame,
152 const base::TimeTicks& capture_time) { 152 const base::TimeTicks& capture_time) {
153 SendEncodedVideoFrame(video_frame.get(), capture_time); 153 SendEncodedVideoFrame(video_frame.get(), capture_time);
154 } 154 }
155 155
156 bool VideoSender::EncryptVideoFrame( 156 bool VideoSender::EncryptVideoFrame(const EncodedVideoFrame& video_frame,
157 const transport::EncodedVideoFrame& video_frame, 157 EncodedVideoFrame* encrypted_frame) {
158 transport::EncodedVideoFrame* encrypted_frame) {
159 DCHECK(encryptor_) << "Invalid state"; 158 DCHECK(encryptor_) << "Invalid state";
160 159
161 if (!encryptor_->SetCounter(GetAesNonce(video_frame.frame_id, iv_mask_))) { 160 if (!encryptor_->SetCounter(GetAesNonce(video_frame.frame_id, iv_mask_))) {
162 NOTREACHED() << "Failed to set counter"; 161 NOTREACHED() << "Failed to set counter";
163 return false; 162 return false;
164 } 163 }
165 164
166 if (!encryptor_->Encrypt(video_frame.data, &encrypted_frame->data)) { 165 if (!encryptor_->Encrypt(video_frame.data, &encrypted_frame->data)) {
167 NOTREACHED() << "Encrypt error"; 166 NOTREACHED() << "Encrypt error";
168 return false; 167 return false;
169 } 168 }
170 encrypted_frame->codec = video_frame.codec; 169 encrypted_frame->codec = video_frame.codec;
171 encrypted_frame->key_frame = video_frame.key_frame; 170 encrypted_frame->key_frame = video_frame.key_frame;
172 encrypted_frame->frame_id = video_frame.frame_id; 171 encrypted_frame->frame_id = video_frame.frame_id;
173 encrypted_frame->last_referenced_frame_id = 172 encrypted_frame->last_referenced_frame_id =
174 video_frame.last_referenced_frame_id; 173 video_frame.last_referenced_frame_id;
175 return true; 174 return true;
176 } 175 }
177 176
178 void VideoSender::SendEncodedVideoFrame( 177 void VideoSender::SendEncodedVideoFrame(const EncodedVideoFrame* encoded_frame,
179 const transport::EncodedVideoFrame* encoded_frame, 178 const base::TimeTicks& capture_time) {
180 const base::TimeTicks& capture_time) {
181 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN)); 179 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
182 last_send_time_ = cast_environment_->Clock()->NowTicks(); 180 last_send_time_ = cast_environment_->Clock()->NowTicks();
183 181
184 if (encryptor_) { 182 if (encryptor_) {
185 transport::EncodedVideoFrame encrypted_video_frame; 183 EncodedVideoFrame encrypted_video_frame;
186 184
187 if (!EncryptVideoFrame(*encoded_frame, &encrypted_video_frame)) { 185 if (!EncryptVideoFrame(*encoded_frame, &encrypted_video_frame)) {
188 // Logging already done. 186 // Logging already done.
189 return; 187 return;
190 } 188 }
191 rtp_sender_->IncomingEncodedVideoFrame(&encrypted_video_frame, 189 rtp_sender_->IncomingEncodedVideoFrame(&encrypted_video_frame,
192 capture_time); 190 capture_time);
193 } else { 191 } else {
194 rtp_sender_->IncomingEncodedVideoFrame(encoded_frame, capture_time); 192 rtp_sender_->IncomingEncodedVideoFrame(encoded_frame, capture_time);
195 } 193 }
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN)); 446 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
449 MissingFramesAndPacketsMap missing_frames_and_packets; 447 MissingFramesAndPacketsMap missing_frames_and_packets;
450 PacketIdSet missing; 448 PacketIdSet missing;
451 missing_frames_and_packets.insert(std::make_pair(resend_frame_id, missing)); 449 missing_frames_and_packets.insert(std::make_pair(resend_frame_id, missing));
452 rtp_sender_->ResendPackets(missing_frames_and_packets); 450 rtp_sender_->ResendPackets(missing_frames_and_packets);
453 last_send_time_ = cast_environment_->Clock()->NowTicks(); 451 last_send_time_ = cast_environment_->Clock()->NowTicks();
454 } 452 }
455 453
456 } // namespace cast 454 } // namespace cast
457 } // namespace media 455 } // namespace media
OLDNEW
« no previous file with comments | « trunk/src/media/cast/video_sender/video_sender.h ('k') | trunk/src/media/cast/video_sender/video_sender_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698