glint_audio
Dart FFI bindings for the glint codec suite.
The package encodes MP3, AAC-LC and Opus, decodes those plus Ogg-Vorbis and
FLAC, and adds whole-file decode/encode helpers, WAV read/write helpers and a
Kaiser-windowed sinc resampler. It loads the native glint library at runtime:
- Linux and Android:
libglint.so - macOS:
libglint.dylib - Windows:
glint.dll - iOS: symbols from the process image
This package does not ship prebuilt native libraries. Build or bundle the native library from the glint repository for the target platform before using the Dart bindings.
Usage
import 'dart:typed_data';
import 'package:glint_audio/glint_audio.dart';
final pcm = Float32List(48000 * 2); // interleaved stereo, +/-1.0
final opus = glintEncodeAudio(
pcm,
2,
48000,
GlintCodec.opus,
bitrate: 96000,
);
final decoded = glintDecodeAudio(opus);
final wav = glintWriteWav(decoded.pcm, decoded.channels, decoded.sampleRate);
glintDecodeAudio auto-detects MP3, AAC (ADTS), Ogg-Opus, Ogg-Vorbis, FLAC
and WAV from the header.
For lower-level APIs, use GlintEncoder, GlintAacEncoder and
GlintOpusEncoder (streaming encode), GlintMp3Decoder, GlintAacDecoder
and GlintOpusDecoder (frame/packet decode), or GlintVorbisDecoder and
GlintFlacDecoder (whole-buffer decode).
Native library
The bindings track the C ABI of the glint repository at the same version, so
build the native library from the matching tag: a call into a symbol the
installed library predates (for example glint_flac_decode against a
pre-0.11.0 build) fails at lookup time, not at compile time.
License
MIT. See LICENSE.
Libraries
- glint_audio
- Dart FFI bindings for the glint MP3 encoder.