소스 검색

fix: 优化可能造成内存泄漏的点

StyxS 5 년 전
부모
커밋
c893edb9fe
1개의 변경된 파일3개의 추가작업 그리고 0개의 파일을 삭제
  1. 3 0
      iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/Decoders/QGMP4FrameHWDecoder.m

+ 3 - 0
iOS/QGVAPlayer/QGVAPlayer/Classes/Controllers/Decoders/QGMP4FrameHWDecoder.m

@@ -239,6 +239,8 @@ NSString *const QGMP4HWDErrorDomain = @"QGMP4HWDErrorDomain";
         });
         });
         
         
         if (status == kVTInvalidSessionErr) {
         if (status == kVTInvalidSessionErr) {
+            CFRelease(sampleBuffer);
+            
             // 防止陷入死循环
             // 防止陷入死循环
             if (_invalidRetryCount >= 3) {
             if (_invalidRetryCount >= 3) {
                 return;
                 return;
@@ -258,6 +260,7 @@ NSString *const QGMP4HWDErrorDomain = @"QGMP4HWDErrorDomain";
         _status = VTDecompressionSessionDecodeFrame(_mDecodeSession, sampleBuffer, flags, &outputPixelBuffer, &flagOut);
         _status = VTDecompressionSessionDecodeFrame(_mDecodeSession, sampleBuffer, flags, &outputPixelBuffer, &flagOut);
         
         
         if (_status == kVTInvalidSessionErr) {
         if (_status == kVTInvalidSessionErr) {
+            CFRelease(sampleBuffer);
             // 防止陷入死循环
             // 防止陷入死循环
             if (_invalidRetryCount >= 3) {
             if (_invalidRetryCount >= 3) {
                 return;
                 return;