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

Side by Side Diff: media/cast/cast_sender_impl.cc

Issue 116623002: Cast: Adding support for GPU accelerated encode (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed dependency on content Created 7 years 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
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 #include "media/cast/cast_sender_impl.h" 4 #include "media/cast/cast_sender_impl.h"
5 5
6 #include "base/bind.h" 6 #include "base/bind.h"
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "media/base/video_frame.h" 10 #include "media/base/video_frame.h"
(...skipping 14 matching lines...) Expand all
25 video_sender_(video_sender) {} 25 video_sender_(video_sender) {}
26 26
27 virtual void InsertRawVideoFrame( 27 virtual void InsertRawVideoFrame(
28 const scoped_refptr<media::VideoFrame>& video_frame, 28 const scoped_refptr<media::VideoFrame>& video_frame,
29 const base::TimeTicks& capture_time) OVERRIDE { 29 const base::TimeTicks& capture_time) OVERRIDE {
30 cast_environment_->PostTask(CastEnvironment::MAIN, FROM_HERE, 30 cast_environment_->PostTask(CastEnvironment::MAIN, FROM_HERE,
31 base::Bind(&VideoSender::InsertRawVideoFrame, video_sender_, 31 base::Bind(&VideoSender::InsertRawVideoFrame, video_sender_,
32 video_frame, capture_time)); 32 video_frame, capture_time));
33 } 33 }
34 34
35 virtual void InsertCodedVideoFrame(const EncodedVideoFrame* video_frame,
36 const base::TimeTicks& capture_time,
37 const base::Closure callback) OVERRIDE {
38 cast_environment_->PostTask(CastEnvironment::MAIN, FROM_HERE,
39 base::Bind(&VideoSender::InsertCodedVideoFrame, video_sender_,
40 video_frame, capture_time, callback));
41 }
42
43 virtual void InsertAudio(const AudioBus* audio_bus, 35 virtual void InsertAudio(const AudioBus* audio_bus,
44 const base::TimeTicks& recorded_time, 36 const base::TimeTicks& recorded_time,
45 const base::Closure& done_callback) OVERRIDE { 37 const base::Closure& done_callback) OVERRIDE {
46 cast_environment_->PostTask(CastEnvironment::MAIN, FROM_HERE, 38 cast_environment_->PostTask(CastEnvironment::MAIN, FROM_HERE,
47 base::Bind(&AudioSender::InsertAudio, audio_sender_, 39 base::Bind(&AudioSender::InsertAudio, audio_sender_,
48 audio_bus, recorded_time, done_callback)); 40 audio_bus, recorded_time, done_callback));
49 } 41 }
50 42
51 virtual void InsertCodedAudioFrame(const EncodedAudioFrame* audio_frame, 43 virtual void InsertCodedAudioFrame(const EncodedAudioFrame* audio_frame,
52 const base::TimeTicks& recorded_time, 44 const base::TimeTicks& recorded_time,
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 base::WeakPtr<AudioSender> audio_sender_; 138 base::WeakPtr<AudioSender> audio_sender_;
147 base::WeakPtr<VideoSender> video_sender_; 139 base::WeakPtr<VideoSender> video_sender_;
148 const uint32 ssrc_of_audio_sender_; 140 const uint32 ssrc_of_audio_sender_;
149 const uint32 ssrc_of_video_sender_; 141 const uint32 ssrc_of_video_sender_;
150 }; 142 };
151 143
152 CastSender* CastSender::CreateCastSender( 144 CastSender* CastSender::CreateCastSender(
153 scoped_refptr<CastEnvironment> cast_environment, 145 scoped_refptr<CastEnvironment> cast_environment,
154 const AudioSenderConfig& audio_config, 146 const AudioSenderConfig& audio_config,
155 const VideoSenderConfig& video_config, 147 const VideoSenderConfig& video_config,
156 VideoEncoderController* const video_encoder_controller, 148 const scoped_refptr<GpuVideoAcceleratorFactories>& gpu_factories,
157 PacketSender* const packet_sender) { 149 PacketSender* const packet_sender) {
158 return new CastSenderImpl(cast_environment, 150 return new CastSenderImpl(cast_environment, audio_config, video_config,
159 audio_config, 151 gpu_factories, packet_sender);
160 video_config,
161 video_encoder_controller,
162 packet_sender);
163 } 152 }
164 153
165 CastSenderImpl::CastSenderImpl( 154 CastSenderImpl::CastSenderImpl(
166 scoped_refptr<CastEnvironment> cast_environment, 155 scoped_refptr<CastEnvironment> cast_environment,
167 const AudioSenderConfig& audio_config, 156 const AudioSenderConfig& audio_config,
168 const VideoSenderConfig& video_config, 157 const VideoSenderConfig& video_config,
169 VideoEncoderController* const video_encoder_controller, 158 const scoped_refptr<GpuVideoAcceleratorFactories>& gpu_factories,
170 PacketSender* const packet_sender) 159 PacketSender* const packet_sender)
171 : pacer_(cast_environment, packet_sender), 160 : pacer_(cast_environment, packet_sender),
172 audio_sender_(cast_environment, audio_config, &pacer_), 161 audio_sender_(cast_environment, audio_config, &pacer_),
173 video_sender_(cast_environment, video_config, video_encoder_controller, 162 video_sender_(cast_environment, video_config, gpu_factories, &pacer_),
174 &pacer_),
175 frame_input_(new LocalFrameInput(cast_environment, 163 frame_input_(new LocalFrameInput(cast_environment,
176 audio_sender_.AsWeakPtr(), 164 audio_sender_.AsWeakPtr(),
177 video_sender_.AsWeakPtr())), 165 video_sender_.AsWeakPtr())),
178 packet_receiver_(new LocalCastSenderPacketReceiver(cast_environment, 166 packet_receiver_(new LocalCastSenderPacketReceiver(cast_environment,
179 audio_sender_.AsWeakPtr(), video_sender_.AsWeakPtr(), 167 audio_sender_.AsWeakPtr(), video_sender_.AsWeakPtr(),
180 audio_config.incoming_feedback_ssrc, 168 audio_config.incoming_feedback_ssrc,
181 video_config.incoming_feedback_ssrc)) {} 169 video_config.incoming_feedback_ssrc)) {}
182 170
183 CastSenderImpl::~CastSenderImpl() {} 171 CastSenderImpl::~CastSenderImpl() {}
184 172
185 scoped_refptr<FrameInput> CastSenderImpl::frame_input() { 173 scoped_refptr<FrameInput> CastSenderImpl::frame_input() {
186 return frame_input_; 174 return frame_input_;
187 } 175 }
188 176
189 scoped_refptr<PacketReceiver> CastSenderImpl::packet_receiver() { 177 scoped_refptr<PacketReceiver> CastSenderImpl::packet_receiver() {
190 return packet_receiver_; 178 return packet_receiver_;
191 } 179 }
192 180
193 } // namespace cast 181 } // namespace cast
194 } // namespace media 182 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698