meson: disable _FORTIFY_SOURCE if fuzzing enabled
add a note about album/track gain
meson: warning options: check the ones actually used
id3v2: only jump to another header if it follows the last one, to avoid possible loops
add a harness target, leave readtags example alone
inputs: run flac, mp3 and ogg through r128
flac: ignore tags of nonsensical sizes
Fogg -> Fvorbis; deprecate the former
m4a: ignore tags of nonsensical sizes
id3v2: avoid going too far within the buffer when searching for a sync word to calculate duration
id3v2: deal with invalid text tag sizes
flac: deal with invalid tag sizes
id3v2: APIC: null-terminate before calling strlen for safety
opus: give up if segment sizes can't all fit into the buffer
wav: fix a buffer overflow (offset forgotten)
id3v2: ignore images with nonsensical sizes
iso88591toutf8: detect undefined chars and copy as is (fixes utf8 id3v1)
inputs: add id3v2.3 and id3v2.4 mp3 files
wav: see if there is an id3v2 tag at the end
id3v2: extended header size includes 'size' bytes and is 6 bytes minimum, respect that
mod: seems like it's 437, not 8859, after all
cp437toutf8: have the same signature as other codepage conversion funcs
meson: remove unsupported warning options, stop fortify warning nonsense with debug builds
wav: validate value size as well
readtags: add a block used for fuzzing
update readme
inputs: add it and s3m
inputs: add mod and xm
meson: liblib -> lib
mod: add more variations: [468]CHN
add id3v1 input
wav: stick to ints
m4a: make sure to not seek in an infinite loop with broken files
opus, vorbis: fix a possible buffer overflow when reading tags
flac: fix possible mime buffer overflow (used wrong offset)
id3v2: make sure genre index is >= 0
add fuzz inputs
add shell.nix
cp437toutf8: portable version
meson: define what gets installed
sync last changes from 9front and switch to meson
m4a: "gnre" is non-standard id3v1 style (non-text) - check before reading the value
wav: fix a warning
add Tcomposer and Tcomment
wav: respect buffer size when reading tag value
wav: process unknown tags as well
readtags example: print Tunknown tags
wav: don't stop on data (tags may follow after); don't stop after 8 sections either
Don't null-terminate already null-terminated strings
libtags: opus/vorbis: make sure to get to the last frame to have the full duration
libtags: vorbis, opus: ignore tags past the ogg page
libtags: try other formats after id3v2 is found
wav: do not div by zero; validate sample rate and number of channels
m4a: do not div by zero
id3v2: make sure extra id3 tag does not cause infinite loop
flac: check sample rate before dividing by zero; also check number of channels
fix unix build
sync with 9front changes
mod: simplify a bit
fix string trimming on non-latin chars
do not set tag bit in ctx.found unless the value is non-empty
xm: case-insensitive strcmp, some files are apparently different (thanks kemal)
it, mod: use ISO-8859-1 (thanks kemal)
mod: add another variant (thanks kemal)
gcc so fragile...
make it build on non-9 systems again
trim text tags and ignore empty values
modules: ignore empty titles
mod formats: use CP437 as the default encoding
dumb s3m tags parser
add a very simple XM parser
[PATCH libtags] flac: handle vorbis comments with no fields
fix another non-interruptable temporary
add very basic IT support
make sure beuint/leuint work correctly with d of any type
wav: parse more tag types
wav: fix size reading and duration
add WAV support
vorbis comment: keep PERFORMER away from ARTISTs
opus: granule positions are 48KHz
flac: skip over cover image properly
m4a: support multi-track files as well
removed unused label
vorbis: skip trying to read tags when there is none
add opus support
update copyright years
Revert "try another license"
don't ignore valid audio files without tags
id3v2: make mp3 format check better
update readme
try another license
extension shouldn't matter, remove this logic and add Funknown
optional TOC handler
id3v2: add a note for possibly reading TOC in the future
id3v2: don't stop at false frame sync
readme: forgot the -I.
move stuff around and clean up