/* * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #include "modules/video_coding/utility/default_video_bitrate_allocator.h" #include namespace webrtc { DefaultVideoBitrateAllocator::DefaultVideoBitrateAllocator( const VideoCodec& codec) : codec_(codec) {} DefaultVideoBitrateAllocator::~DefaultVideoBitrateAllocator() {} VideoBitrateAllocation DefaultVideoBitrateAllocator::GetAllocation( uint32_t total_bitrate_bps, uint32_t framerate) { VideoBitrateAllocation allocation; if (total_bitrate_bps == 0 || !codec_.active) return allocation; if (total_bitrate_bps < codec_.minBitrate * 1000) { allocation.SetBitrate(0, 0, codec_.minBitrate * 1000); } else if (codec_.maxBitrate > 0 && total_bitrate_bps > codec_.maxBitrate * 1000) { allocation.SetBitrate(0, 0, codec_.maxBitrate * 1000); } else { allocation.SetBitrate(0, 0, total_bitrate_bps); } return allocation; } } // namespace webrtc