The Espressif General Multimedia Framework (ESP-GMF) is a lightweight and versatile software framework developed by Espressif specifically for IoT multimedia applications. It is highly flexible and scalable and tailored for IoT chips, with RAM usage as low as 7 KB. ESP-GMF supports applications in audio, image, and video processing, as well as any data-streaming product.
ESP-GMF consists of three modules: GMF-Core, GMF-Elements, and GMF-Examples.
- GMF-Core is the core of the ESP-GMF software framework and includes the main components such as GMF-Element, GMF-Pipeline, and GMF-Task.
- GMF-Elements implements various functional elements based on GMF-Core, such as codec algorithms, audio processing algorithms, and more.
- GMF-Examples provides examples of how to use GMF-Pipeline to implement simple functionalities, such as playing music from flash or an SD card. It also includes examples of high-level components implemented using GMF-Pipeline, such as the Audio Simple Player, a basic audio decoding player.
Each ESP-GMF functional module exists as a component, currently including gmf-core, gmf-audio, gmf-image, gmf-misc, and gmf-io.
Component Name | Function | Dependent Components |
---|---|---|
GMF-Core | Core framework for GMF | None |
GMF-Element-Audio | Elements for audio encoding, decoding, and sound effects processing |
- gmf-core - esp_audio_effects - esp_audio_codec |
GMF-Element-MISC | Utility elements | None |
GMF-Element-Image | Elements for image encoding, decoding, and image effects processing |
- gmf-core - esp_new_jpeg |
GMF-IO | Input/output for files, flash, and HTTP | - gmf-core - esp_codec_dev |
When developing a project, it is recommended to use the elements and IOs components from the official GMF-Elements repository. You can also create your own elements and IO components to extend its application scenarios.
For a basic example of GMF-Core API usage, see test_apps. For practical application examples of GMF-Elements, see the examples under GMF_Elements.
-
What is the difference between ESP-GMF and ESP-ADF?
ESP-ADF is a functional repository that includes many modules, such as
audio_pipeline
,services
,peripherals
, andaudio boards
. It is commonly used for more complex projects. ESP-GMF is an extension of theaudio_pipeline
module, designed to support applications for streaming audio, video, and image data. ESP-GMF offers a more modular structure than ESP-ADF'saudio_pipeline
by organizing functionality into different components, making it more flexible. For example, it is suitable for simple data streaming, such as playing audio from SD card/flash, or combining multiple components to provide more complex modules (e.g., audio playeresp_audio_simple_player
). Future versions of ESP-ADF will replace theaudio_pipeline
module with ESP-GMF.