From 4ce478c42c74c08908659c8b22d7508bdafa4194 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Wed, 12 Aug 2020 09:42:04 -0400 Subject: [PATCH] accel: avoid copies Change-Id: I1c73a1db2636255f2c9912c8922b752e519b0ada --- src/media/media_encoder.cpp | 13 ++++++++----- src/media/video/accel.h | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/media/media_encoder.cpp b/src/media/media_encoder.cpp index f3988403c1..5efb03dbc1 100644 --- a/src/media/media_encoder.cpp +++ b/src/media/media_encoder.cpp @@ -46,10 +46,13 @@ extern "C" { #include <json/json.h> #include <sstream> #include <thread> // hardware_concurrency +#include <string_view> // Define following line if you need to debug libav SDP //#define DEBUG_SDP 1 +using namespace std::literals; + namespace jami { constexpr double LOGREG_PARAM_A {79}; @@ -979,17 +982,17 @@ MediaEncoder::initH263(AVCodecContext* encoderCtx, uint64_t br) void MediaEncoder::initAccel(AVCodecContext* encoderCtx, uint64_t br) { - if (!accel_) + if (not accel_) return; - if (accel_->getName() == "nvenc") { + if (accel_->getName() == "nvenc"sv) { // Use same parameters as software - } else if (accel_->getName() == "vaapi") { + } else if (accel_->getName() == "vaapi"sv) { // Use VBR encoding with bitrate target set to 80% of the maxrate av_opt_set_int(encoderCtx, "crf", -1, AV_OPT_SEARCH_CHILDREN); av_opt_set_int(encoderCtx, "b", br * 1000 * 0.8f, AV_OPT_SEARCH_CHILDREN); - } else if (accel_->getName() == "videotoolbox") { + } else if (accel_->getName() == "videotoolbox"sv) { // Use same parameters as software - } else if (accel_->getName() == "qsv") { + } else if (accel_->getName() == "qsv"sv) { // Use Video Conferencing Mode av_opt_set_int(encoderCtx, "vcm", 1, AV_OPT_SEARCH_CHILDREN); av_opt_set_int(encoderCtx, "b", br * 1000 * 0.8f, AV_OPT_SEARCH_CHILDREN); diff --git a/src/media/video/accel.h b/src/media/video/accel.h index fade4290c9..cf26043984 100644 --- a/src/media/video/accel.h +++ b/src/media/video/accel.h @@ -83,7 +83,7 @@ public: /** * @brief Name of the hardware layer/API being used. */ - std::string getName() const { return name_; }; + const std::string& getName() const { return name_; }; /** * @brief Hardware format. -- GitLab