| Index: content/renderer/media/video_track_recorder.cc
|
| diff --git a/content/renderer/media/video_track_recorder.cc b/content/renderer/media/video_track_recorder.cc
|
| index d924f1bfcf1feb2ed343ad8a43cccfcd6766f97f..22c26a87d73cd2b2547f39dfddd8ec0f7412b3b4 100644
|
| --- a/content/renderer/media/video_track_recorder.cc
|
| +++ b/content/renderer/media/video_track_recorder.cc
|
| @@ -1023,7 +1023,7 @@ void H264Encoder::ConfigureEncoderOnEncodingTaskRunner(const gfx::Size& size) {
|
| init_params.iMultipleThreadIdc = 1;
|
|
|
| // TODO(mcasas): consider reducing complexity if there are few CPUs available.
|
| - DCHECK_EQ(MEDIUM_COMPLEXITY, init_params.iComplexityMode);
|
| + init_params.iComplexityMode = MEDIUM_COMPLEXITY;
|
| DCHECK(!init_params.bEnableDenoise);
|
| DCHECK(init_params.bEnableFrameSkip);
|
|
|
| @@ -1032,8 +1032,14 @@ void H264Encoder::ConfigureEncoderOnEncodingTaskRunner(const gfx::Size& size) {
|
| init_params.sSpatialLayers[0].iVideoWidth = init_params.iPicWidth;
|
| init_params.sSpatialLayers[0].iVideoHeight = init_params.iPicHeight;
|
| init_params.sSpatialLayers[0].iSpatialBitrate = init_params.iTargetBitrate;
|
| - // Slice num according to number of threads.
|
| - init_params.sSpatialLayers[0].sSliceCfg.uiSliceMode = SM_AUTO_SLICE;
|
| +
|
| + // When uiSliceMode = SM_FIXEDSLCNUM_SLICE, uiSliceNum = 0 means auto design
|
| + // it with cpu core number.
|
| + // TODO(sprang): Set to 0 when we understand why the rate controller borks
|
| + // when uiSliceNum > 1. See https://github.com/cisco/openh264/issues/2591
|
| + init_params.sSpatialLayers[0].sSliceArgument.uiSliceNum = 1;
|
| + init_params.sSpatialLayers[0].sSliceArgument.uiSliceMode =
|
| + SM_FIXEDSLCNUM_SLICE;
|
|
|
| if (openh264_encoder_->InitializeExt(&init_params) != cmResultSuccess) {
|
| NOTREACHED() << "Failed to initialize OpenH264 encoder";
|
|
|