Introduction#
We are releasing ESP-GMF (General Multimedia Framework) v1.0, the first official release of Espressif’s unified software platform for developing multimedia applications.
In the past, multimedia applications were often built on separate frameworks, each with its own development model, interface design, and runtime mechanism. This limited code reuse and made it harder to extend functionality across products and the wider ecosystem.
ESP-GMF was created to change that. It brings Espressif’s previously scattered multimedia capabilities under a single software architecture, with a unified data-flow model, component system, and development framework — covering use cases from playback and recording to AI voice, video calling, Bluetooth audio, and rendering, all built on the same framework. Compared with our earlier audio framework, ESP-ADF, ESP-GMF offers a more modular architecture, broader hardware and media support, and better code reuse across audio, video, and AI applications.
Alongside ESP-GMF, we have also completed the ESP Multimedia Core — a unified library that consolidates foundational multimedia building components such as media protocols, audio/video codecs, and audio/image processing algorithms. It gives ESP-GMF, and the products built on it, a stable, long-term foundation, and we will keep expanding it together with the framework and the wider ecosystem.
Overview#
ESP-GMF v1.0 is the first official, API-stable release of the framework. It consolidates the earlier development versions, promotes every official component to a 1.0.x baseline, and introduces several new advanced modules — all of which are summarized in the ESP-GMF components summary below. 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, andgmf_fft. - New elements:
aud_muxer,aud_howl,aud_asrc(gmf_audio) andai_vad,ai_ns,ai_doa(gmf_ai_audio). gmf_coreadds anesp_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_audioadds muxer/howl/ASRC elements, decoder input-PTS support, and bumpsesp_audio_codecto v2.5 (G722 encode/decode, OGG decode).gmf_video/esp_video_renderadd hardware-blend and multi-region overlay, PPA software color-convert, manual compose, and broader display-backend support.esp_capture/esp_bt_audioadd ESP32-S31 v4l2 + MJPEG→RGB decode, LE Audio (BLE) and Auracast PAST support, and adopt the sharedesp_gmf_data_queue.- Board management migration:
esp_board_manageris now the standaloneespressif/esp-board-managercomponent, and examples useesp-bmgr-assist(idf.py bmgr) instead of per-example prebuild /idf_ext.pyscripts.
ESP-GMF components summary#
All official components in this repo:
| Component | Category | Version | Highlights |
|---|---|---|---|
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 |
Where to go next#
- Full Release Notes — detailed changelog and upgrade notes.
- ESP-GMF GitHub repository — source, components, and examples.
- Read the documentation in English or 中文.
- Open an issue — feature requests, documentation suggestions, and bug reports are welcome.
If you build something on top of ESP-GMF, we would love to see it — share it on the esp32.com forum.





