[Banshee-List] Vlc MediaEngine 0.0.1
- From: "Timothy J Fontaine" <tjfontaine gmail com>
- To: banshee-list gnome org
- Subject: [Banshee-List] Vlc MediaEngine 0.0.1
- Date: Wed, 10 Jan 2007 14:08:25 -0500
While working on a different plugin for Banshee I became frustrated with the GStreamer backend (the problem is in libmms in particular but I was tired of fussing with it), and my inability to debug it, I was also fed up with trying to make the Xine backend bend to my will; So, in true OSS fashion I decided to reinvent the wheel (somewhat). Therefore I present to you banshee-engine-vlc (
http://tophat.atxconsulting.com/~tjfontaine/banshee-engine-vlc-0.0.1.tar.bz2) This MediaEngine plugin uses the newer libvlc api available since
0.8.5 (i.e. not the same api jlj used for the sharpmusique stuff), the engine was put together in about 3 days, so caveat emptor. I've tested with 0.11.3 on Feisty, and SVN trunk things seem to run smoothly, it *should* be able to be a cdda backend but I don't listen to cds so I haven't really tried to work with that. Below you'll find the README.
I'd appreciate any feedback/flames. Thanks
tjfontaine
--
Vlc Banshee MediaEngine Plugin
-----------------------------------------
This plugin requires the libvlc api which was made available starting with
version 0.8.5, I tested with 0.8.6. The filenaming scheme is such that I could
build my test.cs file without including the Banshee stuff, so the Vlc*.cs files
are largely standalone and could be used elsewhere in applications that want to
make use of Vlc in managed code.
Caveats:
Different flavors distribute libvlc in different forms, and my autofoo is not
such that I felt like detecting such things at build time, so if you experience
a segfault on startup it's likely you need to futz with the dllmap'ing and make
sure you actually have libvlc installed.
At the time of this writing (2007-01-10) the engine worked without issue with
other backends in version 0.11.3, however SVN Trunk of banshee and B.ME.Vlc had
a slight runtime conflict with the builtin GStreamer backend and can be solved
with the following diff:
Index: src/Engines/Banshee.MediaEngine.GStreamer/GstPlayerEngine.cs
===================================================================
--- src/Engines/Banshee.MediaEngine.GStreamer/GstPlayerEngine.cs (revision 1966)
+++ src/Engines/Banshee.MediaEngine.GStreamer/GstPlayerEngine.cs (working copy)
@@ -223,7 +223,8 @@
GstResourceError domain_code = (GstResourceError)code;
switch(domain_code) {
case GstResourceError.NotFound:
- CurrentTrack.PlaybackError = TrackPlaybackError.ResourceNotFound;
+ if(CurrentTrack != null)
+
CurrentTrack.PlaybackError = TrackPlaybackError.ResourceNotFound;
break;
default:
break;
@@ -234,7 +235,8 @@
GstStreamError domain_code = (GstStreamError)code;
switch(domain_code) {
case GstStreamError.CodecNotFound:
- CurrentTrack.PlaybackError = TrackPlaybackError.CodecNotFound;
+ if(CurrentTrack != null)
+ CurrentTrack.PlaybackError = TrackPlaybackError.CodecNotFound;
break;
default:
break;
@@ -245,7 +247,8 @@
GstCoreError domain_code = (GstCoreError)code;
switch(domain_code) {
case GstCoreError.MissingPlugin:
- CurrentTrack.PlaybackError
= TrackPlaybackError.CodecNotFound;
+ if(CurrentTrack != null)
+ CurrentTrack.PlaybackError = TrackPlaybackError.CodecNotFound;
break;
default:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]