docs: def getVideoStreamFrameBuffer(self, hTrackedCamera, eFrameType, pFrameBuffer, nFrameBufferSize, nFrameHeaderSize):
          """
          Copies the image frame into a caller's provided buffer. The image data is currently provided as RGBA data, 4 bytes per pixel.
          A caller can provide null for the framebuffer or frameheader if not desired. Requesting the frame header first, followed by the frame buffer allows
          the caller to determine if the frame as advanced per the frame header sequence. 
          If there is no frame available yet, due to initial camera spinup or re-activation, the error will be VRTrackedCameraError_NoFrameAvailable.
          Ideally a caller should be polling at ~16ms intervals
          """
  
          fn = self.function_table.getVideoStreamFrameBuffer
          pFrameHeader = CameraVideoStreamFrameHeader_t()
          result = fn(hTrackedCamera, eFrameType, pFrameBuffer, nFrameBufferSize, byref(pFrameHeader), nFrameHeaderSize)
          return result, pFrameHeader