aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder (unfollow)
Commit message (Collapse)AuthorFilesLines
2010-12-21decoder/mad: work around build failure on SolarisAlex Viskovatoff1-2/+2
Rename the "version" struct, because it seems to be a reserved name on Solaris: "src/decoder/mad_decoder_plugin.c", line 550: (enum) tag redeclared: version cc: acomp failed for src/decoder/mad_decoder_plugin.c
2010-11-05decoder/{mp4ff,ffmpeg}: add extension ".m4b" (audio book)Max Kellermann2-2/+10
Same as ".m4a".
2010-11-04decoder/ffmpeg: check AVCodecContext.sample_fmt valueMax Kellermann1-7/+9
.. instead of av_get_bits_per_sample_format(). The SampleFormat enum value is authoritative.
2010-10-27decoder/sidplay: play mus, str, prg, x00 filesAlder Hornbridge1-0/+4
2010-10-27decoder/sidplay: play monaural SID tunes in monoAlder Hornbridge1-2/+10
2010-10-14Container support for gme decoder.Tony Miller1-8/+114
2010-09-25eliminate g_error() usageThomas Jansen1-2/+3
Replaced all occurrences of g_error() with MPD_ERROR() located in a new header file 'mpd_error.h'. This macro uses g_critical() to print the error message and then exits gracefully in contrast to g_error() which would internally call abort() to produce a core dump. The macro name is distinctive and allows to find all places with dubious error handling. The long-term goal is to get rid of MPD_ERROR() altogether. To facilitate the eventual removal of this macro it was added in a new header file rather than to an existing header file. This fixes #2995 and #3007.
2010-09-23decoder/mp4ff: support more variations of "album artist"Max Kellermann1-0/+4
According to the mantis bug report 2847, there are several possible variations of the "album artist" tag: - "album artist" - "album_artist" - "albumartist" This patch adds support for the latter two.
2010-09-23decoder_control: use g_free() to manage mixramp allocationsMax Kellermann2-7/+4
Be consistent with the rest of MPD, and don't use the non-portable header "malloc.h".
2010-07-23Added album tag support for libgme decoderRasi1-0/+2
2010-07-20decoder/mad: move RVA2 code to tag_rva2.cMax Kellermann1-89/+2
2010-07-20tag_rva2: set "gain", not "peak"Max Kellermann1-2/+2
RVA2 tags only store the "gain" value, there is no "peak" attribute.
2010-07-20decoder/mad: parse_rva2() returns boolMax Kellermann1-9/+8
2010-07-20decoder/wildmidi: support version 0.2.3Max Kellermann1-0/+4
In libwildmidi 0.2.3, the function WildMidi_SampledSeek() was removed, without changing the SO name. This patch adds an autoconf check for that function. Fall back to WildMidi_FastSeek() if WildMidi_SampledSeek() is not available anymore.
2010-07-19decoder/ffmpeg: fix libavformat 0.6 by using av_open_input_stream()Max Kellermann1-89/+65
libavformat 0.6 does not pass the original URI pointer to the "open" method, which leads to a crash because MPD was using a dirty hack to pass a pointer to that method. This patch switches to av_open_input_stream() with a custom ByteIOContext class, instead of doing the URI string hack with av_open_input_file(). Loosely based on a patch from Jasper St. Pierre.
2010-07-19decoder/ffmpeg: manual format probingMax Kellermann1-2/+47
Use the libavformat function av_probe_input_format() to probe the AVInputFormat, instead of letting av_open_input_file() do it implicitly. We will switch to av_open_input_stream() very soon, which does not have the probing code. Loosely based on a patch from Jasper St. Pierre.
2010-07-12ffmpeg: read the audio stream metadata in addition to globalAnton Khirnov1-1/+5
in some formats, e.g. vorbis, the metadata is stored per-stream.
2010-07-12ffmpeg: factor tag_type <-> ffmpeg tag name maps into a table.Anton Khirnov1-21/+32
2010-06-30decoder/ffmpeg: fix libavformat 0.6 by using av_open_input_stream()Max Kellermann1-82/+52
libavformat 0.6 does not pass the original URI pointer to the "open" method, which leads to a crash because MPD was using a dirty hack to pass a pointer to that method. This patch switches to av_open_input_stream() with a custom ByteIOContext class, instead of doing the URI string hack with av_open_input_file(). Loosely based on a patch from Jasper St. Pierre.
2010-06-30decoder/ffmpeg: manual format probingMax Kellermann1-4/+47
Use the libavformat function av_probe_input_format() to probe the AVInputFormat, instead of letting av_open_input_file() do it implicitly. We will switch to av_open_input_stream() very soon, which does not have the probing code. Loosely based on a patch from Jasper St. Pierre.
2010-06-30decoder/ffmpeg: free URI, fix memory leakMax Kellermann1-1/+3
Free the string allocated by decoder_get_uri().
2010-06-30decoder/vorbis: handle uri==NULLMax Kellermann1-0/+3
This fixes a theoretical crash, which has never occurred in practice.
2010-06-30ffmpeg: read more metadata.Anton Khirnov1-1/+10
2010-06-30decoder/ffmpeg: free AVFormatContext on errorMax Kellermann1-0/+4
Fix a memory leak in some code paths.
2010-06-30decoder/mp4ff: support tag "album artist"Max Kellermann1-0/+1
We already supported "albumartist", but it seems some folks also use "album artist" (with a space).
2010-06-30decoder/mikmod: fix memory leakMax Kellermann1-2/+4
The return value of Player_LoadTitle() is allocated with malloc(), and must be freed by the caller.
2010-06-30decoder/mp4ff: remove duplicate entries in the tag name tableMax Kellermann1-9/+5
Reuse the function tag_name_parse_i().
2010-06-30decoder/mp4ff: moved code to mp4ff_tag_name_parse()Max Kellermann1-1/+7
2010-06-30decoder/vorbis: use single global ov_callbacks constantMax Kellermann1-7/+9
Initialize the ov_callbacks struct at compile time.
2010-06-30decoder/mp4ff: support tags "albumartist", "band"Max Kellermann1-0/+2
I'm not sure if mapping "band" to TAG_PERFORMER is correct, but it might be better than nothing.
2010-06-30decoder/mp4ff: use tag_table.h to parse tag namesMax Kellermann1-18/+15
Convert if/else/else/... to a loop.
2010-06-25decoder/mp4ff: support tag "album artist"Max Kellermann1-0/+1
We already supported "albumartist", but it seems some folks also use "album artist" (with a space).
2010-05-31fix crash when decoder is NULLRomain Bignon1-2/+2
2010-05-31decoder/mikmod: fix memory leakMax Kellermann1-2/+4
The return value of Player_LoadTitle() is allocated with malloc(), and must be freed by the caller.
2010-05-31decoder/mikmod: duplicate the path only onceMax Kellermann1-2/+2
2010-05-31decoder/mikdmod: moved local variable declarations in tag_dup()Max Kellermann1-12/+8
2010-05-31decoder/wildmidi: moved local variable declarations in tag_dup()Max Kellermann1-7/+3
2010-05-31decoder/gme: replace macro GME_BUF_SIZEMax Kellermann1-4/+5
Added macros with better names: GME_BUFFER_FRAMES, GME_BUFFER_SAMPLES (the former only used to calculate the latter).
2010-05-31decoder/gme: added constants for sample rate and channelsMax Kellermann1-6/+12
Move into enums.
2010-05-31decoder/gme: pass the whole buffer to decoder_data()Max Kellermann1-2/+2
Pass sizeof(buf) to decoder_data(), not the number of samples (which is half the size). At the same time, pass GME_BUF_SIZE to gme_play() - libgme really wants to get the number of samples, not the number of stereo frames. Previously, this plugin had been using only the first half of the buffer.
2010-05-31decoder/gme: allocate tag later, fixes memory leakMax Kellermann1-1/+1
Allocate the "tag" object after the file has been opened successfully.
2010-05-31decoder/mp4ff: rename and move local variableMax Kellermann1-6/+5
Allocate the "tag" object after the file has been checked. That removes one tag_free() call in an error handler.
2010-05-31decoder/mp4ff: merge code into mp4ff_input_stream_open()Max Kellermann1-17/+17
2010-05-31decoder/mp4ff: move mp4ff_callback_t into mp4ff_input_streamMax Kellermann1-12/+15
Allocate only one item on the stack.
2010-05-31decoder/mp4ff: rename mp4_context to mp4ff_input_streamMax Kellermann1-9/+9
2010-05-31decoder/mp4ff: remove duplicate entries in the tag name tableMax Kellermann1-9/+5
Reuse the function tag_name_parse_i().
2010-05-31decoder/mp4ff: moved code to mp4ff_tag_name_parse()Max Kellermann1-1/+7
2010-05-31decoder/vorbis: rename local variable "ret"Max Kellermann1-6/+5
2010-05-31decoder/vorbis: implement method stream_tag()Max Kellermann1-11/+4
This allows tags in archive files.
2010-05-31decoder/vorbis: move code to vorbis_open_stream()Max Kellermann1-19/+23