| 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 |