aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* pcm_volume: implemented 32 bit supportMax Kellermann2009-11-192-0/+42
| | | | Support 32 bit samples with software mixer.
* Merged release 0.15.6 from branch 'v0.15.x'Max Kellermann2009-11-193-9/+28
|\ | | | | | | | | | | | | 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.
| * id3: allow 4 MB RIFF/AIFF tagsMax Kellermann2009-11-151-1/+1
| | | | | | | | | | | | | | Allow RIFF/AIFF ID3 tags up to 4 MB (old limit was 256 kB). This might still be too small for some users, and when somebody complains, we might do something more clever (like streaming the data into libid3tag?).
| * 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.
* | cmdline: print out list of encoders in --version infoViliam Mateicka2009-11-173-0/+26
| |
* | encoder: let wave encoder to use pcm_buffer, pcm conversion code cleanupViliam Mateicka2009-11-171-29/+27
| |
* | encoder: introducing flac encoder pluginViliam Mateicka2009-11-172-0/+300
| |
* | output/openal: use audio_format_to_string()Max Kellermann2009-11-151-3/+3
| |
* | crossfade: use audio_format_valid() in assertionMax Kellermann2009-11-151-3/+1
| |
* | 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.
* | audio_format: added function audio_format_to_string()Max Kellermann2009-11-145-22/+80
| | | | | | | | | | Unified function for converting an audio_format object to a string, for log messages and for the "status" command.
* | 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.
* | audio_check: checker functions for audio_format attributesMax Kellermann2009-11-143-12/+132
| | | | | | | | | | These functions are a wrapper for audio_valid_X(). On error, they return a GError object.
* | 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.
* | player_thread: corrected two assertions on "queued"Max Kellermann2009-11-141-2/+2
| | | | | | | | At this point, the function may be called from the SEEK handler.
* | player_thread: initialize chunk->times in silence generatorMax Kellermann2009-11-122-1/+5
| | | | | | | | | | | | | | | | | | | | When waiting for the decoder to provide more data, the player thread generates silence chunks if needed. However, it forgot to initialize the chunk.times attribute, which had now an undefined value. This patch sets it to -1.0, meaning "value is undefined". Add a ">= 0.0" check to audio_output_all_check(). This fixes spurious relative seeking errors, because sometimes, the "elapsed" value falls back to 0.0.
* | player_control: hold lock while reading statusMax Kellermann2009-11-121-1/+4
| |
* | added .#* to .gitignoreMax Kellermann2009-11-121-1/+0
| | | | | | | | Temporary editor files.
* | include config.h in all sourcesMax Kellermann2009-11-12199-63/+268
| | | | | | | | | | | | 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
| |
* | directory: include config.hMax Kellermann2009-11-111-0/+1
| | | | | | | | | | *sigh* another Large File breakage. ino_t/dev_t this time. We need to include config.h in directory.h to get this straight.
* | 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().