LIBJXL
|
#include <encode.h>
Public Attributes | |
void * | opaque |
void(* | get_color_channels_pixel_format )(void *opaque, JxlPixelFormat *pixel_format) |
const void *(* | get_color_channel_data_at )(void *opaque, size_t xpos, size_t ypos, size_t xsize, size_t ysize, size_t *row_offset) |
void(* | get_extra_channel_pixel_format )(void *opaque, size_t ec_index, JxlPixelFormat *pixel_format) |
const void *(* | get_extra_channel_data_at )(void *opaque, size_t ec_index, size_t xpos, size_t ypos, size_t xsize, size_t ysize, size_t *row_offset) |
void(* | release_buffer )(void *opaque, const void *buf) |
This struct provides callback functions to pass pixel data in a streaming manner instead of requiring the entire frame data in memory at once.
const void *(* JxlChunkedFrameInputSource::get_color_channel_data_at) (void *opaque, size_t xpos, size_t ypos, size_t xsize, size_t ysize, size_t *row_offset) |
Callback to retrieve a rectangle of color channel data at a specific location. It is guaranteed that xpos and ypos are multiples of 8. xsize, ysize will be multiples of 8, unless the resulting rectangle would be out of image bounds. Moreover, xsize and ysize will be at most 2048. The returned data will be assumed to be in the format returned by the (preceding) call to get_color_channels_pixel_format, except the align
parameter of the pixel format will be ignored. Instead, the i
-th row will be assumed to start at position return_value + i * *row_offset
, with the value of *row_offset
decided by the callee.
Note that multiple calls to get_color_channel_data_at
may happen before a call to release_buffer
.
opaque | user supplied parameters to the callback |
xpos | horizontal position for the data. |
ypos | vertical position for the data. |
xsize | horizontal size of the requested rectangle of data. |
ysize | vertical size of the requested rectangle of data. |
row_offset | pointer to a the byte offset between consecutive rows of the retrieved pixel data. |
void(* JxlChunkedFrameInputSource::get_color_channels_pixel_format) (void *opaque, JxlPixelFormat *pixel_format) |
Get the pixel format that color channel data will be provided in. When called, pixel_format
points to a suggested pixel format; if color channel data can be given in this pixel format, processing might be more efficient.
This function will be called exactly once, before any call to get_color_channel_at.
opaque | user supplied parameters to the callback |
pixel_format | format for pixels |
const void *(* JxlChunkedFrameInputSource::get_extra_channel_data_at) (void *opaque, size_t ec_index, size_t xpos, size_t ypos, size_t xsize, size_t ysize, size_t *row_offset) |
Callback to retrieve a rectangle of extra channel ec_index
data at a specific location. It is guaranteed that xpos and ypos are multiples of
ec_index
, except the align
parameter of the pixel format will be ignored. Instead, the i
-th row will be assumed to start at position return_value + i * *row_offset
, with the value of *row_offset
decided by the callee.Note that multiple calls to get_extra_channel_data_at
may happen before a call to release_buffer
.
opaque | user supplied parameters to the callback |
xpos | horizontal position for the data. |
ypos | vertical position for the data. |
xsize | horizontal size of the requested rectangle of data. |
ysize | vertical size of the requested rectangle of data. |
row_offset | pointer to a the byte offset between consecutive rows of the retrieved pixel data. |
void(* JxlChunkedFrameInputSource::get_extra_channel_pixel_format) (void *opaque, size_t ec_index, JxlPixelFormat *pixel_format) |
Get the pixel format that extra channel data will be provided in. When called, pixel_format
points to a suggested pixel format; if extra channel data can be given in this pixel format, processing might be more efficient.
This function will be called exactly once per index, before any call to get_extra_channel_data_at with that given index.
opaque | user supplied parameters to the callback |
ec_index | zero-indexed index of the extra channel |
pixel_format | format for extra channel data |
void* JxlChunkedFrameInputSource::opaque |
A pointer to any user-defined data or state. This can be used to pass information to the callback functions.
void(* JxlChunkedFrameInputSource::release_buffer) (void *opaque, const void *buf) |
Releases the buffer buf
(obtained through a call to get_color_channel_data_at
or get_extra_channel_data_at
). This function will be called exactly once per call to get_color_channel_data_at
or get_extra_channel_data_at
.
opaque | user supplied parameters to the callback |
buf | pointer returned by get_color_channel_data_at or get_extra_channel_data_at |