aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder (follow)
Commit message (Collapse)AuthorAgeFilesLines
* eliminate g_error() usageThomas Jansen2010-09-251-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.
* decoder/mp4ff: support more variations of "album artist"Max Kellermann2010-09-231-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.
* decoder_control: use g_free() to manage mixramp allocationsMax Kellermann2010-09-232-7/+4
| | | | | Be consistent with the rest of MPD, and don't use the non-portable header "malloc.h".
* Added album tag support for libgme decoderRasi2010-07-231-0/+2
|
* decoder/mad: move RVA2 code to tag_rva2.cMax Kellermann2010-07-201-89/+2
|
* Merge release 0.15.12 from branch 'v0.15.x'Max Kellermann2010-07-202-11/+14
|\ | | | | | | | | | | Conflicts: NEWS configure.ac
| * tag_rva2: set "gain", not "peak"Max Kellermann2010-07-201-2/+2
| | | | | | | | RVA2 tags only store the "gain" value, there is no "peak" attribute.
| * decoder/mad: parse_rva2() returns boolMax Kellermann2010-07-201-9/+8
| |
| * decoder/wildmidi: support version 0.2.3Max Kellermann2010-07-201-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.
| * decoder/ffmpeg: fix libavformat 0.6 by using av_open_input_stream()Max Kellermann2010-06-301-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.
| * decoder/ffmpeg: manual format probingMax Kellermann2010-06-301-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.
| * decoder/ffmpeg: free URI, fix memory leakMax Kellermann2010-06-301-1/+3
| | | | | | | | Free the string allocated by decoder_get_uri().
| * decoder/vorbis: handle uri==NULLMax Kellermann2010-06-301-0/+3
| | | | | | | | This fixes a theoretical crash, which has never occurred in practice.
| * ffmpeg: read more metadata.Anton Khirnov2010-06-301-1/+10
| |
| * decoder/ffmpeg: free AVFormatContext on errorMax Kellermann2010-06-301-0/+4
| | | | | | | | Fix a memory leak in some code paths.
| * decoder/mp4ff: support tag "album artist"Max Kellermann2010-06-301-0/+1
| | | | | | | | | | We already supported "albumartist", but it seems some folks also use "album artist" (with a space).
| * decoder/mikmod: fix memory leakMax Kellermann2010-06-301-2/+4
| | | | | | | | | | The return value of Player_LoadTitle() is allocated with malloc(), and must be freed by the caller.
| * decoder/mp4ff: remove duplicate entries in the tag name tableMax Kellermann2010-06-301-9/+5
| | | | | | | | Reuse the function tag_name_parse_i().
| * decoder/mp4ff: moved code to mp4ff_tag_name_parse()Max Kellermann2010-06-301-1/+7
| |
| * decoder/vorbis: use single global ov_callbacks constantMax Kellermann2010-06-301-7/+9
| | | | | | | | Initialize the ov_callbacks struct at compile time.
| * decoder/mp4ff: support tags "albumartist", "band"Max Kellermann2010-06-301-0/+2
| | | | | | | | | | I'm not sure if mapping "band" to TAG_PERFORMER is correct, but it might be better than nothing.
| * decoder/mp4ff: use tag_table.h to parse tag namesMax Kellermann2010-06-301-18/+15
| | | | | | | | Convert if/else/else/... to a loop.
* | decoder/ffmpeg: fix libavformat 0.6 by using av_open_input_stream()Max Kellermann2010-07-191-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.
* | decoder/ffmpeg: manual format probingMax Kellermann2010-07-191-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.
* | ffmpeg: read the audio stream metadata in addition to globalAnton Khirnov2010-07-121-1/+5
| | | | | | | | in some formats, e.g. vorbis, the metadata is stored per-stream.
* | ffmpeg: factor tag_type <-> ffmpeg tag name maps into a table.Anton Khirnov2010-07-121-21/+32
| |
* | decoder/mp4ff: support tag "album artist"Max Kellermann2010-06-251-0/+1
| | | | | | | | | | We already supported "albumartist", but it seems some folks also use "album artist" (with a space).
* | fix crash when decoder is NULLRomain Bignon2010-05-311-2/+2
| |
* | decoder/mikmod: fix memory leakMax Kellermann2010-05-311-2/+4
| | | | | | | | | | The return value of Player_LoadTitle() is allocated with malloc(), and must be freed by the caller.
* | decoder/mikmod: duplicate the path only onceMax Kellermann2010-05-311-2/+2
| |
* | decoder/mikdmod: moved local variable declarations in tag_dup()Max Kellermann2010-05-311-12/+8
| |
* | decoder/wildmidi: moved local variable declarations in tag_dup()Max Kellermann2010-05-311-7/+3
| |
* | decoder/gme: replace macro GME_BUF_SIZEMax Kellermann2010-05-311-4/+5
| | | | | | | | | | Added macros with better names: GME_BUFFER_FRAMES, GME_BUFFER_SAMPLES (the former only used to calculate the latter).
* | decoder/gme: added constants for sample rate and channelsMax Kellermann2010-05-311-6/+12
| | | | | | | | Move into enums.
* | decoder/gme: pass the whole buffer to decoder_data()Max Kellermann2010-05-311-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.
* | decoder/gme: allocate tag later, fixes memory leakMax Kellermann2010-05-311-1/+1
| | | | | | | | Allocate the "tag" object after the file has been opened successfully.
* | decoder/mp4ff: rename and move local variableMax Kellermann2010-05-311-6/+5
| | | | | | | | | | Allocate the "tag" object after the file has been checked. That removes one tag_free() call in an error handler.
* | decoder/mp4ff: merge code into mp4ff_input_stream_open()Max Kellermann2010-05-311-17/+17
| |
* | decoder/mp4ff: move mp4ff_callback_t into mp4ff_input_streamMax Kellermann2010-05-311-12/+15
| | | | | | | | Allocate only one item on the stack.
* | decoder/mp4ff: rename mp4_context to mp4ff_input_streamMax Kellermann2010-05-311-9/+9
| |
* | decoder/mp4ff: remove duplicate entries in the tag name tableMax Kellermann2010-05-311-9/+5
| | | | | | | | Reuse the function tag_name_parse_i().
* | decoder/mp4ff: moved code to mp4ff_tag_name_parse()Max Kellermann2010-05-311-1/+7
| |
* | decoder/vorbis: rename local variable "ret"Max Kellermann2010-05-311-6/+5
| |
* | decoder/vorbis: implement method stream_tag()Max Kellermann2010-05-311-11/+4
| | | | | | | | This allows tags in archive files.
* | decoder/vorbis: move code to vorbis_open_stream()Max Kellermann2010-05-311-19/+23
| |
* | decoder/vorbis: use single global ov_callbacks constantMax Kellermann2010-05-301-6/+9
| | | | | | | | Initialize the ov_callbacks struct at compile time.
* | decoder/vorbis: rename struct vorbis_decoder_data to vorbis_isMax Kellermann2010-05-301-20/+19
| |
* | decoder/mp4ff: support tags "albumartist", "band"Max Kellermann2010-05-301-0/+2
| | | | | | | | | | I'm not sure if mapping "band" to TAG_PERFORMER is correct, but it might be better than nothing.
* | decoder/mp4ff: use tag_table.h to parse tag namesMax Kellermann2010-05-301-18/+15
| | | | | | | | Convert if/else/else/... to a loop.
* | decoder/mp4ff: rename plugin "mp4" to "mp4ff"Max Kellermann2010-05-301-1/+1
| | | | | | | | | | The underlying library is named "libmp4ff". To reduce confusion, rename the plugin to a more specific name.