Commit Graph

260 Commits

Author SHA1 Message Date
John Maguire 59233f5192 Disable FFT when no analyzer in use. 2010-08-20 12:14:43 +00:00
John Maguire 652f09b926 Fix memory leak from spectrum element.
Fixes issue #638
2010-08-19 10:14:56 +00:00
John Maguire 2db2354e0b Move spectrum before volume element.
Tweak new analyzer.
2010-08-18 19:12:28 +00:00
John Maguire 459a134201 Remove FHT and use gstreamer's FFT for all analyzers. 2010-08-18 18:21:30 +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 36604f7ec8 Oops, fix the preamp 2010-07-12 21:00:15 +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 8b36f12cc3 Stop the old decodebin after starting the new one to (hopefully) fix an occasional race condition/deadlock. 2010-07-12 19:10:32 +00:00
David Sansome fbd6b46e20 Only take notice of the first segment start event, to fix seeking 2010-07-12 19:09:59 +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 5307ca3db0 Return the correct type from GstBusFunc()s 2010-06-15 22:32:20 +00:00
John Maguire a8f7df9e28 Remove incorrect gst_message_unref. It should only be called from *sync* handlers that are returning GST_BUS_DROP. 2010-06-15 22:30:06 +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 40bb827fcd Make all the source files a single cmake target again. 2010-06-08 22:39:31 +00:00
David Sansome 08dddac981 Fix a small memory leak 2010-06-08 12:12:47 +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 d760721f61 Make this all a bit more sane 2010-05-31 20:59:13 +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
John Maguire a59f5a3887 *Fix m3u parsing
*Add regression test
*Fix clang warnings
2010-05-23 15:35:28 +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 9b224fd87d Fix the fader behaviour a bit 2010-05-19 13:26:23 +00:00
David Sansome 694c5e9f9e Wait 2 seconds after the fadeout finished before destroying the pipeline, to allow for delays in the sound server/driver. Fixes issue #294. 2010-05-15 17:55:36 +00:00
David Sansome 1aee5e4667 Split all the source files up into seven new directories. 2010-05-10 21:50:31 +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 5cbed1c6b3 Use uridecodebin to pick the right source for us, rather than using giosrc sometimes, and soup/neon for http. Fixes issue #290 2010-05-08 13:54: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 266ad640de Fix character decoding from gstreamer errors.
Update issue 263
Status: Fixed
Nevermind, I worked out out - should be fixed now!
2010-04-30 15:37:57 +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 a56107c598 Fix UTF8 characters in metadata received from gstreamer. Affects issue #229 2010-04-22 20:48:35 +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 4234700e24 Trim the metadata received from tags 2010-04-20 22:20:20 +00:00
David Sansome 0656330548 Test we can load various popular file formats 2010-04-20 22:00:02 +00:00
David Sansome f4e9de8e5b Free the error messages properly, since they aren't owned by gstreamer. Thanks john :) 2010-04-19 12:30:19 +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 dd86b60411 CMake variables and commandline options to allow multiple engines to be built. Thanks christoph.gysin.
Fixes issue #203
2010-04-15 12:39:34 +00:00
David Sansome 44ffc5be75 Get metadata from shoutcast streams (like somafm) 2010-04-14 23:59:11 +00:00
John Maguire 4862c41477 Tidy up http gstreamer source element. 2010-04-14 15:42:49 +00:00
David Sansome 57bd1b0227 Use different frequency values for the equalizer. Fixes issue #192 2010-04-12 20:57:21 +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 ecda1787c8 Remove the CanDecode check - it's slow, and overidden by the taglib check anyway. 2010-04-12 19:46:08 +00:00
David Sansome 00b19ae83e Fix somafm playback on linux. Might merge this with the mac ifdef if possible? 2010-04-12 17:40:08 +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
John Maguire 821baa2211 Mac deployment fixes for gstreamer. 2010-04-12 12:36:30 +00:00
David Sansome d51c7444ab Fix some confusion with auto/manual track changes 2010-04-12 01:59:21 +00:00
David Sansome a25fd395f1 Fixed the easier codereview comments from r645 2010-04-12 00:26:16 +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 656fbba37f Remove the "identity" element 2010-04-11 20:01:44 +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 b6fd4dd3ac Fix style in gstequalizer, and fix unused warnings from the elusively named irr_cf.h 2010-04-08 21:32:43 +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
David Sansome 5188e4f3d2 Enforce the right audio datatype in the gst pipeline... which makes the scope work \o/ 2010-04-07 00:18:55 +00:00
David Sansome 46818c851b Fix canDecode on tracks with funny characters. Thanks Sylvain 2010-04-06 23:00:20 +00:00
David Sansome 6b472b1e4a Clean up the gstengine formatting a bit 2010-04-06 22:58:41 +00:00
David Sansome b154f2bd4e Go on to the next track properly 2010-04-06 22:01:51 +00:00
David Sansome c7f4a091ed Let's give gstreamer another try... 2010-04-06 16:57:02 +00:00
David Sansome 57189ea911 Comments and warning fixes 2010-04-05 19:16:48 +00:00
David Sansome 2966763471 Hopefully fix audio stuttering 2010-04-05 13:38:12 +00:00
David Sansome f0a2176c78 Emit trackEnded() properly with the VLC backend 2010-04-05 13:26:11 +00:00
David Sansome c7f58b9618 Scope support for the VLC engine 2010-04-05 02:21:53 +00:00
David Sansome b77a64a2f1 Ooops, forgot this file 2010-04-04 20:45:59 +00:00
David Sansome 993a4f0e43 Experimental VLC audio engine 2010-04-04 20:45:03 +00:00
David Sansome d5eb2297d2 Move the audio engines to their own directory 2010-04-04 17:50:11 +00:00