diff --git a/libretro-common/formats/image_transfer.c b/libretro-common/formats/image_transfer.c index 16e1943421..faa4fbf2fc 100644 --- a/libretro-common/formats/image_transfer.c +++ b/libretro-common/formats/image_transfer.c @@ -100,6 +100,7 @@ void image_transfer_set_buffer_ptr( break; case IMAGE_TYPE_JPEG: #ifdef HAVE_RJPEG + rjpeg_set_buf_ptr((rjpeg_t*)data, (uint8_t*)ptr); #endif break; } diff --git a/libretro-common/formats/jpeg/rjpeg.c b/libretro-common/formats/jpeg/rjpeg.c index 2a4a3de1ed..fc80f77a91 100644 --- a/libretro-common/formats/jpeg/rjpeg.c +++ b/libretro-common/formats/jpeg/rjpeg.c @@ -67,6 +67,7 @@ typedef struct struct rjpeg { + uint8_t *buff_data; void *empty; }; @@ -2479,6 +2480,16 @@ bool rjpeg_image_load(uint8_t *buf, void *data, size_t size, return true; } +bool rjpeg_set_buf_ptr(rjpeg_t *rjpeg, void *data) +{ + if (!rjpeg) + return false; + + rjpeg->buff_data = (uint8_t*)data; + + return true; +} + void rjpeg_free(rjpeg_t *rjpeg) { if (!rjpeg) diff --git a/libretro-common/include/formats/rjpeg.h b/libretro-common/include/formats/rjpeg.h index a73de52340..3fa89e63aa 100644 --- a/libretro-common/include/formats/rjpeg.h +++ b/libretro-common/include/formats/rjpeg.h @@ -40,6 +40,8 @@ int rjpeg_process_image(void *data, void **buf, bool rjpeg_image_load(uint8_t *buf, void *data, size_t size, unsigned a_shift, unsigned r_shift, unsigned g_shift, unsigned b_shift); +bool rjpeg_set_buf_ptr(rjpeg_t *rpng, void *data); + void rjpeg_free(rjpeg_t *rjpeg); rjpeg_t *rjpeg_alloc(void);