Pārlūkot izejas kodu

Merge branch 'master' of https://git.yishihui.com/iOS/BFFramework

harry 3 gadi atpakaļ
vecāks
revīzija
44d035449b

+ 7 - 0
BFFramework/Classes/PQGPUImage/akfilters/PQGPUImageTools.swift

@@ -370,6 +370,13 @@ open class PQGPUImageTools: NSObject {
                     postion.x + cropSizee.width, 1.0,
                 ]
             }
+            //[-0.0005214146, 0.0, 0.9994786, 0.0, -0.0005214146, 1.0, 0.9994786, 1.0]
+            for i in 0 ..< textureCoordinates.count{
+                if(textureCoordinates[i] < 0){
+                    textureCoordinates[i] = 0
+                }
+            }
+             
 
             textureCoordinates = textureCoordinatesForRotation(model: rotationMode, oldTextureCoordinates: textureCoordinates)
         }

+ 13 - 15
BFFramework/Classes/PQGPUImage/akfilters/PQImageFilter.swift

@@ -55,20 +55,6 @@ open class PQImageFilter: PQBaseFilter {
  
         }
 
-        // 保证是16的公倍数
-//                let aptImageSize =  NXAVUtil.aptSize(newImage!.size)
-//                if (!__CGSizeEqualToSize(aptImageSize, newImage!.size))
-//                {
-//
-//                    BFLog(2, message: "原图大小宽度不是16的倍数 \(newImage!.size)")
-//
-//                    newImage = newImage?.nx_scaleToSize(size: aptImageSize)
-//
-//                    BFLog(2, message: "归16后大小 \(newImage!.size)")
-//
-//                }
-
-//
         autoreleasepool {
             if newImage == nil {
                 let filePath = documensDirectory + (mSticker?.locationPath ?? "")
@@ -88,6 +74,18 @@ open class PQImageFilter: PQBaseFilter {
 //            imageTexture = PQGPUImageTools.setupTexture(image: newImage!.cgImage!)
 
         } else { BFLog(2, message: "image filter init error image data is nil!") }
+        
+        
+        // 保证是16的公倍数
+        let aptImageSize =  NXAVUtil.aptSize(newImage!.size)
+        if (!__CGSizeEqualToSize(aptImageSize, newImage!.size))
+        {
+            BFLog(2, message: "原图大小宽度不是16的倍数 \(newImage!.size)")
+            newImage = newImage?.nx_scaleToSize(size: aptImageSize)
+            BFLog(2, message: "归16后大小 \(newImage!.size)")
+
+        }
+
     }
 
 //    override public func newFramebufferAvailable(_ framebuffer: Framebuffer, fromSourceIndex: UInt) {
@@ -133,7 +131,7 @@ open class PQImageFilter: PQBaseFilter {
         // 取纹理坐标
         var textureCoordinates = PQGPUImageTools.getTextureCoordinates(sticker: mSticker!, textureSize: newImage!.size, cannvasSize: inputSize)
 
-        BFLog(2, message: "textureCoordinates is \(textureCoordinates) image size :\(newImage!.size ) cannvasSize:\(inputSize)")
+        BFLog(2, message: "textureCoordinates is \(textureCoordinates) image size :\(newImage!.size ) cannvasSize:\(inputSize)  files path is \(mSticker?.locationPath)")
 
         // imageTexture 有可能被析构导致黑屏
         if imageTexture == 0 && newImage?.cgImage != nil {

+ 10 - 5
BFFramework/Classes/PQGPUImage/akfilters/PQMovieInput.swift

@@ -250,12 +250,13 @@ public class PQMovieInput: ImageSource {
             BFLog(2, message: "\(mIsExport) MovieOutput total frames appended:播放进行中 总用时: \(CFAbsoluteTimeGetCurrent() - (debugStartTime ?? 0.0)) 播放器开始时间:\(CMTimeGetSeconds(playeTimeRange.start)) 播放器原始结束时间:\(CMTimeGetSeconds(playeTimeRange.end))    总时间:\(CMTimeGetSeconds(playeTimeRange.end) - CMTimeGetSeconds(playeTimeRange.start)) 播放进度当前时间:\(currTime) 进度:\(prgressValue) 帧id \(totalFramesSent)")
             totalFramesSent += 1
     
-            BFLog(2, message: "播放进行中 总用时: \(CFAbsoluteTimeGetCurrent() - (debugStartTime ?? 0.0)) 播放进度当前时间:\(currTime) 进度:\(prgressValue)")
-            if currTime / duration > 1  {
+            BFLog(2, message: "2222222222播放进行中 总用时: \(CFAbsoluteTimeGetCurrent() - (debugStartTime ?? 0.0)) 播放进度当前时间:\(currTime) 总时间为:\(duration)进度:\(prgressValue) 音频时长:\(    CMTimeGetSeconds(asset.duration) )")
+            if currTime / duration > 1{
                 BFLog(2, message: "全部播放完成 总用时为:\(CFAbsoluteTimeGetCurrent() - (debugStartTime ?? 0.0))")
-
-                self.completion?()
- 
+                if(self.completion != nil){
+                    self.completion?()
+                }
+               
                 self.beginTime = 0
                 self.currentTime =  CMTimeMakeWithSeconds(CMTimeGetSeconds(playeTimeRange.start), preferredTimescale: BASE_FILTER_TIMESCALE)
                 self.isPlay = false
@@ -264,6 +265,10 @@ public class PQMovieInput: ImageSource {
                 // 定到首帧,最好移动到业务逻辑中。。。TODO不是导出模式才定帧
                 if !mIsExport {
                     self.start(isFreeBuffer: true,timeRange: playeTimeRange)
+                }else{
+                    BFLog(message: "强制停止!!!!")
+                    displayLink.isPaused = true
+                    return
                 }
             }
 

+ 7 - 0
BFFramework/Classes/PQGPUImage/akfilters/PQTextFilter.swift

@@ -28,8 +28,11 @@ open class PQTextFilter: PQBaseFilter {
         super.init(fragmentShader: AlphaPassthroughFragmentShader, numberOfInputs: 1)
         stickerInfo = sticker
         subTitleTexture = 0
+        
+//        BFLog("\(stickerInfo.materialPosition)", message: 2)
  
         createTexture()
+        
     }
  
     // 清空数据
@@ -46,6 +49,10 @@ open class PQTextFilter: PQBaseFilter {
         DispatchQueue.main.async {[weak self] in
  
             autoreleasepool {
+                if(self == nil){
+                    BFLog(message: "self is null error!!!!!")
+                    return
+                }
                 let subtitleLab =
                 UILabel.init(frame: CGRect(x: 0, y: 0, width: self?.stickerInfo?.materialPosition?.width ?? 0, height: self?.stickerInfo?.materialPosition?.height ?? 0))
              

+ 1 - 1
BFFramework/Classes/Stuckpoint/View/PQStuckPointCuttingView.swift

@@ -293,7 +293,7 @@ class PQStuckPointCuttingView: UIView {
     func updateProgress(progress: CGFloat) {
         
         if(progress <= 0 || lineLayerArray.count == 0 || progress.isNaN){
-            BFLog(message: "progress is error ")
+            BFLog(message: "progress is error \(progress) lineLayerArray \(lineLayerArray)")
             return
         }