# Changelog ## 1.3.7 ### Features - Signaled frame rate in HW encoder SPS via VUI `timing_info` (`num_units_in_tick`, `time_scale`, `fixed_frame_rate_flag`), so fps can be recovered as `time_scale / (2 * num_units_in_tick)` - Added `esp_h264_aligned_malloc` and `esp_h264_malloc_prefer` for non-zeroing allocation - Used malloc for large HW encoder reference and deblocking buffers to reduce `new` latency - Added `esp_h264_enc_force_idr()` to force the next encoded frame to be an IDR (HW), without changing the configured GOP ### Fixes - Fixed `CLIP3` argument order in HW rate control so `eqp` is clamped to [-5, 5] correctly (avoids RC oscillation) - Fixed spelling and grammar in public headers and README ## 1.3.6 ### Features - Supported IDF6.0 - Supported ESP32-S31 ### Fixes - Fixed excessive internal buffer allocation in the decoder ## 1.3.5~1 - Fixed missing headers inclusion in h264_nal.c ## 1.3.5 ### Fixes - Fixed hardware encoder (P4) encoding failure when flash encryption is enabled and accessing PSRAM ## 1.3.0 ### Fixes - Corrected pixel format name from BGR565_BE to RGB565_LE in documentation comments and in the public enum/type definition (naming aligned with actual byte order) ## 1.2.0~1 ### Fixes - Fixed spelling and grammar errors in documentation and code comments - Corrected hardware encoder resolution ranges (width: 80-1920, height: 80-2048) - Fixed PPS row description and P-frame description in feature table ## 1.2.0 ### Features - Added hardware encoder support for multiple pixel formats on ESP32-P4(>=3.0.0): - BGR888 (24-bit RGB format) - BGR565_BE (16-bit RGB Big-Endian format) - VUY (YUV 4:4:4 format) - UYVY (YUV 4:2:2 format) - Added hardware version detection macro `ESP_H264_HW_IS_SUPPORTED_PIC_TYPE` - Added `ESP_H264_GET_BPP_BY_PIC_TYPE` macro to determine the number of bits per pixel for a given picture type - Added support for ESP32P4 V3 hardware versions ### Fixes - Fixed a bug where the hardware encoder failed to set GOP via `esp_h264_enc_set_gop` ## 1.1.4 - Fixed wrong frame type output for the H264 software encoder - Added test cases (GOP, FPS, picture type) for H264 software encoder ## 1.1.3 - Fixed a bug where CmakeLists.txt excessive dependence on freertos pthread and newlib components ## 1.1.2 - Fixed compatibility issue by adding POSIX compatibility layer and resolving FreeRTOS symbol linking problems in static libraries - Enhanced CMakeLists.txt with proper dependency management for FreeRTOS pthread and newlib components ## 1.1.1 - Fixed compatibility issue by temporarily disabling HWLP for ESP32-P4 in the decoder ## 1.1.0 - Improved decoder performance - Added support for dual-task decoding - Updated decoder profile support from baseline profile to constrained baseline profile ## 1.0.4 - Fixed memory wrapper allocating incorrect memory capabilities in the decoder ## 1.0.3 - Fixed slice header error when cache missing - Fixed bitrate size wrong for hw encoder - Test case use SPI-RAM ## 1.0.2 - Fixed the CI build error on ESP32S3 - Fixed the component dependencies error - Fixed the length of out frame incorrect for software encoder ## 1.0.1 - Changed the IDF dependencies from >= 5.3 to >= 4.4 - Fixed the decoder without updating PTS and DTS ## 1.0.0 - Initial version for esp_h264 component