aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-12-11decoder/wavpack: don't use the nonstandard "uchar" typeMax Kellermann1-1/+1
Use the signed C99 type int8_t instead.
2009-12-02audio_format: changed "bits" to "enum sample_format"Max Kellermann19-43/+138
This patch prepares support for floating point samples (and probably other formats). It changes the meaning of the "bits" attribute from a bit count to a symbolic value.
2009-11-30ffmpeg: don't try to force stereoMax Kellermann1-4/+0
The plugin code tried to force libavcodec to supply stereo samples. That however has never actually worked. By removing this code, we are able to play surround files for the first time.
2009-11-25decoder/mpcdec: set 24 bit sample formatMax Kellermann1-1/+1
This fixes a regression due to a typo caused by "decoder: use audio_format_init_checked()".
2009-11-19decoder/flac: fixed compiler warningMax Kellermann1-3/+1
Removed the "vtrack" local variable (which triggered a gcc warning because it was after the newly introduced NULL check), and run strtol() on the original parameter.
2009-11-18decoder/flac: fixed NULL pointer dereference in CUE codeMax Kellermann1-0/+2
The function flac_vtrack_tnum() was missing a strrchr()==NULL check.
2009-11-15decoder/ffmpeg: align the output bufferMax Kellermann1-5/+24
On some platforms, libavcodec wants the output buffer aligned to 16 bytes (because it uses SSE/Altivec internally). It will segfault when you don't obey this rule.
2009-11-14decoder/audio: eliminate the "bits" variableMax Kellermann1-4/+1
Pass the audiofile_setup_sample_format() result to audio_format_init_checked().
2009-11-14decoder/audiofile: moved code to audiofile_setup_sample_format()Max Kellermann1-10/+20
2009-11-14decoder/modplug: count frame positionMax Kellermann1-13/+11
Don't maintain the current time stamp in a floating point variable, because this is subject to rounding errors.
2009-11-14decoder/modplug: floating point division for song durationMax Kellermann1-3/+1
More exact total time.
2009-11-14decoder/modplug: check ModPlug_Read() < 0Max Kellermann1-3/+1
Negative return values are not documented here, but since the function prototype is signed, let's be sure.
2009-11-14decoder/mikmod: count frame positionMax Kellermann1-8/+6
Don't maintain the current time stamp in a floating point variable, because this is subject to rounding errors.
2009-11-14decoder/mikmod: sample rate is configurableMax Kellermann1-3/+12
The new option "sample_rate" sets the sample rate for libmikmod.
2009-11-14decoder/mikmod: set drv_name and drv_version from PACKAGE/VERSIONMax Kellermann1-3/+3
2009-11-14decoder/mikmod: no CamelCaseMax Kellermann1-28/+34
2009-11-14decoder/mikmod: removed the struct mod_DataMax Kellermann1-14/+9
2009-11-14decoder/mikmod: merged open()/close() into decode()Max Kellermann1-31/+12
These functions are trivial, we don't need them separate.
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.