From a76e7ef6b9459d3b0f908eecebb33c4c76e1d36e Mon Sep 17 00:00:00 2001 From: rimio Date: Sun, 10 Feb 2019 22:53:04 +0200 Subject: Internal colorspace conversion routine --- src/libsstv.template.h | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) (limited to 'src/libsstv.template.h') diff --git a/src/libsstv.template.h b/src/libsstv.template.h index 76c50ee..ce4cf26 100644 --- a/src/libsstv.template.h +++ b/src/libsstv.template.h @@ -43,6 +43,7 @@ typedef enum { SSTV_BAD_FORMAT = 105, SSTV_BAD_RESOLUTION = 106, SSTV_BAD_SAMPLE_TYPE = 107, + SSTV_UNSUPPORTED_CONVERSION = 108, SSTV_ALLOC_FAIL = 200, @@ -177,6 +178,28 @@ extern sstv_error_t sstv_create_image_from_mode(sstv_image_t *out_img, sstv_mode */ 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); +/* + * Deletes an image. + * img(in): pointer to an image structure to delete + * returns: error code + * + * NOTE: This function deallocates the pixel buffer, so it requires a valid + * call to sstv_init(). + */ +extern sstv_error_t sstv_delete_image(sstv_image_t *img); + +/* + * Converts an image. + * img(in): pointer to an image structure + * format(in): format to convert image to + * returns: error code + * + * NOTE: Conversions _from_ SSTV_FORMAT_Y to any format are NOT supported, + * since the conversion is performed in-place and extra memory would be + * required. + */ +extern sstv_error_t sstv_convert_image(sstv_image_t *img, sstv_image_format_t format); + /* * Pack an image into an image structure, given properties and buffer. * out_img(out): pointer to an image structure to initialize @@ -191,16 +214,6 @@ extern sstv_error_t sstv_create_image_from_props(sstv_image_t *out_img, size_t w */ 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); -/* - * Deletes an image. - * img(img): pointer to an image structure to delete - * returns: error code - * - * NOTE: This function deallocates the pixel buffer, so it requires a valid - * call to sstv_init(). - */ -extern sstv_error_t sstv_delete_image(sstv_image_t *img); - /* * Pack a signal buffer into a signal structure. * sig(in): signal structure to initialize -- cgit v1.2.3