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

@ -14,6 +14,7 @@
#include <stdint.h>
#include <map>
#include <memory>
#include "absl/types/optional.h"
#include "api/sequence_checker.h"
@ -32,9 +33,9 @@ class VCMDecoderDatabase {
// Returns a pointer to the previously registered decoder or nullptr if none
// was registered for the `payload_type`.
VideoDecoder* DeregisterExternalDecoder(uint8_t payload_type);
void DeregisterExternalDecoder(uint8_t payload_type);
void RegisterExternalDecoder(uint8_t payload_type,
VideoDecoder* external_decoder);
std::unique_ptr<VideoDecoder> external_decoder);
bool IsExternalDecoderRegistered(uint8_t payload_type) const;
void RegisterReceiveCodec(uint8_t payload_type,
@ -63,7 +64,7 @@ class VCMDecoderDatabase {
// Initialization paramaters for decoders keyed by payload type.
std::map<uint8_t, VideoDecoder::Settings> decoder_settings_;
// Decoders keyed by payload type.
std::map<uint8_t, VideoDecoder*> decoders_
std::map<uint8_t, std::unique_ptr<VideoDecoder>> decoders_
RTC_GUARDED_BY(decoder_sequence_checker_);
};