aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-10-11input_stream: use "goffset" instead of "off_t"Max Kellermann2-4/+5
The "off_t" type may change when you enable or disable large file support on 32 bit platforms. This caused severe ABI problems within MPD when we enabled LFS for the first time: two sources included config.h and sys/types.h in different order, and had different off_t sizes - leading to memory corruption because of ABI incompatibility. This patch attempts to get rid of all public "off_t" uses: it removes "off_t" from the input_stream ABI/API, and switches to GLib's 64 bit "goffset" type. This may hurt 32 bit embedded platforms a tiny bit, but that's not even measurable.
2009-09-30decoder/ffmpeg: use the "artist" tag if "author" is not presentMax Kellermann1-2/+5
Usually, we read our "artist" tag from ffmpeg's "author" tag. In some cases however (e.g. APE), this tag is named "artist". This patch implements a fallback: if no "author" is found, MPD tries to use "artist".
2009-09-30decoder/faad: skip assertion failure on large ID3 tagsMax Kellermann1-2/+6
When the ID3 tag in an AAC file is larger than the current buffer, the function decoder_buffer_consume() aborts. By using the new function decoder_buffer_skip() instead, we can safely skip the ID3 tag.
2009-09-28Make the sidplay decoder filter configurable.Tony1-1/+5
2009-09-24decoder/sidplay: free songlength data blob in error handlerMax Kellermann1-3/+4
When parsing the songlength database fails, the code forgot to free the memory allocated by the raw file data.
2009-09-24decoder/sidplay: moved code to sidplay_load_songlength_db()Max Kellermann1-29/+36
2009-09-24decoder/sidplay: free GError objectsMax Kellermann1-0/+2
The caller is responsible fro freeing GError objects. That g_error_free() call was missing in two places.
2009-09-24decoder/sidplay: pass GError** to g_file_get_contents()Max Kellermann1-1/+2
The error handler dereferences GError*, but did not retrieve that object from g_file_get_contents().
2009-09-10decoder/vorbis: revert "faster tag scanning with ov_test_callback()"Max Kellermann1-1/+1
This patch made ov_time_total() unusable, and MPD did not know the duration of songs.
2009-08-30decoder/sidplay: support seekingMike Dawson1-3/+34
2009-08-30decoder/sidplay: implemented songlength databaseMike Dawson1-0/+87
[mk: added autoconf test; fixed songlen_data_size type]
2009-08-30decoder/sidplay: subtunesMike Dawson1-8/+125
2009-08-26decoder/mpg123: new decoder plugin based on libmpg123Max Kellermann1-0/+210
Still missing: - seeking - tags - streaming - encodings other than MPG123_ENC_SIGNED_16
2009-08-25decoder/vorbis: open file in "binary" modeGunnar Roth1-1/+1
fopen change for win32 in tag dup of vorbis win32 adaption for head changes
2009-08-24decoder/vorbis: faster tag scanning with ov_test_callback()Rasmus Steinke1-1/+1
using ov_test_callback with function CALLBACKS_STREAMONLY will cause scanning to stop after the comment field. ov_open (and ov_test) default to CALLBACKS_DEFAULT which scans the file structure causing a huge slowdown. The speed improvement is huge: It scanned my files around 10x faster This procedure has been recommended by monthy (main vorbis developer) and was said to be safe for scanning files.
2009-08-14decoder/flac: don't allocate cuesheet twice (memleak)Max Kellermann1-4/+6
The function flac_cue_track() first calls FLAC__metadata_object_new(), then overwrites this pointer with FLAC__metadata_get_cuesheet(). This allocate two FLAC__StreamMetadata objects, but the first pointer is lost, and never freed.
2009-08-03ffmpeg_plugin: convert metadata to generic formatAnton Khirnov1-1/+3
2009-07-22decoder/flac: fixed indentation of flac_comment_value()Max Kellermann1-19/+21
2009-07-22decoder/flac: parse all replaygain tagsMax Kellermann1-14/+18
The FLAC replaygain parser used the "||" operator. This made the code stop after the first value which was found.
2009-07-22decoder/flac: return early from flac_find_float_comment()Max Kellermann1-21/+22
When one metadata check fails, return quickly. This removes 2 levels of indent.
2009-07-22decoder/flac: removed misplaced authorship commentMax Kellermann1-1/+0
This belongs into "git annotate" or AUTHORS.
2009-07-22mad: skip ID3 frames when libid3tag is disabledMax Kellermann1-6/+28
When libid3tag is disabled, the libmad decoder plugin is unable to identify ID3 frames. If the file starts with an (unidentified) ID3 frame, it assumes that the file is not a valid MP3 song. This patch solves this by adding minimal stubs for the ID3 functions.
2009-07-19Add audio_format_init() functionDavid Woodhouse13-50/+23
It makes no difference right now, but we're about to add an endianness flag and will want to make sure it's correctly initialised every time.
2009-07-15modplug: get track lengthSerge Ziryukin1-1/+1
2009-07-09flac: load external cue sheet when no internal oneSerge Ziryukin1-0/+14
External cue sheet file for "file.flac" should be named as "file.flac.cue".
2009-07-07decoder/sndfile: new decoder plugin based on libsndfileMax Kellermann1-0/+246
2009-07-06decoder/flac: fix assertion failure in tag_free() callMax Kellermann1-2/+1
Initialize flac_data.tag right after flac_data_init(). This way, the "goto fail" won't jump to the point where tag_free(NULL) can be called.
2009-06-25ffmpeg: support multiple tagsMax Kellermann1-2/+3
Call av_metadata_get() in a loop.
2009-06-08ffmpeg: moved code to ffmpeg_copy_metadata()Max Kellermann1-33/+18
2009-06-08ffmpeg: removed "new metadata api" warningMax Kellermann1-2/+0
This warning is useless. I assume the author added it for debugging purposes.
2009-04-28mad_decoder: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann1-4/+4
strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
2009-04-28mp4ff_decoder: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann1-8/+9
strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
2009-04-25fluidsynth: added "experimental" comments in the source fileMax Kellermann1-0/+9
2009-04-02vorbis: move #define out of function to top of sourcesAvuton Olrich1-1/+1
2009-04-02decoder: Rename all main decoder plugins functions to *decoder_plugin.Avuton Olrich4-4/+4
2009-04-01flac: fixed "unused variable" warning without libcueMax Kellermann1-2/+2
Move the declaration of "i" into the "for" loop.
2009-03-31Tag subtracks according to "cuesheet" vorbis comment valueJochen Keil1-4/+32
Cuesheets are often saved as vorbis comment flac files (CUESHEET=.. case doesn't matter). We can parse this now and use the information to tag the subtracks (from the embedded cuesheets).
2009-03-31track length is computed correctly nowJochen Keil1-2/+1
2009-03-31free previously allocated flac metadata objectJochen Keil1-0/+1
2009-03-31remove old commented codeJochen Keil1-8/+0
2009-03-28Bugfix for time/offset in flac pluginJochen Keil1-3/+3
Previous cast to float didn't have any effect because one value is uint and the other is a floating type but the number itself is even.. This caused some tracks to end before they were really at an end.
2009-03-27mpcdec: changed plugin name to "mpcdec"Max Kellermann1-3/+3
The "mpcdec" plugin is based on the libmpcdec library.
2009-03-27mpcdec: support the new libmpcdec SV8 APIMax Kellermann1-14/+90
2009-03-27mpcdec: no CamelCaseMax Kellermann1-57/+65
Renamed variables and functions.
2009-03-17flac/cue: added support for TITLE[n] commentsMario Lenz1-2/+9
On 2009/03/17 Max Kellermann<max@duempel.org> wrote: > There doesn't seem to be an "official" standard. I'd say: search for > TITLE[1] first (the most explicit form), then TITLE1, and finally fall > back to TITLE. This makes sure MPD supports every possible standard, > without breaking. I've also added some additional checks to make sure entry is long enough.
2009-03-16flac: get CUE track titles from additional FLAC commentsMario Lenz4-23/+32
The cue sheet embedded in a flac file doen't contain any information about track titles and similar. There are three possibilities: Use an external cue sheet that includes these information, use a tag CUESHEET with a cue sheet including these information or use tags. I think the latter is the best option and is already used by other projects.
2009-03-14faad: faad_decoder_decode() returns NULL, not falseMax Kellermann1-1/+1
On failure, the function should return NULL, not a boolean.
2009-03-13all: Update copyright header.Avuton Olrich19-127/+147
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-03-09Initial support for embedded cue sheets found in flac filesJochen Keil3-6/+463
So far only seekpoints are supported, so no proper tagging yet except for track number and track length. Tagging should be done by parsing the cue sheet which is often embedded as vorbis comment in flac files. Furthermore the pathname should be configurable like "%A - %t - %T", where %A means Artist, %t track number and %T Title or so.
2009-03-09decoder_plugin: added method container_scan()Jochen Keil1-0/+1
[mk: fixed whitespace errors; use delete_song() instead of songvec_delete()]