| Index: webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc
|
| diff --git a/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc b/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc
|
| index 3dfa0b559d1228725ae8820bbb0f2aecd551b410..f29a4895ff181c72c4f5342082d5efb14e147955 100644
|
| --- a/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc
|
| +++ b/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc
|
| @@ -16,6 +16,7 @@
|
| #include "third_party/openh264/src/codec/api/svc/codec_api.h"
|
| #include "third_party/openh264/src/codec/api/svc/codec_app_def.h"
|
| #include "third_party/openh264/src/codec/api/svc/codec_def.h"
|
| +#include "third_party/openh264/src/codec/api/svc/codec_ver.h"
|
|
|
| #include "webrtc/base/checks.h"
|
| #include "webrtc/base/logging.h"
|
| @@ -149,10 +150,10 @@ static void RtpFragmentize(EncodedImage* encoded_image,
|
|
|
| H264EncoderImpl::H264EncoderImpl()
|
| : openh264_encoder_(nullptr),
|
| + number_of_cores_(0),
|
| encoded_image_callback_(nullptr),
|
| has_reported_init_(false),
|
| - has_reported_error_(false) {
|
| -}
|
| + has_reported_error_(false) {}
|
|
|
| H264EncoderImpl::~H264EncoderImpl() {
|
| Release();
|
| @@ -438,8 +439,16 @@ SEncParamExt H264EncoderImpl::CreateEncoderParams() const {
|
| encoder_params.iTargetBitrate;
|
| encoder_params.sSpatialLayers[0].iMaxSpatialBitrate =
|
| encoder_params.iMaxBitrate;
|
| +#if (OPENH264_MAJOR == 1) && (OPENH264_MINOR <= 5)
|
| // Slice num according to number of threads.
|
| encoder_params.sSpatialLayers[0].sSliceCfg.uiSliceMode = SM_AUTO_SLICE;
|
| +#else
|
| + // When uiSliceMode = SM_FIXEDSLCNUM_SLICE, uiSliceNum = 0 means auto design
|
| + // it with cpu core number.
|
| + encoder_params.sSpatialLayers[0].sSliceArgument.uiSliceNum = 0;
|
| + encoder_params.sSpatialLayers[0].sSliceArgument.uiSliceMode =
|
| + SM_FIXEDSLCNUM_SLICE;
|
| +#endif
|
|
|
| return encoder_params;
|
| }
|
|
|