aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* decoder/ffmpeg: flush the codec after seekingMax Kellermann2011-09-151-1/+3
| | | | | Let the codec start with fresh buffers. This should fix the remaining seeking issues.
* decoder/ffmpeg: explicitly specify the current stream for seekingMax Kellermann2011-09-151-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 seekingMax Kellermann2011-09-151-1/+2
| | | | Use flag AV_TIME_BASE.
* decoder/ffmpeg: higher precision timestampsMax Kellermann2011-09-151-1/+2
|
* decoder/ffmpeg: move formula to time_from_ffmpeg()Max Kellermann2011-09-151-2/+10
|
* decoder/ffmpeg: add local variable "av_stream"Max Kellermann2011-09-151-3/+4
| | | | Code simplification.
* input/rewind: copy the MIME type only onceMax Kellermann2011-09-151-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 Kellermann2011-09-081-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 closingMax Kellermann2011-09-011-6/+0
| | | | Eliminate an unnecessary source of deadlocks.
* output/osx: signal the GCond while mutex is lockedMax Kellermann2011-09-011-1/+1
|
* output_all: move _lock_signal() to output_control.cMax Kellermann2011-09-013-21/+23
| | | | Better name, better documentation.
* output_thread: reimplement CANCEL synchronizationMax Kellermann2011-09-016-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/contextMax Kellermann2011-08-311-0/+10
| | | | | Fixes assertion failure when a stream callback is invoked too late after a format change.
* output/pulse: add function _delete_stream()Max Kellermann2011-08-311-5/+16
| | | | Merge common code.
* output/pulse: use _delete_context()Max Kellermann2011-08-311-16/+15
| | | | Eliminate duplicate code.
* input/curl: implement a hard-coded timeout of 10 secondsMax Kellermann2011-08-261-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 suspendedMax Kellermann2011-08-231-0/+31
| | | | | Check if the stream is suspended; wake up the main loop when it becomes suspended.
* output/pulse: add assertionsMax Kellermann2011-08-231-0/+30
|
* output/pulse: return 0 on errorMax Kellermann2011-08-231-1/+1
| | | | Not a bool.
* pulse/output: fix deadlock when resuming the streamMax Kellermann2011-08-231-1/+3
| | | | Unlock the mainloop in all code paths.
* input/curl: limit the receive buffer sizeMax Kellermann2011-08-231-0/+30
|
* output/httpd: add assertionsMax Kellermann2011-08-231-1/+17
|
* output/httpd: don't warn on client disconnectMax Kellermann2011-08-231-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 warningMax Kellermann2011-08-231-2/+2
| | | | Move the variable "vbr_update_acc" into the #ifdef block.
* encoder_plugin: add method pre_tag()Max Kellermann2011-07-204-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 Kellermann2011-07-201-1/+2
|
* pipe: lock the mutex in music_pipe_size()Max Kellermann2011-07-201-1/+4
|
* pipe: make read-only functions "pure"Max Kellermann2011-07-201-0/+5
| | | | Enable gcc optimizations.
* output_thread: unlock the mutex while calling cancel()Max Kellermann2011-07-201-1/+6
| | | | The method may take longer, and we shouldn't be holding the lock.
* player_thread: lock the player while setting the bite_rateMax Kellermann2011-07-201-0/+2
|
* update_walk: apply follow_inside_symlinks to absolute symlinksMax Kellermann2011-07-201-2/+8
|
* wavpack: obey all decoder commands, stop at CUE track borderMax Kellermann2011-07-201-9/+6
| | | | It used to ignore the decoder_data() return value.
* decoder/wavpack: use the correct integer typesMax Kellermann2011-07-201-10/+5
| | | | | libwavpack provides int32_t samples, and wants uin32_t for sample counts.
* decoder/wavpack: simplify the WavpackUnpackSamples()==0 checkMax Kellermann2011-07-201-17/+14
| | | | .. and remove one indent level.
* playlist_control: don't resume playback when seeking to another song while ↵Max Kellermann2011-07-201-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 0Max Kellermann2011-07-201-0/+8
|
* decoder/ffmpeg: use avformat_open_input() if availableMax Kellermann2011-07-181-4/+35
| | | | av_open_input_stream() has been deprecated.
* decoder: use AVDictionary instead of AVMetadataMax Kellermann2011-07-181-1/+14
| | | | AVMetadata has been deprecated.
* database: require X_OK on parent directory, not R_OKMax Kellermann2011-07-181-1/+1
| | | | | For accessing the child of a directory, one needs X_OK on the directory.
* output/shout: fix a memory leakJonathan Neuschäfer2011-07-181-12/+16
|
* output/recorder: fix a memory leakJonathan Neuschäfer2011-07-181-3/+7
|
* output/httpd: add missing g_free in error pathJonathan Neuschäfer2011-07-181-0/+1
|
* output/ao: add missing g_free in error pathJonathan Neuschäfer2011-07-181-0/+3
|
* conf: add missing fclose in error pathJonathan Neuschäfer2011-07-181-1/+10
| | | | This patch seems a bit ugly, maybe it would be a bit cleaner with gotos.
* sticker: fix a memory leakJonathan Neuschäfer2011-07-181-1/+3
|
* ape: add missing g_free in error pathJonathan Neuschäfer2011-07-181-1/+3
|
* decoder/flac: validate the sample rate when scanning the tagMax Kellermann2011-07-032-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 versionsoblique2011-07-031-2/+2
|
* directory: allow directories with just playlistsMax Kellermann2011-05-092-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 directoryMax Kellermann2011-05-091-0/+7
| | | | | g_path_get_dirname() returns "." when there is no directory name in the given path. This patch adds a workaround for that.