I've been doing some extensive testing lately with this library and
Banshee and the results weren't that good. I've traced it down to the
problem in Banshee, but I haven't figured out yet what caused the
problem inside libmtp.

It works like this: libmtp fetches a song from the player and puts it in a list 
-- if you call it that way in C(++), it uses a var->property syntax. The first 
song is saved in what is to become to return variable and the temporary 
variable is emptied and filled with the data of the new song. The pointer to 
this data is then saved in previous-song->next. This process continues until 
everything has been read.
It seems that in Banshee the pointer to the next song isn't a PtrInt, but 
rather an Int with the value 1. This breaks the whole thing.
Strangely the new library does seem to work reasonably well with Rhythmbox.

About the ABI/API changes: upstream specifically said that all applications 
that use the library should be rebuilt, but that the library was source 
compatible. The only changes to ABI were that some new functions and properties 
have been introduced in 1.0.0. I'm not sure if I got them added to the 
debian/libmtp8.symbols file correctly.
The 1.0.x versions also include a newly merged/fetched/rewritten PTP 
implementation.

However, rebuilding doesn't seem to be necessary at all (as far as I've
tested) for most applications. Both Rhythmbox and Banshee apparantly use
the symlink libmtp8.so.

When saying that 1.0.x does work with Rhythmbox without having to
rebuild the media player I said reasonably because the library -- and
its (mtp-)tools -- sometimes have problems with detecting devices and
with properly 'mounting' it. It happens that you have to probe several
times before your device is found and sometimes it says the device is
busy, whereas it shouldn't. Mounting the device -- which allows you to
access it via the gphoto:// protocol -- also seems to be a bit more
aggressive, i.e. it mounts more often and sometimes even in spite of
opened media players.

I also got a a few times a strange exception when using my player with
Banshee telling me it couldn't detect the battery level. This was gone
after a while, but I haven't found out what caused it.

After this testing I don't think it's still such a good idea to upload
the new version of libmtp to Karmic. It feels to unstable to be given an
exception so late in the development cycle. Instead lets make sure we
get the latest version into the upcoming LTS in April 2010. We could
backport some of the new devices, though.

-- 
[karmic] FreezeException request for libmtp
https://bugs.launchpad.net/bugs/424760
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to