|
@@ -111,6 +111,8 @@ class PQMovieFilter: PQBaseFilter {
|
|
|
|
|
|
// 当前帧 id
|
|
|
var framebufferIndex:Int = 0
|
|
|
+
|
|
|
+ var imageVertexBuffer: GLuint = 0
|
|
|
|
|
|
deinit {
|
|
|
BFLog(1, message: "movie filter release")
|
|
@@ -122,6 +124,11 @@ class PQMovieFilter: PQBaseFilter {
|
|
|
if assetReader != nil {
|
|
|
assetReader?.cancelReading()
|
|
|
}
|
|
|
+
|
|
|
+ if(imageVertexBuffer != 0){
|
|
|
+ PQGPUImageTools.deleteVBO(imageVertexBuffer)
|
|
|
+ imageVertexBuffer = 0
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public init(url: URL) {
|
|
@@ -545,11 +552,17 @@ class PQMovieFilter: PQBaseFilter {
|
|
|
|
|
|
let verticesPoint: [GLfloat] = PQGPUImageTools.getVerticesPoint(sticker: moveSticker!, textureSize: (moveAssetRotation() == .rotateLeftTextureCoordinates || moveAssetRotation() == .rotateRightTextureCoordinates) ? CGSize(width: videoSize.height, height: videoSize.width) : videoSize, cannvasSize: inputSize)
|
|
|
|
|
|
+ imageVertexBuffer = PQGPUImageTools.NXGenerateVBO(for: verticesPoint)
|
|
|
renderQuadWithShader(shader,
|
|
|
uniformSettings: uniformSettings,
|
|
|
- vertexBufferObject: PQGPUImageTools.NXGenerateVBO(for: verticesPoint),
|
|
|
+ vertexBufferObject: imageVertexBuffer,
|
|
|
inputTextures: cropTextureProperties)
|
|
|
releaseIncomingFramebuffers()
|
|
|
+
|
|
|
+ if(imageVertexBuffer != 0){
|
|
|
+ PQGPUImageTools.deleteVBO(imageVertexBuffer)
|
|
|
+ imageVertexBuffer = 0
|
|
|
+ }
|
|
|
|
|
|
luminanceFramebuffer.unlock()
|
|
|
chrominanceFramebuffer.unlock()
|