LIBJXL
Loading...
Searching...
No Matches
JxlChunkedFrameInputSource Struct Reference

#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)
 

Detailed Description

This struct provides callback functions to pass pixel data in a streaming manner instead of requiring the entire frame data in memory at once.

Member Data Documentation

◆ get_color_channel_data_at

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.

Parameters
opaqueuser supplied parameters to the callback
xposhorizontal position for the data.
yposvertical position for the data.
xsizehorizontal size of the requested rectangle of data.
ysizevertical size of the requested rectangle of data.
row_offsetpointer to a the byte offset between consecutive rows of the retrieved pixel data.
Returns
pointer to the retrieved pixel data.

◆ get_color_channels_pixel_format

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.

Parameters
opaqueuser supplied parameters to the callback
pixel_formatformat for pixels

◆ get_extra_channel_data_at

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

  1. 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
  2. The returned data will be assumed to be in the format returned by the (preceding) call to get_extra_channels_pixel_format_at with the corresponding extra channel index 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.

Parameters
opaqueuser supplied parameters to the callback
xposhorizontal position for the data.
yposvertical position for the data.
xsizehorizontal size of the requested rectangle of data.
ysizevertical size of the requested rectangle of data.
row_offsetpointer to a the byte offset between consecutive rows of the retrieved pixel data.
Returns
pointer to the retrieved pixel data.

◆ get_extra_channel_pixel_format

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.

Parameters
opaqueuser supplied parameters to the callback
ec_indexzero-indexed index of the extra channel
pixel_formatformat for extra channel data

◆ opaque

void* JxlChunkedFrameInputSource::opaque

A pointer to any user-defined data or state. This can be used to pass information to the callback functions.

◆ release_buffer

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.

Parameters
opaqueuser supplied parameters to the callback
bufpointer returned by get_color_channel_data_at or get_extra_channel_data_at

The documentation for this struct was generated from the following file: