Commit Graph

264 Commits

Author SHA1 Message Date
John Maguire ece262f7f4 Revert "Add track intro mode" 2015-06-15 15:49:08 -04:00
Mark Furneaux b57cebbf2d Add track intro mode
This repeat mode plays the beginning of each track, good for quickly getting a feel for a new album for example.
2015-06-14 13:32:58 -04:00
John Maguire 3f536d2571 Parse artist out of Akamai tags.
Fixes #4874
2015-05-29 12:00:29 +01:00
John Maguire e7e3ab1a68 Parse embedded tags from Akamai streams.
Fixes #4804
2015-05-26 17:40:35 +01:00
Andreas 4c9f7e6a5e Revert "Fix mono playback. This was broken with commit eaad4c32eeeb83302632aba887d51d2eccb55eed."
Spotify doesn't work with this fix anymore, gstreamer throws `gst_segment_to_stream_time: assertion 'segment->format == format' failed`. Using `audio/*` for caps doesn't work either, the channes property is ignored. An `if (url_.scheme == "spotify")` would work, but maybe there is a more elegant solution.

This reverts commit 8799222d64.
2015-05-02 17:12:55 +02:00
Andreas 8799222d64 Fix mono playback. This was broken with commit eaad4c32ee. 2015-05-02 16:14:44 +02:00
John Maguire e1ea116bfb Remove Grooveshark support.
Well that was nice while it lasted.
2015-05-01 11:57:59 +01:00
John Maguire 8d2e3373a8 Use a GTlsDatabase for gstreamer SSL on mac. 2015-04-27 11:21:22 +01:00
Andreas ec35688c86 Fix crash when stopping a track while a fadeout to pause is occuring. Fixes #4800. 2015-04-11 11:30:28 +02:00
John Maguire 8d3fd00956 Amazon Cloud Drive support.
Squashed commit of the following:

commit 451a327fabb5f9aba077d93a33d75d8a6a288f5f
Author: John Maguire <john.maguire@gmail.com>
Date:   Fri Mar 27 14:55:36 2015 +0100

    Revert debug console changes.

commit 52f643c3dc524a837f56268b6da4881187204165
Author: John Maguire <john.maguire@gmail.com>
Date:   Fri Mar 27 14:49:28 2015 +0100

    Revert extra logging

commit 23645f9fea
Author: John Maguire <john.maguire@gmail.com>
Date:   Fri Mar 27 14:47:55 2015 +0100

    How did you get there

commit 8153388f19
Author: John Maguire <john.maguire@gmail.com>
Date:   Fri Mar 27 14:45:12 2015 +0100

    Update copyright headers.

commit fa9e279259
Author: John Maguire <john.maguire@gmail.com>
Date:   Fri Mar 27 14:43:27 2015 +0100

    Remove logging

commit 47a405543c
Author: John Maguire <john.maguire@gmail.com>
Date:   Fri Mar 27 14:42:05 2015 +0100

    Show login state correctly for Amazon.

commit 748d88d993
Author: John Maguire <john.maguire@gmail.com>
Date:   Fri Mar 27 14:28:55 2015 +0100

    Ensure Amazon is connected before serving URLs.

commit 25ec9c65f4
Author: John Maguire <john.maguire@gmail.com>
Date:   Fri Mar 27 14:22:28 2015 +0100

    Refresh Amazon authorisation & follow changes.

commit 27c1a37173
Author: John Maguire <john.maguire@gmail.com>
Date:   Thu Mar 26 18:27:27 2015 +0100

    Revert unneeded OAuthenticator change.

commit 3594af5be1
Author: John Maguire <john.maguire@gmail.com>
Date:   Thu Mar 26 16:52:19 2015 +0100

    Initial support for Amazon Cloud Drive.
