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