Skip to content

Commit 8f8ab04

Browse files
committed
fix(ios): video gl video rendering
1 parent 22ad3e9 commit 8f8ab04

2 files changed

Lines changed: 543 additions & 57 deletions

File tree

packages/canvas/src-native/canvas-ios/NSCCanvasUtils.swift

Lines changed: 6 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -13,39 +13,15 @@ import UIKit
1313
@objc(NSCCanvasUtils)
1414
public class NSCCanvasUtils: NSObject {
1515
private static let BYTES_PER_TEXEL = 4
16-
@objc public static func createTextureCache() -> CVOpenGLESTextureCache? {
17-
var out: CVOpenGLESTextureCache?
18-
guard let currentContext = EAGLContext.current() else {return nil}
19-
CVOpenGLESTextureCacheCreate(kCFAllocatorDefault, nil, currentContext, nil, &out)
20-
return out
21-
}
22-
23-
@objc public static func createImage(_ texturecache: CVOpenGLESTextureCache,_ buffer: CVImageBuffer,_ textureAttributes: CFDictionary?, _ target: GLenum,_ internalFormat: GLint,_ width: GLsizei,_ height: GLsizei,_ format: GLenum,_ type: GLenum,_ planeIndex: Int) -> CVOpenGLESTexture?{
24-
var textureOut: CVOpenGLESTexture?
25-
CVOpenGLESTextureCacheCreateTextureFromImage(kCFAllocatorDefault, texturecache, buffer, textureAttributes, target, internalFormat, width, height, format, type, planeIndex,&textureOut)
26-
return textureOut
27-
}
16+
2817

29-
@objc public static func setupRender() -> NSCRender{
18+
public static func setupRender() -> NSCRender{
3019
return NSCRender()
3120
}
32-
33-
@objc public static func drawFrame(_ player: AVPlayer, _ output: AVPlayerItemVideoOutput,_ videoSize: CGSize, _ internalFormat: Int32,_ format: Int32,_ flipYWebGL: Bool){
34-
35-
let currentTime = player.currentTime()
36-
37-
if(!output.hasNewPixelBuffer(forItemTime: currentTime)) {return}
38-
39-
var presentationTime = CMTime.zero
40-
41-
let buffer = output.copyPixelBuffer(forItemTime: currentTime, itemTimeForDisplay: &presentationTime)
42-
43-
guard let pixel_buffer = buffer else {return}
44-
45-
NSCRender.drawFrame(buffer: pixel_buffer, width: Int(videoSize.width), height: Int(videoSize.height), internalFormat: internalFormat, format: format, flipYWebGL: flipYWebGL)
46-
}
47-
48-
21+
22+
public static func setupRender(mtl: MTLDevice) -> NSCRender{
23+
return NSCRender(device: mtl)
24+
}
4925

5026
private static func getParent(_ path: String) -> String {
5127
// let fileManager = FileManager.default

0 commit comments

Comments
 (0)