| 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 22c26a87d73cd2b2547f39dfddd8ec0f7412b3b4..5eed3cb9daea96172c4d8a1f150a28a3d94e0cb2 100644
|
| --- a/content/renderer/media/video_track_recorder.cc
|
| +++ b/content/renderer/media/video_track_recorder.cc
|
| @@ -52,6 +52,11 @@ namespace content {
|
|
|
| namespace {
|
|
|
| +// HW encoders expect a nonzero bitrate, so |kVEADefaultBitratePerPixel| is used
|
| +// to estimate bits per second for ~30 fps with ~1/16 compression rate.
|
| +const int kVEADefaultBitratePerPixel = 2;
|
| +// Number of output buffers used to copy the encoded data coming from HW
|
| +// encoders.
|
| const int kVEAEncoderOutputBufferCount = 4;
|
|
|
| static struct {
|
| @@ -502,7 +507,8 @@ VEAEncoder::VEAEncoder(
|
| media::VideoCodecProfile codec,
|
| const gfx::Size& size)
|
| : Encoder(on_encoded_video_callback,
|
| - bits_per_second,
|
| + bits_per_second > 0 ? bits_per_second
|
| + : size.GetArea() * kVEADefaultBitratePerPixel,
|
| RenderThreadImpl::current()->GetGpuFactories()->GetTaskRunner()),
|
| gpu_factories_(RenderThreadImpl::current()->GetGpuFactories()),
|
| codec_(codec),
|
| @@ -685,6 +691,7 @@ void VEAEncoder::ConfigureEncoderOnEncodingTaskRunner(const gfx::Size& size) {
|
| DVLOG(3) << __func__;
|
| DCHECK(encoding_task_runner_->BelongsToCurrentThread());
|
| DCHECK(gpu_factories_->GetTaskRunner()->BelongsToCurrentThread());
|
| + DCHECK_GT(bits_per_second_, 0);
|
|
|
| input_size_ = size;
|
| video_encoder_ = gpu_factories_->CreateVideoEncodeAccelerator();
|
|
|