From f328282cbf16f6e4ee882c0c5de0177a813ceef2 Mon Sep 17 00:00:00 2001 From: Daniela Date: Fri, 29 Sep 2017 14:14:54 +0200 Subject: [PATCH] Fix memory leak in video encoder. Bug: webrtc:8306 Change-Id: Iadc7a584ccf70a4f1df3f7f7af29e66a3698d93a Reviewed-on: https://webrtc-review.googlesource.com/4425 Commit-Queue: Daniela Jovanoska Petrenko Reviewed-by: Anders Carlsson Reviewed-by: Magnus Jedvert Cr-Commit-Position: refs/heads/master@{#20043} --- .../Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm b/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm index 8a2bafa09d..a953ce035f 100644 --- a/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm +++ b/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm @@ -274,7 +274,7 @@ CFStringRef ExtractProfile(const cricket::VideoCodec &codec) { @implementation RTCVideoEncoderH264 { RTCVideoCodecInfo *_codecInfo; - webrtc::BitrateAdjuster *_bitrateAdjuster; + std::unique_ptr _bitrateAdjuster; uint32_t _targetBitrateBps; uint32_t _encoderBitrateBps; RTCH264PacketizationMode _packetizationMode; @@ -299,7 +299,8 @@ CFStringRef ExtractProfile(const cricket::VideoCodec &codec) { - (instancetype)initWithCodecInfo:(RTCVideoCodecInfo *)codecInfo { if (self = [super init]) { _codecInfo = codecInfo; - _bitrateAdjuster = new webrtc::BitrateAdjuster(webrtc::Clock::GetRealTimeClock(), .5, .95); + _bitrateAdjuster.reset(new webrtc::BitrateAdjuster( + webrtc::Clock::GetRealTimeClock(), .5, .95)); _packetizationMode = RTCH264PacketizationModeNonInterleaved; _profile = ExtractProfile([codecInfo nativeVideoCodec]); LOG(LS_INFO) << "Using profile " << CFStringToString(_profile);