ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_jpeg_stream_state_t Struct Reference

Whole streaming-decode state: source window + geometry + stripe. More...

Collaboration diagram for ra8_jpeg_stream_state_t:

Data Fields

ra8_jpeg_sw_pull_fn pull
 Sequential byte source.
void * pull_ctx
 Context for pull.
uint8_t * win
 Sliding window base.
uint32_t win_cap
 Window capacity, bytes.
uint32_t win_len
 Valid bytes currently in the window.
uint8_t eof
 1 once the source reported EOF.
ra8_jpeg_sw_rows_fn on_rows
 Stripe sink.
void * cb_ctx
 Consumer context for both callbacks.
uint8_t * stripe
 Consumer stripe buffer (geometry cb).
uint32_t stripe_cap
 Stripe buffer capacity, bytes.
uint8_t channels
 Output channels (1 or 3).
uint16_t mcu_w
 MCU width, pixels.
uint16_t mcu_h
 MCU height, pixels (== stripe rows).
uint16_t mcus_x
 MCU columns.
uint16_t mcus_y
 MCU rows.
ra8_jpeg_dec_ctx_t dec
 Shared decoder tables + parse state.

Detailed Description

Whole streaming-decode state: source window + geometry + stripe.

One module-static instance (mirrors the whole-buffer driver's static context): the decoder tables alone are tens of KiB, which would blow the stack budget.

Invariant
win_len <= win_cap and stripe_cap >= width * mcu_h * ch once the geometry callback has accepted the image.

Definition at line 65 of file ra8_jpeg_sw_stream.c.

Field Documentation

◆ cb_ctx

void* ra8_jpeg_stream_state_t::cb_ctx

Consumer context for both callbacks.

Definition at line 74 of file ra8_jpeg_sw_stream.c.

Referenced by internal_js_begin(), internal_js_bind_geometry(), and internal_js_scan().

◆ channels

uint8_t ra8_jpeg_stream_state_t::channels

Output channels (1 or 3).

Definition at line 78 of file ra8_jpeg_sw_stream.c.

Referenced by internal_js_bind_geometry(), internal_js_emit_mcu(), and internal_js_scan().

◆ dec

ra8_jpeg_dec_ctx_t ra8_jpeg_stream_state_t::dec

Shared decoder tables + parse state.

Definition at line 84 of file ra8_jpeg_sw_stream.c.

Referenced by internal_js_bind_geometry(), internal_js_decode_mcu(), internal_js_emit_mcu(), internal_js_parse_markers(), and internal_js_scan().

◆ eof

uint8_t ra8_jpeg_stream_state_t::eof

1 once the source reported EOF.

Definition at line 71 of file ra8_jpeg_sw_stream.c.

Referenced by internal_js_refill(), and internal_js_scan_margin().

◆ mcu_h

uint16_t ra8_jpeg_stream_state_t::mcu_h

MCU height, pixels (== stripe rows).

Definition at line 80 of file ra8_jpeg_sw_stream.c.

Referenced by internal_js_bind_geometry(), and internal_js_scan().

◆ mcu_w

uint16_t ra8_jpeg_stream_state_t::mcu_w

MCU width, pixels.

Definition at line 79 of file ra8_jpeg_sw_stream.c.

Referenced by internal_js_bind_geometry(), internal_js_decode_mcu(), and internal_js_emit_mcu().

◆ mcus_x

uint16_t ra8_jpeg_stream_state_t::mcus_x

MCU columns.

Definition at line 81 of file ra8_jpeg_sw_stream.c.

Referenced by internal_js_bind_geometry(), and internal_js_scan().

◆ mcus_y

uint16_t ra8_jpeg_stream_state_t::mcus_y

MCU rows.

Definition at line 82 of file ra8_jpeg_sw_stream.c.

Referenced by internal_js_bind_geometry(), and internal_js_scan().

◆ on_rows

ra8_jpeg_sw_rows_fn ra8_jpeg_stream_state_t::on_rows

Stripe sink.

Definition at line 73 of file ra8_jpeg_sw_stream.c.

Referenced by internal_js_begin(), and internal_js_scan().

◆ pull

ra8_jpeg_sw_pull_fn ra8_jpeg_stream_state_t::pull

Sequential byte source.

Definition at line 66 of file ra8_jpeg_sw_stream.c.

Referenced by internal_js_begin(), and internal_js_refill().

◆ pull_ctx

void* ra8_jpeg_stream_state_t::pull_ctx

Context for pull.

Definition at line 67 of file ra8_jpeg_sw_stream.c.

Referenced by internal_js_begin(), and internal_js_refill().

◆ stripe

uint8_t* ra8_jpeg_stream_state_t::stripe

Consumer stripe buffer (geometry cb).

Definition at line 76 of file ra8_jpeg_sw_stream.c.

Referenced by internal_js_bind_geometry(), internal_js_emit_mcu(), and internal_js_scan().

◆ stripe_cap

uint32_t ra8_jpeg_stream_state_t::stripe_cap

Stripe buffer capacity, bytes.

Definition at line 77 of file ra8_jpeg_sw_stream.c.

Referenced by internal_js_bind_geometry().

◆ win

uint8_t* ra8_jpeg_stream_state_t::win

◆ win_cap

uint32_t ra8_jpeg_stream_state_t::win_cap

Window capacity, bytes.

Definition at line 69 of file ra8_jpeg_sw_stream.c.

Referenced by internal_js_begin(), and internal_js_refill().

◆ win_len

uint32_t ra8_jpeg_stream_state_t::win_len

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