Skip to content

ESP-GMF v1.0 Release

Latest

Choose a tag to compare

@jason-mao jason-mao released this 23 Jun 01:23

Here is the v1.0 release summary for ESP-GMF, based on component changelogs from v0.8 to the current v1.0 component set.

Overview

v1.0 is the first official, API-stable release of ESP-GMF. Compared with v0.8, it consolidates the framework, promotes every official component to a 1.0.x baseline, and adds several new advanced modules. Key updates by area:

  • Promoted all components to 1.0.x — public APIs are now considered stable.
  • Added 4 new advanced/atomic modules: esp_player, esp_asrc, esp_video_render, and gmf_fft.
  • New elements: aud_muxer, aud_howl, aud_asrc (gmf_audio) and ai_vad, ai_ns, ai_doa (gmf_ai_audio).
  • gmf_core adds an esp_gmf_data_queue + data-bus factory for variable-sized block queues, stronger memory-alignment handling for data_bus/payload, and HOWL/DOA/MUXER capability definitions.
  • gmf_audio adds muxer/howl/ASRC elements, decoder input-PTS support, and bumps esp_audio_codec to v2.5 (G722 encode/decode, OGG decode).
  • gmf_video / esp_video_render add hardware-blend and multi-region overlay, PPA software color-convert, manual compose, and broader display-backend support.
  • esp_capture / esp_bt_audio add ESP32-S31 v4l2 + MJPEG→RGB decode, LE Audio (BLE) and Auracast PAST support, and adopt the shared esp_gmf_data_queue.
  • Board management moved out of the repo: esp_board_manager is now the standalone espressif/esp-board-manager component, and examples use esp-bmgr-assist (idf.py bmgr) instead of per-example prebuild / idf_ext.py scripts.

Compatibility Notes

  • Breaking Change (gmf_core): The usage of esp_gmf_fifo_set_align changed. Review any direct callers and update them for the new alignment-aware semantics.
  • Breaking Change (esp_audio_simple_player): The first argument of esp_asp_prev_func_t changed from esp_asp_handle_t *handle to esp_asp_handle_t handle. Update your on_pre_run/pre-run callbacks accordingly (the esp_audio_render example was updated to match).
  • FourCC change (gmf_core): The FLV FourCC was corrected from FLV1 to FLV. If your application persists or compares raw FourCC values, update your logic.
  • Board manager migration: esp_board_manager no longer ships inside esp-gmf. It is now the standalone espressif/esp-board-manager component (current release 0.5.15; examples depend on it via >=0.5). The per-example prebuild.sh / prebuild.ps1 / idf_ext.py forwarders were removed — install esp-bmgr-assist (pip install esp-bmgr-assist) and run idf.py bmgr -b <board> before building.

GMF Components Summary (All Official Components in This Repo)

Component Category Version Highlights Changelog
esp_player New Module v1.0.1 New embedded multimedia player: demux + decode + audio/video render with seek; decoder/IO stability fixes 📝
esp_audio_simple_player Enhancements v1.0.0 Breaking esp_asp_prev_func_t signature change, weak-typed URL playback detection, dynamic URI→IO mapping, esp_audio_simple_player_get_pool, bit-depth conversion Kconfig 📝
esp_capture Enhancements v1.0.0 Shared esp_gmf_data_queue adoption, esp-sr v2.4, ESP32-S31 v4l2 + MJPEG→RGB decode, multi-region overlay & share_overlay, restart-bypass fix 📝
esp_bt_audio Enhancements v1.0.0 LE Audio (BLE) support, Auracast PAST + clock-sync check, Classic/LE UI in the bt_audio example, standalone board-manager 📝
esp_audio_render Enhancements v1.0.0 ESP32-S31 example support, payload-clear memory-access fix, standalone board-manager example migration 📝
esp_video_render New Module v1.0.0 New video + UI composition module: multi-backend display, dual stream, overlay/widget system, and manual compose 📝
esp_asrc New Module v1.0.1 New audio sample-rate converter (sample rate / bit depth / channel count) with HW–SW cooperative architecture; ESP32-P4 & S31 support 📝
esp_board_manager External (standalone repo) 0.5.15 Migrated out of esp-gmf into its own repository; examples integrate it via esp-bmgr-assist (idf.py bmgr) 📝
gmf_loader Enhancements v1.0.0 Loader setup for muxer/howl/asrc and standalone AI elements (VAD/NS/DOA), G722/OGG and HOWL effect configuration, standalone board-manager 📝
gmf_app_utils Enhancements v1.0.0 Adopted the standalone esp-board-manager component (>=0.5) 📝
gmf_examples Enhancements v1.0.0 New pipeline_record_audio_muxer & pipeline_howl examples; migrated examples to standalone esp-board-manager + esp-bmgr-assist (idf.py bmgr) 📝
gmf_audio Enhancements v1.0.0 New aud_muxer/aud_howl/aud_asrc elements, decoder input-PTS support, esp_audio_codec v2.5 (G722/OGG), finer-grained mutex protection 📝
gmf_video Enhancements v1.0.0 vid_overlay hardware blend & multi-region, ESP32-S31 v4l2, PPA software color-convert, plus alignment/bypass and IDF v5.x/6.x build fixes 📝
gmf_ai_audio Enhancements v1.0.0 New ai_vad/ai_ns/ai_doa elements, esp-sr v2.4.4, ESP32-S31 support, board-manager-based example configuration 📝
gmf_io Enhancements v1.0.0 Default HTTPS certificate-bundle support for HTTP IO and IDF v6.0+ build fixes 📝
gmf_misc Enhancements v1.0.0 No functional delta in v1.0; version aligned with the v1.0 ecosystem 📝
gmf_fft New Module v1.0.0 New fixed-point Q15 real FFT/IFFT with PIE acceleration (S3/P4/S31) and a scalar fallback covering all ESP32 series 📝
gmf_core Enhancements v1.0.0 Variable-sized block data queue + data-bus factory, stronger data_bus/payload alignment (breaking esp_gmf_fifo_set_align), HOWL/DOA/MUXER caps, IO seek/reload & resource-leak fixes, FourCC additions/corrections 📝

Get This Release

git clone https://github.com/espressif/esp-gmf.git esp-gmf-v1.0
cd esp-gmf-v1.0
git checkout v1.0

Or add selected components directly via idf.py:

idf.py add-dependency "espressif/esp_player^1.0.1"
idf.py add-dependency "espressif/esp_audio_simple_player^1.0.0"
idf.py add-dependency "espressif/esp_capture^1.0.0"
idf.py add-dependency "espressif/esp_bt_audio^1.0.0"
idf.py add-dependency "espressif/esp_audio_render^1.0.0"
idf.py add-dependency "espressif/esp_video_render^1.0.0"
idf.py add-dependency "espressif/esp_asrc^1.0.1"
idf.py add-dependency "espressif/gmf_loader^1.0.0"
idf.py add-dependency "espressif/gmf_app_utils^1.0.0"
idf.py add-dependency "espressif/gmf_examples^1.0.0"
idf.py add-dependency "espressif/gmf_audio^1.0.0"
idf.py add-dependency "espressif/gmf_video^1.0.0"
idf.py add-dependency "espressif/gmf_ai_audio^1.0.0"
idf.py add-dependency "espressif/gmf_io^1.0.0"
idf.py add-dependency "espressif/gmf_misc^1.0.0"
idf.py add-dependency "espressif/gmf_fft^1.0.0"
idf.py add-dependency "espressif/gmf_core^1.0.0"