From 490ce48b543915a9a6528f2c05a3aed30aa64208 Mon Sep 17 00:00:00 2001 From: iabdalkader Date: Sat, 26 Feb 2022 02:57:45 +0200 Subject: [PATCH] imlib: Enable hardware JPEG callbacks. --- src/hal/stm32/f7/include/stm32f7xx_hal_conf.h | 2 +- src/hal/stm32/h7/include/stm32h7xx_hal_conf.h | 2 +- src/omv/imlib/jpeg.c | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/hal/stm32/f7/include/stm32f7xx_hal_conf.h b/src/hal/stm32/f7/include/stm32f7xx_hal_conf.h index ddafaf4e0..ea9a7d799 100644 --- a/src/hal/stm32/f7/include/stm32f7xx_hal_conf.h +++ b/src/hal/stm32/f7/include/stm32f7xx_hal_conf.h @@ -164,7 +164,7 @@ #define USE_HAL_I2C_REGISTER_CALLBACKS 0U /* I2C register callback disabled */ #define USE_HAL_I2S_REGISTER_CALLBACKS 0U /* I2S register callback disabled */ #define USE_HAL_IRDA_REGISTER_CALLBACKS 0U /* IRDA register callback disabled */ -#define USE_HAL_JPEG_REGISTER_CALLBACKS 0U /* JPEG register callback disabled */ +#define USE_HAL_JPEG_REGISTER_CALLBACKS 1U /* JPEG register callback disabled */ #define USE_HAL_LPTIM_REGISTER_CALLBACKS 0U /* LPTIM register callback disabled */ #define USE_HAL_LTDC_REGISTER_CALLBACKS 0U /* LTDC register callback disabled */ #define USE_HAL_MDIOS_REGISTER_CALLBACKS 0U /* MDIOS register callback disabled */ diff --git a/src/hal/stm32/h7/include/stm32h7xx_hal_conf.h b/src/hal/stm32/h7/include/stm32h7xx_hal_conf.h index 4931395e1..4a34f0105 100644 --- a/src/hal/stm32/h7/include/stm32h7xx_hal_conf.h +++ b/src/hal/stm32/h7/include/stm32h7xx_hal_conf.h @@ -194,7 +194,7 @@ #define USE_HAL_I2C_REGISTER_CALLBACKS 0U /* I2C register callback disabled */ #define USE_HAL_I2S_REGISTER_CALLBACKS 0U /* I2S register callback disabled */ #define USE_HAL_IRDA_REGISTER_CALLBACKS 0U /* IRDA register callback disabled */ -#define USE_HAL_JPEG_REGISTER_CALLBACKS 0U /* JPEG register callback disabled */ +#define USE_HAL_JPEG_REGISTER_CALLBACKS 1U /* JPEG register callback disabled */ #define USE_HAL_LPTIM_REGISTER_CALLBACKS 0U /* LPTIM register callback disabled */ #define USE_HAL_LTDC_REGISTER_CALLBACKS 0U /* LTDC register callback disabled */ #define USE_HAL_MDIOS_REGISTER_CALLBACKS 0U /* MDIO register callback disabled */ diff --git a/src/omv/imlib/jpeg.c b/src/omv/imlib/jpeg.c index c806a7766..851453a38 100644 --- a/src/omv/imlib/jpeg.c +++ b/src/omv/imlib/jpeg.c @@ -1006,13 +1006,13 @@ void jpeg_mdma_irq_handler() HAL_MDMA_IRQHandler(&JPEG_MDMA_Handle_Out); } -void HAL_JPEG_GetDataCallback(JPEG_HandleTypeDef *hjpeg, uint32_t NbDecodedData) +static void jpeg_get_data_callback(JPEG_HandleTypeDef *hjpeg, uint32_t NbDecodedData) { HAL_JPEG_Pause(hjpeg, JPEG_PAUSE_RESUME_INPUT); JPEG_input_paused = true; } -void HAL_JPEG_DataReadyCallback(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataOut, uint32_t OutDataLength) +static void jpeg_data_ready_callback(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataOut, uint32_t OutDataLength) { // We have received this much data. JPEG_out_data_length += OutDataLength; @@ -1226,6 +1226,10 @@ void imlib_jpeg_compress_init() { JPEG_Handle.Instance = JPEG; HAL_JPEG_Init(&JPEG_Handle); + // Register JPEG callbacks. + HAL_JPEG_RegisterGetDataCallback(&JPEG_Handle, jpeg_get_data_callback); + HAL_JPEG_RegisterDataReadyCallback(&JPEG_Handle, jpeg_data_ready_callback); + NVIC_SetPriority(JPEG_IRQn, IRQ_PRI_JPEG); HAL_NVIC_EnableIRQ(JPEG_IRQn);