         }
     }
     
-    func read() {
+    func readNextFrame() {
         guard let reader = self.reader,
             let output = self.output else {
                 return

        guard reader.status == .reading,
              let sampleBuffer = output.copyNextSampleBuffer(),
              let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else {
            print("Process Complete")
            self.delegate?.didFinishReading(reader: self)
            return
        }

        let status = CVMetalTextureCacheCreateTextureFromImage(nil, self.textureCache, pixelBuffer, nil,
                                                               pixelFormat, width, height, 0, &metalTextureFromPixelBuffer)
        guard let metalTexture = metalTextureFromPixelBuffer, status == kCVReturnSuccess else {
            print("VSVideoReader: Failed to create texture")
            return
        }
        guard let texture = CVMetalTextureGetTexture(metalTexture) else {
            print("VSVideoReader: Failed to get texture")
            return
        }
        self.delegate?.didGetFrame(reader: self, texture: texture, presentationTime: time)
    }
}
