aboutsummaryrefslogtreecommitdiff
path: root/src/tag_ape.c
Commit message (Collapse)AuthorAge
* decoder/wavpack: support all APEv2 tagsMax Kellermann2012-09-25
| | | | | WavPack tags are always APEv2, by definition. Reuse the tag_table from tag_ape.c, instead of rolling our own.
* tag_ape: return false if no usable tag was foundMax Kellermann2012-07-29
| | | | | | | 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.
* tag_{ape,id3}: remove the _load() functionsMax Kellermann2012-02-12
| | | | Use _scan() instead, to have more control.
* tag_handler: handle arbitrary name/value pairsMax Kellermann2012-02-12
| | | | | The new method pair() receives an arbitrary name/value pair. Support for this is being added to a few decoder plugins.
* decoder_plugin: scan tags with callback tableMax Kellermann2012-02-11
| | | | | Pass a callback table to scan_file() and scan_stream(), instead of returning a tag object.
* tag_table: convert to a structMax Kellermann2012-02-11
| | | | | The struct is smaller because it is sparse. Its traversal is also more efficient.
* copyright year 2011Max Kellermann2011-01-29
|
* tag_ape: support multiple valuesMax Kellermann2010-11-24
| | | | One APE tag may contain more than one value, separated by null bytes.
* tag_ape: move code to ape.cMax Kellermann2010-11-18
| | | | Generic library for scanning APE tags. Eliminated one "goto"!
* tag_ape: remove duplicate entries in the tag name tableMax Kellermann2010-05-31
| | | | Reuse the function tag_name_parse_i().
* tag_ape: move code to tag_ape_name_parse()Max Kellermann2010-05-31
|
* tag_ape: move table lookup to tag_table.hMax Kellermann2010-05-30
| | | | Allow code sharing.
* tag_ape: support album artist, MusicBrainz tagsMax Kellermann2010-05-30
| | | | | | | | | | 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.
* tag_{id3,ape}: explicitly open files in binary modeMax Kellermann2010-05-20
| | | | Add the flag "b" to fopen(). Windows compatibility.
* Update copyright notices.Avuton Olrich2009-12-31
|
* include config.h in all sourcesMax Kellermann2009-11-12
| | | | | | 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.
* tag: removed the "_ITEM_" suffix from the enum namesMax Kellermann2009-10-13
|
* Merged release 0.15.2 from branch 'v0.15.x'Max Kellermann2009-08-15
|\ | | | | | | | | | | | | Conflicts: NEWS configure.ac
| * ape: added protection against large memory allocationsMax Kellermann2009-07-19
| | | | | | | | | | | | 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.
| * tag_ape: removed redundant length checkMax Kellermann2009-07-19
| | | | | | | | | | Extend the tagLen check after reading it. Removed the second (redundant) check after the subtraction.
| * ape: check the tag size (fixes integer underflow)Max Kellermann2009-07-18
| | | | | | | | | | | | | | 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.
* | tag_ape: simplified the apeItems arrayMax Kellermann2009-07-19
| | | | | | | | | | Make "enum tag_type" the array index, and convert apeItems to a sparse array.
* | tag_ape: moved code to tag_ape_import_item()Max Kellermann2009-07-19
| | | | | | | | Improve code readability.
* | tag_ape: converted apeItems and tagItems to global varsMax Kellermann2009-07-19
|/ | | | Don't initialize those arrays each time tag_ape_load() is called.
* tag: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann2009-04-28
| | | | | strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
* all: Update copyright header.Avuton Olrich2009-03-13
| | | | | | | | 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.
* tag: moved APE code to tag_ape.cMax Kellermann2009-02-28