libtags

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

Sigrid Solveig Haflínudóttirreadme: link to AFL++b8408ce2 years agoHistory
NameLast commit messageLast commit date
examplesadd a harness target, leave readtags example alone2 years ago
inputinputs: run flac, mp3 and ogg through r1282 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
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.cid3v2: make sure duration is left as is if already calculated2 years ago
it.csync last changes from 9front and switch to meson2 years ago
LICENSEfreshen up the readme and license2 years ago
m4a.cm4a: ignore tags of nonsensical sizes2 years ago
meson.buildmeson: disable _FORTIFY_SOURCE if fuzzing enabled2 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.hadd a note about album/track gain2 years ago
tagspriv.hcp437toutf8: have the same signature as other codepage conversion funcs2 years ago
utf16.csync last changes from 9front and switch to meson2 years ago
vorbis.copus, vorbis: fix a possible buffer overflow when reading tags2 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