A few simplifications to CodecDatabase and VCMGenericDecoder.
* Remove the ReleaseDecoder and Release methods that were used in combination with deleting the decoder object. Now simply deleting the object does the right thing. * Remove 'friend' relationship between the two classes since they don't need to touch each other's state directly anymore. * Use std::unique_ptr for holding pointers and transferring ownership. These changes were previously reviewed here: https://codereview.webrtc.org/2764573002/ BUG=webrtc:7361, 695438 Review-Url: https://codereview.webrtc.org/2966823002 Cr-Commit-Position: refs/heads/master@{#18908}
This commit is contained in:
@ -107,9 +107,9 @@ class VCMCodecDataBase {
|
||||
const VCMEncodedFrame& frame,
|
||||
VCMDecodedFrameCallback* decoded_frame_callback);
|
||||
|
||||
// Deletes the memory of the decoder instance |decoder|. Used to delete
|
||||
// deep copies returned by CreateDecoderCopy().
|
||||
void ReleaseDecoder(VCMGenericDecoder* decoder) const;
|
||||
// Returns the current decoder (i.e. the same value as was last returned from
|
||||
// GetDecoder();
|
||||
VCMGenericDecoder* GetCurrentDecoder();
|
||||
|
||||
// Returns true if the currently active decoder prefer to decode frames late.
|
||||
// That means that frames must be decoded near the render times stamp.
|
||||
@ -121,8 +121,9 @@ class VCMCodecDataBase {
|
||||
typedef std::map<uint8_t, VCMDecoderMapItem*> DecoderMap;
|
||||
typedef std::map<uint8_t, VCMExtDecoderMapItem*> ExternalDecoderMap;
|
||||
|
||||
VCMGenericDecoder* CreateAndInitDecoder(const VCMEncodedFrame& frame,
|
||||
VideoCodec* new_codec) const;
|
||||
std::unique_ptr<VCMGenericDecoder> CreateAndInitDecoder(
|
||||
const VCMEncodedFrame& frame,
|
||||
VideoCodec* new_codec) const;
|
||||
|
||||
// Determines whether a new codec has to be created or not.
|
||||
// Checks every setting apart from maxFramerate and startBitrate.
|
||||
@ -130,9 +131,6 @@ class VCMCodecDataBase {
|
||||
|
||||
void DeleteEncoder();
|
||||
|
||||
// Create an internal Decoder given a codec type
|
||||
VCMGenericDecoder* CreateDecoder(VideoCodecType type) const;
|
||||
|
||||
const VCMDecoderMapItem* FindDecoderItem(uint8_t payload_type) const;
|
||||
|
||||
const VCMExtDecoderMapItem* FindExternalDecoderItem(
|
||||
@ -149,7 +147,7 @@ class VCMCodecDataBase {
|
||||
bool internal_source_;
|
||||
VCMEncodedFrameCallback* const encoded_frame_callback_;
|
||||
std::unique_ptr<VCMGenericEncoder> ptr_encoder_;
|
||||
VCMGenericDecoder* ptr_decoder_;
|
||||
std::unique_ptr<VCMGenericDecoder> ptr_decoder_;
|
||||
DecoderMap dec_map_;
|
||||
ExternalDecoderMap dec_external_map_;
|
||||
}; // VCMCodecDataBase
|
||||
|
||||
Reference in New Issue
Block a user