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