Max Kellermann
d3641766a5
decoder/sndfile: convert to C++
2013-07-28 12:48:26 +02:00
Max Kellermann
b25d5c5d33
decoder/audiofile: convert to C++
2013-07-28 12:48:26 +02:00
Max Kellermann
352d7f477e
decoder/{dsf,dsdiff}: convert to C++
2013-07-28 12:20:50 +02:00
Max Kellermann
1fcf35ad3b
tag_rva2: convert to C++
2013-07-26 12:52:51 +02:00
Max Kellermann
c8054e569a
decoder/mad: convert to C++
2013-07-26 11:59:17 +02:00
Denis Krjuchkov
21dac6c05d
decoder/FLAC*: rename files and symbols to Flac*
2013-05-06 23:36:47 +06:00
Max Kellermann
abaabe92d6
decoder_buffer: convert to C++
2013-04-17 22:45:10 +02:00
Max Kellermann
257b42b87f
decoder/faad: convert to C++
2013-04-17 22:33:59 +02:00
Max Kellermann
c654c7630a
pcm_*: move to src/pcm/
2013-04-09 01:24:52 +02:00
Max Kellermann
14df240f5b
OpusReader: don't use strndup()
...
Eliminate the fallback strndup() and strnlen() implementations.
2013-04-09 01:03:44 +02:00
Max Kellermann
7ec1121cc8
uri: convert to C++
2013-04-08 23:45:31 +02:00
Max Kellermann
f84e288ad7
decoder/gme: fix rounding error
...
Cast to integer after multiplying with 1000. Allows sub-second
seeking.
2013-04-08 23:45:21 +02:00
Max Kellermann
8e31366431
decoder/gme: convert to C++
2013-04-08 23:32:53 +02:00
Max Kellermann
3477acee48
decoder/ffmpeg: suppress warning about unused variable
...
Only relevant for old ffmpeg versions.
2013-04-08 22:12:49 +02:00
Anton Khirnov
8becbb8b08
ffmpeg decoder plugin: do not allocate an AVFrame on stack.
...
AVFrame must be allocated with avcodec_alloc_frame().
2013-04-05 23:34:10 +02:00
Anton Khirnov
e0c2c77c2a
ffmpeg decoder plugin: do not allocate an AVFrame on stack.
...
AVFrame must be allocated with avcodec_alloc_frame().
2013-04-05 23:30:47 +02:00
Max Kellermann
3b3c9334c8
decoder/Opus: replace non-static data member initializers
...
Would require gcc 4.7, and MPD attempts to be compatible with gcc 4.6.
2013-02-04 11:08:32 +01:00
Max Kellermann
3dd8beb380
decoder/faad: use the newer NeAAC* API
...
Drop support for the old faacDec* API.
2013-01-29 16:17:15 +01:00
Max Kellermann
76417d4446
InputStream: use std::string
2013-01-28 23:41:45 +01:00
Max Kellermann
cffc78ad6a
InputStream: store references instead of pointers
2013-01-28 23:35:01 +01:00
Max Kellermann
0dd4b52b63
decoder/ffmpeg: require ffmpeg/libav 0.7.6
...
This is the version present in Ubuntu Oneiric, the oldest distribution
with gcc 4.6. Debian Squeeze is off target, because it has gcc 4.4,
which is unable to compile MPD anyway.
This commit drops all API compatibility hacks for older versions.
2013-01-28 21:32:14 +01:00
Max Kellermann
88c17926e4
decoder/mp4ff: delete obsolete plugin
...
The underlying library has been obsolete for many years.
2013-01-28 21:32:14 +01:00
Max Kellermann
6f3d70b5e2
DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCond
2013-01-27 18:39:32 +01:00
Max Kellermann
0273cd44b0
input_stream: forward-declare the struct
...
Hide the definition from C code, to prepare the transition to C++.
2013-01-26 01:24:01 +01:00
Max Kellermann
ba49f20f68
decoder/ffmpeg: convert to C++
2013-01-26 01:17:43 +01:00
Max Kellermann
74500eacca
Merge branch 'v0.17.x'
2013-01-16 20:05:26 +01:00
Brice Jaglin
1105e61f29
decoder/ffmpeg: support float planar audio
2013-01-16 19:54:54 +01:00
Denis Krjuchkov
a98aa66620
string_util.c: provide fallback strndup() implementation
...
This patch also adds extern "C" { } wrapper around string_util.h
to allow its usage in C++ code
2013-01-11 13:51:39 +06:00
Max Kellermann
3dd38e7b7f
decoder/wavpack: convert to C++
2013-01-10 18:18:14 +01:00
Max Kellermann
3711a97657
decoder/wavpack: include cleanup
2013-01-10 18:18:02 +01:00
Max Kellermann
bf4311cd9b
decoder/OggUtil,Opus: move code to new class OggSyncState
2013-01-08 11:04:14 +01:00
Max Kellermann
8f7adf79a3
decoder/Opus: read total time
2013-01-08 01:38:02 +01:00
Max Kellermann
97b164d03b
decoder/OggUtil: add OggExpectPageSeek()
2013-01-08 01:30:44 +01:00
Max Kellermann
61e7e531c2
decoder/Opus: move page reader into the decoder class
2013-01-08 01:22:11 +01:00
Max Kellermann
ceb652915f
decoder/Opus: move code to HandlePackets()
2013-01-08 01:20:03 +01:00
Max Kellermann
cdaf504ab8
decoder/Opus: make internal methods inline
2013-01-08 01:19:18 +01:00
Max Kellermann
9fb5aad157
decoder/OggUtil: add OggExpectFirstPage() and OggExpectPageIn()
2013-01-08 01:08:01 +01:00
Max Kellermann
a6301d45f4
decoder/Opus: use OggExpectPage() in main loop
2013-01-08 01:05:59 +01:00
Max Kellermann
b83d069266
decoder/OggUtil: add struct forward declarations
2013-01-08 01:02:06 +01:00
Max Kellermann
960b9a9664
input_stream: add method _cheap_seeking()
...
Move code from the Vorbis decoder plugin.
2013-01-07 23:25:08 +01:00
Max Kellermann
acb45caa42
decoder/ogg_codec: convert to C++
2013-01-07 22:14:52 +01:00
Max Kellermann
39060b528a
decoder/vorbis: convert to C++
2013-01-07 22:04:58 +01:00
Max Kellermann
975370c084
decoder_api.h, ...: add "extern C"
2013-01-07 10:07:40 +01:00
Max Kellermann
46ed91b53d
DecoderAPI: _replay_gain() returns void
...
Let the function decoder_replay_gain() update
decoder_control::replay_gain_db instead of letting each decoder plugin
take care for that.
2013-01-05 02:40:29 +01:00
Max Kellermann
22f0ef6d6b
don't include stdbool.h in C++ sources
...
The "bool" type is built-in.
2013-01-02 20:56:04 +01:00
Jurgen Kramer
dc32d1f3f3
Add tag support for DSD (DSDIFF & DSF) decoders
2012-10-27 11:42:34 +02:00
Max Kellermann
cbdaa1369f
Merge branch 'v0.17.x'
...
Conflicts:
src/PlaylistSave.cxx
2012-10-05 17:12:44 +02:00
Max Kellermann
d4b5699403
decoder/ffmpeg: support planar audio
...
Implements Mantis feature request 3582.
2012-10-05 16:40:25 +02:00
Max Kellermann
1dc27be015
decoder/ffmpeg: fix playback of planar PCM data
...
Interleaving was completely wrong. This code was never used, so it
didn't have an effect.
2012-10-05 16:38:55 +02:00
Max Kellermann
230a3eb400
decoder/ffmpeg: move code to copy_interleave_frame2()
2012-10-05 16:37:07 +02:00
Max Kellermann
e39382dedd
decoder/ffmpeg: ignore negative time stamps
...
Works around assertion failure in decoder_timestamp().
2012-10-05 16:37:07 +02:00
Max Kellermann
fd016f4507
decoder/ffmpeg: show unsupported sample format name
...
Use av_get_sample_fmt_string() to obtain a human-readable string.
2012-10-05 15:24:53 +02:00
Max Kellermann
9d728b365d
decoder/ffmpeg: pass AVSampleFormat to ffmpeg_sample_format()
...
API simplification.
2012-10-05 15:14:57 +02:00
Max Kellermann
ddc0283339
decoder/ffmpeg: remove duplicate sample format error message
2012-10-05 14:52:30 +02:00
Max Kellermann
b8fdb452be
decoder/flac: support FLAC files inside archives
...
Implement the "scan_stream" method that can read tags from any
input_stream object. This requires a FLAC__IOCallbacks implementation
based on the input_stream API.
2012-10-04 10:37:09 +02:00
Max Kellermann
6b416ce6be
decoder/flac: move flac_scan_file2() to main plugin file
2012-10-04 10:32:52 +02:00
Max Kellermann
ebd90dbb1a
decoder/flac: move callbacks to class FLACInput
2012-10-02 19:59:49 +02:00
Max Kellermann
c9e700f079
decoder/flac: add ctor/dtor to struct flac_data
2012-10-02 19:47:31 +02:00
Max Kellermann
3c2d73d161
decoder/flac: add method FLACMetadataChain::Scan()
...
Merge common code.
2012-10-02 18:24:15 +02:00
Max Kellermann
343de8b8ab
decoder/flac: don't use FLAC__Metadata_SimpleIterator
...
Use the new FLACMetadataIterator C++ class, which is more powerful.
2012-10-02 17:38:21 +02:00
Max Kellermann
c645b906f3
decoder/flac: add C++ libFLAC wrappers
...
Not using libFLAC++ because this library adds a lot of overhead due to
virtual method calls. This new class library is zero-overhead.
2012-10-02 17:37:07 +02:00
Max Kellermann
9c1d1ef268
decoder/flac: eliminate the obsolete "track number" code
...
This has been deprecated by the "embcue" playlist plugin.
2012-10-02 17:36:54 +02:00
Max Kellermann
e5fd1924db
decoder/flac: remove unused function flac_tag_load()
2012-10-02 11:39:10 +02:00
Max Kellermann
cbdd042adc
decoder/flac: use C++ compiler
2012-10-02 10:59:56 +02:00
Max Kellermann
ccd7104cdc
{decoder,encoder}/flac: drop support for libFLAC 1.1
2012-10-02 10:04:44 +02:00
Max Kellermann
33364edfb3
decoder/adplug: new decoder plugin
2012-09-25 22:03:44 +02:00
Simon Hosie
5e9ccdec63
decoder/vorbis: skip 16 bit quantisation, provide float samples
...
Internally the vorbis (non-Tremor) decoder is working in floating
point, and it's not really necessary to cut the output back to 16-bit
if the soundcard or OS supports higher resolution.
The decoder can be trivially modified to bypass its internal
quantisation and produce floating-point output, and a separate
quantisation can be used as appropriate to the platform.
2012-09-25 21:27:50 +02:00
Max Kellermann
071aca60be
decoder/vorbis: rename local variables
2012-09-25 21:26:27 +02:00
Max Kellermann
133e4d5c51
decoder/vorbis: improved support for initial seek
...
Call decoder_get_command() before doing anything else.
2012-09-25 21:26:27 +02:00
Max Kellermann
fd56461d5f
decoder/vorbis: make variables more local
2012-09-25 21:11:38 +02:00
Max Kellermann
e2a574e2a0
Merge branch 'v0.17.x'
...
Conflicts:
src/locate.c
2012-09-25 11:39:01 +02:00
Max Kellermann
ba6ef53ef9
decoder_control: remove MixRamp debug messages
...
These are confusing, and since MixRamp development has ceased, not
useful to anybody.
2012-09-25 11:08:16 +02:00
Max Kellermann
7088a679a2
decoder/wavpack: support all APEv2 tags
...
WavPack tags are always APEv2, by definition. Reuse the tag_table
from tag_ape.c, instead of rolling our own.
2012-09-25 09:37:16 +02:00
Max Kellermann
1536b5a9d6
src/decoder/opus: new decoder plugin for the Opus codec
...
Using libopus and libogg.
2012-09-05 23:01:17 +02:00
Max Kellermann
bab756a5d0
decoder/{flac,vorbis}: move tag table to XiphTags.c
...
Merge duplicate data.
2012-09-05 22:56:57 +02:00
Max Kellermann
7102ed8026
decoder/ogg_codec: return UNKNOWN on error
2012-09-04 13:46:12 +02:00
Max Kellermann
ebf481e1a1
decoder/ogg_common: rename to ogg_codec.c
2012-09-04 13:05:12 +02:00
Max Kellermann
5a52e91350
decoder/ogg_common: pass decoder to _type_detect()
...
Allow the function to be cancelled.
2012-09-04 12:49:02 +02:00
Max Kellermann
18e458154a
decoder/ogg_common: apply coding style
2012-09-04 11:52:18 +02:00
Max Kellermann
015e1ab183
decoder/_ogg_common: rename to ogg_common.c
2012-09-04 11:28:36 +02:00
Max Kellermann
2a4c799471
Merge branch 'v0.17.x'
2012-09-04 11:28:13 +02:00
Max Kellermann
41487426f5
decoder/_ogg_common: fix buffer size check
...
Fixes potential access to uninitialised memory.
2012-09-04 11:22:15 +02:00
Max Kellermann
0d24250aa7
decoder/_ogg_common: simplify the large "if" expression
2012-09-04 11:22:05 +02:00
Max Kellermann
fb0a52a34a
decoder/mad, output_thread: add gcc_unlikely()
2012-08-29 17:41:22 +02:00
Max Kellermann
efccb6ac82
Merge branch 'v0.17.x'
2012-08-15 01:04:34 +02:00
Max Kellermann
4a993cd79e
decoder/fluidsynth: add "sample_rate" setting
2012-08-15 00:57:32 +02:00
Max Kellermann
02325d2ede
decoder/fluidsynth: add "soundfont" setting
...
Replaces the old global "soundfont" which never worked.
2012-08-15 00:51:45 +02:00
Max Kellermann
9c83464b95
configure.ac: auto-detect libfluidsynth
...
Now that the libfluidsynth API was sanitized, we can enable the plugin
automatically if libfluidsynth is installed.
2012-08-15 00:48:52 +02:00
Max Kellermann
b1bbd70f0f
decoder/fluidsynth: stop playback at end of file
...
Use libfluidsynth's new function fluid_player_get_status().
2012-08-15 00:47:10 +02:00
Max Kellermann
c31d11bfe0
decoder/fluidsynth: don't duplicate path
...
The libfluidsynth now accepts const strings.
2012-08-15 00:39:22 +02:00
Max Kellermann
c8ec85d649
decoder/fluidsynth: check if file is really a MIDI
...
Use fluid_is_midifile() to verify the file format.
2012-08-15 00:36:04 +02:00
Max Kellermann
e291f3d257
decoder/fluidsynth: remove throttle (requires libfluidsynth 1.1)
...
The libfluidsynth API is now sane, and does not require real-time
decoding.
2012-08-15 00:29:38 +02:00
Max Kellermann
8e331cfc65
gcc.h: re-add gcc_const and gcc_pure
...
Remove GLib dependency from some headers.
2012-08-02 19:12:18 +02:00
Max Kellermann
79200a8611
decoder/sidplay: fix C++ compiler warnings
2012-08-01 09:59:12 +02:00
Jurgen Kramer
d4d92ac1a7
Add song duration to DSF and DSDIFF DSD decoders.
2012-07-13 10:14:17 +02:00
Jurgen Kramer
7235dbadfd
patch to split DSD decoder into separate decoders for DSF en DFF. Move common
...
functions to new dsdlib. Update user doc.
2012-06-27 09:54:24 +02:00
Max Kellermann
4eb57e1e9a
Merge branch 'v0.16.x'
...
Conflicts:
src/cmdline.c
src/decoder/wildmidi_decoder_plugin.c
src/gcc.h
src/glib_compat.h
src/input_stream.c
src/output_list.c
src/output_thread.c
valgrind.suppressions
2012-06-12 23:22:03 +02:00
Denis Krjuchkov
25d053cbf2
Work around incorrect g_file_test() behavior on Win32
...
g_file_test is redefined to be g_file_test_utf8 and thus can't handle
non-ASCII characters. This fix adds simple wrapper (taken from glib)
that fixes encoding and calls g_file_test_utf8. All required inclusions
of glib_compat.h are added as well.
2012-06-12 19:31:19 +02:00
Max Kellermann
d662c4c0cc
Merge branch 'v0.16.x'
...
Conflicts:
NEWS
2012-05-29 23:46:10 +02:00
Jonathan Neuschäfer
cca9bc5176
decoder/ffmpeg: improve "decoding failed" message
...
"Frame skipped" might cause the impression that the decoding of a whole
song failed.
2012-05-29 22:46:27 +02:00