Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | decoder/ffmpeg: explicitly specify the current stream for seeking | Max Kellermann | 2011-09-15 | 1 | -2/+11 |
| | | | | | Use AVStream.time_base to convert the decoder_seek_where() value, and pass the current stream number to av_seek_frame(). | ||||
* | decoder/ffmpeg: don't require key frame for seeking | Max Kellermann | 2011-09-15 | 1 | -1/+2 |
| | | | | Use flag AV_TIME_BASE. | ||||
* | decoder/ffmpeg: higher precision timestamps | Max Kellermann | 2011-09-15 | 1 | -1/+2 |
| | |||||
* | decoder/ffmpeg: move formula to time_from_ffmpeg() | Max Kellermann | 2011-09-15 | 1 | -2/+10 |
| | |||||
* | decoder/ffmpeg: add local variable "av_stream" | Max Kellermann | 2011-09-15 | 1 | -3/+4 |
| | | | | Code simplification. | ||||
* | input/rewind: copy the MIME type only once | Max Kellermann | 2011-09-15 | 1 | -1/+3 |
| | | | | Reduce heap usage by reducing the number of malloc() / free() calls. | ||||
* | pcm_format: fix 32-to-24 bit conversion (the "silence" bug) | Max Kellermann | 2011-09-08 | 1 | -2/+2 |
| | | | | | | 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). | ||||
* | output/osx: don't drain the buffer when closing | Max Kellermann | 2011-09-01 | 1 | -6/+0 |
| | | | | Eliminate an unnecessary source of deadlocks. | ||||
* | output/osx: signal the GCond while mutex is locked | Max Kellermann | 2011-09-01 | 1 | -1/+1 |
| | |||||
* | output_all: move _lock_signal() to output_control.c | Max Kellermann | 2011-09-01 | 3 | -21/+23 |
| | | | | Better name, better documentation. | ||||
* | output_thread: reimplement CANCEL synchronization | Max Kellermann | 2011-09-01 | 6 | -14/+34 |
| | | | | | | | | | | | | | | 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. | ||||
* | output/pulse: reset callbacks before closing stream/context | Max Kellermann | 2011-08-31 | 1 | -0/+10 |
| | | | | | Fixes assertion failure when a stream callback is invoked too late after a format change. | ||||
* | output/pulse: add function _delete_stream() | Max Kellermann | 2011-08-31 | 1 | -5/+16 |
| | | | | Merge common code. | ||||
* | output/pulse: use _delete_context() | Max Kellermann | 2011-08-31 | 1 | -16/+15 |
| | | | | Eliminate duplicate code. | ||||
* | input/curl: implement a hard-coded timeout of 10 seconds | Max Kellermann | 2011-08-26 | 1 | -0/+3 |
| | | | | | Be sure to stop the operation at some point when the server isn't responding. | ||||
* | output/pulse: fix deadlock when the stream was suspended | Max Kellermann | 2011-08-23 | 1 | -0/+31 |
| | | | | | Check if the stream is suspended; wake up the main loop when it becomes suspended. | ||||
* | output/pulse: add assertions | Max Kellermann | 2011-08-23 | 1 | -0/+30 |
| | |||||
* | output/pulse: return 0 on error | Max Kellermann | 2011-08-23 | 1 | -1/+1 |
| | | | | Not a bool. | ||||
* | pulse/output: fix deadlock when resuming the stream | Max Kellermann | 2011-08-23 | 1 | -1/+3 |
| | | | | Unlock the mainloop in all code paths. | ||||
* | input/curl: limit the receive buffer size | Max Kellermann | 2011-08-23 | 1 | -0/+30 |
| | |||||
* | output/httpd: add assertions | Max Kellermann | 2011-08-23 | 1 | -1/+17 |
| | |||||
* | output/httpd: don't warn on client disconnect | Max Kellermann | 2011-08-23 | 1 | -1/+8 |
| | | | | | | 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. | ||||
* | decoder/mpcdec: fix gcc warning | Max Kellermann | 2011-08-23 | 1 | -2/+2 |
| | | | | Move the variable "vbr_update_acc" into the #ifdef block. | ||||
* | encoder_plugin: add method pre_tag() | Max Kellermann | 2011-07-20 | 4 | -2/+37 |
| | | | | | | | 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. | ||||
* | output/httpd: explicitly convert size_t to bool in pause() | Max Kellermann | 2011-07-20 | 1 | -1/+2 |
| | |||||
* | pipe: lock the mutex in music_pipe_size() | Max Kellermann | 2011-07-20 | 1 | -1/+4 |
| | |||||
* | pipe: make read-only functions "pure" | Max Kellermann | 2011-07-20 | 1 | -0/+5 |
| | | | | Enable gcc optimizations. | ||||
* | output_thread: unlock the mutex while calling cancel() | Max Kellermann | 2011-07-20 | 1 | -1/+6 |
| | | | | The method may take longer, and we shouldn't be holding the lock. | ||||
* | player_thread: lock the player while setting the bite_rate | Max Kellermann | 2011-07-20 | 1 | -0/+2 |
| | |||||
* | update_walk: apply follow_inside_symlinks to absolute symlinks | Max Kellermann | 2011-07-20 | 1 | -2/+8 |
| | |||||
* | wavpack: obey all decoder commands, stop at CUE track border | Max Kellermann | 2011-07-20 | 1 | -9/+6 |
| | | | | It used to ignore the decoder_data() return value. | ||||
* | decoder/wavpack: use the correct integer types | Max Kellermann | 2011-07-20 | 1 | -10/+5 |
| | | | | | libwavpack provides int32_t samples, and wants uin32_t for sample counts. | ||||
* | decoder/wavpack: simplify the WavpackUnpackSamples()==0 check | Max Kellermann | 2011-07-20 | 1 | -17/+14 |
| | | | | .. and remove one indent level. | ||||
* | playlist_control: don't resume playback when seeking to another song while ↵ | Max Kellermann | 2011-07-20 | 1 | -3/+5 |
| | | | | | | | paused Use a shortcut in playlist_seek_song(), don't call playlist_play_order() because that would reset the "paused" state. | ||||
* | output/alsa: fix SIGFPE when alsa announces a period size of 0 | Max Kellermann | 2011-07-20 | 1 | -0/+8 |
| | |||||
* | decoder/ffmpeg: use avformat_open_input() if available | Max Kellermann | 2011-07-18 | 1 | -4/+35 |
| | | | | av_open_input_stream() has been deprecated. | ||||
* | decoder: use AVDictionary instead of AVMetadata | Max Kellermann | 2011-07-18 | 1 | -1/+14 |
| | | | | AVMetadata has been deprecated. | ||||
* | database: require X_OK on parent directory, not R_OK | Max Kellermann | 2011-07-18 | 1 | -1/+1 |
| | | | | | For accessing the child of a directory, one needs X_OK on the directory. | ||||
* | output/shout: fix a memory leak | Jonathan Neuschäfer | 2011-07-18 | 1 | -12/+16 |
| | |||||
* | output/recorder: fix a memory leak | Jonathan Neuschäfer | 2011-07-18 | 1 | -3/+7 |
| | |||||
* | output/httpd: add missing g_free in error path | Jonathan Neuschäfer | 2011-07-18 | 1 | -0/+1 |
| | |||||
* | output/ao: add missing g_free in error path | Jonathan Neuschäfer | 2011-07-18 | 1 | -0/+3 |
| | |||||
* | conf: add missing fclose in error path | Jonathan Neuschäfer | 2011-07-18 | 1 | -1/+10 |
| | | | | This patch seems a bit ugly, maybe it would be a bit cleaner with gotos. | ||||
* | sticker: fix a memory leak | Jonathan Neuschäfer | 2011-07-18 | 1 | -1/+3 |
| | |||||
* | ape: add missing g_free in error path | Jonathan Neuschäfer | 2011-07-18 | 1 | -1/+3 |
| | |||||
* | decoder/flac: validate the sample rate when scanning the tag | Max Kellermann | 2011-07-03 | 2 | -1/+5 |
| | | | | | Don't calculate the song duration when the sample rate is 0 (division by zero crash). | ||||
* | ffmpeg: workaround for semantic API change in recent ffmpeg versions | oblique | 2011-07-03 | 1 | -2/+2 |
| | |||||
* | directory: allow directories with just playlists | Max Kellermann | 2011-05-09 | 2 | -1/+8 |
| | | | | | Keep those when scanning for empty directories. The check in playlist_vector_is_empty() was missing. | ||||
* | playlist_song: fix playlist files in base music directory | Max Kellermann | 2011-05-09 | 1 | -0/+7 |
| | | | | | g_path_get_dirname() returns "." when there is no directory name in the given path. This patch adds a workaround for that. | ||||
* | playlist_song: fix NULL pointer dereference | Max Kellermann | 2011-05-09 | 1 | -1/+1 |
| |