| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
This workaround leads to an infinite loop instead of an assertion
failure, but hey, now it's libmp4ff's fault.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Initialize the audio_format before calling avcodec_open(), because
avcodec_open() will fill bogus values.
|
|
|
|
| |
Yet another common support case.
|
|
|
|
|
| |
This is a common support case, and hopefully, the new error message
will allow the user to understand the error without requiring support.
|
|
|
|
|
| |
Use stat() instead of g_file_test() to detect other types of errors,
such as "permission denied".
|
| |
|
| |
|
|
|
|
| |
Convert to padded 24 bit samples, instead of falling back to 16 bit.
|
|
|
|
|
|
| |
This fixes a buffer corruption bug; pcm_buffer is not designed to be a
persistent buffers, and will discard anything between two consecutive
calls.
|
|
|
|
|
|
| |
This fixes a buffer corruption bug; pcm_buffer is not designed to be a
persistent buffers, and will discard anything between two consecutive
calls.
|
|
|
|
|
|
| |
This fixes a buffer corruption bug; pcm_buffer is not designed to be a
persistent buffers, and will discard anything between two consecutive
calls.
|
| |
|
|
|
|
| |
For growing FIFO buffers.
|
| |
|
| |
|
| |
|
|
|
|
| |
This method is too complex for inlining.
|
|
|
|
|
| |
"stat" is a macro on mingw32, which is a pretty stupid thing, and this
commit works around this build failure.
|
| |
|
|
|
|
| |
Fixes warning on mingw32.
|
|
|
|
| |
Fixes assertion failure.
|
|
|
|
|
|
|
| |
WinAPI explicitly declares filesystem encoding.
It can be determined by GetACP().
Use that instead of Glib routine that always "detects" UTF-8 on Win32,
which is incorrect for MPD case.
|
|
|
|
|
|
| |
Ensure that WINVER is defined early enough, so other system headers
won't fall back to their default value. Specifically, this solves a
build failure (-Werror) with mingw-w64 ("WINVER redefined").
|
| |
|
|
|
|
|
| |
The event pipe is not a socket, and the patch that introduced
g_io_channel_new_socket() to the event pipe library was wrong.
|
| |
|
| |
|
|
|
|
| |
Use local variable "is_float".
|
| |
|
|
|
|
| |
.. instead of failing playback completely.
|
|
|
|
| |
Allow gcc to warn when a new format isn't supported.
|
|
|
|
|
|
|
|
|
|
| |
Defaulting to "with systemd" causes problems for users who install MPD
as an unprivileged user, and it breaks "make distcheck". It looks
like enabling it by default creates too many practical problems for
unexperienced users.
With --with-systemdsystemunitdir (without a parameter), configure.ac
attempts to auto-detect systemd.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Right now, a playlist with absolute pathnames can only add songs that
are in the same the directory of the playlist or under it.
If uri is an absolute pathname and base_uri is set,
playlist_check_translate_song() will check that base_uri is a prefix
of uri, excluding every other song in the music directory outside
base_uri.
I think in this case base_uri should be completely ignored (and made
NULL) and uri should just be checked against music root directory.
|
|
|
|
|
|
|
| |
Previously, the condition "defined(play_audio_format)" was used to see
if an output device has been opened, but if the device had failed on
startup, an assertion failure could occur. This patch adds a separate
flag.
|
|
|
|
|
| |
Common function that manages "player" attributes after
audio_output_all_open() has returned.
|
| |
|
|
|
|
|
| |
Now that the player thread can handle SEEK commands while not (yet)
playing, we can remove the "pc.state" check from pc_seek().
|
| |
|
|
|
|
|
| |
This checks both conditions: pending and running. Fixes yet another
assertion failure!
|
|
|
|
| |
.. and add a few code comments.
|
|
|
|
|
| |
Don't read song.start_ms and song.end_ms, let the player thread manage
this logic instead.
|
|
|
|
| |
Fixes one more assertion failure.
|
|
|
|
| |
Fixes possible assertion failure.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When playing a CUE track, the player thread waited for the decoder to
become ready, and then sent a SEEK command to the beginning of the CUE
track. If that is near the start of the song file, and the track is
short enough, the decoder could have finished decoding already at that
point, and seeking fails.
This commit makes this initial seek more robust: instead of letting
the player thread deal with the difficult timings, let the decoder API
emulate a SEEK command, and return it to the decoder plugin, as soon
as the plugin finishes its initialization.
|