2015-03-27 14:56:08 +01:00
Arnaud Bienner f3426c05c7 Don't call gst_deinit when exiting Clementine.
It sometimes cause a deadlock since we migrated to GStreamer 1.0.
And it seems we shouldn't need to call it as we are "a normal application":
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-Gst.html#gst-deinit
2015-03-25 22:23:13 +01:00
John Maguire 33117a1b44 Fix name of pulse audio gstreamer sink. 2015-02-03 13:32:41 +01:00
Krzysztof Sobiecki fa9ea6ec5f Fix compilation with moved files in internet/ 2014-12-18 23:35:21 +01:00
John Maguire 4f4c8f6894 Merge pull request #4580 from Chocobozzz/hide_internet_services
Hide internet services
2014-10-31 12:02:29 +01:00
David Sansome 5ec9dcdcb7 Merge pull request #4559 from TheUbuntuGuy/master
Fix missing buffers sent to analyzer
2014-10-27 22:17:14 +11:00
Chocobozzz 50b7b7d889 Make format after update to avoid conflicts 2014-10-15 21:57:57 +02:00
David Sansome 88a6300509 Completely revert the Spotify seeking stuff - it's hacky and I don't like
waiting 4 seconds to have my songs start.  I'll reimplement it properly later.

Reverts commits 96387803cd and 160b151652.
2014-10-14 19:33:03 +11:00
David Sansome c428e536ab When replacing a decodebin, offset the timestamps on the new element's buffers
so they match up with the buffers produced by the old element.  Fixes #4542.
2014-10-14 19:22:43 +11:00
Andreas d32c3236ef Fix little dropout when transition to next track. Updates #4542.
SourceDrainedCallback() has a valid next url and calls TransitionToNext(). This sets a new decode bin for the pipeline. The pipeline then buffers the new track and sends GST_MESSAGE_BUFFERING. BufferingMessageReceived() then pauses the pipeline because it's buffering. But we are buffering the next track and not the current one, so the pipeline has still data and doesn't need to be paused.
2014-10-05 11:57:57 +02:00
Mark Furneaux 3be48f8f44 unref buffers going to analyser at the right time
This unrefs the buffer after the last chunk is pulled from it.
2014-10-04 10:39:33 -04:00
David Sansome eec246718a Fix track transitions with gstreamer-1.0. The segment-start event is now a stream-start bus message. Fixes #4542 2014-10-04 21:21:21 +10:00
Mark Furneaux e8c2b4b267 Fix missing buffers sent to analyzer
This is a regression in the upgrade to gstreamer1.0.
The gst_buffer_unref() is incorrect as it removes the buffer when it is still needed by the chunker.
Forcing the pointer to be null prevents it from segfaulting but causes it to skip all chunks in the buffer, dropping the framerate and causing a worse case of #4321.
Removing these 2 lines restores original functionality.
2014-10-03 20:53:07 -04:00
John Maguire b4784e82fd Make Soup check SSL against our shipped root certs. 2014-10-01 15:06:22 +02:00
Arnaud Bienner 96387803cd Disable this Spotify hack for now, as it is useless anyway.
Somewhat related to issue #4545, but when plugin was installed by user wasn't logged in.
2014-09-30 21:35:27 +02:00
Andreas 4bb3147006 Fix Spotify Blob installation promt. Fixes #4538. 2014-09-22 21:20:48 +02:00
David Sansome eaad4c32ee Merge branch 'gstreamer-1.2'
Fixes #3332
2014-09-22 22:45:28 +10:00
David Sansome bb08a0f416 Fix misleading offset_bytes names 2014-09-22 00:13:00 +10:00
David Sansome 3f0dc01b06 Make Spotify work with gstreamer-1.0. 2014-09-21 22:39:30 +10:00
David Sansome a2408f7c0e Merge branch 'master' into gstreamer-1.2
Conflicts:
	src/moodbar/moodbarloader.cpp
2014-09-21 19:39:27 +10:00
David Sansome 6b32ecec27 Various bits for gstreamer-1.0 compatability 2014-09-21 19:38:13 +10:00
David Sansome 50551d987a Rewrite moodbar stuff for gstreamer-1.0:
- Rewrite gstspectrum (1.0) to use FFTW (2x faster) and emit raw magnitude
  values (not log scaled).
- Rewrite the moodbar generation code to be somewhat understandable, and
  do it in Clementine instead of gstreamer.
