Swap With Dell 9300

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Tuesday, May 6, 2008

Elisa problems marshalling MediaUri

Posted on 4:51 PM by Unknown
The short version
If you are having problems with elisa not playing your local media files (see https://code.fluendo.com/elisa/trac/ticket/957 and https://code.fluendo.com/elisa/trac/ticket/961) then you can fix it by editing ~/.elisa/elisa.conf and changing gstreamer:gst_metadata_client to gstreamer:gst_metadata. That is all and it works!

The long version
Ever since I heard about elisa, I have been trying to get it to work as my media center. It was well designed and the vector graphics are awesome. It plays music, videos and displays pictures, and has several plug-ins to play online music and youtube videos etc. You can even get cover arts from amazon from with in the software. But there is just one problem. It could never play my local media. Neither movies, nor music and not even photos. I gave v0.3.3 of elisa a try. It did not play my personal media. I thought, well it is still in development, so why not wait for the next release. I did not even take a look at the logs.

Then came v0.3.4 and that again did not work. So I synced up to the latest code in svn and tried that. No luck. At this point I was starting to think something must be wrong with my configuration or the versions of dependencies that I have installed. This time I looked at the logs and a warning pointed me to a log file in /tmp. A quick look and I could not understand why jelly.py (from twisted) seems to think MediaUri is not a known type. I didn't know much about twisted framework (and I still don't), so I emailed the elisa mailing list. And in response a developer kindly opened a ticket for me. You can view it here https://code.fluendo.com/elisa/trac/ticket/961.

I was waiting for it to get fixed. And then along came the announcement for v0.3.5. I decided to try the latest from source control and it failed to play my media again. This time I was adamant on learning twisted at least up to the point of understanding what jelly.py is and why it is does not know the type of MediaUri. I found out that jelly is used to serialize data to send it over the wire to the server to unmarshall and act on it. That is good enough. Now back to the exception
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/twisted/internet/defer.py", line 182, in addCallbacks
self._runCallbacks()
File "/usr/lib/python2.5/site-packages/twisted/internet/defer.py", line 307, in _runCallbacks
self.result = callback(self.result, *args, **kw)
File "/home/chandanp/workspace/python/fluendo/elisa/elisa-plugins/elisa/plugins/gstreamer_plugin/gst_metadata.py", line 1429, in got_root
dfr = root.callRemote('get_metadata', dic, low_priority)
File "/usr/lib/python2.5/site-packages/twisted/spread/pb.py", line 380, in callRemote
_name, args, kw)
--- <exception caught here> ---
File "/usr/lib/python2.5/site-packages/twisted/spread/pb.py", line 853, in _sendMessage
netArgs = self.serialize(args, perspective=perspective, method=message)
File "/usr/lib/python2.5/site-packages/twisted/spread/pb.py", line 807, in serialize
return jelly(object, self.security, None, self)
File "/usr/lib/python2.5/site-packages/twisted/spread/jelly.py", line 879, in jelly
return _Jellier(taster, persistentStore, invoker).jelly(object)
File "/usr/lib/python2.5/site-packages/twisted/spread/jelly.py", line 464, in jelly
sxp.append(self.jelly(item))
File "/usr/lib/python2.5/site-packages/twisted/spread/jelly.py", line 468, in jelly
sxp.append([self.jelly(key), self.jelly(val)])
File "/usr/lib/python2.5/site-packages/twisted/spread/jelly.py", line 489, in jelly
raise NotImplementedError("Don't know the type: %s" % objType)
<type 'exceptions.NotImplementedError'>: Don't know the type: <class 'elisa.core.media_uri.MediaUri'>

This simply means that there is a problem serializing MediaUri. I greped around and found that MediaUri is not extending one of the serializable classes. So that could be the problem. I looked at the gst_metadata.py which is where the RPC is being made. I noticed that there is another way to get metadata, but it is not an asynchronous call. But hey what the heck, I don't care if the UI locks up for a while when it is scanning my media as long as I can get it to work. So if I used gst_metadata instead of gst_metadata_client I can get away from the whole async RPC calls. I edited ~/.elisa/elisa.conf and changed gstreamer:gst_metadata_client to gstreamer:gst_metadata and guess what, it works!

I updated a ticket with the same problem I was having and at least some one is happy being able to play their local media. The link to the ticket is https://code.fluendo.com/elisa/trac/ticket/957. I got so excited that I wrote this blog immediately. Now I will take elisa for a ride.
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Posted in | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • InduinoX: Interfacing with LCD
    After my quick Hello World app , I became a bit more adventurous and decided to interface with the LCD screen that was part of the basic ki...
  • Scopes and electronics
    An oscilloscope is very important for any electronic enthusiast. Recently I have been trying to send IR remote codes from an arduino board ...
  • Dell Recalls Batteries
    Ahh the news could not have come at a better time. I was having problems with the battery that came with my Dell Inspiron 9300. Just 7 days...
  • XBMC / Boxee remote control android app
    I have been writing a few android apps over weekends at home and during 20% time at Google. However I never actually released any of them in...
  • Elisa problems marshalling MediaUri
    The short version If you are having problems with elisa not playing your local media files (see https://code.fluendo.com/elisa/trac/ticket/9...
  • nVidia ION for HTPC
    This is an exciting time for buying HTPC devices. They come in really small sizes, they are efficient and yet can playback 1080p video and b...
  • Purchase experience with Probot
    I have recently posted my purchase experience with Simple Labs . This post is the continuation of that. That same day I ordered these compon...
  • IR remotes
    As part of my  home automation project , I also wanted to control my home entertainment system. The controller can be a web interface or an ...
  • gtkdocize not found
    If you are ever configuring an app and see the message "gtkdocize not found" in Gentoo, then you need to emerge gtk-doc. I had som...
  • Testing AdSense and Getting Things Done
    Working in Google and not having an AdSense account is not cool. So I created an account and added the AdSense page element. Looks good. Alt...

Categories

  • 555 timer
  • arduino
  • delay circuit
  • electronics
  • gentoo
  • home automation
  • induinox
  • ir emitter
  • ir receiver
  • ir remote
  • kubuntu
  • lcd
  • ldr
  • leds
  • lucid lynx
  • oscilloscope
  • picoscope
  • probots
  • receiver
  • relay
  • relays
  • scope
  • sensors
  • simple labs
  • sony remote protocol
  • transmitter
  • virtualbox
  • virtualization
  • wireless relay

Blog Archive

  • ►  2011 (12)
    • ►  December (1)
    • ►  November (1)
    • ►  October (6)
    • ►  September (4)
  • ►  2010 (5)
    • ►  May (1)
    • ►  March (1)
    • ►  January (3)
  • ►  2009 (10)
    • ►  December (5)
    • ►  November (3)
    • ►  May (1)
    • ►  April (1)
  • ▼  2008 (29)
    • ►  August (1)
    • ►  June (1)
    • ▼  May (4)
      • VirtualBox 1.6 is out
      • Yet Another GTD now open sourced
      • Elisa problems marshalling MediaUri
      • Mac vs PC (Vista)
    • ►  April (1)
    • ►  March (1)
    • ►  February (10)
    • ►  January (11)
  • ►  2007 (7)
    • ►  May (5)
    • ►  April (1)
    • ►  March (1)
  • ►  2006 (8)
    • ►  November (1)
    • ►  October (3)
    • ►  September (2)
    • ►  August (2)
Powered by Blogger.

About Me

Unknown
View my complete profile