STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
stm32f7xx_hal_jpeg.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __STM32F7xx_HAL_JPEG_H
40 #define __STM32F7xx_HAL_JPEG_H
41 
42 #ifdef __cplusplus
43  extern "C" {
44 #endif
45 #if defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx)
46 /* Includes ------------------------------------------------------------------*/
47 #include "stm32f7xx_hal_def.h"
48 
57 /* Exported types ------------------------------------------------------------*/
66 typedef struct
67 {
68  uint8_t ColorSpace;
71  uint8_t ChromaSubsampling;
74  uint32_t ImageHeight;
76  uint32_t ImageWidth;
78  uint8_t ImageQuality;
80 }JPEG_ConfTypeDef;
89 typedef enum
90 {
91  HAL_JPEG_STATE_RESET = 0x00U,
92  HAL_JPEG_STATE_READY = 0x01U,
93  HAL_JPEG_STATE_BUSY = 0x02U,
94  HAL_JPEG_STATE_BUSY_ENCODING = 0x03U,
95  HAL_JPEG_STATE_BUSY_DECODING = 0x04U,
96  HAL_JPEG_STATE_TIMEOUT = 0x05U,
97  HAL_JPEG_STATE_ERROR = 0x06U
98 }HAL_JPEG_STATETypeDef;
99 
109 typedef struct
110 {
113  JPEG_ConfTypeDef Conf;
115  uint8_t *pJpegInBuffPtr;
117  uint8_t *pJpegOutBuffPtr;
119  __IO uint32_t JpegInCount;
121  __IO uint32_t JpegOutCount;
123  uint32_t InDataLength;
125  uint32_t OutDataLength;
127  DMA_HandleTypeDef *hdmain;
129  DMA_HandleTypeDef *hdmaout;
131  uint8_t CustomQuanTable;
133  uint8_t *QuantTable0;
135  uint8_t *QuantTable1;
137  uint8_t *QuantTable2;
139  uint8_t *QuantTable3;
143  __IO HAL_JPEG_STATETypeDef State;
145  __IO uint32_t ErrorCode;
147  __IO uint32_t Context;
149 }JPEG_HandleTypeDef;
150 
159 /* Exported constants --------------------------------------------------------*/
160 
170 #define HAL_JPEG_ERROR_NONE ((uint32_t)0x00000000U)
171 #define HAL_JPEG_ERROR_HUFF_TABLE ((uint32_t)0x00000001U)
172 #define HAL_JPEG_ERROR_QUANT_TABLE ((uint32_t)0x00000002U)
173 #define HAL_JPEG_ERROR_DMA ((uint32_t)0x00000004U)
174 #define HAL_JPEG_ERROR_TIMEOUT ((uint32_t)0x00000008U)
184 #define JPEG_QUANT_TABLE_SIZE ((uint32_t)64U)
185 
194 #define JPEG_GRAYSCALE_COLORSPACE ((uint32_t)0x00000000U)
195 #define JPEG_YCBCR_COLORSPACE JPEG_CONFR1_COLORSPACE_0
196 #define JPEG_CMYK_COLORSPACE JPEG_CONFR1_COLORSPACE
197 
198 
208 #define JPEG_444_SUBSAMPLING ((uint32_t)0x00000000U)
209 #define JPEG_420_SUBSAMPLING ((uint32_t)0x00000001U)
210 #define JPEG_422_SUBSAMPLING ((uint32_t)0x00000002U)
220 #define JPEG_IMAGE_QUALITY_MIN ((uint32_t)1U)
221 #define JPEG_IMAGE_QUALITY_MAX ((uint32_t)100U)
231 #define JPEG_IT_IFT ((uint32_t)JPEG_CR_IFTIE)
232 #define JPEG_IT_IFNF ((uint32_t)JPEG_CR_IFNFIE)
233 #define JPEG_IT_OFT ((uint32_t)JPEG_CR_OFTIE)
234 #define JPEG_IT_OFNE ((uint32_t)JPEG_CR_OFTIE)
235 #define JPEG_IT_EOC ((uint32_t)JPEG_CR_EOCIE)
236 #define JPEG_IT_HPD ((uint32_t)JPEG_CR_HPDIE)
245 #define JPEG_FLAG_IFTF ((uint32_t)JPEG_SR_IFTF)
246 #define JPEG_FLAG_IFNFF ((uint32_t)JPEG_SR_IFNFF)
247 #define JPEG_FLAG_OFTF ((uint32_t)JPEG_SR_OFTF)
248 #define JPEG_FLAG_OFNEF ((uint32_t)JPEG_SR_OFNEF)
249 #define JPEG_FLAG_EOCF ((uint32_t)JPEG_SR_EOCF)
250 #define JPEG_FLAG_HPDF ((uint32_t)JPEG_SR_HPDF)
251 #define JPEG_FLAG_COF ((uint32_t)JPEG_SR_COF)
253 #define JPEG_FLAG_ALL ((uint32_t)0x000000FEU)
262 #define JPEG_PAUSE_RESUME_INPUT ((uint32_t)0x00000001U)
263 #define JPEG_PAUSE_RESUME_OUTPUT ((uint32_t)0x00000002U)
264 #define JPEG_PAUSE_RESUME_INPUT_OUTPUT ((uint32_t)0x00000003U)
272 /* Exported macro ------------------------------------------------------------*/
273 
282 #define __HAL_JPEG_RESET_HANDLE_STATE(__HANDLE__) ( (__HANDLE__)->State = HAL_JPEG_STATE_RESET)
283 
284 
290 #define __HAL_JPEG_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= JPEG_CR_JCEN)
291 
297 #define __HAL_JPEG_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~JPEG_CR_JCEN)
298 
299 
318 #define __HAL_JPEG_GET_FLAG(__HANDLE__,__FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)))
319 
331 #define __HAL_JPEG_CLEAR_FLAG(__HANDLE__,__FLAG__) (((__HANDLE__)->Instance->CFR |= ((__FLAG__) & (JPEG_FLAG_EOCF | JPEG_FLAG_HPDF))))
332 
333 
348 #define __HAL_JPEG_ENABLE_IT(__HANDLE__,__INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__) )
349 
366 #define __HAL_JPEG_DISABLE_IT(__HANDLE__,__INTERRUPT__) MODIFY_REG((__HANDLE__)->Instance->CR, (__INTERRUPT__), 0)
367 
368 
383 #define __HAL_JPEG_GET_IT_SOURCE(__HANDLE__,__INTERRUPT__) ((__HANDLE__)->Instance->CR & (__INTERRUPT__))
384 
389 /* Exported functions --------------------------------------------------------*/
397 /* Initialization/de-initialization functions ********************************/
398 HAL_StatusTypeDef HAL_JPEG_Init(JPEG_HandleTypeDef *hjpeg);
399 HAL_StatusTypeDef HAL_JPEG_DeInit(JPEG_HandleTypeDef *hjpeg);
400 void HAL_JPEG_MspInit(JPEG_HandleTypeDef *hjpeg);
401 void HAL_JPEG_MspDeInit(JPEG_HandleTypeDef *hjpeg);
402 
410 /* Encoding/Decoding Configuration functions ********************************/
411 HAL_StatusTypeDef HAL_JPEG_ConfigEncoding(JPEG_HandleTypeDef *hjpeg, JPEG_ConfTypeDef *pConf);
412 HAL_StatusTypeDef HAL_JPEG_GetInfo(JPEG_HandleTypeDef *hjpeg, JPEG_ConfTypeDef *pInfo);
413 HAL_StatusTypeDef HAL_JPEG_EnableHeaderParsing(JPEG_HandleTypeDef *hjpeg);
414 HAL_StatusTypeDef HAL_JPEG_DisableHeaderParsing(JPEG_HandleTypeDef *hjpeg);
415 HAL_StatusTypeDef HAL_JPEG_SetUserQuantTables(JPEG_HandleTypeDef *hjpeg, uint8_t *QTable0, uint8_t *QTable1, uint8_t *QTable2, uint8_t *QTable3);
416 
424 /* JPEG processing functions **************************************/
425 HAL_StatusTypeDef HAL_JPEG_Encode(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataInMCU, uint32_t InDataLength, uint8_t *pDataOut, uint32_t OutDataLength, uint32_t Timeout);
426 HAL_StatusTypeDef HAL_JPEG_Decode(JPEG_HandleTypeDef *hjpeg ,uint8_t *pDataIn ,uint32_t InDataLength ,uint8_t *pDataOutMCU ,uint32_t OutDataLength, uint32_t Timeout);
427 HAL_StatusTypeDef HAL_JPEG_Encode_IT(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataInMCU, uint32_t InDataLength, uint8_t *pDataOut, uint32_t OutDataLength);
428 HAL_StatusTypeDef HAL_JPEG_Decode_IT(JPEG_HandleTypeDef *hjpeg ,uint8_t *pDataIn ,uint32_t InDataLength ,uint8_t *pDataOutMCU ,uint32_t OutDataLength);
429 HAL_StatusTypeDef HAL_JPEG_Encode_DMA(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataInMCU, uint32_t InDataLength, uint8_t *pDataOut, uint32_t OutDataLength);
430 HAL_StatusTypeDef HAL_JPEG_Decode_DMA(JPEG_HandleTypeDef *hjpeg ,uint8_t *pDataIn ,uint32_t InDataLength ,uint8_t *pDataOutMCU ,uint32_t OutDataLength);
431 HAL_StatusTypeDef HAL_JPEG_Pause(JPEG_HandleTypeDef *hjpeg, uint32_t XferSelection);
432 HAL_StatusTypeDef HAL_JPEG_Resume(JPEG_HandleTypeDef *hjpeg, uint32_t XferSelection);
433 void HAL_JPEG_ConfigInputBuffer(JPEG_HandleTypeDef *hjpeg, uint8_t *pNewInputBuffer, uint32_t InDataLength);
434 void HAL_JPEG_ConfigOutputBuffer(JPEG_HandleTypeDef *hjpeg, uint8_t *pNewOutputBuffer, uint32_t OutDataLength);
435 HAL_StatusTypeDef HAL_JPEG_Abort(JPEG_HandleTypeDef *hjpeg);
436 
444 /* JPEG Decode/Encode callback functions ********************************************************/
445 void HAL_JPEG_InfoReadyCallback(JPEG_HandleTypeDef *hjpeg,JPEG_ConfTypeDef *pInfo);
446 void HAL_JPEG_EncodeCpltCallback(JPEG_HandleTypeDef *hjpeg);
447 void HAL_JPEG_DecodeCpltCallback(JPEG_HandleTypeDef *hjpeg);
448 void HAL_JPEG_ErrorCallback(JPEG_HandleTypeDef *hjpeg);
449 void HAL_JPEG_GetDataCallback(JPEG_HandleTypeDef *hjpeg, uint32_t NbDecodedData);
450 void HAL_JPEG_DataReadyCallback (JPEG_HandleTypeDef *hjpeg, uint8_t *pDataOut, uint32_t OutDataLength);
451 
459 /* JPEG IRQ handler management ******************************************************/
460 void HAL_JPEG_IRQHandler(JPEG_HandleTypeDef *hjpeg);
461 
469 /* Peripheral State and Error functions ************************************************/
470 HAL_JPEG_STATETypeDef HAL_JPEG_GetState(JPEG_HandleTypeDef *hjpeg);
471 uint32_t HAL_JPEG_GetError(JPEG_HandleTypeDef *hjpeg);
472 
481 /* Private types -------------------------------------------------------------*/
490 /* Private defines -----------------------------------------------------------*/
499 /* Private variables ---------------------------------------------------------*/
508 /* Private constants ---------------------------------------------------------*/
517 /* Private macros ------------------------------------------------------------*/
526 #define IS_JPEG_CHROMASUBSAMPLING(SUBSAMPLING) (((SUBSAMPLING) == JPEG_444_SUBSAMPLING) || \
527  ((SUBSAMPLING) == JPEG_420_SUBSAMPLING) || \
528  ((SUBSAMPLING) == JPEG_422_SUBSAMPLING))
529 
530 #define IS_JPEG_IMAGE_QUALITY(NUMBER) (((NUMBER) >= JPEG_IMAGE_QUALITY_MIN) && ((NUMBER) <= JPEG_IMAGE_QUALITY_MAX))
531 
532 #define IS_JPEG_COLORSPACE(COLORSPACE) (((COLORSPACE) == JPEG_GRAYSCALE_COLORSPACE) || \
533  ((COLORSPACE) == JPEG_YCBCR_COLORSPACE) || \
534  ((COLORSPACE) == JPEG_CMYK_COLORSPACE))
535 
536 #define IS_JPEG_PAUSE_RESUME_STATE(VALUE) (((VALUE) == JPEG_PAUSE_RESUME_INPUT) || \
537  ((VALUE) == JPEG_PAUSE_RESUME_OUTPUT)|| \
538  ((VALUE) == JPEG_PAUSE_RESUME_INPUT_OUTPUT))
539 
548 /* Private functions prototypes ----------------------------------------------*/
557 /* Private functions ---------------------------------------------------------*/
574 #endif /* STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */
575 #ifdef __cplusplus
576 }
577 #endif
578 
579 #endif /* __STM32F7xx_HAL_JPEG_H */
580 
581 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
HAL_LockTypeDef
HAL Lock structures definition.
#define __IO
Definition: core_cm0.h:213
JPEG Codec.
Definition: stm32f767xx.h:1194
HAL_LockTypeDef Lock
DMA handle Structure definition.
This file contains HAL common defines, enumeration, macros and structures definitions.
__IO HAL_I2C_StateTypeDef State
HAL_StatusTypeDef
HAL Status structures definition.