summaryrefslogtreecommitdiff
path: root/src/libsstv.template.h
diff options
context:
space:
mode:
authorrimio <vasi.vilvoiu@gmail.com>2019-02-11 02:18:00 +0200
committerrimio <vasi.vilvoiu@gmail.com>2019-02-11 02:18:00 +0200
commit00ad11118c8c16c5b5d167bba04fea4d8113dd54 (patch)
tree7cc6a8601911f4b6f55013ea660a630ba5047a55 /src/libsstv.template.h
parent84a3971982ddd04f3e8cab8be69ae07ef201010d (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.h32
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