libtags

A read-only mirror of https://git.kyotam.com/sigrid. It updates only from there.

NameLast commit messageLast commit date
examplesreadtags example: seek to the image offset and back2 years ago
inputm4a: add replay gain support2 years ago
.gitignoresync last changes from 9front and switch to meson2 years ago
437.ccp437toutf8: have the same signature as other codepage conversion funcs2 years ago
8859.ciso88591toutf8: detect undefined chars and copy as is (fixes utf8 id3v1)2 years ago
base64.cvorbis: support METADATA_BLOCK_PICTURE; don't stop on tags too large, truncate and skip instead2 years ago
flac.cflac: ignore tags of nonsensical sizes2 years ago
harness.cadd a harness target, leave readtags example alone2 years ago
id3genres.cmove stuff around and clean up6 years ago
id3v1.csync last changes from 9front and switch to meson2 years ago
id3v2.cseparate "album artist" key2 years ago
it.csync last changes from 9front and switch to meson2 years ago
LICENSEfreshen up the readme and license2 years ago
m4a.cseparate "album artist" key2 years ago
meson.buildvorbis: support METADATA_BLOCK_PICTURE; don't stop on tags too large, truncate and skip instead2 years ago
meson.optionsadd a harness target, leave readtags example alone2 years ago
mod.cmod: seems like it's 437, not 8859, after all2 years ago
opus.copus: give up if segment sizes can't all fit into the buffer2 years ago
README.mdreadme: link to AFL++2 years ago
s3m.ccp437toutf8: have the same signature as other codepage conversion funcs2 years ago
shell.nixadd shell.nix2 years ago
tags.cFogg -> Fvorbis; deprecate the former2 years ago
tags.hseparate "album artist" key2 years ago
tagspriv.hvorbis: support METADATA_BLOCK_PICTURE; don't stop on tags too large, truncate and skip instead2 years ago
utf16.csync last changes from 9front and switch to meson2 years ago
vorbis.cvorbis: support METADATA_BLOCK_PICTURE; don't stop on tags too large, truncate and skip instead2 years ago
wav.cwav: fix a buffer overflow (offset forgotten)2 years ago
xm.ccp437toutf8: have the same signature as other codepage conversion funcs2 years ago
README.md

libtags

A cross-platform library for reading audio tags, designed mainly for highly constrained environments.

Some features:

  • C, no memory allocations, no dependencies, portable, thread-safe
  • minimalistic API
  • MIT license
  • flac, ogg/vorbis, ogg/opus, m4a, mp3, wav
  • it, xm, s3m, mod
  • id3v1, id3v2.*
  • replay gain
  • number of channels, sampling/bit rate, duration (unless it's a mod-like format)
  • strings are converted to UTF-8 (from 437, ISO-8859-1 and UTF-16)
  • very fast

Fuzzing has been performed with AFL++.

Usage

tags.h is the API which contains the documentation as well.

examples/readtags.c is a simple example that reads and prints out tags of the files specified on the command line.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t