Call InitDecode with proper resolution.

Prevents double-initialization of decoders due to resolution changes
between initial database settings and first incoming frame.

BUG=webrtc:5251
R=mflodman@webrtc.org

Review URL: https://codereview.webrtc.org/1474193002 .

Cr-Commit-Position: refs/heads/master@{#10822}
This commit is contained in:
Peter Boström
2015-11-27 14:23:21 +01:00
parent 795dbe4e0f
commit e997a7de14
3 changed files with 40 additions and 29 deletions

View File

@ -122,7 +122,8 @@ class VCMCodecDataBase {
// NULL is returned if no encoder with the specified payload type was found
// and the function failed to create one.
VCMGenericDecoder* GetDecoder(
uint8_t payload_type, VCMDecodedFrameCallback* decoded_frame_callback);
const VCMEncodedFrame& frame,
VCMDecodedFrameCallback* decoded_frame_callback);
// Deletes the memory of the decoder instance |decoder|. Used to delete
// deep copies returned by CreateDecoderCopy().
@ -139,7 +140,7 @@ class VCMCodecDataBase {
typedef std::map<uint8_t, VCMDecoderMapItem*> DecoderMap;
typedef std::map<uint8_t, VCMExtDecoderMapItem*> ExternalDecoderMap;
VCMGenericDecoder* CreateAndInitDecoder(uint8_t payload_type,
VCMGenericDecoder* CreateAndInitDecoder(const VCMEncodedFrame& frame,
VideoCodec* new_codec) const;
// Determines whether a new codec has to be created or not.