SoC 2008/MTP

From VideoLAN Wiki
Revision as of 21:47, 28 April 2008 by Sephiroth87 (talk | contribs)
Jump to navigation Jump to search
This project is part of Google Summer of Code 2008.
Student: Fabio Ritrovato
Mentor: Antoine Cellerier

Project Abstract

As MTP (Media Transfer Protocol) devices become more and more popular, and the protocol itself is about to become a standard, using them is still a problem for some people, since they cannot be mounted or opened as disks, but can be natively used only on Vista and Windows XP with WMP10, or using other programs.

Adding the MTP support to VLC would not only give the opportunity to use these device on almost every platform, but also allow to have a free, open source and largely diffuse program to manage them.

My work on the MTP support will enable VLC not only to play music from the device, but also to add new music, manage the content of the device, edit tags, playlists and anything else that would be needed by an Mp3 player user.

The coding would be done in C, mainly as a service discovery for VLC,with an access module to enable the reproduction of files; everything will be done using libmtp (POSIX compliant, so it should work nice on almost every system) as a base, and probably HAL to allow the program to detect the devices as soon as they plugged into the pc.

Current Status

Planning - Studying


  • Linux/POSIX version
  • Service Discovery: recognize device connections, create a playlist
  • Access Module: play files from the device
  • Playlist Management: view/edit tags, transfer files from/to device
  • Other: try to manage more than one device at time (not sure about this)
  • Windows version
  • Try to port the POSIone using libmtp (it should work without need to change the code, maybe just some fixes)
  • Rewrite all using some other API (if the above doesn't work)
  • Make sure everything is well integrated in the UI
  • Ipods (if there's time and it's not too difficult)

Sample Version

[1] Here's the first version of my work, the one i submitted to get started with SoC. It's a basic support, can read one device at time, and you can play files on it, nothing more, just a proof of concept...