2014-09-21 19:38:13 +10:00
Arnaud Bienner bfaf127ed7 Remove few Ubuntu One things remaining 2014-09-14 21:43:13 +02:00
Arnaud Bienner 3e17a0adb5 Remove dead code 2014-09-14 02:39:35 +02:00
Arnaud Bienner 160b151652 Add seek ability to Spotify tracks.
This is functional but pretty hacky.
And, as noted in the comments, there is a small delay (depends, but usually several seconds) to have the seek taken into account. But IMHO it's better than nothing.
Fixes #2503
2014-09-14 02:15:58 +02:00
pie.or.paj cbc6e5cf4d Pause spotify track (issue 2503)
(patch slightly modified, not sure why it wasn't applied before: it looks good to me)
2014-09-06 19:21:23 +02:00
David Sansome d5617c0daf Set the media role for pulse audio 2014-06-19 22:51:58 +10:00
David Sansome 6bb81328e8 Merge branch 'master' into gstreamer-1.2
Conflicts:
	ext/clementine-spotifyblob/mediapipeline.cpp
	gst/moodbar/gstfftwspectrum.c
	src/core/songloader.cpp
	src/core/songloader.h
	src/engines/gstengine.cpp
	src/engines/gstenginepipeline.cpp
	src/moodbar/moodbarpipeline.cpp
	src/musicbrainz/chromaprinter.cpp
	src/transcoder/transcoder.cpp
	src/ui/mainwindow.cpp
	src/visualisations/projectmvisualisation.cpp
2014-06-09 16:20:24 +10:00
David Sansome 1e3cfb0a2c Don't try to update the scope if there's no buffer yet. Fixes #4388 2014-06-02 12:46:45 +10:00
David Sansome 162b2efbb0 If we don't know the length of a song from the metadata, get it from the pipeline which has the real length. Fixes #2818 when the length isn't in the podcast metadata. 2014-05-29 21:33:53 +10:00
Mark Furneaux 84434fd84e Fix dbz possibility with small buffers at end of track
There was a possibility of a dbz when a buffer sent to the
analyzer was shorter than 1ms long, such as what may happen at the end
of a track when stopping. This patch guards against this.
2014-05-17 14:38:46 -04:00
Mark Furneaux 8f9229d7c9 Apparently I'm blind. (Refactoring) 2014-05-03 09:28:07 -04:00
Mark Furneaux 00a1fe1e32 Refactoring 2014-05-03 09:14:15 -04:00
Mark Furneaux 6c653e5ba2 Synchronize buffer chunks with audio stream
The chunks are now determined by the density of data in the buffer
to the length of audio in the buffer. The chunk length can change
size so that the audio that is analysed is exactly what is being played
at the instant the frame is requested.
2014-04-30 14:18:39 -04:00
Mark Furneaux ee7fed36bc Fix pointer arithmetic when seeking buffers
It's possible the sample type will change, so best to not use
a fixed value.
2014-04-30 10:00:58 -04:00
Mark Furneaux 53f21584e4 Fix inconsistent buffer sizes sent to analyzer
The analyzers are sent new buffers of audio data to process each time
they pass through the gst pipeline. Different file formats and bit depths/
sample rates can change the size of these buffers, in some cases making them
large and therefore infrequent. This causes choppiness in the analyzer
as it is not getting new data with every frame. This patch chunks the buffers
coming off the pipeline to correspond with the framerate of the analyzer.
2014-04-29 21:38:21 -04:00
Mark Furneaux f793d09d8e Fix play bleeding into next track after auto stop
If "fade out on stop" is enabled, the "stop after this track" feature
would stop not stop the on current track, but instead start playing
the next track and fade out on that immediately. This patch disables
fadeout when the engine is stopped by HandleStopAfter().
2014-04-26 00:58:08 -04:00
Marcus Fritzsch e3bea84bea gstenginepipeline: make buffer min fill configurable 2014-04-02 11:54:14 +02:00
David Sansome 1719b1599c Get audio device names on Windows too. 2014-03-29 23:48:26 +11:00
David Sansome 2d7be1502f Get audio device names on OS X too. 2014-03-29 22:44:08 +11:00
David Sansome 6d1dc56a7c Get a list of available audio devices from pulseaudio, and let the user choose
from those in the settings dialog instead of just giving him a text box.
2014-03-29 19:31:38 +11:00