Commit Graph

15430 Commits

Author SHA1 Message Date
Max Kellermann
44444e1b89 decoder/Thread: on late SEEK, start decoder at seek position
Previously, a bogus value (whatever happened to be still in
`start_time`) was used.
2019-08-20 20:15:08 +02:00
Max Kellermann
ca450663d0 decoder/Control: work around crash after SEEK was too late
See code comment.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/629
2019-08-20 20:01:53 +02:00
Max Kellermann
04e2d08417 decoder/Control: inline WaitForDecoder() 2019-08-20 19:33:15 +02:00
Max Kellermann
af4ffa91fd decoder/Control: remove attribute client_is_waiting
This optimization is useless because sane pthread_cond_signal()
implementations check the number of waiters and do not invoke a system
call if there are none.
2019-08-20 19:23:44 +02:00
Max Kellermann
f3ed2c0a82 time/ISO8601: support omitting seconds 2019-08-19 22:44:41 +02:00
Max Kellermann
2c35ea92bd time/ISO8601: support time zone offset 2019-08-19 22:44:28 +02:00
Max Kellermann
26e0e1d25a time/ISO8601: allow omitting the "Z" suffix
And allow "Z" suffix after date.
2019-08-19 22:42:39 +02:00
Max Kellermann
6412efb6e4 time/ISO8601: allow omitting the time of day 2019-08-19 22:42:06 +02:00
Max Kellermann
995783bb2f test/TestISO8601: unit test for time/ISO8601 2019-08-19 22:41:54 +02:00
Max Kellermann
1a08bdf16f time/ISO8601: ParseISO8601() returns precision 2019-08-19 22:41:49 +02:00
Max Kellermann
48b122f2ed time/ISO8601: implement with strptime(), without ParseTimePoint()
Prepare for adding more flexible parsing.
2019-08-19 22:26:43 +02:00
Max Kellermann
06dac4783f time/Convert: fallback TimeGm() implementation
Move code from Parser.cxx.
2019-08-19 22:22:07 +02:00
Max Kellermann
fdaadc19cb time/Parser: use TimeGm() 2019-08-19 22:21:22 +02:00
Max Kellermann
2e53e9248a time/Parser: explicitly initialize struct tm before strptime()
This is recommended by the strptime() manpage, because strptime() does
not initialize/set attributes which were not specified in the format
string.
2019-08-19 22:09:38 +02:00
Max Kellermann
b7abd5691c lib/curl/Global: use auto 2019-08-19 22:00:25 +02:00
Max Kellermann
7a0957d713 lib/curl/Global: document ToRequest() 2019-08-19 22:00:06 +02:00
Max Kellermann
2934fc2507 lib/curl/Global: remove CURL* parameter from Add() and Remove() 2019-08-19 21:53:19 +02:00
Max Kellermann
0c8ff56a15 lib/curl/Easy: add constructor with URL parameter 2019-08-19 21:48:07 +02:00
Max Kellermann
07be44a50a lib/curl/Easy: add getter functions 2019-08-19 21:47:11 +02:00
Max Kellermann
7a473729af lib/curl/Easy: add method Unpause() 2019-08-19 21:46:21 +02:00
Max Kellermann
402f429b17 lib/curl/Easy: add setter functions 2019-08-19 21:38:55 +02:00
Max Kellermann
4c46ca6b59 lib/curl/Global: make ReadInfo() private 2019-08-19 21:38:09 +02:00
Max Kellermann
76a0bf68c7 lib/curl/Global: remove redundant API docs 2019-08-19 21:38:03 +02:00
Max Kellermann
9f02beaba9 lib/curl: fix coding style 2019-08-19 21:37:47 +02:00
Max Kellermann
a478af6759 util/PrintException, ...: update copyright 2019-08-19 19:11:59 +02:00
Max Kellermann
4c2434788f system/FileDescriptor: add method IsRegularFile() 2019-08-19 19:11:53 +02:00
Max Kellermann
ca9daf5e19 playlist/flac: set song URI to an empty string
Simplify the plugin by using a trivial relative URI; later,
playlist_check_translate_song() will set the correct full URI.
2019-08-16 14:55:12 +02:00
Max Kellermann
e98ce710b8 util/WStringAPI: add wcsncmp() wrapper 2019-08-16 14:48:54 +02:00
Max Kellermann
79d1004544 util/StringView: add method Compare() 2019-08-16 13:32:00 +02:00
Max Kellermann
bb7f7bd3e5 util/StringAPI: add strncmp() wrapper 2019-08-16 13:31:58 +02:00
Max Kellermann
ad2b858933 util/ForeignFifoBuffer: add friend function swap() 2019-08-16 13:27:22 +02:00
Max Kellermann
d7aa4fa7d3 util/ForeignFifoBuffer: make Swap() lower case 2019-08-16 13:27:22 +02:00
Max Kellermann
57c5603122 util/ForeignFifoBuffer: import std::swap() 2019-08-16 13:27:22 +02:00
Max Kellermann
1550113506 util/DynamicFifoBuffer: add nullptr constructor overload 2019-08-16 13:21:28 +02:00
Max Kellermann
a82d61a5e4 util/DynamicFifoBuffer: add API documentation 2019-08-16 13:21:11 +02:00
Max Kellermann
0c4a7c8004 util/AllocatedString: update copyright 2019-08-16 13:20:23 +02:00
Max Kellermann
674ee9d19a util/Exception: forward the exception in ThrowException()
Fixes -Wreturn-std-move (clang 8).
2019-08-16 13:19:34 +02:00
Max Kellermann
3344953db8 util/*FifoBuffer: use using instead of typedef 2019-08-16 13:16:45 +02:00
Max Kellermann
f909615b14 include cleanups (powered by iwyu) 2019-08-15 17:57:20 +02:00
Max Kellermann
92c89f0c86 playlist/flac: allow reading from FLAC streams 2019-08-15 11:13:39 +02:00
Max Kellermann
34246eb7fd playlist/flac: read the file only once using FLAC__Metadata_Chain 2019-08-15 10:40:48 +02:00
Max Kellermann
5894514ccb playlist/flac: move code to ToSongEnumerator() 2019-08-15 10:40:37 +02:00
Max Kellermann
dcb07e6ed4 playlist/flac: use class MemorySongEnumerator 2019-08-15 09:45:03 +02:00
Max Kellermann
ccffff9870 playlist/flac: use the NarrowPath for FLAC__metadata_get_streaminfo() 2019-08-15 09:44:20 +02:00
Max Kellermann
e34672c9d8 lib/xiph/FlacMetadataIterator: add noexcept 2019-08-14 20:14:26 +02:00
Max Kellermann
a8f314190f playlist/flac: add noexcept 2019-08-14 20:08:55 +02:00
Max Kellermann
545af857ba lib/xiph/{FlacStreamMetadata,VorbisComments}: merge redundant code 2019-08-14 19:57:12 +02:00
Max Kellermann
01f86e1c25 lib/xiph/FlacStreamMetadata: pass StringView to flac_scan_comment() 2019-08-14 19:54:19 +02:00
Max Kellermann
7a89b1656c lib/xiph/FlacStreamMetadata: properly convert entries to StringView 2019-08-14 19:44:14 +02:00
Max Kellermann
07fcf091a2 tag/MixRamp: pass StringView to ParseMixRampVorbis() 2019-08-14 19:42:48 +02:00