Age | Commit message (Collapse) | Author | Files | Lines |
|
It is not available anymore in 1.0 and pad-added should be used.
|
|
This was previously added to check for a new enough playbin, but since we're now
using Gstreamer 1.0, the playbin version should be new enough, and we can drop
the conditionals.
Signed-off-by: Chow Loong Jin <hyperair@debian.org>
|
|
|
|
GStreamer can do accurate seeks, but it can be slower, even requiring a
complete scan of the file being seeked. So we add a new method in
PlayerEngineService, Seek(uint position, bool accurate_seek), that
allows to request an accurate seek. The accurate_seek parameter defaults
to false, because most use cases don't require accurate seeks.
Setting the Position property keeps its current behavior (no accurate
seek).
Accurate seeks are useful to be able to playback (mp3) files
that contain multiple songs, and will be used by the new CueSheets
community extensions.
Signed-off-by: Bertrand Lorentz <bertrand.lorentz@gmail.com>
|
|
This commit fixes a bug in the libbanshee library, which did not set the
initial current_volume. As a result, the volume returned by
bp_get_volume () will always be 0 until one modifies/sets a new volume
via the volume slider.
This bug also manifests itself on Linux, but the
volume would slider get set to the right value once you start playing a
track.
Signed-off-by: Bertrand Lorentz <bertrand.lorentz@gmail.com>
|
|
This fixes the following warning:
banshee-player-vis.c: In function '_bp_vis_pipeline_setup':
banshee-player-vis.c:206:10: error: variable 'wanted_size' set but not used
[-Werror=unused-but-set-variable]
Signed-off-by: Bertrand Lorentz <bertrand.lorentz@gmail.com>
|
|
Make sure the strings used for error messages by libbanshee and the
GStreamer# backends are the same. This is so that translators don't have
to translate them twice just because they have different punctuation.
|
|
Both gst_element_query and gst_navigation_query_parse_commands_length
return TRUE if successfull, so we were handling that wrong.
Also do the query on the GstNavigation, doing it on the playbin seems
wasteful.
|
|
Add the necessary bits to support DVD playing in both libbanshee and
GStreamerSharp, including menu navigation.
Rework the AudioCD extension into an OpticalDisc extension that supports
both audio CDs and video DVDs.
Adapt the NowPlaying extension to forward mouse and keyboard events to
the player engine when appropriate, to implement menu navigation for
DVDs.
This is the result of a collaboration between Alex Launi and Olivier
Dufour, with a few changes and cleanups by me.
|
|
This crash appear on gstreamer version before 0.10.24 because code are
not always setup and it was not initialise to null so it can
contain random memory which lead to crash.
A small mem leak was fixed too in same function.
|
|
Bump GStreamer dep to 0.10.26 from 0.10.23
|
|
Signed-off-by: Gabriel Burt <gabriel.burt@gmail.com>
|
|
Signed-off-by: Gabriel Burt <gabriel.burt@gmail.com>
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=644648
Signed-off-by: Gabriel Burt <gabriel.burt@gmail.com>
|
|
If an element is used as an audiosink which detects and dynamically
plugs the actual sink element, then we can only detect sink volume
support after this has happened. To trigger this, simply set the sink
state to READY, which should open the resources and thus load the actual
audio sink.
Signed-off-by: Gabriel Burt <gabriel.burt@gmail.com>
|
|
According to Sebastian, "setting it to audiosinkqueue's never had any
effect (and when running with GST_DEBUG=tee:3 you would get a warning)"
and "the only difference will be that the audio decoders will allocate
the buffers from the audio sink instead of allocating them themselves
(and in the future they could get hardware memory but currently no
audio sink implements that, only video sinks do)."
|
|
We were hardcoding the name of the src to return, instead of passing
'src%d'. GStreamer used to ignore it, but now complains loudly.
|
|
This fixes transcoding for audio files with a non-standard sampling rate.
Credits go to Tim-Philipp Müller for the analysis of the problem and to
David Nielsen for his persuasion.
Fixes bgo#635698
|
|
|
|
|
|
Add gsttag-0.10 to GST_LIBS to prevent build failure with
LDFLAGS="-Wl,-z,defs".
Only use gst_tag_get_language_name if GStreamer is recent enough
(0.10.26 or above). Older versions will just get you the language code
instead of the language name.
|
|
Removes workround for buffer allocation algorithm, by explicitly
setting which pad to use for buffer allocation (bgo#635125).
|
|
Signed-off-by: Gabriel Burt <gabriel.burt@gmail.com>
|
|
will be fixed in gst 0.10.31
https://bugzilla.gnome.org/show_bug.cgi?id=635139
|
|
The underlying problem was fixed in 2007 with gst-plugins-good 0.10.6
Fixes bgo#634437
Signed-off-by: Gabriel Burt <gabriel.burt@gmail.com>
|
|
Specifically, add what bug the about-to-finish signal workaround is
there because of, and what version the fix is now in.
Signed-off-by: Gabriel Burt <gabriel.burt@gmail.com>
|
|
Move video_mutex inside bp_video_find_xoverlay.
https://bugzilla.gnome.org/show_bug.cgi?id=632114
|
|
This reverts commit 02425e05fb44b62740ed2125edd45ea901e628a2.
bnc#647248 is now fixed, sorry for the noise.
|
|
Mono segfaults when native code calls a managed callback from
a different thread (see bnc#647248). This commit fixes the crash
in banshee_log() by proxying the callback into the main thread.
Note that crashes in bp_about_to_finish_callback() and
bp_volume_changed_callback() are not yet fixed.
|
|
|
|
Changing the volume on the entire pipeline results in a noticeable
latency on certain audio sinks. This commit adds a dedicated volume
element, changing the volume on it drastically reduces the latency.
Original patch by Christian Taedcke, adapted by Christopher Halse Rogers
and myself.
|
|
This fixes a possible deadlock that is very evident on MeeGo. The
replaygain and video portions of the pipeline where for some (bad)
reason sharing the same mutex, causing deadlocks at time.
|
|
The deep-notify::volume was causing a native crash, and it's not
needed anyway since playbin2 itself has the volume property.
|
|
Check the audiosink recursively for a 'volume' property. If it exists,
then we assume the sink will save/restore its own volume - so expose
that information to the managed PlayerEngine so it can decide whether to
restore the last volume from gconf. Also, listen to the
deep-notify::volume signal like RB does.
|
|
Added a new bp_supports_stream_volume API that returns whether or not
the playbin element supports GST_TYPE_STREAM_VOLUME. If stream volumes
are supported on the pipeline (which, for example, map to the system
mixer), then don't load/save the volume from Banshee's preferences and
instead only load/set volume on the pipeline itself so the application
volume state is always in sync with the pipeline.
This *should* fix bgo#613725, bgo#612362, and bgo#613726, though there
may be some sort of inconsistency on some distributions as this fix will
only apply for GStreamer 0.10.25 or newer (when the
GST_TYPE_STREAM_VOLUME interface was introduced). If the case is that
stream volume was supported internally on playbin2 before 0.10.25 adds
this interface, there's no real way for us to know whether to trust the
pipeline (system/mixer) volume or our internal software volume state.
|
|
Now that Banshee is gio/gvfs-aware, it might not only hold file paths
but also URIs. The transcoder was explicitly using the filesrc element,
which can't handle URIs. This patch makes it use the
gst_element_make_from_uri() on the URI retrieved by SafeUri.AbsoluteUri
instead of SafeUri.LocalPath. (bgo#618585)
Signed-off-by: Gabriel Burt <gabriel.burt@gmail.com>
|
|
GStreamer requires an X11 window handle to be set on the XOverlay
interface of the video sink in order to render video. If one is not set
in time, GStreamer will create its own X window. Closing this window
will result in a crash, since it becomes unrealized, after which
GStreamer will continue to try to render to it.
Before, the X11 video window was created when the Now Playing UI
was realized. The window is now created when the pipeline is created, by
raising the new PrepareVideoWindow event. Technically, this event should
be raised when the prepare-xwindow-id message is pushed onto the
pipeline bus, but this is raised out of the main thread.
|
|
There are multiple issues involved :
* Does not use a proper video rendering element.
* Does not support XOverlay interface on Windows.
* Should not iterate through callbacks from unmanaged to managed code.
* Does not handle the case where force-aspect-ratio might not be
available.
* Does not support Visual Studio varargs constraints for debugging.
* Does not declare delegate callback correctly, producing crashes on
Windows.
Proposed patch fixes build on Windows, uses autovideosink as a fallback
to gconf, provides a callback for video geometry information, declares
delegate correctly and enable XOverlay for Win32.
This is the first patch from Moovida merge.
Signed-off-by: Alexander Kojevnikov <alexander@kojevnikov.com>
|
|
We need to define and use our own macro to check the GStreamer version,
because GST_CHECK_VERSION was only added in 0.10.18.
|
|
PulseAudio maps linear stream volumes to "actual" volumes as a cubic
function. This change reflects that in the volume slider, making it feel
more natural. This also makes the slider values correspond to other
apps, such as GNOME volume preferences.
Ref: https://tango.0pointer.de/pipermail/pulseaudio-discuss/2009-May/003898.html
Signed-off-by: Gabriel Burt <gabriel.burt@gmail.com>
|
|
Playbin has the canonical value. We don't query the volume very often so
just get the value from the playbin each time.
|
|
When using PulseAudio, users can modify the stream volume behind Banshee's back with
the volume control applet. Hook up playbin2's notify::volume signal to keep
Banshee's volume widget and gconf setting in sync
|
|
Add a bp_supports_gapless function to libbanshee, and use it in the managed code
to do runtime detection.
|
|
|
|
|
|
|
|
Playbin2 currently behaves incorrectly when trying to transition gaplessly to or from
a stream audio and video, resulting in the A/V sync being significantly out.
Don't send about-to-finish when the current track has a video stream; instead let
the track play out to EOS.
If the new track has a video stream and we're in a gapless transition, drop
back to READY and do a non-gapless transition
|
|
|
|
|
|
If the rgvolume element cannot be loaded, set replaygain_enabled to FALSE to maintain
coherent state.
|