| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
Allow port specification in "bind_to_address" settings.
|
|\| |
|
| |
| |
| |
| | |
Wrap close(), use closesocket() on WIN32/WinSock.
|
| |
| |
| |
| |
| | |
Allow enabling the plugin explicitly without running Solaris, to test
the build.
|
| |
| |
| |
| | |
Wrong variable name.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add GMutex, GCond attributes which will be used by callers to
conditionally wait on the stream.
Remove the (now-useless) plugin method buffer(), wait on GCond
instead. Lock the input_stream before each method call. Do the same
with the playlist plugins.
|
|\| |
|
| |
| |
| |
| | |
Add -DNDEBUG to AM_CPPFLAGS.
|
|\|
| |
| |
| |
| |
| | |
Conflicts:
NEWS
configure.ac
|
| |
| |
| |
| | |
Use flag AV_TIME_BASE.
|
| | |
|
| |
| |
| |
| | |
Reduce heap usage by reducing the number of malloc() / free() calls.
|
| |
| |
| |
| |
| |
| | |
D'oh, we were reading 16 bit integers instead of 32 bit integers!
That caused silence when trying to play a 32 bit input file on a 24
bit sound card (e.g. USB sound chips with 24 bit packed samples).
|
| | |
|
|\|
| |
| |
| |
| |
| | |
Conflicts:
NEWS
configure.ac
|
| | |
|
| |
| |
| |
| |
| | |
libOggFLAC has been deprecated for 5 years now, and we havn't been
testing it for a long time. Let's delete it.
|
|\|
| |
| |
| |
| |
| | |
Conflicts:
configure.ac
src/output_control.c
|
| |
| |
| |
| | |
Eliminate an unnecessary source of deadlocks.
|
| |
| |
| |
| |
| | |
The pkg-config file was added by the Debian package maintainers, and
unfortunately, the rest of the world doesn't have it.
|
| |
| |
| |
| |
| |
| | |
Don't abort the configure script when avahi could not be
auto-detected. It previously did, because there was no custom "fail"
action for PKG_CHECK_MODULES.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The output thread could hang indefinitely after finishing CANCEL,
because it could have missed the signal while the output was not
unlocked in ao_command_finished().
This patch removes the wait() call after CANCEL, and adds the flag
"allow_play" instead. While this flag is set, playback is skipped.
With this flag, there will not be any excess wait() call after the
pipe has been cleared.
This patch fixes a bug that causes mpd to discontinue playback after
seeking, due to the race condition described above.
|
| |
| |
| |
| |
| | |
Be sure to stop the operation at some point when the server isn't
responding.
|
| |
| |
| |
| |
| |
| |
| |
| | |
To demonstrate the new I/O thread. libsoup is well-integrated into
the GLib main loop, which made this plugin pretty easy to write.
As a side effect, we have to initialize the I/O thread in all debug
programs that use the input API.
|
|\| |
|
| |
| |
| |
| |
| | |
Check if the stream is suspended; wake up the main loop when it
becomes suspended.
|
| |
| |
| |
| | |
Unlock the mainloop in all code paths.
|
| | |
|
| |
| |
| |
| |
| |
| | |
This warning should only be logged when we really received something.
When the client disconnects, G_IO_IN is triggered, and the read
returns G_IO_STATUS_EOF.
|
|\|
| |
| |
| |
| |
| | |
Conflicts:
src/player_thread.c
src/playlist_control.c
|
| |
| |
| |
| |
| |
| |
| | |
In the "vorbis" plugin, this is a copy of the old flush() method,
while flush() gets a lot of code remove, it just sets the "flush" flag
and nothing else. It doesn't start a new stream now, which should fix
a few problems in some players.
|
| | |
|
| |
| |
| |
| | |
It used to ignore the decoder_data() return value.
|
| |
| |
| |
| |
| |
| |
| | |
paused
Use a shortcut in playlist_seek_song(), don't call
playlist_play_order() because that would reset the "paused" state.
|
| | |
|
|\|
| |
| |
| |
| |
| | |
Conflicts:
NEWS
configure.ac
|
| | |
|
| |
| |
| |
| |
| | |
Don't calculate the song duration when the sample rate is 0 (division
by zero crash).
|
| | |
|
| | |
|
| | |
|
|\|
| |
| |
| |
| | |
Conflicts:
src/decoder/ffmpeg_decoder_plugin.c
|
| |
| |
| |
| |
| | |
Keep those when scanning for empty directories. The check in
playlist_vector_is_empty() was missing.
|
| |
| |
| |
| |
| | |
g_path_get_dirname() returns "." when there is no directory name in
the given path. This patch adds a workaround for that.
|
| | |
|
| |
| |
| |
| |
| | |
avcodec_decode_audio3() has been added in libavformat 52.25.0, and the
predecessor avcodec_decode_audio2() has been deprecated.
|
| |
| |
| |
| | |
fixes build with lavc 53.
|
| | |
|
| | |
|