| 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 a29af2fc5b0c8caae761d6aa1cc4febcd8764aee..574719382c7ed686f9a6b9d44772fdfb33fcd199 100644
|
| --- a/content/renderer/media/video_track_recorder.cc
|
| +++ b/content/renderer/media/video_track_recorder.cc
|
| @@ -53,6 +53,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 {
|
| @@ -509,7 +514,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),
|
| @@ -692,6 +698,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();
|
|
|