Move ownership of decoders to VCMDecoderDatabase
Bug: webrtc:14497
Change-Id: Idf719a1d1605f19fcf46eff7990c61144f2b9e3b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/277401
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38251}
diff --git a/modules/video_coding/decoder_database_unittest.cc b/modules/video_coding/decoder_database_unittest.cc
index f2f250c..2e9c91b 100644
--- a/modules/video_coding/decoder_database_unittest.cc
+++ b/modules/video_coding/decoder_database_unittest.cc
@@ -10,6 +10,9 @@
#include "modules/video_coding/decoder_database.h"
+#include <memory>
+#include <utility>
+
#include "api/test/mock_video_decoder.h"
#include "test/gmock.h"
#include "test/gtest.h"
@@ -25,10 +28,16 @@
constexpr int kPayloadType = 1;
ASSERT_FALSE(db.IsExternalDecoderRegistered(kPayloadType));
- NiceMock<MockVideoDecoder> decoder;
- db.RegisterExternalDecoder(kPayloadType, &decoder);
+ auto decoder = std::make_unique<NiceMock<MockVideoDecoder>>();
+ bool decoder_deleted = false;
+ EXPECT_CALL(*decoder, Destruct).WillOnce([&decoder_deleted] {
+ decoder_deleted = true;
+ });
+
+ db.RegisterExternalDecoder(kPayloadType, std::move(decoder));
EXPECT_TRUE(db.IsExternalDecoderRegistered(kPayloadType));
- EXPECT_EQ(db.DeregisterExternalDecoder(kPayloadType), &decoder);
+ db.DeregisterExternalDecoder(kPayloadType);
+ EXPECT_TRUE(decoder_deleted);
EXPECT_FALSE(db.IsExternalDecoderRegistered(kPayloadType));
}