diff --git a/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm b/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm index 44983beb6a..a410e273cb 100644 --- a/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm +++ b/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm @@ -664,10 +664,10 @@ CFStringRef ExtractProfile(const cricket::VideoCodec &codec) { std::unique_ptr buffer(new rtc::Buffer()); RTCRtpFragmentationHeader *header; { - webrtc::RTPFragmentationHeader *header_cpp; + std::unique_ptr header_cpp; bool result = H264CMSampleBufferToAnnexBBuffer(sampleBuffer, isKeyframe, buffer.get(), &header_cpp); - header = [[RTCRtpFragmentationHeader alloc] initWithNativeFragmentationHeader:header_cpp]; + header = [[RTCRtpFragmentationHeader alloc] initWithNativeFragmentationHeader:header_cpp.get()]; if (!result) { return; } diff --git a/webrtc/sdk/objc/Framework/Classes/VideoToolbox/nalu_rewriter.cc b/webrtc/sdk/objc/Framework/Classes/VideoToolbox/nalu_rewriter.cc index 47afe9561e..2804254be8 100644 --- a/webrtc/sdk/objc/Framework/Classes/VideoToolbox/nalu_rewriter.cc +++ b/webrtc/sdk/objc/Framework/Classes/VideoToolbox/nalu_rewriter.cc @@ -33,10 +33,10 @@ bool H264CMSampleBufferToAnnexBBuffer( CMSampleBufferRef avcc_sample_buffer, bool is_keyframe, rtc::Buffer* annexb_buffer, - webrtc::RTPFragmentationHeader** out_header) { + std::unique_ptr *out_header) { RTC_DCHECK(avcc_sample_buffer); RTC_DCHECK(out_header); - *out_header = nullptr; + out_header->reset(nullptr); // Get format description from the sample buffer. CMVideoFormatDescriptionRef description = @@ -143,8 +143,7 @@ bool H264CMSampleBufferToAnnexBBuffer( } RTC_DCHECK_EQ(bytes_remaining, (size_t)0); - std::unique_ptr header; - header.reset(new webrtc::RTPFragmentationHeader()); + std::unique_ptr header(new RTPFragmentationHeader()); header->VerifyAndAllocateFragmentationHeader(frag_offsets.size()); RTC_DCHECK_EQ(frag_lengths.size(), frag_offsets.size()); for (size_t i = 0; i < frag_offsets.size(); ++i) { @@ -153,7 +152,7 @@ bool H264CMSampleBufferToAnnexBBuffer( header->fragmentationPlType[i] = 0; header->fragmentationTimeDiff[i] = 0; } - *out_header = header.release(); + *out_header = std::move(header); CFRelease(contiguous_buffer); return true; } diff --git a/webrtc/sdk/objc/Framework/Classes/VideoToolbox/nalu_rewriter.h b/webrtc/sdk/objc/Framework/Classes/VideoToolbox/nalu_rewriter.h index 4685f08757..3d7a88ffc5 100644 --- a/webrtc/sdk/objc/Framework/Classes/VideoToolbox/nalu_rewriter.h +++ b/webrtc/sdk/objc/Framework/Classes/VideoToolbox/nalu_rewriter.h @@ -33,7 +33,7 @@ bool H264CMSampleBufferToAnnexBBuffer( CMSampleBufferRef avcc_sample_buffer, bool is_keyframe, rtc::Buffer* annexb_buffer, - webrtc::RTPFragmentationHeader** out_header); + std::unique_ptr *out_header); // Converts a buffer received from RTP into a sample buffer suitable for the // VideoToolbox decoder. The RTP buffer is in annex b format whereas the sample diff --git a/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.mm b/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.mm index c3de9ae706..75b4a34a3a 100644 --- a/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.mm +++ b/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.mm @@ -78,7 +78,7 @@ class ObjCVideoEncoder : public VideoEncoder { std::unique_ptr fragmentationHeader = [header createNativeFragmentationHeader]; EncodedImageCallback::Result res = - callback->OnEncodedImage(encodedImage, &codecSpecificInfo, fragmentationHeader.release()); + callback->OnEncodedImage(encodedImage, &codecSpecificInfo, fragmentationHeader.get()); return res.error == EncodedImageCallback::Result::OK; }];