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 {