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}
This commit is contained in:
Tommi
2022-09-29 21:02:04 +02:00
committed by WebRTC LUCI CQ
parent 1b84da7901
commit 73009ec641
5 changed files with 28 additions and 28 deletions

View File

@ -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 @@ TEST(VCMDecoderDatabaseTest, RegisterExternalDecoder) {
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));
}