ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
network/frame_validator.h
Go to the documentation of this file.
1
7#pragma once
8
9#include "../common.h"
10#include <stddef.h>
11#include <stdbool.h>
12
13/* Frame format constants */
14
16#define FRAME_HEADER_SIZE_LEGACY 8
17
19#define FRAME_HEADER_SIZE_NEW 16
20
22#define FRAME_HEADER_FIELD_SIZE 4
23
32asciichat_error_t frame_validate_legacy(size_t len, size_t expected_rgb_size);
33
44asciichat_error_t frame_validate_new(void *data, size_t len, bool *out_compressed, uint32_t *out_data_size);
45
54asciichat_error_t frame_check_size_overflow(size_t header_size, size_t data_size);
55
64void frame_extract_dimensions(const void *data, uint32_t *width, uint32_t *height);
65
74void frame_extract_new_header(const void *data, uint32_t *compressed, uint32_t *data_size);
75
unsigned int uint32_t
Definition common.h:58
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:49
asciichat_error_t frame_validate_new(void *data, size_t len, bool *out_compressed, uint32_t *out_data_size)
Validate new frame format with optional compression.
asciichat_error_t frame_validate_legacy(size_t len, size_t expected_rgb_size)
Validate legacy frame format.
void frame_extract_dimensions(const void *data, uint32_t *width, uint32_t *height)
Extract width and height from frame header.
void frame_extract_new_header(const void *data, uint32_t *compressed, uint32_t *data_size)
Extract compressed flag and data size from new format header.
asciichat_error_t frame_check_size_overflow(size_t header_size, size_t data_size)
Check for overflow when adding header to data.
ClangTool/LibTooling compatibility shim for stdbool.h.