Build and Bazel changes
- Remove the dependency on internal Bazel Apple rules
resources.bzlinmediapipe/metal.bzl, using the metal rule provided by Bazel Apple rules. - Add Python 3.13 and 3.14 support to the MediaPipe Bazel build.
- Upgrade LiteRT dependency to v2.2.0 in MediaPipe
WORKSPACE. - Move up declaration of
kissfftin build configuration. - Fix
xla llvmdownload URL by usingmediapipe-assetsmirror. - Fix Windows build.
- Remove obsolete
unistd.hheader imports. - Configure MediaPipe for vendor/no-JNI Android builds.
Framework and core calculator improvements
- Bump MediaPipe version to 1.1.0.
- Add MediaPipe Universal Embedder, Semantic Retriever, and LiteRT-LM integration across C++, C, Python, and Android/Maven APIs.
- MediaPipe Decision: Add EmbeddingGemma 1 & 2 decision backend with multimodal state and option support.
- Implement core
TaskPartandEmbeddingProviderinterface. - Refactor
TextPart,AudioPart, andImagePartintotasks.coreand unify duplicates. - Refactor
TextEmbedderandImageEmbedderto use executor abstractions (TextEmbedderExecutor,ImageEmbedderExecutor). - Add
HasFile,GetBundleManifest, andGetBundleIdhelpers toModelAssetBundleResources. - Add
noexceptto move ctor/operator and addswaptoPacket. - Add method to create an empty packet in Java API.
- Use
ABSL_ASSIGN_OR_RETURNandABSL_RETURN_IF_ERRORin MediaPipe. - Rename
GeckoPreprocessorCalculatortoSentencePiecePreprocessorCalculator. - Add option to ignore missing
encoded_media_bytesinUnpackMediaSequenceCalculator. - Add LiteRT-LM based C++ Audio Embedder.
- C API for MediaPipe AudioEmbedder.
- Select the MediaPipe OpenGL device by Vulkan device UUID.
- Replace LiteRT delegate with
use_litertoption in MediaPipeBaseOptions. - Expose LiteRT and NPU delegate options to MediaPipe Tasks.
- Only use public LiteRT API in LiteRT inference calculator.
- Support passing
LiteRtSystemHandlesto Environment in LiteRT Inference Calculator. - Add support for specifying a signature key for LiteRT inference.
- Retain
MTLCommandQueuedirectly instead ofDrishtiMetalHelperinInferenceRunnerLiteRt. - Use runtime layout for rank-0 LiteRT model outputs in
InferenceRunnerLiteRt. - Check GPU service availability in
TensorsToDetectionsCalculator. - Improve MediaPipe Metal GPU delegate error messages for unsupported configurations.
- Allow size mismatched tensors for GPU execution.
- Fix race condition in
GpuResources. - Fix deprecated
CreateSourceTextureusage in desktop GPU example.
MediaPipe Tasks update
This section highlights the changes that are done specifically for each platform and don't propagate to other platforms.
Android
- Add plumbing needed for zero-copy
AHardwareBuffer(AHWB) output from the GPU. - Fix OpenGL ES and
AHardwareBuffersynchronization when converting between write and read views. - Wrap VC effects AHWB graph input as
AHardwareBuffer(kRGBA32). - Raise
MediaPipeExceptioninstead of crashing insurface_output_jnion Android EGL surface creation failure. - Fix crash in
PathToResourceAsFilewhenTEST_SRCDIRis not set on Android. - Made AppSearch vector store optional for SemanticRetriever Android SDK.
- Add Semantic Retriever Java API by prebuilding SQLite dependencies.
- Support in-memory audio and image representations in MediaPipe Tasks Android.
- Support multi-part multimodal embedding and vector store serialization in MediaPipe Tasks Android.
- Ensure that JNI methods are exported for Android Tasks.
- Remove legacy
LITERTdelegate flag from Android API.
iOS
- Update Swift Package Manager (SPM) manifest for MediaPipe Tasks iOS 1.1.0.
- Add iOS Retrieval SPM package (
MediaPipeTasksRetrieval). - Add missing
MPPAudioRecord.htoMediaPipeTasksRetrievalXCFramework headers. - Exclude MediaPipe C API (
_Mp*) symbols from the iOS symbol rename map. - Add
inference_calculator_litertdependencies to iOS Tasks targets. - Return standard
NSErrorinstead of crashing when universal embedder model path is invalid. - Support in-memory audio and image representations in MediaPipe Tasks iOS.
- Support multi-part multimodal embedding and vector store serialization in MediaPipe Tasks iOS.
Javascript
- Add retrieval to MediaPipe Tasks for Web (
UniversalEmbedder,SemanticRetriever). - Export public APIs for Web
SemanticRetriever. - Make the
DecisionMakerweb API usable from the minifieddecision_jsbundle. - Refactor task name discovery in MediaPipe Web Tasks.
- Expose per-landmark presence scores on the Web Tasks API.
- Enable GPU usage for
UniversalEmbedderon Web. - Prevent overlapping WASM embedding calls.
- Disable LiteRT-LM extensive logging for
UniversalEmbedderon Web. - Add stats logging to Web Tasks.
- Add unit tests for
ImageFrameandYUVImageconversions. - Add missing
awaitcalls toUniversalEmbedderexample in web retrieval documentation.
Python
- Python API for MediaPipe
AudioEmbedder. - Add
cosine_similarityutility method toUniversalEmbedder. - Cast all Python types to their explicit C type assignment for ABI stability.
- Add
cache_diroption and default to:nocache. - Add Semantic Retriever Python API with bundled SQLite vector store.
Bug fixes
- Fix
HolisticLandmarkercrash when face detections are missing. - Fix
HolisticLandmarkerAnyBuilder return type and empty packetMediaPipeExceptions. - Re-add
ImageEmbedder.close()method. - Fix
numpy_view()SIGABRT on non-contiguousfloat32masks. - Fix wrist connection in
HAND_PALM_CONNECTIONS. - Fix landmark drift in
LandmarksSmoothingCalculator(OneEuroFilter) when stream resolution dynamically changes between preview and still capture. - Correct parameter names in core calculators.
- Fix WAV decoder calculations in
audio_decoder_calculator_test.
MediaPipe Dependencies
- Upgrade LiteRT dependency to v2.2.0 in
WORKSPACE. - Update WASM asset binaries for 1.1.0 release.