Max Kellermann
2ed870c854
decoder/ffmpeg: flush the codec after seeking
...
Let the codec start with fresh buffers. This should fix the remaining
seeking issues.
2011-09-15 21:41:25 +02:00
Max Kellermann
ce35ba9ac9
decoder/ffmpeg: explicitly specify the current stream for seeking
...
Use AVStream.time_base to convert the decoder_seek_where() value, and
pass the current stream number to av_seek_frame().
2011-09-15 21:35:29 +02:00
Max Kellermann
724a59aaf7
decoder/ffmpeg: don't require key frame for seeking
...
Use flag AV_TIME_BASE.
2011-09-15 21:32:29 +02:00
Max Kellermann
42d8c2981f
decoder/ffmpeg: higher precision timestamps
2011-09-15 21:30:27 +02:00
Max Kellermann
9aa91e0f17
decoder/ffmpeg: move formula to time_from_ffmpeg()
2011-09-15 21:23:48 +02:00
Max Kellermann
5aabee8996
decoder/ffmpeg: add local variable "av_stream"
...
Code simplification.
2011-09-15 21:14:53 +02:00
Max Kellermann
3d3bca5338
decoder/oggflac: delete this obsolete plugin
...
libOggFLAC has been deprecated for 5 years now, and we havn't been
testing it for a long time. Let's delete it.
2011-09-01 19:29:04 +02:00
Jonathan Neuschäfer
310895f060
rename 'Timer' to 'struct timer'
2011-08-27 11:30:34 +02:00
Max Kellermann
5ecb6fecc4
Merge branch 'v0.16.x'
2011-08-24 01:47:10 +02:00
Max Kellermann
d3b15f8fda
decoder/mpcdec: fix gcc warning
...
Move the variable "vbr_update_acc" into the #ifdef block.
2011-08-23 17:58:56 +02:00
Max Kellermann
0ea4c970d7
Merge branch 'v0.16.x'
...
Conflicts:
src/player_thread.c
src/playlist_control.c
2011-07-20 21:46:05 +02:00
Max Kellermann
2e28ed8f81
wavpack: obey all decoder commands, stop at CUE track border
...
It used to ignore the decoder_data() return value.
2011-07-20 12:54:30 +02:00
Max Kellermann
4c4f8bf02a
decoder/wavpack: use the correct integer types
...
libwavpack provides int32_t samples, and wants uin32_t for sample
counts.
2011-07-20 12:54:22 +02:00
Max Kellermann
e464be5f39
decoder/wavpack: simplify the WavpackUnpackSamples()==0 check
...
.. and remove one indent level.
2011-07-20 12:32:48 +02:00
Max Kellermann
eb2f413cf0
Merge branch 'v0.16.x'
...
Conflicts:
NEWS
configure.ac
2011-07-19 00:24:20 +02:00
Max Kellermann
736fd0e293
decoder/ffmpeg: use avformat_open_input() if available
...
av_open_input_stream() has been deprecated.
2011-07-18 23:31:47 +02:00
Max Kellermann
6592ca9f88
decoder: use AVDictionary instead of AVMetadata
...
AVMetadata has been deprecated.
2011-07-18 23:31:31 +02:00
Max Kellermann
6aa6a9c272
decoder/flac: validate the sample rate when scanning the tag
...
Don't calculate the song duration when the sample rate is 0 (division
by zero crash).
2011-07-03 14:57:56 +02:00
oblique
8d1c7ca206
ffmpeg: workaround for semantic API change in recent ffmpeg versions
2011-07-03 14:54:56 +02:00
Max Kellermann
e228caaca6
Merge branch 'v0.16.x'
...
Conflicts:
src/decoder/ffmpeg_decoder_plugin.c
2011-06-03 16:58:09 +02:00
Max Kellermann
c6a72a14ac
decoder/ffpmeg: don't use av_metadata_conv() in ffmpeg 0.7
...
It's a no-op and deprecated.
2011-05-09 21:24:18 +02:00
Max Kellermann
c74edd0e33
decoder/ffmpeg: use AVIOContext instead of ByteIOContext
2011-05-09 21:23:58 +02:00
Max Kellermann
246db3d565
decoder/ffmpeg: use avcodec_decode_audio3() if available
...
avcodec_decode_audio3() has been added in libavformat 52.25.0, and the
predecessor avcodec_decode_audio2() has been deprecated.
2011-05-09 09:24:17 +02:00
Max Kellermann
eaf414cbc8
decoder/ffmpeg: make variables more local
2011-05-09 09:24:15 +02:00
Anton Khirnov
327d41c00f
decoder/ffmpeg: don't use deprecated CODEC_TYPE_AUDIO with new lavc
...
fixes build with lavc 53.
2011-05-09 08:00:45 +02:00
Max Kellermann
05d8ce3bcd
decoder/ffmpeg: define fallback macro AV_VERSION_INT()
...
For ffmpeg < 0.5. Copied from libavutil 0.5.
2011-05-09 08:00:45 +02:00
Max Kellermann
fe30db935b
decoder/ffmpeg: use avcodec_decode_audio3() if available
...
avcodec_decode_audio3() has been added in libavformat 52.25.0, and the
predecessor avcodec_decode_audio2() has been deprecated.
2011-04-12 08:20:35 +02:00
Max Kellermann
6303d54cbb
decoder/ffmpeg: make variables more local
2011-04-12 08:17:30 +02:00
Anton Khirnov
9d91aa23e6
decoder/ffmpeg: drop support for pre-0.5 ffmpeg
...
All modern distros ship 0.5, so there's no need to support old and buggy
ffmpeg versions.
2011-04-12 08:14:14 +02:00
Max Kellermann
c2ada39fd3
Merge branch 'v0.16.x'
...
Conflicts:
NEWS
configure.ac
2011-04-12 08:11:33 +02:00
Max Kellermann
f680b0a431
decoder/flac: fix enum mismatch in flac_tell_cb()
...
Fix clang warning.
2011-03-23 22:31:40 +01:00
Simon Kagstrom
640bac1aa4
decoder: PCM decoder: Inherit seekable from the input stream
...
E.g., spotify isn't seekable.
2011-03-23 22:13:11 +01:00
Simon Kagstrom
0b12fae84d
decoder: PCM decoder: Break loop if EOF is encountered
...
Otherwise the song playing might go on forever.
2011-03-23 22:13:08 +01:00
Max Kellermann
0c9fc2f809
Merge commit 'release-0.16.2'
...
Conflicts:
Makefile.am
NEWS
configure.ac
2011-03-19 09:58:07 +01:00
Thomas Jansen
948b8f35e6
general: whitespace cleanup
...
Remove trailing whitespace found by this command:
find -name '*.[ch]' | xargs grep "[[:space:]]$"
2011-02-09 22:42:31 +01:00
Tony Miller
8b2f4fc823
Set fadeout in gme_decoder_plugin. Due to the nature of the gme library,
...
this needs to be done for the end of songs to be detected.
2011-02-03 00:25:35 +01:00
Max Kellermann
c6cbcc2c25
copyright year 2011
2011-01-29 10:13:54 +01:00
Yuriy Kaminskiy
9ae3acf2e7
mpg123 decoder: implement seeking
2011-01-21 15:37:08 +01:00
Yuriy Kaminskiy
731ea9b489
mpg123 decoder: report bitrate
2011-01-21 15:37:08 +01:00
Max Kellermann
1a2ea4c06c
Merge branch 'v0.16.x'
...
Conflicts:
NEWS
configure.ac
2011-01-07 23:52:23 +01:00
Max Kellermann
e3cba18532
decoder: new "pcm" decoder plugin
...
Just there to support the "cdio_paranoia" input plugin.
2010-12-22 09:48:48 +01:00
Alex Viskovatoff
41fdcf328c
decoder/mad: work around build failure on Solaris
...
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-12-21 07:57:07 +01:00
Max Kellermann
4478b3ef74
Merge release 0.15.14 from branch 'v0.15.x'
...
Conflicts:
NEWS
configure.ac
src/decoder_control.c
src/decoder_control.h
src/input/rewind_input_plugin.c
src/output_control.c
src/output_thread.c
src/player_thread.c
2010-11-07 15:30:18 +01:00
Max Kellermann
e8d8bd4c0d
decoder/{mp4ff,ffmpeg}: add extension ".m4b" (audio book)
...
Same as ".m4a".
2010-11-05 02:01:35 +01:00
Max Kellermann
3f89f77429
decoder/ffmpeg: check AVCodecContext.sample_fmt value
...
.. instead of av_get_bits_per_sample_format(). The SampleFormat enum
value is authoritative.
2010-11-04 20:04:15 +01:00
Alder Hornbridge
fe1b626f76
decoder/sidplay: play mus, str, prg, x00 files
2010-10-27 21:18:43 +02:00
Alder Hornbridge
4e94516912
decoder/sidplay: play monaural SID tunes in mono
2010-10-27 21:16:24 +02:00
Tony Miller
dadb6747ad
Container support for gme decoder.
2010-10-14 17:11:59 +02:00
Thomas Jansen
28bcb8bdf5
eliminate g_error() usage
...
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-25 15:00:43 +02:00
Max Kellermann
0955f33a86
decoder/mp4ff: support more variations of "album artist"
...
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-23 21:19:41 +02:00
Max Kellermann
635cfbae13
decoder_control: use g_free() to manage mixramp allocations
...
Be consistent with the rest of MPD, and don't use the non-portable
header "malloc.h".
2010-09-23 08:49:21 +02:00
Rasi
31ab0b3df1
Added album tag support for libgme decoder
2010-07-23 23:13:03 +02:00
Max Kellermann
4364b30c42
decoder/mad: move RVA2 code to tag_rva2.c
2010-07-20 23:03:54 +02:00
Max Kellermann
c0da938d4f
Merge release 0.15.12 from branch 'v0.15.x'
...
Conflicts:
NEWS
configure.ac
2010-07-20 23:03:06 +02:00
Max Kellermann
8b055c3127
tag_rva2: set "gain", not "peak"
...
RVA2 tags only store the "gain" value, there is no "peak" attribute.
2010-07-20 22:32:55 +02:00
Max Kellermann
172182b18f
decoder/mad: parse_rva2() returns bool
2010-07-20 18:27:11 +02:00
Max Kellermann
898a13f196
decoder/wildmidi: support version 0.2.3
...
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-20 18:23:56 +02:00
Max Kellermann
e2e8d0d2f3
decoder/ffmpeg: fix libavformat 0.6 by using av_open_input_stream()
...
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-19 23:03:06 +02:00
Max Kellermann
b2e3c0757b
decoder/ffmpeg: manual format probing
...
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-19 22:59:59 +02:00
Anton Khirnov
0fc0196dba
ffmpeg: read the audio stream metadata in addition to global
...
in some formats, e.g. vorbis, the metadata is stored per-stream.
2010-07-12 11:36:55 +02:00
Anton Khirnov
1492324c76
ffmpeg: factor tag_type <-> ffmpeg tag name maps into a table.
2010-07-12 11:36:55 +02:00
Max Kellermann
49bc317fb8
decoder/ffmpeg: fix libavformat 0.6 by using av_open_input_stream()
...
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-30 23:41:32 +02:00
Max Kellermann
375a09d6f6
decoder/ffmpeg: manual format probing
...
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-30 23:40:31 +02:00
Max Kellermann
0265c34bed
decoder/ffmpeg: free URI, fix memory leak
...
Free the string allocated by decoder_get_uri().
2010-06-30 23:40:04 +02:00
Max Kellermann
a1882f48be
decoder/vorbis: handle uri==NULL
...
This fixes a theoretical crash, which has never occurred in practice.
2010-06-30 23:38:49 +02:00
Anton Khirnov
c3569814bd
ffmpeg: read more metadata.
2010-06-30 23:18:45 +02:00
Max Kellermann
814daac5ba
decoder/ffmpeg: free AVFormatContext on error
...
Fix a memory leak in some code paths.
2010-06-30 23:14:43 +02:00
Max Kellermann
ec89ce5a8a
decoder/mp4ff: support tag "album artist"
...
We already supported "albumartist", but it seems some folks also use
"album artist" (with a space).
2010-06-30 21:55:03 +02:00
Max Kellermann
77e6810c14
decoder/mikmod: fix memory leak
...
The return value of Player_LoadTitle() is allocated with malloc(), and
must be freed by the caller.
2010-06-30 19:37:36 +00:00
Max Kellermann
5ebe33653c
decoder/mp4ff: remove duplicate entries in the tag name table
...
Reuse the function tag_name_parse_i().
2010-06-30 21:36:15 +02:00
Max Kellermann
8e3eace289
decoder/mp4ff: moved code to mp4ff_tag_name_parse()
2010-06-30 21:36:00 +02:00
Max Kellermann
4d6d372a5b
decoder/vorbis: use single global ov_callbacks constant
...
Initialize the ov_callbacks struct at compile time.
2010-06-30 19:24:41 +00:00
Max Kellermann
0aeec90590
decoder/mp4ff: support tags "albumartist", "band"
...
I'm not sure if mapping "band" to TAG_PERFORMER is correct, but it
might be better than nothing.
2010-06-30 21:22:13 +02:00
Max Kellermann
cfcd84655c
decoder/mp4ff: use tag_table.h to parse tag names
...
Convert if/else/else/... to a loop.
2010-06-30 21:19:30 +02:00
Max Kellermann
9eb292c1e5
decoder/mp4ff: support tag "album artist"
...
We already supported "albumartist", but it seems some folks also use
"album artist" (with a space).
2010-06-25 22:54:18 +02:00
Romain Bignon
b571ba27a4
fix crash when decoder is NULL
2010-05-31 22:11:59 +02:00
Max Kellermann
de8f2739c2
decoder/mikmod: fix memory leak
...
The return value of Player_LoadTitle() is allocated with malloc(), and
must be freed by the caller.
2010-05-31 10:24:08 +02:00
Max Kellermann
2c1c588868
decoder/mikmod: duplicate the path only once
2010-05-31 10:22:08 +02:00
Max Kellermann
e271f69a34
decoder/mikdmod: moved local variable declarations in tag_dup()
2010-05-31 10:16:09 +02:00
Max Kellermann
39105f2119
decoder/wildmidi: moved local variable declarations in tag_dup()
2010-05-31 10:14:48 +02:00
Max Kellermann
4e080a9b06
decoder/gme: replace macro GME_BUF_SIZE
...
Added macros with better names: GME_BUFFER_FRAMES, GME_BUFFER_SAMPLES
(the former only used to calculate the latter).
2010-05-31 10:03:43 +02:00
Max Kellermann
d55740808d
decoder/gme: added constants for sample rate and channels
...
Move into enums.
2010-05-31 10:02:43 +02:00
Max Kellermann
6566038df9
decoder/gme: pass the whole buffer to decoder_data()
...
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-31 09:57:15 +02:00
Max Kellermann
f0faf00320
decoder/gme: allocate tag later, fixes memory leak
...
Allocate the "tag" object after the file has been opened successfully.
2010-05-31 09:43:25 +02:00
Max Kellermann
51c7577c8f
decoder/mp4ff: rename and move local variable
...
Allocate the "tag" object after the file has been checked. That
removes one tag_free() call in an error handler.
2010-05-31 09:35:49 +02:00
Max Kellermann
be308c6657
decoder/mp4ff: merge code into mp4ff_input_stream_open()
2010-05-31 09:29:45 +02:00
Max Kellermann
1729a0b437
decoder/mp4ff: move mp4ff_callback_t into mp4ff_input_stream
...
Allocate only one item on the stack.
2010-05-31 09:23:27 +02:00
Max Kellermann
1b2fc2ae19
decoder/mp4ff: rename mp4_context to mp4ff_input_stream
2010-05-31 09:22:42 +02:00
Max Kellermann
58a75f0b78
decoder/mp4ff: remove duplicate entries in the tag name table
...
Reuse the function tag_name_parse_i().
2010-05-31 08:48:41 +02:00
Max Kellermann
daf6e2b5da
decoder/mp4ff: moved code to mp4ff_tag_name_parse()
2010-05-31 08:47:59 +02:00
Max Kellermann
ca08c4dbf4
decoder/vorbis: rename local variable "ret"
2010-05-31 00:06:37 +02:00
Max Kellermann
8af52fa205
decoder/vorbis: implement method stream_tag()
...
This allows tags in archive files.
2010-05-31 00:02:57 +02:00
Max Kellermann
3b0bf856c4
decoder/vorbis: move code to vorbis_open_stream()
2010-05-31 00:00:04 +02:00
Max Kellermann
28f5803d34
decoder/vorbis: use single global ov_callbacks constant
...
Initialize the ov_callbacks struct at compile time.
2010-05-30 23:59:36 +02:00
Max Kellermann
0b72299857
decoder/vorbis: rename struct vorbis_decoder_data to vorbis_is
2010-05-30 23:57:58 +02:00
Max Kellermann
017d61a1aa
decoder/mp4ff: support tags "albumartist", "band"
...
I'm not sure if mapping "band" to TAG_PERFORMER is correct, but it
might be better than nothing.
2010-05-30 22:55:02 +02:00
Max Kellermann
4028d03a6e
decoder/mp4ff: use tag_table.h to parse tag names
...
Convert if/else/else/... to a loop.
2010-05-30 22:52:45 +02:00
Max Kellermann
44b771aca1
decoder/mp4ff: rename plugin "mp4" to "mp4ff"
...
The underlying library is named "libmp4ff". To reduce confusion,
rename the plugin to a more specific name.
2010-05-30 22:52:44 +02:00
Max Kellermann
9dda53e1d2
Merge release 0.15.10 from branch 'v0.15.x'
...
Conflicts:
NEWS
configure.ac
src/input/mms_input_plugin.c
2010-05-30 18:26:33 +02:00
Max Kellermann
442d2e74e3
decoder/mad: fix buffer variable name on !HAVE_ID3TAG
2010-05-30 17:27:03 +02:00