aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-11-14decoder/mikmod: static mod_Data objectMax Kellermann1-11/+9
Don't allocate this object, put it on the stack.
2009-11-14decoder: use audio_format_init_checked()Max Kellermann14-85/+122
Let the audio_check library verify the audio format in all (relevant, i.e. non-hardcoded) plugins.
2009-11-14decoder/sidplay: correctly calculate floating point timeMax Kellermann1-8/+11
Internally, use only the integer time. When needed, convert it to a floating point seconds value.
2009-11-12added .#* to .gitignoreMax Kellermann1-1/+0
Temporary editor files.
2009-11-12include config.h in all sourcesMax Kellermann20-23/+33
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-11-12decoder/vorbis: fixed gcc "signed" warningMax Kellermann1-2/+2
2009-11-11decoder/wavpack: allow more than 2 channelsMax Kellermann1-3/+3
Remove the OPEN_2CH_MAX option. MPD's support for surround sound is still clunky, but we're working on it.
2009-11-11decoder/wavpack: activate 32 bit supportMax Kellermann1-13/+7
MPD has been supporting 32 bit samples since version 0.15. This patch changes one check, and removes the 32->24 conversion code. Note that WavPack floating point samples have 32 bits, and MPD doesn't have a special check for floating point - therefore, this WavPack plugin still returns 24 bit integer samples as before (until we have float support in the MPD core).
2009-11-11decoder/vorbis: initialize before entering the loopMax Kellermann1-21/+37
Call decoder_initialize() before entering the loop. We don't need to call ov_read() before ov_info(). When the stream number changes, check if the audio format is still the same.
2009-11-11decoder/vorbis: moved error strings to vorbis_strerror()Max Kellermann1-24/+26
2009-11-11decoder/vorbis: removed the OggCallbackData typedefMax Kellermann1-6/+7
Use the struct name instead.
2009-11-11decoder/vorbis: fix typo in commentMax Kellermann1-1/+1
2009-11-11decoder/vorbis: removed redundant "bits" initializationMax Kellermann1-1/+0
This is done by audio_format_init().
2009-11-11decoder/flac: check "seekable" in libFLAC callbacksMax Kellermann1-0/+6
Return FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED if this input stream does not support seeking.
2009-11-11decoder/flac: moved code to flac_data_get_audio_format()Max Kellermann4-32/+51
Remove the audio_format attribute, add "frame_size" instead. The audio_format initialization and check is moved both to flac_data_get_audio_format().
2009-11-11decoder/flac: use stream_info instead of audio_formatMax Kellermann2-4/+4
Use the sample rate stored in the stream_info struct instead of the audio_format struct.
2009-11-11decoder/flac: use frame header instead of audio_formatMax Kellermann1-3/+3
When calculating the properties of the frame, use sample_rate and other information from the frame header instead of the stored audio_format object.
2009-11-11decoder/oggflac: moved stream_info check to oggflac_decode()Max Kellermann1-6/+5
2009-11-11decoder/flac: calculate time stamp from current frameMax Kellermann4-17/+17
Don't update a float timestamp, this will make imprecisions add up after a while. We already have the number of the current frame, let's just calculate the float timestamp from that for every decoder_data() command. For this, we need to add the attribute "first_frame", for CUE sheet songs.
2009-11-11decoder/flac: calculate bit rate in flac_common_write()Max Kellermann4-17/+25
Removed the "bit_rate" attribute from the flac_data struct. Pass the number of bytes since the last call to flac_common_write(), and let it calculate the bit rate.
2009-11-11decoder/flac: store the whole stream info object, not durationMax Kellermann4-7/+36
We don't want to work with floating point values if possible. Get the integer number of frames from the FLAC__StreamMetadata_StreamInfo object, and convert it into a float duration on demand. This patch adds a check if the STREAMINFO packet has been received yet.
2009-11-11decoder/flac: merge code into flac_decoder_initialize()Max Kellermann1-50/+39
Wrapper for FLAC__stream_decoder_process_until_end_of_metadata(), decoder_initialized().
2009-11-11decoder/flac: merged code into flac_decoder_new()Max Kellermann1-28/+27
Convenience wrapper for FLAC__stream_decoder_new() and FLAC__stream_decoder_set_metadata_respond().
2009-11-11decoder/flac: free the "pathname" variable earlierMax Kellermann1-31/+15
Free the pointer right after its last use, i.e. after the FLAC__stream_decoder_init_file() call.
2009-11-11decoder/flac: emulate FLAC__stream_decoder_init_stream()Max Kellermann2-30/+44
Remove the wrapper flac_init().
2009-11-11decoder/flac: use the new API functionsMax Kellermann2-124/+89
Use the type and function names of the libFLAC 1.1.3 API. Map the new API to the old one with macros.
2009-11-11decoder/flac: removed the fake flac_ogg_init() fallbackMax Kellermann2-2/+4
Don't even try to call it with an old libFLAC API.
2009-11-11decoder/flac: moved code to flac_compat.hMax Kellermann3-113/+134
2009-11-11decoder/{flac,vorbis}: include config.h for LFSMax Kellermann3-0/+3
Allow those plugins to open large files on 32 bit platforms.
2009-11-11decoder/flac: merged code into flac_decoder_loop()Max Kellermann1-101/+55
The decoder loop of flac_decode_internal(), flac_container_decode() and flac_filedecode_internal() is merged into this one function. This unifies the code, and uses the frame number to identify the end of a CUE sub song.
2009-11-11decoder/flac: keep track of current frame numberMax Kellermann4-0/+12
We need this for more exact end-of-subsong detection for CUE files.
2009-11-11decoder/flac: fixed CUE seeking range checkMax Kellermann1-14/+8
If flac_container_decode() gets a seek destination which is out of range, it ignores the SEEK command (never finishes it). This leads to MPD lockup, because the player thread waits for completion.
2009-11-11decoder/flac: removed redundant NULL checksMax Kellermann1-9/+3
After the decoder loop, "flac_dec" is always set.
2009-11-11oggflac: rewind stream after FLAC detectionMax Kellermann1-0/+8
The oggflac plugin has been completely broken for quite a while and nobody has noticed - maybe we should remove it?
2009-11-11decoder/flac: moved code to flac_pcm.cMax Kellermann3-81/+133
2009-11-11decoder/flac: moved code to flac_metadata.cMax Kellermann6-175/+240
2009-11-11decoder/flac: return replay_gain_info object from helper functionMax Kellermann1-28/+24
Make the function more generic by not passing "struct flac_data" to it.
2009-11-11decoder/flac: merged some code into flac_tag_apply_metadata()Max Kellermann4-25/+27
2009-11-10decoder/oggflac: initialize the "tag" variableMax Kellermann1-1/+2
2009-11-10decoder/flac: don't use float to calculate song durationMax Kellermann3-8/+10
Simple (up-rounding) integer division is good enough. We're casting the result back to an integer anyway.
2009-11-10decoder/flac: pass VorbisComment to comments_to_tag()Max Kellermann4-11/+12
2009-11-10decoder/flac: use pcm_buffer instead of fixed bufferMax Kellermann2-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.
2009-11-10decoder/flac: added function flac_data_deinit()Max Kellermann4-17/+26
Clean up tag and replay_gain_info there.
2009-11-10decoder/flac: pass void pointer to flac_convert()Max Kellermann1-5/+5
That function diverts into various bit formats; it doesn't need a typed pointer.
2009-11-10decoder/flac: pass audio_format.bits to flac_convert()Max Kellermann1-11/+8
Don't use audio_format_sample_size() for identifying the sample format.
2009-10-28decoder/ffmpeg: removed the "author" vs "artist" workaroundMax Kellermann1-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".
2009-10-28decoder/ffmpeg: convert metadataMax Kellermann1-4/+4
Convert the metadata with the libavformat function av_metadata_conv(). This ensures that canonical tag names are provided by libavformat, and we can remove the "artist" vs "author" workaround.
2009-10-18decoder/vorbis: avoid unused symbol warnings from vorbisfile.hSerge Ziryukin1-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.
2009-10-16decoder/flac: fixed two memory leaks in the CUE tag loaderMax Kellermann1-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().
2009-10-13tag: removed the "_ITEM_" suffix from the enum namesMax Kellermann10-55/+51