FakeImagePlane
class FakeImagePlane : ImagePlane
Fake implementation of ImagePlane for testing classes that consume camera image planes.
This class provides lazy buffer allocation and multiple construction paradigms to support both standalone dimension-based allocation and slicing from a shared contiguous parent buffer.
Usage Examples
1. Standalone Allocation by Dimensions
Allocates a direct ByteBuffer of size rowStride * rowCount when accessed.
val plane = FakeImagePlane(rowStride = 640, rowCount = 480)
assertThat(plane.buffer.capacity()).isEqualTo(640 * 480)
2. Custom Strides and Sub-sampling
Useful for mocking interleaved UV planes where pixel stride is 2.
val uvPlane = FakeImagePlane(rowStride = 640, rowCount = 240, pixelStride = 2)
3. Backing by an Existing Buffer Slice
Avoids extra allocations by wrapping an existing buffer window (e.g. from a contiguous NV12 buffer). Ensure the slice maintains native byte ordering (order(ByteOrder.nativeOrder())).
val slice = parentBuffer.slice().order(ByteOrder.nativeOrder())
val plane = FakeImagePlane(rowStride = 640, pixelStride = 1, buffer = slice)
assertThat(plane.buffer).isSameInstanceAs(slice)
Summary
Public constructors |
|---|
FakeImagePlane( |
Public functions |
|
|---|---|
open T? |
Unwraps this fake image plane to its underlying implementation types. |
Public properties |
|
|---|---|
open ByteBuffer |
A |
open Int |
The distance between adjacent pixel samples in bytes. |
open Int |
The row stride of the plane in bytes. |
Public constructors
FakeImagePlane
FakeImagePlane(
rowStride: Int,
rowCount: Int = 1,
pixelStride: Int = 1,
buffer: ByteBuffer? = null
)
| Parameters | |
|---|---|
rowStride: Int |
The row stride of the plane in bytes. |
rowCount: Int = 1 |
The height of the plane in rows. Used for lazy buffer allocation if |
pixelStride: Int = 1 |
The distance between adjacent pixel samples in bytes. Defaults to 1. |
buffer: ByteBuffer? = null |
An optional pre-allocated |
Public functions
unwrapAs
open fun <T : Any> unwrapAs(type: Class<T>): T?
Unwraps this fake image plane to its underlying implementation types.
This implementation supports unwrapping to:
-
FakeImagePlane(returnsthis) -
ByteBuffer(returns the backingbuffer)
| Parameters | |
|---|---|
type: Class<T> |
The class representing the type to unwrap to. |
| Returns | |
|---|---|
T? |
The unwrapped object instance of type |
Public properties
buffer
open val buffer: ByteBuffer
A ByteBuffer containing the image data for this plane.
If a custom buffer was passed to the constructor, it is returned directly. Otherwise, a direct ByteBuffer with native byte order and capacity equal to rowStride * rowCount is allocated lazily upon first access.
pixelStride
open val pixelStride: Int
The distance between adjacent pixel samples in bytes. Defaults to 1.