aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-03-17flac/cue: added support for TITLE[n] commentsMario Lenz1-2/+9
On 2009/03/17 Max Kellermann<max@duempel.org> wrote: > There doesn't seem to be an "official" standard. I'd say: search for > TITLE[1] first (the most explicit form), then TITLE1, and finally fall > back to TITLE. This makes sure MPD supports every possible standard, > without breaking. I've also added some additional checks to make sure entry is long enough.
2009-03-16flac: get CUE track titles from additional FLAC commentsMario Lenz4-23/+32
The cue sheet embedded in a flac file doen't contain any information about track titles and similar. There are three possibilities: Use an external cue sheet that includes these information, use a tag CUESHEET with a cue sheet including these information or use tags. I think the latter is the best option and is already used by other projects.
2009-03-14faad: faad_decoder_decode() returns NULL, not falseMax Kellermann1-1/+1
On failure, the function should return NULL, not a boolean.
2009-03-13all: Update copyright header.Avuton Olrich19-127/+147
This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy.
2009-03-09Initial support for embedded cue sheets found in flac filesJochen Keil3-6/+463
So far only seekpoints are supported, so no proper tagging yet except for track number and track length. Tagging should be done by parsing the cue sheet which is often embedded as vorbis comment in flac files. Furthermore the pathname should be configurable like "%A - %t - %T", where %A means Artist, %t track number and %T Title or so.
2009-03-09decoder_plugin: added method container_scan()Jochen Keil1-0/+1
[mk: fixed whitespace errors; use delete_song() instead of songvec_delete()]
2009-03-05flac: explicitly check for STOP commandMax Kellermann1-1/+2
After the decoder command was obtained, don't wait until libflac detects EOF (as a side effect), quit the decoder immediately. This check was missing completely.
2009-03-05flac: check command after flac_process_single() failureMax Kellermann1-3/+6
When the MPD core sends the decoder a command while flac_process_single() is executed, this function fails. Abort the decoder only if not seeking. This fixes a seeking bug.
2009-03-03ffmpeg: fix version comparision for av_get_bits_per_sample_format() ↵Viliam Mateicka1-1/+1
implemetation function was implemented in the version we are comparing to so there must be higher or equal
2009-03-03ffmpeg: support for new metadata apiViliam Mateicka1-0/+39
2009-03-02ffmpeg: use ffmpeg's sampleformat for output formatViliam Mateicka1-1/+6
2009-03-01flac: parse stream tagsMax Kellermann2-2/+19
Parse the vorbis comments in libflac's metadata_callback and pass them as tag struct to the decoder API.
2009-03-01audiofile: added 24 bit supportMax Kellermann1-1/+8
Don't hard code the "bits" parameter to 16. Try to use the input's sample format, if possible.
2009-02-28audiofile: removed duplicate decoder_get_command() callsMax Kellermann1-12/+16
decoder_data() returns a decoder_command, no need to call decoder_get_command() twice after decoder_command().
2009-02-28audiofile: refuse to play non-seekable filesMax Kellermann1-0/+5
If an input_stream is not seekable, libaudiofile fails to play at all: Audio File Library: unrecognized audio file format [error 0] Since we know in advance whether the input_stream is seekable, just refuse to play on a non-seekable stream.
2009-02-28audiofile: no CamelCaseMax Kellermann1-9/+9
Renamed several variables and a function.
2009-02-27tag: no CamelCaseMax Kellermann2-2/+2
Renamed numOfItems to num_items.
2009-02-25ls: moved generic URI utilities to uri.cMax Kellermann1-1/+1
"ls" is a bad name for a library which parses URIs. We'll move the rest of the "ls" library later.
2009-02-23ffmpeg: add all known ffmpeg extensions and mime-types.Avuton Olrich1-18/+77
After much research[1][2][3] this should be the majority of currently supported file extensions and mime-types for the currently supported ffmpeg formats. This list maybe incomplete, but it's more complete than anything else out there that I've been able to find. This list needs to be updated every now and again as the ffmpeg sources support more formats. 1. Sources 2. wiki.multimedia.cx 3. filext.com
2009-02-19faad: use faacDecFrameInfo instead of NeAACDecFrameInfoMax Kellermann1-1/+1
Don't use libfaad's internal type names.
2009-02-18mp4ff: always free the mp4ff_read_sample() bufferMax Kellermann1-2/+2
When mp4ff_read_sample() returns a value bigger than zero, it guarantees that the buffer is set. Remove the check.
2009-02-18mp4ff: don't allocate seek_table when input is not seekableMax Kellermann1-2/+10
Don't waste any precious memory when the seek_table cannot be used.
2009-02-18mp4ff: include cleanupMax Kellermann1-4/+4
Don't include limits.h, use GLib constants instead.
2009-02-18mp4ff: use faacDecInit2() to find the AAC trackMax Kellermann1-49/+36
Use faacDecInit2() instead of AudioSpecificConfig() to detect the AAC track in the MP4 file. This has a great advantage: it initializes the libfaad decoder, which the caller would normally do anyway - but now we can go without the AudioSpecificConfig() call. When decoder==NULL (called from mp4_tag_dup()), fall back to a mp4ff_get_track_type()==1 check, like other audio players do.
2009-02-18mp4ff: moved code to mp4_faad_new()Max Kellermann1-53/+65
Moved the libfaad decoder initialization to mp4_faad_new(), and also fill the audio_format struct there. This eliminates a little bit of complexity in mp4_decode().
2009-02-18mp4ff: call decoder_initialized() after libfaad initializationMax Kellermann1-23/+32
Don't wait for the first frame to be decoded. We already have the sample rate and the channel count from faacDecInit2().
2009-02-18mp4ff: merged mp4_load_tag() into mp4_tag_dup()Max Kellermann1-7/+1
The function mp4_load_tag() is used only once, and mp4_tag_dup() is a one-liner. Merge them.
2009-02-17faad: variable cleanupMax Kellermann1-9/+4
Make some variables more local, and eliminate superfluous ones.
2009-02-17faad: added source code commentsMax Kellermann1-1/+36
2009-02-17faad: faad_decoder_init() returns an audio_formatMax Kellermann1-25/+23
Instead of returning the sample rate and channel count as separate values, fill an audio_format struct.
2009-02-17faad: call decoder_initialized() after libfaad initializationMax Kellermann1-18/+27
Don't wait for the first frame to be decoded. We already have the sample rate and the channel count from faacDecInit().
2009-02-17faad: removed DECODE_COMMAND_SEEK checkMax Kellermann1-2/+0
The MPD core will never send a SEEK command to a decoder which has declared to be not seekable.
2009-02-17faad: use the decoder_buffer libraryMax Kellermann1-152/+155
Replace this plugin's own buffer library with the new decoder_buffer library.
2009-02-17faad: check the result of adts_find_frame()Max Kellermann1-4/+2
Instead of checking if the buffer is empty after adts_find_frame(), check adts_find_frame()'s return value. This is more robust.
2009-02-17faad: added libfaad wrappersMax Kellermann1-42/+61
Moved libfaad API quirks to the wrapper functions faad_decoder_init() and faad_decoder_decode().
2009-02-17faad: functions return duration, no float pointerMax Kellermann1-15/+18
Instead of writing the song duration into a float pointer, return it from the function.
2009-02-17faad: removed length==NULL check in faad_song_duration()Max Kellermann1-5/+1
There are no callers which pass NULL here.
2009-02-17faad: fill buffer in adts_find_frame()Max Kellermann1-4/+2
All callers of adts_find_frame() use faad_buffer_fill() before that. Move that faad_buffer_fill() call into adts_find_frame() instead. adts_find_frame() will get its own logic for on-demand filling.
2009-02-17faad: converted length check to assertion in adts_check_frame()Max Kellermann1-3/+2
adts_check_frame() must not be called with a buffer length smaller than 8. We can eliminate that duplicate check, and convert it into an assertion.
2009-02-17faad: added length check before comparing "ADIF"Max Kellermann1-1/+1
It's not valid to use the buffer's data without ensuring that the buffer contains enough data.
2009-02-17faad: renamed internal functionsMax Kellermann1-12/+12
"aac" -> "faad"
2009-02-17wavpack: added GLib log domainMax Kellermann1-0/+3
2009-02-17decoders: added and fixed GLib log domainsMax Kellermann6-9/+22
Fixed the log domains of the renamed decoders. Added G_LOG_DOMAIN macros in decoders which don't have one already.
2009-02-17renamed decoder plugin "mpc" to "mpcdec"Max Kellermann1-1/+1
This plugin is based on "libmpcdec".
2009-02-17renamed decoder plugin "mp4" to "mp4ff"Max Kellermann1-1/+1
This plugin is based on "libmp4ff".
2009-02-16faad: no CamelCaseMax Kellermann1-160/+159
Renamed functions and variables.
2009-02-16faad: removed AacBuffer.fileOffsetMax Kellermann1-3/+0
The element fileOffset is only written, but never read. It can be removed safely.
2009-02-16renamed decoder plugin "oggvorbis" to "vorbis"Max Kellermann1-1/+1
This plugin uses libvorbis.
2009-02-16renamed decoder plugin "aac" to "faad"Max Kellermann1-2/+2
A decoder plugin should be named after the library which is used.
2009-02-16renamed decoder plugin "mp3" to "mad"Max Kellermann1-2/+2
A decoder plugin should be named after the library which is used.