aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder (follow)
Commit message (Collapse)AuthorAgeFilesLines
* decoder/flac: removed redundant NULL checksMax Kellermann2009-11-111-9/+3
| | | | After the decoder loop, "flac_dec" is always set.
* decoder/flac: moved code to flac_pcm.cMax Kellermann2009-11-113-81/+133
|
* decoder/flac: moved code to flac_metadata.cMax Kellermann2009-11-116-175/+240
|
* decoder/flac: return replay_gain_info object from helper functionMax Kellermann2009-11-111-28/+24
| | | | | Make the function more generic by not passing "struct flac_data" to it.
* decoder/flac: merged some code into flac_tag_apply_metadata()Max Kellermann2009-11-114-25/+27
|
* decoder/oggflac: initialize the "tag" variableMax Kellermann2009-11-101-1/+2
|
* decoder/flac: don't use float to calculate song durationMax Kellermann2009-11-103-8/+10
| | | | | Simple (up-rounding) integer division is good enough. We're casting the result back to an integer anyway.
* decoder/flac: pass VorbisComment to comments_to_tag()Max Kellermann2009-11-104-11/+12
|
* decoder/flac: use pcm_buffer instead of fixed bufferMax Kellermann2009-11-102-39/+31
| | | | | | This is a great simplification for flac_common_write(), because we can convert and submit all of the buffer in one turn. No more partial buffers with complicated formulas.
* decoder/flac: added function flac_data_deinit()Max Kellermann2009-11-104-17/+26
| | | | Clean up tag and replay_gain_info there.
* decoder/flac: pass void pointer to flac_convert()Max Kellermann2009-11-101-5/+5
| | | | | That function diverts into various bit formats; it doesn't need a typed pointer.
* decoder/flac: pass audio_format.bits to flac_convert()Max Kellermann2009-11-101-11/+8
| | | | | Don't use audio_format_sample_size() for identifying the sample format.
* decoder/ffmpeg: removed the "author" vs "artist" workaroundMax Kellermann2009-10-281-2/+1
| | | | | libavformat gives us the song artist in the "author" field. Since we use av_metadata_conv(), we don't need to check for "artist".
* Merged release 0.15.5 from branch 'v0.15.x'Max Kellermann2009-10-181-2/+3
|\ | | | | | | | | | | | | | | Conflicts: NEWS configure.ac src/decoder/flac_plugin.c src/update.c
| * decoder/flac: fixed two memory leaks in the CUE tag loaderMax Kellermann2009-10-161-2/+3
| | | | | | | | | | | | Don't initialize "vc" and "cs" with FLAC__metadata_object_new(); that value is overwritten by FLAC__metadata_get_tags() and FLAC__metadata_get_cuesheet().
* | decoder/vorbis: avoid unused symbol warnings from vorbisfile.hSerge Ziryukin2009-10-181-0/+1
| | | | | | | | | | | | | | | | svn r13289 of libvorbis introduced static callbacks (like OV_CALLBACKS_DEFAULT) defined in "vorbisfile.h" header. First released version with this change is libvorbis-1.2.2. In libversion-1.2.3 OV_EXCLUDE_STATIC_CALLBACKS define was added to avoid warnings about unused static callbacks. Information on the OV_EXCLUDE_STATIC_CALLBACKS can be found in http://svn.xiph.org/trunk/vorbis/CHANGES.
* | tag: removed the "_ITEM_" suffix from the enum namesMax Kellermann2009-10-1310-55/+51
| |
* | input_stream: use "goffset" instead of "off_t"Max Kellermann2009-10-112-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.
* | Merged release 0.15.4 from branch 'v0.15.x'Max Kellermann2009-10-032-4/+11
|\| | | | | | | | | | | Conflicts: NEWS configure.ac
| * decoder/ffmpeg: use the "artist" tag if "author" is not presentMax Kellermann2009-09-301-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".
| * decoder/faad: skip assertion failure on large ID3 tagsMax Kellermann2009-09-301-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.
* | Make the sidplay decoder filter configurable.Tony2009-09-281-1/+5
| |
* | decoder/sidplay: free songlength data blob in error handlerMax Kellermann2009-09-241-3/+4
| | | | | | | | | | When parsing the songlength database fails, the code forgot to free the memory allocated by the raw file data.
* | decoder/sidplay: moved code to sidplay_load_songlength_db()Max Kellermann2009-09-241-29/+36
| |
* | decoder/sidplay: free GError objectsMax Kellermann2009-09-241-0/+2
| | | | | | | | | | The caller is responsible fro freeing GError objects. That g_error_free() call was missing in two places.
* | decoder/sidplay: pass GError** to g_file_get_contents()Max Kellermann2009-09-241-1/+2
| | | | | | | | | | The error handler dereferences GError*, but did not retrieve that object from g_file_get_contents().
* | Merge branch 'v0.15.x'Max Kellermann2009-09-101-1/+1
|\| | | | | | | | | | | | | Conflicts: NEWS configure.ac doc/mpdconf.example
| * decoder/vorbis: revert "faster tag scanning with ov_test_callback()"Max Kellermann2009-09-101-1/+1
| | | | | | | | | | This patch made ov_time_total() unusable, and MPD did not know the duration of songs.
* | decoder/sidplay: support seekingMike Dawson2009-08-301-3/+34
| |
* | decoder/sidplay: implemented songlength databaseMike Dawson2009-08-301-0/+87
| | | | | | | | [mk: added autoconf test; fixed songlen_data_size type]
* | decoder/sidplay: subtunesMike Dawson2009-08-301-8/+125
| |
* | Merged release 0.15.3 from branch 'v0.15.x'Max Kellermann2009-08-301-1/+1
|\| | | | | | | | | | | | | Conflicts: NEWS configure.ac
| * decoder/vorbis: faster tag scanning with ov_test_callback()Rasmus Steinke2009-08-241-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.
* | decoder/mpg123: new decoder plugin based on libmpg123Max Kellermann2009-08-261-0/+210
| | | | | | | | | | | | | | | | Still missing: - seeking - tags - streaming - encodings other than MPG123_ENC_SIGNED_16
* | decoder/vorbis: open file in "binary" modeGunnar Roth2009-08-251-1/+1
| | | | | | | | | | fopen change for win32 in tag dup of vorbis win32 adaption for head changes
* | Merged release 0.15.2 from branch 'v0.15.x'Max Kellermann2009-08-152-61/+91
|\| | | | | | | | | | | | | Conflicts: NEWS configure.ac
| * decoder/flac: don't allocate cuesheet twice (memleak)Max Kellermann2009-08-141-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.
| * decoder/flac: fixed indentation of flac_comment_value()Max Kellermann2009-07-221-19/+21
| |
| * decoder/flac: parse all replaygain tagsMax Kellermann2009-07-221-14/+18
| | | | | | | | | | The FLAC replaygain parser used the "||" operator. This made the code stop after the first value which was found.
| * decoder/flac: return early from flac_find_float_comment()Max Kellermann2009-07-221-21/+22
| | | | | | | | | | When one metadata check fails, return quickly. This removes 2 levels of indent.
| * decoder/flac: removed misplaced authorship commentMax Kellermann2009-07-221-1/+0
| | | | | | | | This belongs into "git annotate" or AUTHORS.
| * mad: skip ID3 frames when libid3tag is disabledMax Kellermann2009-07-221-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.
* | ffmpeg_plugin: convert metadata to generic formatAnton Khirnov2009-08-031-1/+3
| |
* | Add audio_format_init() functionDavid Woodhouse2009-07-1913-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.
* | Merged release 0.15.1 from branch 'v0.15.x'Max Kellermann2009-07-161-2/+1
|\|
| * decoder/flac: fix assertion failure in tag_free() callMax Kellermann2009-07-061-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.
* | modplug: get track lengthSerge Ziryukin2009-07-151-1/+1
| |
* | flac: load external cue sheet when no internal oneSerge Ziryukin2009-07-091-0/+14
| | | | | | | | External cue sheet file for "file.flac" should be named as "file.flac.cue".
* | decoder/sndfile: new decoder plugin based on libsndfileMax Kellermann2009-07-071-0/+246
| |
* | ffmpeg: support multiple tagsMax Kellermann2009-06-251-2/+3
|/ | | | Call av_metadata_get() in a loop.