NatCorder
Search…
GLESTextureInput
class NatML.Recorders.Inputs.GLESTextureInput : TextureInput
The GLESTextureInput class provides a simple primitive for recording video frames from Texture objects on Android OpenGL ES3. It works by performing asynchronous pixel buffer readbacks from the GPU using Android's native graphics infrastructure. As such, it has much better recording performance:
CPU frame time while recording with standard camera input.
CPU frame time while recording with camera input backed by GLESTextureInput.
This texture input is can only be used on Android when rendering with OpenGL ES3.

Creating the Texture Input

/// <summary>
/// Create a GLES texture input.
/// </summary>
/// <param name="recorder">Media recorder to receive video frames.</param>
GLESTextureInput (IMediaRecorder recorder);
The texture input is always created with a recorder which receives any frames committed by the input.

Inspecting the Frame Size

/// <summary>
/// Texture input frame size.
/// </summary>
(int width, int height) frameSize { get; }
Refer to the Inspecting the Frame Size section of the TextureInput class for more information.

Committing Video Frames

/// <summary>
/// Commit a video frame from a texture.
/// </summary>
/// <param name="texture">Source texture.</param>
/// <param name="timestamp">Frame timestamp in nanoseconds.</param>
void CommitFrame (Texture texture, long timestamp);
Refer to the Committing Video Frames section of the TextureInput class for more information.

Disposing the Recorder Input

/// <summary>
/// Stop recorder input and release resources.
/// </summary>
void Dispose ();
Refer to the Disposing the Recorder Input section of the TextureInput class for more information.
Copy link
On this page
Creating the Texture Input
Inspecting the Frame Size
Committing Video Frames
Disposing the Recorder Input