OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 * | 9 * |
10 */ | 10 */ |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 | 206 |
207 SEncParamExt encoder_params = CreateEncoderParams(); | 207 SEncParamExt encoder_params = CreateEncoderParams(); |
208 // Initialize. | 208 // Initialize. |
209 if (openh264_encoder_->InitializeExt(&encoder_params) != 0) { | 209 if (openh264_encoder_->InitializeExt(&encoder_params) != 0) { |
210 LOG(LS_ERROR) << "Failed to initialize OpenH264 encoder"; | 210 LOG(LS_ERROR) << "Failed to initialize OpenH264 encoder"; |
211 Release(); | 211 Release(); |
212 ReportError(); | 212 ReportError(); |
213 return WEBRTC_VIDEO_CODEC_ERROR; | 213 return WEBRTC_VIDEO_CODEC_ERROR; |
214 } | 214 } |
215 // TODO(pbos): Base init params on these values before submitting. | 215 // TODO(pbos): Base init params on these values before submitting. |
216 quality_scaler_.Init(QualityScaler::kLowH264QpThreshold, | 216 quality_scaler_.Init(codec_settings_.codecType, codec_settings_.startBitrate, |
217 QualityScaler::kBadH264QpThreshold, | 217 codec_settings_.width, codec_settings_.height, |
218 codec_settings_.startBitrate, codec_settings_.width, | 218 codec_settings_.maxFramerate); |
219 codec_settings_.height, codec_settings_.maxFramerate); | |
220 int video_format = EVideoFormatType::videoFormatI420; | 219 int video_format = EVideoFormatType::videoFormatI420; |
221 openh264_encoder_->SetOption(ENCODER_OPTION_DATAFORMAT, | 220 openh264_encoder_->SetOption(ENCODER_OPTION_DATAFORMAT, |
222 &video_format); | 221 &video_format); |
223 | 222 |
224 // Initialize encoded image. Default buffer size: size of unencoded data. | 223 // Initialize encoded image. Default buffer size: size of unencoded data. |
225 encoded_image_._size = CalcBufferSize( | 224 encoded_image_._size = CalcBufferSize( |
226 kI420, codec_settings_.width, codec_settings_.height); | 225 kI420, codec_settings_.width, codec_settings_.height); |
227 encoded_image_._buffer = new uint8_t[encoded_image_._size]; | 226 encoded_image_._buffer = new uint8_t[encoded_image_._size]; |
228 encoded_image_buffer_.reset(encoded_image_._buffer); | 227 encoded_image_buffer_.reset(encoded_image_._buffer); |
229 encoded_image_._completeFrame = true; | 228 encoded_image_._completeFrame = true; |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
470 | 469 |
471 int32_t H264EncoderImpl::SetPeriodicKeyFrames(bool enable) { | 470 int32_t H264EncoderImpl::SetPeriodicKeyFrames(bool enable) { |
472 return WEBRTC_VIDEO_CODEC_OK; | 471 return WEBRTC_VIDEO_CODEC_OK; |
473 } | 472 } |
474 | 473 |
475 void H264EncoderImpl::OnDroppedFrame() { | 474 void H264EncoderImpl::OnDroppedFrame() { |
476 quality_scaler_.ReportDroppedFrame(); | 475 quality_scaler_.ReportDroppedFrame(); |
477 } | 476 } |
478 | 477 |
479 } // namespace webrtc | 478 } // namespace webrtc |
OLD | NEW |