ESP-GMF General Multimedia Framework

[中文]

ESP-GMF (Espressif General Multimedia Framework) is Espressif’s lightweight processing framework for IoT multimedia. It uses elements as the basic processing units, connects them in a pipeline, and transfers audio, video, and general data through ports and a data bus.

Architecture, APIs, and examples are in the ESP-GMF documentation.

Component

Layer

Description

Related links

gmf_core

Core

Defines the processing chain, processing unit, data port, data bus, and FOURCC

Docs · Component

gmf_io

Elements

Provides external interfaces for files, HTTP, embedded Flash, I2S PDM, and codec devices

Docs · Component

gmf_audio

Elements

Provides audio codecs, sample-rate, channel, and bit-depth conversion, plus equalization, mixing, fade, automatic level control, and dynamic range control

Docs · Component

gmf_video

Elements

Provides video codecs, plus scaling, rotation, overlay, and frame-rate conversion, with PPA acceleration when available

Docs · Component

gmf_ai_audio

Elements

Provides acoustic echo cancellation, noise suppression, automatic gain control, voice activity detection, wake-word detection, and command-word recognition

Docs · Component

gmf_misc

Elements

Copies one input to multiple outputs for splitting and parallel processing

Docs · Component

gmf_loader

Packages

Registers processing units and external interfaces into the framework pool from menuconfig, and applies default parameters

Docs · Component

gmf_app_utils

Packages

Provides application initialization and debug helpers for codecs, I2C, SD cards, Wi-Fi, and the command line

Docs · Component

esp_capture

Packages

Captures audio and video through a source, processing path, and sink, with encoding, overlay, and local storage

Docs · Component

esp_player

Packages

Demuxes, decodes, and renders audio and video in one instance; input can be a local file, HTTP(S), HLS, or an external frame

Docs · Component

esp_audio_simple_player

Packages

Plays audio by selecting the external interface and decoder from the URI scheme and file extension

Docs · Component

esp_audio_render

Packages

Mixes multiple PCM streams and writes the result through a callback; processing chains can run before and after mixing

Docs · Component

esp_video_render

Packages

Composites video and UI onto LCD, LVGL, or a frame buffer; supports multiple inputs and dirty-region updates

Docs · Component

esp_bt_audio

Packages

Provides Classic Bluetooth and LE Audio interfaces covering A2DP, HFP, AVRCP, and optional broadcast roles

Docs · Component

esp_asrc

Packages

Converts sample rate, bit depth, and channels; uses the ASRC peripheral when present, otherwise a software implementation

Docs · Component

gmf_fft

Packages

Provides a fixed-point Q15 real FFT and IFFT for lengths from 32 to 8192, with PIE vector optimizations and a C implementation

Docs · Component