diff options
| author | rimio <vasi.vilvoiu@gmail.com> | 2019-02-11 02:18:00 +0200 |
|---|---|---|
| committer | rimio <vasi.vilvoiu@gmail.com> | 2019-02-11 02:18:00 +0200 |
| commit | 00ad11118c8c16c5b5d167bba04fea4d8113dd54 (patch) | |
| tree | 7cc6a8601911f4b6f55013ea660a630ba5047a55 /src/libsstv.template.h | |
| parent | 84a3971982ddd04f3e8cab8be69ae07ef201010d (diff) | |
Remove size_t; precompute timings in microsamples; support all PD modes
Diffstat (limited to 'src/libsstv.template.h')
| -rw-r--r-- | src/libsstv.template.h | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/libsstv.template.h b/src/libsstv.template.h index ce4cf26..7338da9 100644 --- a/src/libsstv.template.h +++ b/src/libsstv.template.h @@ -8,6 +8,10 @@ #ifndef _LIBSSTV_H_ #define _LIBSSTV_H_ +#ifdef __cplusplus +extern "C" { +#endif + #include <stdint.h> #include <stddef.h> @@ -59,11 +63,13 @@ typedef enum { */ typedef enum { /* PD modes */ + SSTV_MODE_PD50, SSTV_MODE_PD90, SSTV_MODE_PD120, SSTV_MODE_PD160, SSTV_MODE_PD180, - SSTV_MODE_PD240 + SSTV_MODE_PD240, + SSTV_MODE_PD290 } sstv_mode_t; /* @@ -91,8 +97,8 @@ typedef enum { */ typedef struct { /* image properties */ - size_t width; - size_t height; + uint32_t width; + uint32_t height; sstv_image_format_t format; /* image buffer */ @@ -116,16 +122,16 @@ typedef struct { void *buffer; /* size in bytes */ - size_t size; + uint32_t size; /* sample type */ sstv_sample_type_t type; /* number of total samples */ - size_t capacity; + uint32_t capacity; /* number of used samples */ - size_t count; + uint32_t count; } sstv_signal_t; @@ -148,7 +154,7 @@ extern sstv_error_t sstv_init(sstv_malloc_t alloc_func, sstv_free_t dealloc_func * format(out): pixel format * returns: error code */ -extern sstv_error_t sstv_get_mode_image_props(sstv_mode_t mode, size_t *width, size_t *height, sstv_image_format_t *format); +extern sstv_error_t sstv_get_mode_image_props(sstv_mode_t mode, uint32_t *width, uint32_t *height, sstv_image_format_t *format); /* * Create an image given an SSTV mode. @@ -176,7 +182,7 @@ extern sstv_error_t sstv_create_image_from_mode(sstv_image_t *out_img, sstv_mode * NOTE: The resulting image must be deleted using sstv_delete_image() once it * goes out of scope (i.e. after the encoder is deleted). */ -extern sstv_error_t sstv_create_image_from_props(sstv_image_t *out_img, size_t w, size_t h, sstv_image_format_t format); +extern sstv_error_t sstv_create_image_from_props(sstv_image_t *out_img, uint32_t w, uint32_t h, sstv_image_format_t format); /* * Deletes an image. @@ -212,7 +218,7 @@ extern sstv_error_t sstv_convert_image(sstv_image_t *img, sstv_image_format_t fo * NOTE: Pixel buffer is managed by user. Do NOT call sstv_delete_image() on * resulting image. */ -extern sstv_error_t sstv_pack_image(sstv_image_t *out_img, size_t width, size_t height, sstv_image_format_t format, uint8_t *buffer); +extern sstv_error_t sstv_pack_image(sstv_image_t *out_img, uint32_t width, uint32_t height, sstv_image_format_t format, uint8_t *buffer); /* * Pack a signal buffer into a signal structure. @@ -224,7 +230,7 @@ extern sstv_error_t sstv_pack_image(sstv_image_t *out_img, size_t width, size_t * * NOTE: Buffer is managed by user. */ -extern sstv_error_t sstv_pack_signal(sstv_signal_t *sig, sstv_sample_type_t type, size_t capacity, void *buffer); +extern sstv_error_t sstv_pack_signal(sstv_signal_t *sig, sstv_sample_type_t type, uint32_t capacity, void *buffer); /* * Create an SSTV encoder. @@ -241,7 +247,7 @@ extern sstv_error_t sstv_pack_signal(sstv_signal_t *sig, sstv_sample_type_t type * SSTV_DEFAULT_ENCODER_CONTEXT_COUNT default structures, and once these are * used up, a SSTV_NO_DEFAULT_ENCODERS error is returned. */ -extern sstv_error_t sstv_create_encoder(void **out_ctx, sstv_image_t image, sstv_mode_t mode, size_t sample_rate); +extern sstv_error_t sstv_create_encoder(void **out_ctx, sstv_image_t image, sstv_mode_t mode, uint32_t sample_rate); /* * Deletes an SSTV encoder. @@ -263,4 +269,8 @@ extern sstv_error_t sstv_delete_encoder(void *ctx); */ extern sstv_error_t sstv_encode(void *ctx, sstv_signal_t *signal); +#ifdef __cplusplus +} +#endif + #endif
\ No newline at end of file |
