ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
compression.h
Go to the documentation of this file.
1#pragma once
2
47
48#include <stdlib.h>
49#include <ascii-chat/buffer.h>
50#include <stdbool.h>
51#include "../asciichat_errno.h"
52
57
59#define COMPRESSION_RATIO_THRESHOLD 0.8f
60
62#define COMPRESSION_MIN_SIZE 1024
63
65
96asciichat_error_t compress_data(const void *input, size_t input_size, void **output, size_t *output_size,
97 int compression_level);
98
120asciichat_error_t decompress_data(const void *input, size_t input_size, void *output, size_t output_size);
121
123asciichat_error_t decompress_data_exact(const void *input, size_t input_size, void *output, size_t expected_size);
124
147bool should_compress(size_t original_size, size_t compressed_size);
148
149// Note: Frame sending functions have been moved to network.h/network.c
150
160asciichat_error_t compress_workspace(compression_workspace_t *workspace, const void *input, size_t size, int level);
Synchronized per-thread pending error stacks and value snapshots. SET_ERRNO pushes,...
void compression_workspace_destroy(compression_workspace_t *workspace)
asciichat_error_t compress_workspace(compression_workspace_t *workspace, const void *input, size_t size, int level)
asciichat_error_t decompress_data_exact(const void *input, size_t input_size, void *output, size_t expected_size)
asciichat_error_t decompress_data(const void *input, size_t input_size, void *output, size_t output_size)
Decompress data using zstd.
Definition compression.c:83
bool should_compress(size_t original_size, size_t compressed_size)
Determine if compression should be used for given data sizes.
asciichat_error_t compress_data(const void *input, size_t input_size, void **output, size_t *output_size, int compression_level)
Compress data using zstd with configurable compression level.
Definition compression.c:30
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
Owns the temporary storage used by buffer workspace. The data pointers and size or cursor fields desc...
Definition buffer.h:102
Owns the temporary storage used by compression workspace. The data pointers and size or cursor fields...
buffer_workspace_t output