summaryrefslogtreecommitdiff
path: root/libbanshee
AgeCommit message (Collapse)AuthorFilesLines
2013-06-10Don't use the new-decoded-pad signal of decodebinSebastian Dröge2-8/+8
It is not available anymore in 1.0 and pad-added should be used.
2013-06-10Remove build-time --enable-gapless-playback optionChow Loong Jin3-18/+0
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>
2013-06-10Initial port to GStreamer 1.0Sebastian Dröge15-189/+145
2013-01-20PlayerEngine: Add support for accurate seekHans Oesterholt1-3/+8
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>
2012-08-01osx: fix muted volume on startup (bgo#660012)Timo Dörr1-0/+4
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>
2011-11-11libbanshee: Remove unused wanted_size variable (bgo#663281)Chow Loong Jin1-5/+1
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>
2011-10-09i18n: Clean up GStreamer-related error messagesBertrand Lorentz1-4/+4
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.
2011-09-25libbanshee: Fix message processing for dvd supportBertrand Lorentz1-3/+5
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.
2011-09-25Add initial support for DVD playingBertrand Lorentz8-2/+373
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.
2011-09-01libbanshee: Fix crash on g_free when look for subtile descriptionOlivier Dufour1-1/+2
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.
2011-04-27cleanup: Remove #if for old GStreamer supportGabriel Burt1-4/+0
Bump GStreamer dep to 0.10.26 from 0.10.23
2011-04-07libbanshee: Remove dead code (bgo#644648)Sjoerd Simons3-21/+0
Signed-off-by: Gabriel Burt <gabriel.burt@gmail.com>
2011-04-07libbanshee: Keep internal volume updated (bgo#644648)Sjoerd Simons1-0/+2
Signed-off-by: Gabriel Burt <gabriel.burt@gmail.com>
2011-04-07libbanshee: Use the proper element for volume control (bgo#644648)Sjoerd Simons1-3/+20
https://bugzilla.gnome.org/show_bug.cgi?id=644648 Signed-off-by: Gabriel Burt <gabriel.burt@gmail.com>
2011-04-07libbanshee: Correctly detect sink volume control (bgo#644648)Sjoerd Simons2-5/+18
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>
2011-03-31libbanshee: Fix the audiotee's alloc-pad propertyGabriel Burt1-8/+2
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)."
2011-03-31libbanshee: Fix bad call to gst_element_get_request_pad (bgo#646347)Gabriel Burt2-2/+9
We were hardcoding the name of the src to return, instead of passing 'src%d'. GStreamer used to ignore it, but now complains loudly.
2011-02-24libbanshee: Add an audioresample element to the transcoding pipelineAlexander Kojevnikov1-5/+9
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
2011-02-17Don't try to find subtitle files for music (bgo#638541)Gabriel Burt1-5/+9
2011-02-17GStreamer: Log the gst version and rg/gapless statusGabriel Burt1-0/+6
2010-12-03[build] Fix build failures introduced by subtitle codeBertrand Lorentz1-0/+4
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.
2010-12-03[libbanshee] Set alloc-pad property on tee element in pipelineAlex Launi1-16/+10
Removes workround for buffer allocation algorithm, by explicitly setting which pad to use for buffer allocation (bgo#635125).
2010-12-02Support embedded and external subtitles (bgo#534581)Olivier Dufour4-21/+178
Signed-off-by: Gabriel Burt <gabriel.burt@gmail.com>
2010-11-25[libbanshee] Make note in banshee-player-pipeline that gapless workaround ↵David Nielsen1-1/+2
will be fixed in gst 0.10.31 https://bugzilla.gnome.org/show_bug.cgi?id=635139
2010-11-17[libbanshee] Remove obsolete workraound for qtdemuxDavid Nielsen1-7/+0
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>
2010-11-17[libbanshee] Improve comment for playbin2 workaroundDavid Nielsen1-1/+2
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>
2010-10-19Fix hang when replaying videoZhou Ting1-14/+10
Move video_mutex inside bp_video_find_xoverlay. https://bugzilla.gnome.org/show_bug.cgi?id=632114
2010-10-18Revert "libbanshee: Work-around Mono crash under FreeBSD"Alexander Kojevnikov1-38/+2
This reverts commit 02425e05fb44b62740ed2125edd45ea901e628a2. bnc#647248 is now fixed, sorry for the noise.
2010-10-17libbanshee: Work-around Mono crash under FreeBSDAlexander Kojevnikov1-2/+38
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.
2010-09-24[libbanshee] Use decodebin2 for bpmdetector and transcoderGabriel Burt2-5/+5
2010-09-15libbanshee: Insert `volume` element into the pipeline (bgo#6000072)Alexander Kojevnikov4-37/+27
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.
2010-07-22Separate mutexes for video and rpgain (bmc#1115)Aaron Bockover4-15/+21
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.
2010-06-17[libbanshee] Go back to notify::volume usageGabriel Burt3-8/+2
The deep-notify::volume was causing a native crash, and it's not needed anyway since playbin2 itself has the volume property.
2010-06-17[libbanshee] Fix up some volume handling issuesGabriel Burt4-2/+31
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.
2010-05-14[GStreamer] Don't track volume in preferencesAaron Bockover3-20/+41
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.
2010-05-14[libbanshee] Don't use filersc element explicitlyMichał Sawicz1-8/+5
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>
2010-05-05[XOverlay] fix video embed bnc#585817, bgo#548635Aaron Bockover2-0/+12
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.
2010-04-04[libbanshee] Windows fixes (bgo#614046)Julien Moutte10-101/+199
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>
2010-03-20[libbanshee] Fix building with older GStreamer (bgo#613339)Bertrand Lorentz2-3/+10
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.
2010-03-17[libbanshee] Make the volume slider smooth with PulseAudioArun Raghavan1-0/+17
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>
2010-03-14[libbanshee] Remove player->current_volumeChristopher James Halse Rogers3-5/+5
Playbin has the canonical value. We don't query the volume very often so just get the value from the playbin each time.
2010-03-14Handle volume changes from outside Banshee.Christopher James Halse Rogers3-1/+27
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
2010-03-09[libbanshee, Banshee.GStreamer] Remove #ifdef's from managed code.Christopher James Halse Rogers1-0/+10
Add a bp_supports_gapless function to libbanshee, and use it in the managed code to do runtime detection.
2010-03-09[libbanshee] Whitespace fixesChristopher James Halse Rogers1-15/+15
2010-03-09Consolidate multi-line debug messagesChristopher James Halse Rogers1-2/+1
2010-03-07[libbanshee] Use playbin2 in all buildsChristopher James Halse Rogers1-3/+1
2010-03-07[Gapless] Work around BGO #602437Christopher James Halse Rogers3-4/+49
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
2010-02-28Merge branch 'master' into gapless-ngChristopher James Halse Rogers3-7/+25
2010-02-27[libbanshee] Add debug message for about-to-finish handlerChristopher James Halse Rogers1-0/+1
2010-02-25[libbanshee] Handle missing rgvolume element for ReplayGain.Christopher James Halse Rogers1-1/+7
If the rgvolume element cannot be loaded, set replaygain_enabled to FALSE to maintain coherent state.