aboutsummaryrefslogtreecommitdiffstats
path: root/src/tag_ape.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2012-09-25decoder/wavpack: support all APEv2 tagsMax Kellermann1-1/+1
WavPack tags are always APEv2, by definition. Reuse the tag_table from tag_ape.c, instead of rolling our own.
2012-07-29tag_ape: return false if no usable tag was foundMax Kellermann1-7/+21
Ignore APE tags that have no usable tags, and use the ID3 tag instead. This is useful when the APE tag only contains replay gain, and the real tags are stored as ID3. This implements feature request Mantis #0003521.
2012-02-12tag_{ape,id3}: remove the _load() functionsMax Kellermann1-12/+0
Use _scan() instead, to have more control.
2012-02-12tag_handler: handle arbitrary name/value pairsMax Kellermann1-0/+2
The new method pair() receives an arbitrary name/value pair. Support for this is being added to a few decoder plugins.
2012-02-11decoder_plugin: scan tags with callback tableMax Kellermann1-20/+36
Pass a callback table to scan_file() and scan_stream(), instead of returning a tag object.
2012-02-11tag_table: convert to a structMax Kellermann1-4/+5
The struct is smaller because it is sparse. Its traversal is also more efficient.
2011-01-29copyright year 2011Max Kellermann1-1/+1
2010-11-24tag_ape: support multiple valuesMax Kellermann1-1/+15
One APE tag may contain more than one value, separated by null bytes.
2010-11-18tag_ape: move code to ape.cMax Kellermann1-93/+19
Generic library for scanning APE tags. Eliminated one "goto"!
2010-06-30tag_ape: remove duplicate entries in the tag name tableMax Kellermann1-7/+5
Reuse the function tag_name_parse_i().
2010-06-30tag_ape: move code to tag_ape_name_parse()Max Kellermann1-1/+7
2010-06-30tag_ape: move table lookup to tag_table.hMax Kellermann1-9/+9
Allow code sharing.
2010-06-30tag_ape: support album artistMax Kellermann1-0/+1
I took this tag name from a MusePack sample file I got from a user. It is not documented in the APE specification: http://wiki.hydrogenaudio.org/index.php?title=APE_key People seem to be using undocumented extensions to the specification anyway, and the best we can do is attempt to support them.
2010-06-30tag_ape: simplified the apeItems arrayMax Kellermann1-22/+12
Make "enum tag_type" the array index, and convert apeItems to a sparse array.
2010-06-30tag_ape: moved code to tag_ape_import_item()Max Kellermann1-12/+22
Improve code readability.
2010-06-30tag_ape: converted apeItems and tagItems to global varsMax Kellermann1-20/+20
Don't initialize those arrays each time tag_ape_load() is called.
2010-05-31tag_ape: remove duplicate entries in the tag name tableMax Kellermann1-13/+5
Reuse the function tag_name_parse_i().
2010-05-31tag_ape: move code to tag_ape_name_parse()Max Kellermann1-1/+7
2010-05-30tag_ape: move table lookup to tag_table.hMax Kellermann1-9/+9
Allow code sharing.
2010-05-30tag_ape: support album artist, MusicBrainz tagsMax Kellermann1-1/+8
I took these tag names from a MusePack sample file I got from a user. These are not documented in the APE specification: http://wiki.hydrogenaudio.org/index.php?title=APE_key People seem to be using undocumented extensions to the specification anyway, and the best we can do is attempt to support them.
2010-05-20tag_{id3,ape}: explicitly open files in binary modeMax Kellermann1-1/+1
Add the flag "b" to fopen(). Windows compatibility.
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-11-12include config.h in all sourcesMax Kellermann1-0/+1
After we've been hit by Large File Support problems several times in the past week (which only occur on 32 bit platforms, which I don't have), this is yet another attempt to fix the issue.
2009-10-13tag: removed the "_ITEM_" suffix from the enum namesMax Kellermann1-7/+7
2009-07-19tag_ape: simplified the apeItems arrayMax Kellermann1-22/+12
Make "enum tag_type" the array index, and convert apeItems to a sparse array.
2009-07-19tag_ape: moved code to tag_ape_import_item()Max Kellermann1-12/+22
Improve code readability.
2009-07-19tag_ape: converted apeItems and tagItems to global varsMax Kellermann1-20/+20
Don't initialize those arrays each time tag_ape_load() is called.
2009-07-19ape: added protection against large memory allocationsMax Kellermann1-0/+3
The function tag_ape_load() retrieves a 32 bit unsigned integer from the input file, and passes it to g_malloc(). This is dangerous, and may be used for a denial of service attack on MPD.
2009-07-19tag_ape: removed redundant length checkMax Kellermann1-3/+4
Extend the tagLen check after reading it. Removed the second (redundant) check after the subtraction.
2009-07-18ape: check the tag size (fixes integer underflow)Max Kellermann1-1/+1
The expression "tagLen - size > 0" may result in an integer underflow and a buffer overflow, when "size" is larger than "tagLen". "size" is read from the input file, and must not be trusted. This patch changes the expression to "tagLen > size", which is a lot safer.
2009-04-28tag: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann1-1/+1
strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
2009-03-13all: Update copyright header.Avuton Olrich1-3/+4
This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy.
2009-02-28tag: moved APE code to tag_ape.cMax Kellermann1-0/+145