Max Kellermann
982ab9e496
decoder/opus: show song duration during playback
...
This requires seeking to the end-of-stream, checking its granulepos,
and then seeking back to the previous file position. We do this only
for local files.
2013-10-24 23:26:46 +02:00
Max Kellermann
b74bcf2274
decoder/opus: call ogg_stream_reset() in OggSeekPageAtOffset()
2013-10-24 23:23:23 +02:00
Max Kellermann
dc328e0c4a
decoder/opus: move code to OggSeekPageAtOffset()
2013-10-24 20:40:23 +02:00
Max Kellermann
92c85bd20d
decoder/opus: move SeekFindEOS() to OggFind.cxx
2013-10-24 20:33:12 +02:00
Max Kellermann
f629eb8cb2
decoder/opus: make opus_sample_rate constexpr
2013-10-24 20:14:47 +02:00
Max Kellermann
e4f41ff61d
decoder/opus: use std::copy_n() instead of memcpy()
2013-10-24 20:06:50 +02:00
Max Kellermann
dae6ecb680
decoder/opus: support all core tag names
2013-10-24 20:01:14 +02:00
Max Kellermann
a57a7b1a76
decoder/opus: move code to ParseOpusTagName()
2013-10-24 20:01:14 +02:00
Max Kellermann
03073b366b
decoder/opus: use delete[] for the OpusReader::ReadString() result
2013-10-24 20:01:14 +02:00
Max Kellermann
0a5c991ab5
decoder/wavpack: move variable declarations
2013-10-23 23:20:55 +02:00
Max Kellermann
93deb84499
input_stream: rename struct to InputStream
2013-10-23 23:12:02 +02:00
Max Kellermann
f1027ed198
InputStream: add method Rewind()
2013-10-23 21:58:44 +02:00
Max Kellermann
10bc1a9acc
decoder/flac: fix tag name comparison
2013-10-22 01:05:09 +02:00
Max Kellermann
82059645f1
decoder: rename the struct to "Decoder"
2013-10-21 21:12:37 +02:00
Max Kellermann
72af3c0489
decoder_plugin: rename struct to DecoderPlugin
2013-10-21 20:31:34 +02:00
Max Kellermann
65e54f6ed1
decoder/modplug: use WritableBuffer instead of GByteArray
...
Eliminate the temporary buffer, do I/O right into the WritableBuffer.
2013-10-21 20:22:53 +02:00
Max Kellermann
10196496f3
decoder/modplug: move code to LoadModPlugFile()
2013-10-21 20:19:27 +02:00
Max Kellermann
222dc8a239
Util/ASCII: add StringEqualsCaseASCII() overload with length
...
Replaces GLib's g_ascii_strncasecmp().
2013-10-21 08:42:55 +02:00
Max Kellermann
0e4d2e7277
Util/ASCII: add function StringEqualsCaseASCII()
...
Replaces GLib's g_ascii_strcasecmp().
2013-10-20 23:09:51 +02:00
Max Kellermann
a78b2d84ed
TagType: rename enum tag_type to TagType
2013-10-20 13:32:59 +02:00
Max Kellermann
c1e7be3b8e
decoder/sidplay: add header file
2013-10-20 13:05:50 +02:00
Max Kellermann
17ecc56e83
decoder/sidplay: update file name
2013-10-20 13:03:58 +02:00
Max Kellermann
59f8144c50
*: use nullptr instead of NULL
2013-10-19 18:19:03 +02:00
Max Kellermann
1373d40fea
decoder/mpg123: use const_cast instead of g_strdup()
2013-10-19 17:46:00 +02:00
Max Kellermann
39e2ffe212
decoder/mikmod: use const_cast instead of g_strdup()
2013-10-19 17:30:56 +02:00
Max Kellermann
5dc4cbdf82
util/FormatString: new library to replace g_strdup_printf()
2013-10-19 17:24:21 +02:00
Max Kellermann
1434e5a22e
decoder/gme,input/curl,...: use static buffers instead of g_strdup_printf()
2013-10-19 17:15:17 +02:00
Sebastian Thorarensen
db44a6e948
decoder/modplug: Add "loop_count" parameter
...
The "loop_count" configuration parameter allows the user to set how
many times a module with backward loops shall loop. "0" (the default)
means a module is not allowed to use backward loops at all. "-1"
enables inifinite looping.
2013-10-19 16:12:17 +02:00
Sebastian Thorarensen
b6ac249c3c
decoder/mikmod: Add loop configuration parameter
...
This patch allows the user to configure the mikmod decoder plugin to loop
modules. It adds a configuration parameter to the mikmod decoder called
"loop" which can be "no" (the old behaviour, default) or "yes" to allow
modules to use backward loops.
2013-10-18 14:23:24 +02:00
Max Kellermann
abfbd55305
fs/Path: rename to AllocatedPath
...
The new class Path only holds a string pointer without being
responsible for allocation/deallocation. The FileSystem.hxx library
accepts Path arguments instead of AllocatedPath, to avoid forcing
callers to allocate another string object.
2013-10-17 23:43:46 +02:00
Max Kellermann
05de2e998c
InputStream: use int64_t instead of goffset
...
Decouple some more from GLib.
2013-10-17 10:45:10 +02:00
Max Kellermann
d6967db761
decoder/wildmidi: remove suport for libwildmidi 0.2.2 or older
2013-10-16 23:57:26 +02:00
Max Kellermann
5e26e2ab1d
system/ByteOrder: new library for byte ordering / endianess
...
Replacing GLib macros.
2013-10-16 22:09:44 +02:00
Max Kellermann
6b2b5af344
util/byte_reverse: convert to C++
2013-10-16 22:07:52 +02:00
Max Kellermann
509f8dab89
Util/Macros: replacement for GLib's G_N_ELEMENTS()
2013-10-15 22:47:39 +02:00
Max Kellermann
be2951b45f
gcc.h: rename to Compiler.h
2013-10-15 09:21:59 +02:00
Max Kellermann
17c6db6c33
replay_gain_*.h: rename to *.hxx
2013-10-02 12:22:12 +02:00
Max Kellermann
060814daa8
Log: new logging library API
...
Prepare to migrate away from GLib. Currently, we're still using GLib
as a backend.
2013-10-02 08:57:55 +02:00
Max Kellermann
c5d05ac0cf
DecoderCommand: convert to strictly-typed enum
2013-09-27 12:11:37 +02:00
Max Kellermann
52ee132d92
TagHandler: use a TagBuilder internally
...
Reduce heap allocator overhead.
2013-09-26 17:35:08 +02:00
Max Kellermann
d7b0073ce1
decoder/modplug: fix include directory
...
Since Debian package 1:0.8.8.4-4, the pkg-config file does not contain
-I/usr/include/libmodplug anymore, and we need to add the
"libmodplug/" prefix to the #include line.
2013-09-26 17:27:35 +02:00
Max Kellermann
3f267b1795
Tag, ...: move to libtag.a
2013-09-05 18:26:56 +02:00
Max Kellermann
7a4c9f5f4c
mpd_error.h: remove obsolete header
...
Migrate the remaining callers to FatalError().
2013-09-05 18:26:46 +02:00
Max Kellermann
26d92c80ed
conf.h: remove obsolete header
...
Use only ConfigData.hxx in plugin sources to reduce header
dependencies.
2013-09-05 08:47:10 +02:00
Max Kellermann
7d0269d2ce
InputLegacy: move functions to the input_stream class
2013-09-05 00:23:14 +02:00
Max Kellermann
681d6bbdc5
TagTable: un-inline the two functions
...
Reduce header dependencies.
2013-09-04 23:57:30 +02:00
Max Kellermann
867b82b6de
Tag*: move TagTable.hxx to libtag.a
2013-09-04 23:54:37 +02:00
Max Kellermann
5101ef4b02
Tag*: move libtag.a sources to src/tag/
2013-09-04 23:46:20 +02:00
Max Kellermann
29030b54c9
util/Error: new error passing library
...
Replaces GLib's GError.
2013-09-04 18:14:22 +02:00
Max Kellermann
85216966fa
decoder/wildmidi: use class Path for the "timidity.cfg" location
2013-08-10 11:52:31 +02:00
Alexis Ballier
3f846cf6b8
FfmpegDecoderPlugin: Allocate the interleaved buffer as needed instead of using an arbitrary big constant.
...
Also, save a memcpy when FFmpeg outputs interleaved audio.
Fixes build with FFmpeg 2.0.
2013-08-07 15:07:41 +02:00
Max Kellermann
498491ec05
decoder/ffmpeg: convert struct mpd_ffmpeg_stream to a class
2013-08-05 00:15:25 +02:00
Max Kellermann
85b77b81ca
*: use gcc.h macros instead of GLib
2013-08-04 23:48:01 +02:00
Max Kellermann
9326ce53ec
Merge tag 'release-0.17.5'
2013-08-04 14:36:22 +02:00
Justin Riley
3a34fd181d
FfmpegDecoderPlugin: add application/flv to mime types list
2013-08-04 14:20:16 +02:00
Max Kellermann
7a1d466fb2
DecoderPlugin: pass config_param reference
2013-08-04 13:30:47 +02:00
Max Kellermann
d1e7b4e381
audio_format: convert to C++
2013-08-03 21:37:56 +02:00
Max Kellermann
67f591a9ce
gcc.h: add macro gcc_unreachable()
2013-08-03 21:34:17 +02:00
Christoph Mende
7ff988275f
decoder/mikmod: use MikMod_free() to free the title on libmikmod-3.2
...
Player_LoadTitle() returns an aligned pointer in libmikmod-3.2 that
cannot be freed with free(). The correct way to do this now is
MikMod_free() which extracts the original pointer from the buffer and
frees that.
Signed-off-by: Christoph Mende <mende.christoph@gmail.com>
2013-08-01 09:30:20 +02:00
Max Kellermann
8b2dcf7018
decoder/ffmpeg: require ffmpeg/libav 0.8
...
Now that even Debian stable has picked up version 0.8, we can safely
make this a requirement, and remove a lot of old cruft.
2013-07-31 01:01:21 +02:00
Max Kellermann
8ead8f7ea6
decoder/mpcdec: remove support for the "old" API
...
This old version has been obsolete for many years - time to remove it.
2013-07-31 00:43:21 +02:00
Max Kellermann
7f9402bd22
Tag: add method Clear()
...
Allow reusing Tag instances.
2013-07-31 00:35:05 +02:00
Max Kellermann
cbd38327e7
DecoderAPI: pass rvalue reference to decoder_tag()
...
Avoid duplicating the tag.
2013-07-31 00:34:22 +02:00
Max Kellermann
06f898cc12
tag: convert to C++
2013-07-30 20:19:53 +02:00
Max Kellermann
28030d7edb
include cleanup
2013-07-30 08:39:21 +02:00
Max Kellermann
c75cb67c44
pcm_buffer: convert to C++
2013-07-30 08:31:02 +02:00
Max Kellermann
43166130b5
audio_check: convert to C++
2013-07-29 07:50:08 +02:00
Max Kellermann
14f21378e3
tag_table: convert to C++
2013-07-29 07:45:58 +02:00
Max Kellermann
bd42aeab46
XiphTags: convert to C++
2013-07-29 07:42:50 +02:00
Max Kellermann
cde6a3a00c
tag_handler: convert to C++
2013-07-29 07:39:58 +02:00
Max Kellermann
96b763067e
ape: convert to C++
2013-07-29 07:39:36 +02:00
Max Kellermann
dd5ba062cc
tag_id3: convert to C++
2013-07-28 20:25:45 +02:00
Max Kellermann
43f613d9be
decoder_api: convert to C++
2013-07-28 13:18:48 +02:00
Max Kellermann
2277d143fa
decoder/fluidsynth: convert to C++
2013-07-28 13:16:27 +02:00
Max Kellermann
6b6d9e64bd
decoder/pcm: convert to C++
2013-07-28 13:10:05 +02:00
Max Kellermann
f016a99f24
decoder/mpcdec: convert to C++
2013-07-28 13:04:12 +02:00
Max Kellermann
2eed9d64ce
decoder/modplug: convert to C++
2013-07-28 13:03:04 +02:00
Max Kellermann
1688b6dda9
decoder/mikmod: convert to C++
2013-07-28 13:03:04 +02:00
Max Kellermann
33aedc887a
decoder/wildmidi: convert to C++
2013-07-28 13:03:04 +02:00
Max Kellermann
258d0ea97e
decoder/mpg123: convert to C++
2013-07-28 13:03:04 +02:00
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