Browse Source

显存清理

huzhiqiang 3 years ago
parent
commit
e67b16a8f1

+ 4 - 0
BFFramework/Classes/PQGPUImage/Source/FramebufferCache.swift

@@ -49,6 +49,10 @@ public class FramebufferCache {
 
     public func purgeAllUnassignedFramebuffers() {
         framebufferCache.removeAll()
+#if os(iOS)
+        CVOpenGLESTextureCacheFlush(sharedImageProcessingContext.coreVideoTextureCache, 0);
+        print("release buffer")
+#endif
     }
 
     func returnToCache(_ framebuffer: Framebuffer) {

+ 4 - 2
BFFramework/Classes/Stuckpoint/Controller/PQStuckPointEditerController.swift

@@ -601,6 +601,7 @@ class PQStuckPointEditerController: PQBaseViewController {
 //        }
 
         self.musicEditBGView.pausePlayer()
+        sharedImageProcessingContext.framebufferCache.purgeAllUnassignedFramebuffers()
 
         if sender == jumpPointBtn && selectedTotalDuration < 6 && selectedDataCount != selectedImageDataCount && reCreateVideoData == nil{
             cShowHUB(superView: view, msg: "素材时长需要大于6秒才\n可选择“跳跃卡点”模式")
@@ -1150,7 +1151,7 @@ class PQStuckPointEditerController: PQBaseViewController {
                 self.playerView.progress = { [weak self] currentTime, tatolTime, percent in
                     if percent == 1 {
                         self?.stuckPointCuttingView.resetDefaultsColor(clearData: false)
-
+                        sharedImageProcessingContext.framebufferCache.purgeAllUnassignedFramebuffers()
                         return
                     }
                     if(CMTimeGetSeconds(self?.playeTimeRange.duration ?? .zero) <= 0.0){
@@ -1177,6 +1178,7 @@ class PQStuckPointEditerController: PQBaseViewController {
             exportSession.cancelExport()
         }
         self.synchroMarskView.removeMarskView()
+        sharedImageProcessingContext.framebufferCache.purgeAllUnassignedFramebuffers()
         BFLog(1, message: "卡点视频预览界面release")
     }
 }
@@ -1463,7 +1465,7 @@ extension PQStuckPointEditerController {
     /// - Parameter seed: 档位速度
     /// - Returns: 最后使用的卡点
     func getUsedStuckPoint(seed: Int) -> Array<Float> {
-        if !(stuckPointMusicData!.rhythmSdata.count > 0 && stuckPointMusicData!.rhythmSdata[0].pointTimes > 1){
+        if !(stuckPointMusicData!.rhythmSdata.count > 0 && stuckPointMusicData!.rhythmSdata[0].pointTimes.count > 1){
             return []
         }