OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "remoting/protocol/webrtc_dummy_video_encoder.h" | 5 #include "remoting/protocol/webrtc_dummy_video_encoder.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 header.fragmentationTimeDiff[0] = 0; | 164 header.fragmentationTimeDiff[0] = 0; |
165 | 165 |
166 return encoded_callback_->OnEncodedImage(encoded_image, &codec_specific_info, | 166 return encoded_callback_->OnEncodedImage(encoded_image, &codec_specific_info, |
167 &header); | 167 &header); |
168 } | 168 } |
169 | 169 |
170 WebrtcDummyVideoEncoderFactory::WebrtcDummyVideoEncoderFactory() | 170 WebrtcDummyVideoEncoderFactory::WebrtcDummyVideoEncoderFactory() |
171 : main_task_runner_(base::ThreadTaskRunnerHandle::Get()) { | 171 : main_task_runner_(base::ThreadTaskRunnerHandle::Get()) { |
172 // TODO(isheriff): These do not really affect anything internally | 172 // TODO(isheriff): These do not really affect anything internally |
173 // in webrtc. | 173 // in webrtc. |
174 codecs_.push_back(cricket::WebRtcVideoEncoderFactory::VideoCodec( | 174 codecs_.push_back(cricket::VideoCodec("VP8")); |
175 webrtc::kVideoCodecVP9, "VP8", 1280, 720, 30)); | 175 codecs_.push_back(cricket::VideoCodec("VP9")); |
176 codecs_.push_back(cricket::WebRtcVideoEncoderFactory::VideoCodec( | |
177 webrtc::kVideoCodecVP9, "VP9", 1280, 720, 30)); | |
178 } | 176 } |
179 | 177 |
180 WebrtcDummyVideoEncoderFactory::~WebrtcDummyVideoEncoderFactory() { | 178 WebrtcDummyVideoEncoderFactory::~WebrtcDummyVideoEncoderFactory() { |
181 DCHECK(encoders_.empty()); | 179 DCHECK(encoders_.empty()); |
182 } | 180 } |
183 | 181 |
184 webrtc::VideoEncoder* WebrtcDummyVideoEncoderFactory::CreateVideoEncoder( | 182 webrtc::VideoEncoder* WebrtcDummyVideoEncoderFactory::CreateVideoEncoder( |
185 webrtc::VideoCodecType type) { | 183 const cricket::VideoCodec& codec) { |
| 184 webrtc::VideoCodecType type = webrtc::PayloadNameToCodecType(codec.name) |
| 185 .value_or(webrtc::kVideoCodecUnknown); |
186 WebrtcDummyVideoEncoder* encoder = new WebrtcDummyVideoEncoder( | 186 WebrtcDummyVideoEncoder* encoder = new WebrtcDummyVideoEncoder( |
187 main_task_runner_, video_channel_state_observer_, type); | 187 main_task_runner_, video_channel_state_observer_, type); |
188 base::AutoLock lock(lock_); | 188 base::AutoLock lock(lock_); |
189 encoders_.push_back(base::WrapUnique(encoder)); | 189 encoders_.push_back(base::WrapUnique(encoder)); |
190 if (encoder_created_callback_) { | 190 if (encoder_created_callback_) { |
191 main_task_runner_->PostTask(FROM_HERE, | 191 main_task_runner_->PostTask(FROM_HERE, |
192 base::Bind(encoder_created_callback_, type)); | 192 base::Bind(encoder_created_callback_, type)); |
193 } | 193 } |
194 return encoder; | 194 return encoder; |
195 } | 195 } |
196 | 196 |
197 const std::vector<cricket::WebRtcVideoEncoderFactory::VideoCodec>& | 197 const std::vector<cricket::VideoCodec>& |
198 WebrtcDummyVideoEncoderFactory::codecs() const { | 198 WebrtcDummyVideoEncoderFactory::supported_codecs() const { |
199 return codecs_; | 199 return codecs_; |
200 } | 200 } |
201 | 201 |
202 bool WebrtcDummyVideoEncoderFactory::EncoderTypeHasInternalSource( | 202 bool WebrtcDummyVideoEncoderFactory::EncoderTypeHasInternalSource( |
203 webrtc::VideoCodecType type) const { | 203 webrtc::VideoCodecType type) const { |
204 // Returns true to directly provide encoded frames to webrtc. | 204 // Returns true to directly provide encoded frames to webrtc. |
205 return true; | 205 return true; |
206 } | 206 } |
207 | 207 |
208 void WebrtcDummyVideoEncoderFactory::DestroyVideoEncoder( | 208 void WebrtcDummyVideoEncoderFactory::DestroyVideoEncoder( |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 void WebrtcDummyVideoEncoderFactory::SetVideoChannelStateObserver( | 243 void WebrtcDummyVideoEncoderFactory::SetVideoChannelStateObserver( |
244 base::WeakPtr<VideoChannelStateObserver> video_channel_state_observer) { | 244 base::WeakPtr<VideoChannelStateObserver> video_channel_state_observer) { |
245 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 245 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
246 DCHECK(encoders_.empty()); | 246 DCHECK(encoders_.empty()); |
247 base::AutoLock lock(lock_); | 247 base::AutoLock lock(lock_); |
248 video_channel_state_observer_ = video_channel_state_observer; | 248 video_channel_state_observer_ = video_channel_state_observer; |
249 } | 249 } |
250 | 250 |
251 } // namespace protocol | 251 } // namespace protocol |
252 } // namespace remoting | 252 } // namespace remoting |
OLD | NEW |