Make EncodeResultCallback rvalue ref-qualified.
Bug: b/336978562
Change-Id: Icc9be7a5ad095304bf68e19ffedca77d8bc1810c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/349266
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42285}
diff --git a/api/video_codecs/libaom_av1_encoder_factory.cc b/api/video_codecs/libaom_av1_encoder_factory.cc
index 7e3c583..29c4eb6 100644
--- a/api/video_codecs/libaom_av1_encoder_factory.cc
+++ b/api/video_codecs/libaom_av1_encoder_factory.cc
@@ -14,6 +14,7 @@
#include <map>
#include <memory>
#include <string>
+#include <utility>
#include <vector>
#include "absl/algorithm/container.h"
@@ -619,7 +620,7 @@
void DoErrorCallback(std::vector<FrameEncodeSettings>& frame_settings) {
for (FrameEncodeSettings& settings : frame_settings) {
if (settings.result_callback) {
- settings.result_callback({});
+ std::move(settings.result_callback)({});
// To avoid invoking any callback more than once.
settings.result_callback = {};
}
@@ -788,7 +789,7 @@
return;
} else {
RTC_CHECK(settings.result_callback);
- settings.result_callback(result);
+ std::move(settings.result_callback)(result);
// To avoid invoking any callback more than once.
settings.result_callback = {};
}
diff --git a/api/video_codecs/video_encoder_interface.h b/api/video_codecs/video_encoder_interface.h
index 55ef558..de7c118 100644
--- a/api/video_codecs/video_encoder_interface.h
+++ b/api/video_codecs/video_encoder_interface.h
@@ -52,7 +52,7 @@
};
using EncodeResult = absl::variant<EncodingError, EncodedData>;
using EncodeResultCallback =
- absl::AnyInvocable<void(const EncodeResult& result)>;
+ absl::AnyInvocable<void(const EncodeResult& result) &&>;
struct FrameEncodeSettings {
struct Cbr {