Commit Graph

11944 Commits

Author SHA1 Message Date
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 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
Max Kellermann 077e95da85 system/FileDescriptor: add method Tell() 2015-03-24 21:59:34 +01:00
Max Kellermann 7f6e1fbc8d fs/io/FileOutputStream: add class AppendFileOutputStream 2015-03-23 22:51:33 +01:00
Max Kellermann 06827cfcf1 fs/io/FileOutputStream: move code to new class BaseFileOutputStream 2015-03-23 22:36:03 +01:00
Max Kellermann 6dc3097998 fs/io/FileOutputStream: make "path" const 2015-03-23 22:35:56 +01:00
Max Kellermann cd35271698 fs/io/BufferedOutputStream: add code comments 2015-03-23 22:03:25 +01:00
Max Kellermann 7b575f61d0 Main: notify systemd when MPD is ready 2015-03-21 14:27:54 +01:00
Max Kellermann b31d171ae8 *: doxygen fixups 2015-03-17 11:21:43 +01:00
Max Kellermann 65ff72cdf8 fs/Traits: enable _UNICODE on Windows
Use wchar_t for everything on Windows.  Solves a lot of filesystem
charset problems.
2015-03-05 10:15:10 +01:00
Max Kellermann 1da0956331 output/recorder: convert path to UTF-8 for logging 2015-03-05 10:15:10 +01:00
Max Kellermann 983078992d fs/NarrowPath: new utility class 2015-03-05 10:07:07 +01:00
Max Kellermann 81059f80d8 output/winmm: convert device name to filesystem charset 2015-03-05 10:07:07 +01:00
Max Kellermann a261442279 output/winmm: eliminate "goto" 2015-03-05 10:07:07 +01:00
Max Kellermann 2f41eba100 fs/Path: reimplement GetSuffix() using GetBase() and StringFindLast() 2015-03-05 10:07:07 +01:00
Max Kellermann 91a6fb81c1 PlaylistStream: convert suffix to UTF-8 2015-03-05 10:07:07 +01:00
Max Kellermann c95f0820bc TagFile: convert suffix to UTF-8 2015-03-05 10:07:07 +01:00
Max Kellermann 830a1bd130 fs/File{System,Info}: fix regular file check
Don't use FILE_ATTRIBUTE_NORMAL, it's a "magic" value for something
else.  To check if a file is a regular file, we need to check if it's
NOT a directory (or a device).
2015-03-05 10:07:07 +01:00
Max Kellermann 5c5ea8a254 fs/Path: use the "const_pointer" typedef 2015-03-05 10:07:07 +01:00
Max Kellermann 5222c684d3 event/ServerSocket: #ifdef out local socket support on Windows 2015-03-05 10:07:07 +01:00
Max Kellermann 5798faa13b util/StringUtil: add wchar_t overloads 2015-03-05 10:06:56 +01:00
Max Kellermann a062693875 util/StringAPI: add wchar_t overloads 2015-03-05 08:58:04 +01:00
Max Kellermann 6887d5d347 fs/Traits: use TCHAR on Windows 2015-03-05 08:58:04 +01:00
Max Kellermann 39c9669445 fs/Traits: add macro PATH_LITERAL() 2015-03-05 08:58:04 +01:00
Max Kellermann 44565e22a0 fs/Traits: use string.h API wrappers 2015-03-05 08:58:04 +01:00
Max Kellermann ddec10d494 input/Open: convert UTF-8 to filesystem charset for OpenLocalInputStream() 2015-03-05 08:51:01 +01:00