Jim Broadus
2804a4d89f
gstengine: Make output format configurable
...
Add an output format option in playback settings. The options are
Detect, S16LE, and F32LE. Selecting Detect will use the existing
behavior and detect the native format when the pipeline starts. The
other options will set the format when the pipeline is built.
2021-04-03 13:56:22 +01:00
Jim Broadus
409c6b89d1
gstengine: Add a gstreamer debug console page
...
New page initially provides a button that triggers a dump of a graph of the main
pipeline.
2021-01-01 16:26:29 +00:00
John Maguire
341dc7326f
Reformat all C++
2020-09-22 14:56:06 +01:00
Jim Broadus
9ed5503ee3
Add MediaPlaybackRequest class.
...
Add a class to wrap the URL in the playback engines. In the future, this will
contain authentication information for the specified URL. It can also include
the start and end time as well as other data that is currently specified along
with the URL.
2020-03-11 10:57:21 +00:00
Jim Broadus
2c1ae986c5
Create a GstEngine::IsCurrentPipeline helper function for callbacks.
2020-03-09 10:21:07 +00:00
Jim Broadus
d3d6c1ff3c
Fix UNC paths.
...
The fix-up for URLs for files that that begin with // no longer works since the
QUrl class determines that these modifications are invalid, resulting in an
empty string when converted. Instead of attempting to modify the QUrl, add a
utility function that makes the correction on the encoded byte array at time of
usage.
2020-01-29 00:38:43 -08:00
John Maguire
33494dcddc
Remove BoundFutureWatcher
2015-11-26 18:53:42 +00:00
Mark Furneaux
e9494af3f7
Add sample rate selection
...
This change provides the ability to set a fixed pipeline sample rate as an alternate to automatically negotiating it.
This can be useful on systems with sound cards that work at a fixed rate, as well as it can triage issues (on Windows)
where changing tracks hangs due to a problem with gstreamer's caps negotiation.
2015-07-09 22:19:31 -04:00
Eduardo Sánchez Muñoz
4af4e185da
Fix song continuously rewinding when seeking using keyboard arrow keys.
2015-07-01 20:24:17 +02:00
John Maguire
8d2e3373a8
Use a GTlsDatabase for gstreamer SSL on mac.
2015-04-27 11:21:22 +01:00
David Sansome
d5617c0daf
Set the media role for pulse audio
2014-06-19 22:51:58 +10: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
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
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
John Maguire
bebd781fdf
Reformat all non-3rd-party C/C++/Objective-C++.
...
Command line:
find src ext -regex '.*\.\(h\|cpp\|mm\)' -exec clang-format -i
-style='{BasedOnStyle: Google, DerivePointerBinding: false}' {} \;
2014-02-07 16:34:20 +01:00
John Maguire
d309d4ab27
Use c++11 instead of boost where possible.
2014-02-06 16:51:39 +01:00
David Sansome
e7dcac4f15
When transitioning to a preloaded song, emit the EOS event at the time the
...
audio actually changes to the next song instead of when the src changes songs.
Fixes issue 3716
2013-06-04 22:17:44 +10:00
David Sansome
619261f5e1
Remove the precise analyzer timing code from Amarok and instead just use the
...
latest buffer from GStreamer. This works just as well and fixes the occasional
freezing analyzer. Fixes issue 2464
2013-06-01 18:03:59 +10:00
David Sansome
90898bd255
Take the buffer duration into account when deciding when to preload the next
...
song for gapless playback.
2013-06-01 17:25:56 +10:00
John Maguire
36975c41d2
Add stereo balance slider as part of equalizer.
2013-04-26 20:28:57 -07:00
Andreas
ec481d5874
Fixed issue 578: fade-in fade-out on (un)pause.
2013-04-22 21:42:04 +02:00
Arnaud Bienner
26639503d0
Update issue 2137
...
Mono playback implemented; available in preferences
2012-05-20 20:50:25 +02:00
David Sansome
0335d57a0f
Improve pipeline buffering: on an underrun event playback will now pause until the buffer is completely full. Fixes audio stuttering on when listening to radio streams on slow networks.
2012-01-23 15:01:39 +00:00
John Maguire
dfdb71b164
Make it so!
...
Fixes issue #2527
2012-01-10 17:00:17 +01:00
John Maguire
51e031df2b
Add class for transcoding a Song into an OGG Vorbis stream.
2011-05-19 16:34:33 +00:00
Arnaud Bienner
d20f689ab4
Revert r3234 because, as discussed, this could lead to blocking behavior
2011-05-03 22:38:24 +00:00
Arnaud Bienner
709d339866
Avoid to create a new thread when changing state. Make the UI more reactive, especially when Qt threadpool is already full (for example when fingerprinting several files in parallel for MusicBrainz autotagging)
2011-05-03 00:02:35 +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
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
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
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
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
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
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
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
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
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
35e87b2a77
Start gstreamer playing from a separate thread.
2010-08-04 12:13:43 +00:00