Commit Graph

155 Commits

Author SHA1 Message Date
David Sansome 23c744f41a Add a queue element to the pipeline to buffer even local sources, and increase the default buffer size to 4 seconds. 2011-04-16 14:04:12 +00:00
David Sansome 7d6eee590a Don't force the track to stop at the end of a section unless it's part of a cue sheet. Fixes issue 1610. Fixes issue 1636. 2011-03-28 22:11:07 +00:00
David Sansome 008d396077 Use a monotonically increasing ID to identify pipelines, instead of their pointer value. 2011-03-20 21:40:53 +00:00
David Sansome b3db5d699e Remove CanDecode from GstEngine - it was only used by a test, and the test was disabled on buildbot because it was unreliable. 2011-03-20 19:36:50 +00:00
David Sansome 116bfc4594 Remove a comment and a TODO 2011-03-20 19:36:44 +00:00
David Sansome e761f2bdc8 Fix a bug where the engine would skip a song that didn't exist, but then not play the next song. 2011-03-20 19:18:54 +00:00
Paweł Bara 8ed6eca57e fixing skipping songs for library songs
another "silent" GST error type
David's POT
2011-03-13 22:57:49 +00:00
David Sansome cb275f318f Add an option to disable automatic crossfading between tracks on the same album or from the same cuesheet. Fixes issue 1479 2011-03-13 18:37:46 +00:00
Paweł Bara e25e9efffc Clementine now skips broken streams (radios for example). At least I hope it always does. ;) Fixes issue #1562. 2011-03-12 13:24:30 +00:00
Paweł Bara 8722e00103 Clementine now skips songs that don't exist anymore (updates issue #250) 2011-03-10 18:01:35 +00:00
David Sansome 2cb8b8dba7 Stop cue sections at exactly the right place, and move seamlessly between consecutive sections of the same file. Fixes issue #1233. Fixes issue #1419. 2011-03-06 16:35:47 +00:00
David Sansome cce41f1372 Fix the scope when playing cue files. Fixes issue #1291 2011-03-06 14:18:53 +00:00
Arnaud Bienner 375abfd04e Don't exit application to fast, to allow fadeout 2011-02-16 22:43:05 +00:00
Paweł Bara 383138737c the easy way is worse - reverting my last GstEngine's changes 2011-02-16 17:07:06 +00:00
Paweł Bara 2b0dcebaec let's try simpler EndOfStreamReached version now that we have nanoseconds 2011-02-15 22:37:33 +00:00
David Sansome 8c691d2b3e Use constants instead of "1eN" literals for converting between time units. 2011-02-14 19:34:37 +00:00
David Sansome 37618dae96 Use nanoseconds instead of seconds or milliseconds throughout the Player and Engine. 2011-02-13 18:29:27 +00:00
David Sansome ee06d779f2 Fix a bug that would occasionally cause an extra track to be skipped when a track ended. Fixes issue #1233 2011-01-20 21:29:48 +00:00
Paweł Bara 34d496aadc cleaner forced end-of-track when media stream is past it's 'end' marker 2011-01-03 18:03:15 +00:00
Paweł Bara bbe97b00a2 make engine 'multiple-section songs' aware -> you should now be able to play your .cue related music 2011-01-02 18:53:45 +00:00
David Sansome d531d01f60 Fix Windows \\ paths when preloading files as well as when playing them initially. 2010-12-20 19:00:48 +00:00
John Maguire 4c66007e26 Code review comments from r2370. 2010-12-09 13:06:00 +00:00
John Maguire 3a19bb9d46 Fix config file location on Mac and automatically migrate. 2010-12-09 12:34:08 +00:00
John Maguire c625acfd87 Refactor background streams.
Add volume control for background streams and infrastructure for custom streams.
2010-12-03 13:53:43 +00:00
John Maguire a916db4c13 Add buffer duration to initialisation list. 2010-10-11 16:46:06 +00:00
John Maguire 65c7e6007c Maybe working gstreamer buffer setting. 2010-10-11 15:58:05 +00:00
David Sansome 61ea0cb24b Don't block the GUI while a background stream is starting 2010-10-02 12:51:09 +00:00
David Sansome 0c95f7c234 Safeguard against a null pipeline in GstEngine::Play. 2010-09-26 20:59:41 +00:00
David Sansome dedb9621e8 Fix the songloader test by making it wait for the gstreamer engine to finish initialisation 2010-08-28 19:22:58 +00:00
John Maguire c801ce1a2d Rollback analyzer changes. 2010-08-28 18:48:16 +00:00
David Sansome cf6399df28 Initialise the GStreamer options in the settings dialog correctly, and ensure the GST engine can never try to create an empty sink. Fixes issue #661. 2010-08-27 16:41:35 +00:00
David Sansome 75b70b4acb Initialise gstreamer in the background instead of blocking the UI 2010-08-27 13:57:39 +00:00
John Maguire 59233f5192 Disable FFT when no analyzer in use. 2010-08-20 12:14:43 +00:00
John Maguire 03274b0831 Add new analyzer API and example using gstreamer spectrum element. 2010-08-18 16:09:45 +00:00
David Sansome 0b85797e45 Fix a crash when the gst state change takes ages 2010-08-04 20:32:53 +00:00
David Sansome 6f63dcc37f Remove some debug output 2010-08-04 18:31:18 +00:00
John Maguire 35e87b2a77 Start gstreamer playing from a separate thread. 2010-08-04 12:13:43 +00:00
David Sansome aad6093b63 Give each gstreamer element a unique name 2010-08-02 18:13:40 +00:00
David Sansome 2a7c6de273 Register gstafcsrc properly, and use it when playing songs from an afcdevice 2010-08-01 18:09:38 +00:00
John Maguire 31a726789a Code review comments for r1476. 2010-07-14 11:43:23 +00:00
John Maguire 41ab99e62e Generate Hypnotoad rather than streaming it. 2010-07-14 11:16:56 +00:00
David Sansome 553184c7db Remove amarok's equalizer and use gstreamer's one instead for vastly reduced CPU usage. Fixes issue #494 2010-07-12 20:55:09 +00:00
David Sansome b62263540f Use the segment start time when calculating the timestamp of data buffers in the scope. Fixes a memory leak and makes the scope work again when playing ogg streams. Fixes issue #495. 2010-07-11 13:31:03 +00:00
David Sansome d3e3d04fe1 Prune the gstreamer scope at a much lower interval 2010-07-02 19:23:08 +00:00
David Sansome b35392d60d Don't query the track position and length quite so often. Might reduce CPU usage for issue #246 2010-06-30 20:36:16 +00:00
David Sansome 2b17a8ee1f Revert r1344 (the timer tracing), it didn't help 2010-06-25 22:04:24 +00:00
David Sansome a0f9c81891 Don't prune the scope while playback is paused 2010-06-25 08:48:19 +00:00
David Sansome cc6413ab0e Add tracing to every timer event, might help track down CPU usage... 2010-06-25 08:46:03 +00:00
David Sansome 9106abb1a0 Handle redirect messages from mmssrc properly. Fixes issue #385. 2010-06-23 11:47:54 +00:00
David Sansome 4a741e51a8 Lower the default rain volume.
Update issue #418
Status: Fixed
I can't think of a good place to put the GUI for this, so instead I've lowered the default rain volume so you can adjust the volume of whatever else you're listening to to match.
2010-06-18 13:24:56 +00:00
John Maguire 92e95ecf80 Support for background streams. 2010-06-14 19:15:10 +00:00
David Sansome 0a19a275a2 On Windows and Mac use a different gstreamer registry file 2010-06-11 12:22:21 +00:00
David Sansome 1895582eb9 Basic support for ProjectM visualisations 2010-06-06 14:06:23 +00:00
David Sansome fe39d99923 Support playing \\host\share\file style URLs on Windows 2010-06-03 18:39:42 +00:00
David Sansome 3365c7c217 Fix a few memory leaks 2010-05-28 19:51:51 +00:00
David Sansome 9a06fa0bfc Don't start a new timer for *every* track we play. 2010-05-28 17:14:00 +00:00
David Sansome 4c13e78893 Fix a mingw warning 2010-05-27 20:30:15 +00:00
David Sansome 3927d91cf1 We use decodebin2 on windows now 2010-05-25 22:25:04 +00:00
David Sansome 9292bd3cb5 toFloat() was Qt 4.6 2010-05-25 21:33:16 +00:00
David Sansome eb78ace541 Replay Gain support 2010-05-23 13:07:15 +00:00
David Sansome d054e06444 Don't do the preloaded check on manual track changes.
Update issue #332
Status: fixed
Thanks for the patch!  Calling Stop() in there meant that the OSD got shown
briefly with a "Stopped" message though, so I've changed GstEngine::Load
instead - the problem was with the code that checked whether the pipeline had
already started to load that URL as a result of GstEngine::StartPreloading.
It'll now only do that on an automatic track change.
2010-05-22 17:19:27 +00:00
David Sansome 980d61a583 If we're not crossfading, keep the same pipeline when changing tracks and just swap out the gstreamer source - this should allow for completely gapless playback. 2010-05-08 17:39:12 +00:00
David Sansome 19b08540ef Force the directsound sink on windows 2010-05-04 15:51:23 +00:00
John Maguire 7b420b6845 Some defensive programming for r819. 2010-05-03 14:55:00 +00:00
John Maguire 3adc74dfab Disable gstengine's timer when it's stopped. 2010-05-03 14:15:42 +00:00
David Sansome 6f7dbf3286 Make local file playback work on Windows again 2010-05-01 14:01:01 +00:00
David Sansome 9d72d85f09 Don't crash when asked to load a file that doesn't exist on Windows 2010-04-27 17:53:52 +00:00
David Sansome 906f3526cf Fix a crash bug when you seek all the way to the end of the last track 2010-04-22 17:02:06 +00:00
David Sansome 99743d49aa Nasty hack to hopefully prevent "seek failed" errors - just don't allow two seeks to happen within 100ms of each other. 2010-04-22 16:54:09 +00:00
David Sansome 82602f8d96 Fix setenv/putenv madness on mac 2010-04-22 13:49:16 +00:00
David Sansome 7263983e0c More debug output in CanDecode, and set the gst path in GstEngine rather than main() 2010-04-21 17:11:50 +00:00
David Sansome 3cc0ed361a Ignore useless metadata from gstreamer, and metadata that comes while the next track is preloading 2010-04-21 14:04:40 +00:00
David Sansome 910553b175 Gapless playback! 2010-04-21 13:55:30 +00:00
David Sansome 4eedddd57c Make the gst engine emit Error() instead of showing its own dialog when a plugin couldn't be found. 2010-04-21 11:14:12 +00:00
David Sansome 0656330548 Test we can load various popular file formats 2010-04-20 22:00:02 +00:00
David Sansome 4bc704d7e3 Actually show error messages that come from gstreamer. Fixes issue #230 2010-04-19 12:04:35 +00:00
David Sansome c08179aa94 Fix a race condition caused by global state in the equalizer. 2010-04-12 20:33:59 +00:00
David Sansome 07a851c951 Oops, we'd better unref these buffers to stop memory leaks 2010-04-12 16:41:44 +00:00
David Sansome e4c3c600b9 Fix a problem where the scope would apperar to freeze for a few seconds when changing tracks. 2010-04-12 16:39:48 +00:00
David Sansome d51c7444ab Fix some confusion with auto/manual track changes 2010-04-12 01:59:21 +00:00
David Sansome aaee1ded22 Fix a crash at the end of the last song on a playlist 2010-04-12 00:21:41 +00:00
David Sansome 1b0b8979df Codereview comments from r637 2010-04-12 00:20:52 +00:00
David Sansome 031752823c Add support for crossfading when changing tracks automatically 2010-04-11 23:52:16 +00:00
David Sansome 152470e5b3 Codereview comments from r644 2010-04-11 23:26:06 +00:00
David Sansome c4aa779728 Clean style of Engine::Base 2010-04-11 23:24:03 +00:00
David Sansome 23880b3cb5 Crossfading in gstreamer backend 2010-04-11 23:03:39 +00:00
David Sansome b19fdbf272 Fadeout in gstreamer engine 2010-04-11 21:40:26 +00:00
David Sansome 14d0b00f46 Factor out the gstreamer pipeline bits into another class. 2010-04-11 19:47:21 +00:00
David Sansome 85032240d9 Set a plugin path on Windows, and don't do a pointless registry check any more 2010-04-11 14:26:30 +00:00
David Sansome d8bc4c1172 Use the extra gst audio conversion on all platforms 2010-04-11 13:28:26 +00:00
John Maguire 95abb71dc0 Equalizer and sound working on mac with a hack. 2010-04-09 14:29:12 +00:00
John Maguire b11c3b28f7 Fix scope on mac 2010-04-09 13:01:20 +00:00
John Maguire 19fe2cff54 Disable equalizer on Mac to at least get playback working. 2010-04-09 12:29:21 +00:00
David Sansome 539f0a517b Rename this function so as to not confuse john. 2010-04-08 20:17:57 +00:00
David Sansome 1dbcfb9aa7 Add an option to change the output device on supported gst sinks. Fixes issue #184 2010-04-08 20:14:11 +00:00
David Sansome 6122051b7d Set a sync handler on the gstreamer bus to catch some other EOS events. Fixes issue #178 2010-04-07 20:01:44 +00:00
David Sansome c6fe113e79 GStreamer equalizer. Mostly working, just missing presets. Updates issue #166 2010-04-07 16:26:04 +00:00
David Sansome 256648f5e3 Add a UI for choosing which gstreamer audio sink to use 2010-04-07 13:51:14 +00:00
David Sansome f8240e8b7c Make GstEngine::canDecode much faster by creating the pipeline only once 2010-04-07 12:56:05 +00:00
David Sansome b3d62edbef Fix automatic track change ... again 2010-04-07 00:20:30 +00:00