aboutsummaryrefslogtreecommitdiff
path: root/Captura/Core Extensions/CVImageBuffer+cgImage.swift
blob: 3f59b8ec1006a023fed8dcdd31167672521e8ff7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import Foundation
import ReplayKit

extension CVImageBuffer {
  
  private static let contextQueue = DispatchQueue(label: "com.example.contextQueue")
  static let sharedContext: CIContext = {
          return CIContext()
  }()
  
  var cgImage: CGImage? {
    var result: CGImage?
    CVImageBuffer.contextQueue.sync {
      let ciImage = CIImage(cvImageBuffer: self)
      let width = CVPixelBufferGetWidth(self)
      let height = CVPixelBufferGetHeight(self)
      result = CVImageBuffer.sharedContext.createCGImage(ciImage, from: CGRect(x: 0, y: 0, width: width, height: height))
    }
    return result
  }
}