#include "remoting/codec/webrtc_video_encoder.h"
#include "base/system/sys_info.h"
namespace remoting {
WebrtcVideoEncoder::FrameStats::FrameStats() = default;
WebrtcVideoEncoder::FrameStats::FrameStats(const FrameStats&) = default;
WebrtcVideoEncoder::FrameStats& WebrtcVideoEncoder::FrameStats::operator=(
const FrameStats&) = default;
WebrtcVideoEncoder::FrameStats::~FrameStats() = default;
std::unique_ptr<WebrtcVideoEncoder::FrameStats>
WebrtcVideoEncoder::FrameStats::Clone() const {
return std::make_unique<FrameStats>(*this);
}
WebrtcVideoEncoder::EncodedFrame::EncodedFrame() = default;
WebrtcVideoEncoder::EncodedFrame::~EncodedFrame() = default;
WebrtcVideoEncoder::EncodedFrame::EncodedFrame(
WebrtcVideoEncoder::EncodedFrame&&) = default;
WebrtcVideoEncoder::EncodedFrame& WebrtcVideoEncoder::EncodedFrame::operator=(
WebrtcVideoEncoder::EncodedFrame&&) = default;
int WebrtcVideoEncoder::GetEncoderThreadCount(int frame_width) {
int thread_num;
if (frame_width >= 5120) {
thread_num = 32;
} else if (frame_width >= 3840) {
thread_num = 16;
} else if (frame_width >= 2560) {
thread_num = 8;
} else if (frame_width >= 1280) {
thread_num = 4;
} else if (frame_width >= 720) {
thread_num = 2;
} else {
thread_num = 1;
}
return std::min(thread_num, ((base::SysInfo::NumberOfProcessors() + 1) / 2));
}
}