aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder (follow)
Commit message (Collapse)AuthorAgeFilesLines
* decoder_api: added function decoder_replay_gain()Max Kellermann2010-01-0417-87/+63
| | | | | | This function replaces the replay_gain_info parameter for decoder_data(). This allows the decoder to announce replay gain changes, instead of having to pass the same object over and over.
* input_stream: return allocated input_stream objectsMax Kellermann2010-01-011-14/+13
| | | | | | | | Major API redesign: don't let the caller allocate the input_stream object. Let each input plugin allocate its own (derived/extended) input_stream pointer. The "data" attribute can now be removed, and all input plugins simply cast the input_stream pointer to their own structure (with an "struct input_stream base" as the first attribute).
* Update copyright notices.Avuton Olrich2009-12-3126-26/+26
|
* decoder: switch a bunch of plugins to stream_tag()Max Kellermann2009-12-317-110/+45
| | | | | | | | | | This patch changes the following decoder plugins to implement stream_tag() instead of tag_dup(): faad, ffmpeg, mad, modplug, mp4ff, mpcdec, oggflac This simplifies their code, because they do not need to take care of opening/closing the stream.
* decoder_plugin: added method stream_tag()Max Kellermann2009-12-311-0/+1
| | | | | This is like tag_dup(), but works with an input_stream object instead of a file path.
* Merge vorbis+icy fixes from branch 'v0.15.x'Max Kellermann2009-12-304-4/+22
|\ | | | | | | | | | | | | | | | | Conflicts: Makefile.am NEWS configure.ac src/input/curl_input_plugin.c src/input_stream.c
| * decoder/{ffmpeg,flac,vorbis}: added more flac/vorbis MIME typesMax Kellermann2009-12-294-4/+22
| | | | | | | | | | Support deprecated MIME types such as "audio/x-ogg". Support new types such as "audio/flac".
* | Merged release 0.15.7 from branch 'v0.15.x'Max Kellermann2009-12-271-3/+2
|\| | | | | | | | | | | | | Conflicts: NEWS configure.ac src/decoder_api.c
| * decoder/wavpack: allow fine-grained seekingMax Kellermann2009-12-261-3/+2
| | | | | | | | | | First multiply the floating point return value of decoder_seek_where(), then cast to integer.
* | decoder_api: added function decoder_timestamp()Max Kellermann2009-12-2616-77/+24
| | | | | | | | | | | | Remove the data_time parameter from decoder_data(). This patch eliminates the timestamp counting in most decoder plugins, because the MPD core will do it automatically by default.
* | updated mp4ff decoder about input_stream_seekAlam Arias2009-12-161-2/+2
| |
* | input_stream: return errors with GErrorMax Kellermann2009-12-1511-26/+48
| |
* | decoder/mikmod: fixed gcc uninitialized warningMax Kellermann2009-12-141-2/+1
| | | | | | | | Removed local variable "sample_rate".
* | Merge branch 'v0.15.x'Max Kellermann2009-12-142-5/+1
|\| | | | | | | | | Conflicts: src/decoder/ffmpeg_plugin.c
| * decoder/wavpack: don't use the nonstandard "uchar" typeMax Kellermann2009-12-111-1/+1
| | | | | | | | Use the signed C99 type int8_t instead.
| * ffmpeg: don't try to force stereoMax Kellermann2009-11-301-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.
* | audio_format: changed "bits" to "enum sample_format"Max Kellermann2009-12-0219-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.
* | 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.