ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_camera.h
Go to the documentation of this file.
1
36
37#pragma once
38
39#ifdef __cplusplus
40extern "C" {
41#endif
42
43#include <stdint.h>
44
45#include "ra8_err.h"
46
49
52
68
80typedef struct {
81 uint8_t* data;
82 uint32_t capacity;
84
96typedef struct {
97 const uint8_t* data;
98 uint32_t bytes;
99 uint32_t stride_bytes;
100 uint16_t width;
101 uint16_t height;
104
121
135
145typedef struct {
147 void* ctx;
149
166[[nodiscard]] ra8_err_t ra8_camera_frame_validate(const ra8_camera_frame_t* frame);
167
186 ra8_camera_source_info_t* out_info);
187
208 const ra8_camera_buffer_t* buffer,
209 ra8_camera_frame_t* out_frame);
210
236 const ra8_camera_frame_t* input,
237 const ra8_camera_buffer_t* output_buffer,
238 ra8_camera_frame_t* out_frame);
239
240#ifdef __cplusplus
241}
242#endif
struct ra8_camera_codec_iface ra8_camera_codec_iface_t
Opaque codec vtable; concrete codec backends define its rows.
Definition ra8_camera.h:51
ra8_err_t ra8_camera_frame_validate(const ra8_camera_frame_t *frame)
Validate the geometry and storage coverage of a frame view.
Definition ra8_camera.c:61
struct ra8_camera_source_iface ra8_camera_source_iface_t
Opaque source vtable; concrete source backends define its rows.
Definition ra8_camera.h:48
ra8_camera_format_t
Pixel and compressed-image layouts understood by the facade.
Definition ra8_camera.h:63
@ k_ra8_camera_format_rgb888
Packed R, G, B bytes per pixel.
Definition ra8_camera.h:64
@ k_ra8_camera_format_uyvy422
Packed Cb, Y0, Cr, Y1 pixel pairs.
Definition ra8_camera.h:65
@ k_ra8_camera_format_jpeg
Complete encoded JPEG byte stream.
Definition ra8_camera.h:66
ra8_err_t ra8_camera_source_get_info(ra8_camera_source_t *source, ra8_camera_source_info_t *out_info)
Query a bound source's native output and capture-buffer bound.
Definition ra8_camera.c:132
ra8_err_t ra8_camera_source_capture(ra8_camera_source_t *source, const ra8_camera_buffer_t *buffer, ra8_camera_frame_t *out_frame)
Capture one frame into a caller-owned buffer.
Definition ra8_camera.c:146
ra8_err_t ra8_camera_codec_encode(ra8_camera_codec_t *codec, const ra8_camera_frame_t *input, const ra8_camera_buffer_t *output_buffer, ra8_camera_frame_t *out_frame)
Encode or transform one frame through a bound codec.
Definition ra8_camera.c:187
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
Caller-owned writable byte-buffer description.
Definition ra8_camera.h:80
uint32_t capacity
Writable byte capacity.
Definition ra8_camera.h:82
uint8_t * data
First writable byte, or NULL when capacity is zero.
Definition ra8_camera.h:81
Operation every codec backend supplies.
Caller-owned handle binding one image codec and its context.
Definition ra8_camera.h:145
void * ctx
Caller-owned backend context.
Definition ra8_camera.h:147
const ra8_camera_codec_iface_t * iface
Bound codec vtable (private).
Definition ra8_camera.h:146
Immutable view of one captured or encoded image.
Definition ra8_camera.h:96
ra8_camera_format_t format
Pixel or compressed-image layout.
Definition ra8_camera.h:102
const uint8_t * data
Borrowed immutable image bytes.
Definition ra8_camera.h:97
uint32_t bytes
Valid bytes beginning at data.
Definition ra8_camera.h:98
uint16_t height
Image height in pixels.
Definition ra8_camera.h:101
uint16_t width
Image width in pixels.
Definition ra8_camera.h:100
uint32_t stride_bytes
Bytes between uncompressed rows.
Definition ra8_camera.h:99
Operations every source backend supplies.
Native geometry and worst-case storage required by a source.
Definition ra8_camera.h:114
ra8_camera_format_t format
Native output format.
Definition ra8_camera.h:119
uint32_t frame_bytes_max
Required capture-buffer capacity.
Definition ra8_camera.h:115
uint16_t width
Native width in pixels.
Definition ra8_camera.h:117
uint32_t stride_bytes
Native row stride, or zero/JPEG.
Definition ra8_camera.h:116
uint16_t height
Native height in pixels.
Definition ra8_camera.h:118
Caller-owned handle binding one source backend and its context.
Definition ra8_camera.h:131
void * ctx
Caller-owned backend context.
Definition ra8_camera.h:133
const ra8_camera_source_iface_t * iface
Bound source vtable (private).
Definition ra8_camera.h:132