Max Kellermann
291ee9f86a
output/fifo: simplify the Cancel() loop
2015-08-06 10:13:21 +02:00
Max Kellermann
59e4d7f0f5
output/fifo: convert struct to class
2015-08-06 09:51:03 +02:00
Max Kellermann
4647448399
output/fifo: use AudioOutputWrapper::Open(),Close()
2015-08-06 09:50:02 +02:00
Max Kellermann
7dfe841876
output/fifo: rename Open(), Close() to OpenFifo(), CloseFifo()
2015-08-06 09:49:00 +02:00
xent
34db35c36d
playlist/embcue: fix last track
2015-08-05 23:37:57 +02:00
Max Kellermann
3e9738dc66
decoder/mpcdec: read the bit rate
...
This was lost in commit 8ead8f7ea
, because this was never implemented
for the new API.
2015-08-05 23:33:11 +02:00
Max Kellermann
2ecf57cdd9
decoder/mpcdec: use SampleTraits<SampleFormat::S24_P32>
2015-08-05 23:24:30 +02:00
Max Kellermann
c8b602038e
decoder/mpcdec: use Clamp()
2015-08-05 23:24:30 +02:00
Max Kellermann
e384fa226e
decoder/mpcdec: make buffer more local
...
Allow the compiler to invalidate buffer contents.
2015-08-05 23:10:39 +02:00
Max Kellermann
cbb595ba83
event/ServerSocket: use AllocatedSocketAddress to build local socket address
2015-07-22 11:05:48 +02:00
Max Kellermann
fdeec0307e
event/ServerSocket: use AllocatedSocketAddress for OneServerSocket::address
...
Manages memory automatically.
2015-07-22 11:05:08 +02:00
Max Kellermann
f084bbbf35
net/AllocatedSocketAddress: new sockaddr wrapper class
2015-07-22 10:56:35 +02:00
Max Kellermann
20d69b957f
Net/StaticSocketAddress: add equality operator with SocketAddress
2015-07-22 10:56:32 +02:00
Max Kellermann
7de0a621e3
net/StaticSocketAddress: replace cast operator with GetAddress()
...
The implicit cast operator can be very dangerous.
2015-07-22 10:55:57 +02:00
Max Kellermann
3441ea9844
net/ToString: relicense to BSD-2
2015-07-22 10:26:18 +02:00
Max Kellermann
83752e9349
net/ToString: rename sockaddr_to_string() to ToString()
2015-07-22 10:26:18 +02:00
Max Kellermann
8fdfe85b5f
net/ToString: move V4 mapping code to functions
2015-07-22 10:26:18 +02:00
Max Kellermann
d4d9a85ad8
net/ToString: make variables more local
2015-07-22 10:26:18 +02:00
Max Kellermann
6f22452b54
net/Resolver: move sockaddr_to_string() to ToString.cxx
2015-07-22 10:03:36 +02:00
Max Kellermann
a4a37d7a19
net/StaticSocketAddress: remove unused method SetLocal()
2015-07-21 14:42:46 +02:00
Max Kellermann
d1b1a8e490
net/StaticSocketAddress: include cleanup
2015-07-21 13:56:21 +02:00
Max Kellermann
104fe124df
net/StaticSocketAddress: disable SetLocal() on Android
...
Fixes build failure because Bionic doesn't provide SUN_LEN().
2015-07-21 12:08:25 +02:00
Max Kellermann
5bdbd74d59
net: add header Features.hxx
...
For improved portability of the net library to projects without
autoconf.
2015-07-21 11:57:53 +02:00
Max Kellermann
e621c24270
net/StaticSocketAddress: include config.h
2015-07-21 11:57:53 +02:00
Max Kellermann
554888318a
net/StaticSocketAddress: use SocketAddress::size_type
2015-07-21 10:39:50 +02:00
Max Kellermann
49aaf98a7f
net/StaticSocketAddress: include cleanup
2015-07-21 10:38:58 +02:00
Max Kellermann
6f7bfa71a9
lib/icu/Collate: remove GLib implementation
...
There is not much use in GLib: on Windows, we have a native API for
string collation, and the rest uses either libicu or the standard C
library calls.
2015-06-27 16:05:54 +02:00
Max Kellermann
fb3564fbe7
lib/icu/Collate: use LCMapStringEx() on Windows
2015-06-27 15:52:37 +02:00
Max Kellermann
3fa4dad418
lib/icu/Converter: remove GLib implementation
...
We don't need this anymore: Win32 doesn't use this library at all, and
everything else has either iconv() or libicu.
2015-06-26 16:51:18 +02:00
Max Kellermann
0756607e32
lib/icu/Converter: add iconv() implementation
2015-06-26 16:49:25 +02:00
Max Kellermann
a03be5a8a6
lib/icu/Converter: add missing <>
2015-06-26 16:49:25 +02:00
Max Kellermann
39c5bb95d2
CommandLine: show more compile-time features in --version
2015-06-26 16:42:06 +02:00
Max Kellermann
4d33b089da
CommandLine: update copyright year
2015-06-26 16:32:52 +02:00
Max Kellermann
58996b841a
config/Global: allow calling config_get_string() with one argument
...
default_value defaults to nullptr.
2015-06-26 08:06:40 +02:00
Max Kellermann
df03a7b3f8
config/Templates: mark http_proxy_* deprecated
2015-06-26 08:06:40 +02:00
Max Kellermann
ac03871174
Main: remove g_set_application_name() call
...
Since we are removing GLib, this call is useless.
2015-06-26 07:59:58 +02:00
Max Kellermann
2a086d20c6
fs/Glob: remove GLib implementation
...
I suppose there is no non-WIN32 operating system that doesn't have
fnmatch(). So let's remove the GLib implementation.
2015-06-26 07:56:34 +02:00
Max Kellermann
d5cfa6d4dc
TagId3: remove the "id3v1_encoding" setting
...
Drop support for misencoded tags. People should not be using ID3v1
anyway.
2015-06-26 00:15:24 +02:00
Max Kellermann
f415167e59
config/Templates: add attribute "deprecated"
2015-06-26 00:11:33 +02:00
Max Kellermann
9477db2363
config/Templates: add constructor with defaulted "repeat" parameter
2015-06-26 00:11:23 +02:00
Max Kellermann
8d11577ff2
lib/icu/{Converter,Collate}: return AllocatedString
2015-06-25 23:44:16 +02:00
Max Kellermann
037d1d9ad1
util/AllocatedString: add methods Duplicate(), Clone()
2015-06-25 23:44:16 +02:00
Max Kellermann
619ef2b341
util/AllocatedString: add method empty()
2015-06-25 23:44:16 +02:00
Max Kellermann
f06fe76d35
SongFilter: add assertion to StringMatch()
2015-06-25 23:29:07 +02:00
Max Kellermann
eb86fdfbea
SongFilter: return "const char *" instead of std::string
2015-06-25 23:15:36 +02:00
Max Kellermann
c7712e2ef0
lib/icu/Collate: fall back to strxfrm()
2015-06-25 23:01:29 +02:00
Max Kellermann
61fa770644
lib/icu/Collate: fix indent
2015-06-25 22:55:57 +02:00
Max Kellermann
334bd73792
lib/icu/Collate: fall back to strcoll() instead of strcasecmp()
2015-06-23 13:26:45 +02:00
Max Kellermann
090ce262c4
lib/icu/Collate: use CompareStringEx() on Windows
2015-06-23 13:20:41 +02:00
Max Kellermann
d551d40886
fs/NarrowPath: use the WideCharToMultiByte() wrapper
2015-06-23 13:20:11 +02:00
Max Kellermann
aecfcaa8a2
lib/icu/Win32: wrappers for WideCharToMultiByte(), MultiByteToWideChar()
2015-06-23 13:20:11 +02:00
Max Kellermann
61a3028788
util/AllocatedString: remove bogus code from operator=
2015-06-23 13:20:11 +02:00
Max Kellermann
11d048b8e3
util/AllocatedString: new utility class
2015-06-23 12:48:21 +02:00
Max Kellermann
d814a01f2a
fs/Path: include cleanup
2015-06-23 12:35:13 +02:00
Max Kellermann
4c0916df79
fs/Path: use base class StringPointer
2015-06-23 12:34:45 +02:00
Max Kellermann
e4844b9936
util/StringPointer: new utility class
2015-06-23 12:34:44 +02:00
Max Kellermann
60aa8c527b
fs/Path: use method c_str() internally
2015-06-23 12:34:43 +02:00
Max Kellermann
9f7c3b8ea6
fs/Config: remove charset auto-detection via GLib
...
The default is always UTF-8.
2015-06-22 22:35:54 +02:00
Max Kellermann
9f4f1bab39
LogBackend: remove character set support
...
Always write UTF-8 to the log file.
2015-06-22 22:33:37 +02:00
Max Kellermann
73bd6af0f9
fs/Charset: hard-code Windows to ACP
...
Don't define HAVE_FS_CHARSET, and make GetFSCharset() return "ACP"
instead of "UTF-8". Ignore the configuration setting, which had no
effect anyway.
2015-06-22 22:20:10 +02:00
Max Kellermann
2aa54c5365
fs/Glob: use PathMatchSpec() on Windows
2015-06-22 22:12:08 +02:00
Max Kellermann
bc8542503d
fs/Glob: use fnmatch() if available
2015-06-22 22:12:08 +02:00
Max Kellermann
a6aea4ba58
fs/Glob: make constructor "explicit"
2015-06-22 22:12:08 +02:00
Max Kellermann
0b41faec89
db/update/ExcludeList: remove obsolete TODO comments
2015-06-22 22:12:08 +02:00
Max Kellermann
50eac9b49e
db/update/ExcludeList: move class Pattern to fs/Glob.hxx
2015-06-22 22:12:08 +02:00
Max Kellermann
b4fc2e38ab
pcm/Interleave: add stereo optimization
2015-06-22 17:27:29 +02:00
Max Kellermann
16639f9d71
pcm/Interleave: instantiate a 16 bit optimization
2015-06-22 17:20:37 +02:00
Max Kellermann
22f2605e25
pcm/Interleave: convert PcmInterleave32() to template
2015-06-22 17:19:42 +02:00
Max Kellermann
69476b4f21
pcm/Interleave: add optimization for 32 bit samples
...
Move code from the "vorbis" decoder.
2015-06-22 16:32:06 +02:00
Max Kellermann
fdf92c5f3b
pcm/Interleave: add "restrict" keywords
2015-06-22 16:32:06 +02:00
Max Kellermann
eed1a3c239
decoder/ffmpeg: move code to pcm/Interleave.cxx
2015-06-22 14:42:19 +02:00
Max Kellermann
94c037821b
decoder/ffmpeg: check for commands earlier
...
Improve initial seek by not reading/decoding the first frame before
checking for the seek command.
2015-06-22 14:42:19 +02:00
Max Kellermann
e38e8eb636
decoder/vorbis: check STOP before entering the loop
2015-06-22 14:40:51 +02:00
Max Kellermann
bef8c83388
OutputThread: move code to CloseOutput()
2015-06-22 13:02:13 +02:00
Max Kellermann
2e98324486
lib/ffmpeg/Buffer: add "malloc" attribute
2015-06-22 09:11:22 +02:00
Thomas Guillem
6e2d7445c5
InputStream: add ReadFull method
...
Convenient method that behave differently than Read, and that will be used by
tag scanners.
This method will return in case of error, if the whole data is read or is EOF
is reached.
2015-06-22 08:51:14 +02:00
Max Kellermann
90e7ace980
release v0.19.10
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJVhsF2AAoJECNuiljG20US2OUQAIyDcaUCFgUa2CYa7MftCPGc
dYJFwf+6Y2fJdSXcogYZmXNKNjFbPAZ4qqGdoNfI5a0rLxMarmL4DyjziAWi3ETB
MOkZK65Y5ySyyw69e+i/XsOwOn8rm6jDuwHKpT7wVJNjvZ8nA8esvu5b1Ief5LBd
UwEmn5DtKjA7dErHEYd2YvMK0xm+YmoKXuhmJKAn3sQdCEldgH4T5BCdOqmfrHWX
BYmNxmP3PU9Tqi7XHTSFZJn6vWiXhOoWr4Cb7K54j49sRV2B4QMWX1CLyK4+Jwmk
NZwD1IoGtoks5twfMTA9F9dBV/CPAWT69E0LIvaFJwCyoPCEnEi6k41bRAWK7P65
QwKxdtY/GZnVFpiqXba+wkD6VBa5wmkjS10+cIBhz3CVCEE+N5YacubUw5JieYg3
kOG2htSF1YP/Mo+IAObO9doQWHnDUavVhhpQ8UyqQ1bDMsmaEpfE16TRmlY/l5wx
Aor2p6D3c0E0IGpEwjOl6T9pDql4dyTdrRLLXJ6oD9iYv2rDdahctBRdyFZ1mRwX
oNUz8bfGDrshHVvwjQTr2b4O+w+yc+RSuJcyCGGcn5LakBuiM6vYNYuZzq3Yj/RK
Wk7RErVsbtY4ZRH06Lf5MSM5TflnrfQmzkUB0rZ0XoDyweoHOHPyzKhvBaKhadNh
UnEx4kCOvWdjFXUVWH3Q
=MrVf
-----END PGP SIGNATURE-----
Merge tag 'v0.19.10'
2015-06-21 16:06:02 +02:00
Max Kellermann
06301e279c
PlayerThread: start the decoder on PlayerCommand::QUEUE
...
Fixes missing SongBorder() call, which causes "single" mode breakage.
2015-06-21 15:38:48 +02:00
Max Kellermann
6d6f274648
DecoderAPI: discard unused song tag early
...
If there's a stream tag, don't let the song tag override it in the
next update_stream_tag() call.
2015-06-21 15:10:55 +02:00
Max Kellermann
9acefcb256
DecoderThread: set Decoder::song_tag only for local files
...
If the song tag comes from a stream, and MPD playback restarts, MPD
would believe the tag should override the newly received tag. This
makes the previous tag appear stuck. This change passes the song tag
only if it's authoritative - i.e. if it's a song file.
2015-06-21 15:02:14 +02:00
Max Kellermann
e4d0293a31
DecoderAPI: "move" the Tag object
...
Reduce runtime overhead.
2015-06-20 16:06:09 +02:00
Romain Rollet
ae77542a11
OutputControl: fix fail_timer check right after booting
...
Right after booting, the monotonic clock starts with a very small
value, and AudioOutput::LockUpdate() may believe that the fail_timer
has not recovered yet.
2015-06-20 15:37:19 +02:00
Max Kellermann
980187f856
system/PeriodClock: make IsDefined() "constexpr"
2015-06-20 15:33:17 +02:00
Max Kellermann
2b0a127fa5
pcm/soxr: fix recipe parser
2015-06-20 15:25:00 +02:00
Max Kellermann
327a8e6c59
decoder/ffmpeg: skip unwanted samples after seeking
...
When seeking to the beginning of a packet, skip the samples that come
before the desired time stamp.
2015-06-20 15:01:05 +02:00
Max Kellermann
d11e2724c4
decoder/ffmpeg: use AVSEEK_FLAG_BACKWARD for seeking
...
Ask FFmpeg to seek to the next packet boundary *before* the seek
position, so we don't miss audio data. Now we get too much, but we'll
solve that in the next commit.
2015-06-20 14:29:42 +02:00
Max Kellermann
f768ca3a2d
decoder/ffmpeg: move code to StreamRelativePts()
2015-06-19 18:56:29 +02:00
Max Kellermann
947e902288
input/curl: trigger the condition variable in RequestDone()
...
Fixes deadlock on small responses.
2015-06-19 16:45:38 +02:00
Thomas Guillem
3436a646b5
storage/nfs: fix deadlock when connecting
...
The Connect method can be called between Schedule and lock. In that case, when
locked, the state is already set to CONNECTING of READY and the condition won't
be signaled anymore.
2015-05-29 22:39:14 +02:00
jai
aed0af1e00
input/smbclient: fix DFF playback
2015-05-29 22:37:49 +02:00
Michal Nazarewicz
0d7ee2b014
OpusEncoderPlugin: initialise granulepos so we end up with sane values
...
Not initialising granulepos leads to it having arbitrary values in the
encoded stream including possibly negative values which are not valid
and confuse opusdec. Explicitly initialise opus_encoder::granulepos
to avoid that problem.
2015-03-25 18:02:54 +01:00
Max Kellermann
cd1148c6aa
db/update/ExcludeList: use the NarrowPath class
2015-03-25 17:32:17 +01:00
Max Kellermann
cfd26f53f0
fs/io/FileOutputStream: fix wrong #ifdef WIN32
2015-03-25 17:28:27 +01:00
Max Kellermann
69ad5671ed
Playlist*: use the BufferedOutputStream API instead of FILE*
2015-03-24 22:03:20 +01:00
Max Kellermann
f9e0f0d257
PlaylistSave: return bool/Error instead of PlaylistResult
2015-03-24 22:03:17 +01:00
Max Kellermann
98f3135ad3
PlaylistFile: export spl_map_to_fs() and TranslatePlaylistError()
2015-03-24 22:03:17 +01:00
Max Kellermann
8c9c3a91e6
PlaylistFile: eliminate redundant spl_map() calls
2015-03-24 22:03:17 +01:00
Max Kellermann
7f3518333d
Mapper: don't use C-style prototypes
2015-03-24 22:03:17 +01:00
Max Kellermann
f1f871f103
fs/io/FileOutputStream: add method Tell()
2015-03-24 22:00:10 +01:00
Max Kellermann
6387b52896
fs/io/FileOutputStream: seek end-of-file in AppendFileOutputStream ctor
2015-03-24 21:59:34 +01:00