OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |