summaryrefslogtreecommitdiff
path: root/src/sstv.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sstv.c')
-rw-r--r--src/sstv.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/sstv.c b/src/sstv.c
index 25fe0be..44a0cb5 100644
--- a/src/sstv.c
+++ b/src/sstv.c
@@ -165,4 +165,33 @@ sstv_delete_image(sstv_image_t *img)
/* done */
return SSTV_OK;
+}
+
+sstv_error_t
+sstv_pack_signal(sstv_signal_t *sig, sstv_sample_type_t type, size_t capacity, void *buffer)
+{
+ if (!sig) {
+ return SSTV_BAD_PARAMETER;
+ }
+
+ switch(type) {
+ case SSTV_SAMPLE_INT8:
+ sig->size = capacity;
+ break;
+
+ case SSTV_SAMPLE_INT16:
+ sig->size = 2 * capacity;
+ break;
+
+ default:
+ return SSTV_BAD_SAMPLE_TYPE;
+ }
+
+ sig->buffer = buffer;
+ sig->type = type;
+ sig->capacity = capacity;
+ sig->count = 0;
+
+ /* done */
+ return SSTV_OK;
} \ No newline at end of file