aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder (follow)
Commit message (Collapse)AuthorAgeFilesLines
* decoder/mpcdec: set 24 bit sample formatMax Kellermann2009-11-251-1/+1
| | | | | This fixes a regression due to a typo caused by "decoder: use audio_format_init_checked()".
* Merged release 0.15.6 from branch 'v0.15.x'Max Kellermann2009-11-192-8/+27
|\ | | | | | | | | | | | | Conflicts: NEWS configure.ac
| * decoder/flac: fixed compiler warningMax Kellermann2009-11-191-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.
| * decoder/flac: fixed NULL pointer dereference in CUE codeMax Kellermann2009-11-181-0/+2
| | | | | | | | The function flac_vtrack_tnum() was missing a strrchr()==NULL check.
| * decoder/ffmpeg: align the output bufferMax Kellermann2009-11-151-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.
* | decoder/audio: eliminate the "bits" variableMax Kellermann2009-11-141-4/+1
| | | | | | | | | | Pass the audiofile_setup_sample_format() result to audio_format_init_checked().
* | decoder/audiofile: moved code to audiofile_setup_sample_format()Max Kellermann2009-11-141-10/+20
| |
* | decoder/modplug: count frame positionMax Kellermann2009-11-141-13/+11
| | | | | | | | | | Don't maintain the current time stamp in a floating point variable, because this is subject to rounding errors.
* | decoder/modplug: floating point division for song durationMax Kellermann2009-11-141-3/+1
| | | | | | | | More exact total time.
* | decoder/modplug: check ModPlug_Read() < 0Max Kellermann2009-11-141-3/+1
| | | | | | | | | | Negative return values are not documented here, but since the function prototype is signed, let's be sure.
* | decoder/mikmod: count frame positionMax Kellermann2009-11-141-8/+6
| | | | | | | | | | Don't maintain the current time stamp in a floating point variable, because this is subject to rounding errors.
* | decoder/mikmod: sample rate is configurableMax Kellermann2009-11-141-3/+12
| | | | | | | | The new option "sample_rate" sets the sample rate for libmikmod.
* | decoder/mikmod: set drv_name and drv_version from PACKAGE/VERSIONMax Kellermann2009-11-141-3/+3
| |
* | decoder/mikmod: no CamelCaseMax Kellermann2009-11-141-28/+34
| |
* | decoder/mikmod: removed the struct mod_DataMax Kellermann2009-11-141-14/+9
| |
* | decoder/mikmod: merged open()/close() into decode()Max Kellermann2009-11-141-31/+12
| | | | | | | | These functions are trivial, we don't need them separate.
* | decoder/mikmod: static mod_Data objectMax Kellermann2009-11-141-11/+9
| | | | | | | | Don't allocate this object, put it on the stack.
* | decoder: use audio_format_init_checked()Max Kellermann2009-11-1414-85/+122
| | | | | | | | | | | | Let the audio_check library verify the audio format in all (relevant, i.e. non-hardcoded) plugins.
* | decoder/sidplay: correctly calculate floating point timeMax Kellermann2009-11-141-8/+11
| | | | | | | | | | Internally, use only the integer time. When needed, convert it to a floating point seconds value.
* | added .#* to .gitignoreMax Kellermann2009-11-121-1/+0
| | | | | | | | Temporary editor files.
* | include config.h in all sourcesMax Kellermann2009-11-1220-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.
* | decoder/vorbis: fixed gcc "signed" warningMax Kellermann2009-11-121-2/+2
| |
* | decoder/wavpack: allow more than 2 channelsMax Kellermann2009-11-111-3/+3
| | | | | | | | | | Remove the OPEN_2CH_MAX option. MPD's support for surround sound is still clunky, but we're working on it.
* | decoder/wavpack: activate 32 bit supportMax Kellermann2009-11-111-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).
* | decoder/vorbis: initialize before entering the loopMax Kellermann2009-11-111-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.
* | decoder/vorbis: moved error strings to vorbis_strerror()Max Kellermann2009-11-111-24/+26
| |
* | decoder/vorbis: removed the OggCallbackData typedefMax Kellermann2009-11-111-6/+7
| | | | | | | | Use the struct name instead.
* | decoder/vorbis: fix typo in commentMax Kellermann2009-11-111-1/+1
| |
* | decoder/vorbis: removed redundant "bits" initializationMax Kellermann2009-11-111-1/+0
| | | | | | | | This is done by audio_format_init().
* | decoder/flac: check "seekable" in libFLAC callbacksMax Kellermann2009-11-111-0/+6
| | | | | | | | | | Return FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED if this input stream does not support seeking.
* | decoder/flac: moved code to flac_data_get_audio_format()Max Kellermann2009-11-114-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().
* | decoder/flac: use stream_info instead of audio_formatMax Kellermann2009-11-112-4/+4
| | | | | | | | | | Use the sample rate stored in the stream_info struct instead of the audio_format struct.
* | decoder/flac: use frame header instead of audio_formatMax Kellermann2009-11-111-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.
* | decoder/oggflac: moved stream_info check to oggflac_decode()Max Kellermann2009-11-111-6/+5
| |
* | decoder/flac: calculate time stamp from current frameMax Kellermann2009-11-114-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.
* | decoder/flac: calculate bit rate in flac_common_write()Max Kellermann2009-11-114-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.
* | decoder/flac: store the whole stream info object, not durationMax Kellermann2009-11-114-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.
* | decoder/flac: merge code into flac_decoder_initialize()Max Kellermann2009-11-111-50/+39
| | | | | | | | | | Wrapper for FLAC__stream_decoder_process_until_end_of_metadata(), decoder_initialized().
* | decoder/flac: merged code into flac_decoder_new()Max Kellermann2009-11-111-28/+27
| | | | | | | | | | Convenience wrapper for FLAC__stream_decoder_new() and FLAC__stream_decoder_set_metadata_respond().
* | decoder/flac: free the "pathname" variable earlierMax Kellermann2009-11-111-31/+15
| | | | | | | | | | Free the pointer right after its last use, i.e. after the FLAC__stream_decoder_init_file() call.
* | decoder/flac: emulate FLAC__stream_decoder_init_stream()Max Kellermann2009-11-112-30/+44
| | | | | | | | Remove the wrapper flac_init().
* | decoder/flac: use the new API functionsMax Kellermann2009-11-112-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.
* | decoder/flac: removed the fake flac_ogg_init() fallbackMax Kellermann2009-11-112-2/+4
| | | | | | | | Don't even try to call it with an old libFLAC API.
* | decoder/flac: moved code to flac_compat.hMax Kellermann2009-11-113-113/+134
| |
* | decoder/{flac,vorbis}: include config.h for LFSMax Kellermann2009-11-113-0/+3
| | | | | | | | Allow those plugins to open large files on 32 bit platforms.
* | decoder/flac: merged code into flac_decoder_loop()Max Kellermann2009-11-111-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.
* | decoder/flac: keep track of current frame numberMax Kellermann2009-11-114-0/+12
| | | | | | | | We need this for more exact end-of-subsong detection for CUE files.
* | Merge remote branch 'origin/v0.15.x'Max Kellermann2009-11-112-14/+16
|\|
| * decoder/flac: fixed CUE seeking range checkMax Kellermann2009-11-111-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.
| * oggflac: rewind stream after FLAC detectionMax Kellermann2009-11-111-0/+8
| | | | | | | | | | The oggflac plugin has been completely broken for quite a while and nobody has noticed - maybe we should remove it?