fa5f5c0cab
* Implement `Frame.close()` * close frame in dtor * Update JImageProxyHostObject.cpp * fix close * Check if closed * remove a few logs * r * fix `isValid` and `isReady` * Add JImage * Release JNI frame ref on destroy * fix pod setup * Fix isValid call * Fix `close` not returning a function * throw error if closed twice * iOS: Schedule `console.error` call on JS thread * Android: Log Frame Processor Error to JS * fix syntax * Check if valid `toString()` * Update Frame.ts * Remove `isReady` * Fix JImage accessors * remove `JImage` C++ sources * Throw error if accessing props on closed Frame * Delete `JImage.h`
50 lines
1.1 KiB
TypeScript
50 lines
1.1 KiB
TypeScript
/**
|
|
* A single frame, as seen by the camera.
|
|
*/
|
|
export interface Frame {
|
|
/**
|
|
* Whether the underlying buffer is still valid or not. The buffer will be released after the frame processor returns, or `close()` is called.
|
|
*/
|
|
isValid: boolean;
|
|
/**
|
|
* Returns the width of the frame, in pixels.
|
|
*/
|
|
width: number;
|
|
/**
|
|
* Returns the height of the frame, in pixels.
|
|
*/
|
|
height: number;
|
|
/**
|
|
* Returns the amount of bytes per row.
|
|
*/
|
|
bytesPerRow: number;
|
|
/**
|
|
* Returns the number of planes this frame contains.
|
|
*/
|
|
planesCount: number;
|
|
|
|
/**
|
|
* Returns a string representation of the frame.
|
|
* @example
|
|
* ```ts
|
|
* console.log(frame.toString()) // -> "3840 x 2160 Frame"
|
|
* ```
|
|
*/
|
|
toString(): string;
|
|
/**
|
|
* Closes and disposes the Frame.
|
|
* Only close frames that you have created yourself, e.g. by copying the frame you receive in a frame processor.
|
|
*
|
|
* @example
|
|
* ```ts
|
|
* const frameProcessor = useFrameProcessor((frame) => {
|
|
* const smallerCopy = resize(frame, 480, 270)
|
|
* // run AI ...
|
|
* smallerCopy.close()
|
|
* // don't close `frame`!
|
|
* })
|
|
* ```
|
|
*/
|
|
close(): void;
|
|
}
|