SoC 2008/MTP

From VideoLAN Wiki
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.


  • 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 POSIX one 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)


May 26 Coding begins
June 15 (?) - July 15 (?) Examination period, will work with no problem
July 7-14 Mid-term evaluation
July 28 - August 4 On holiday...
August 11-18 "Pencil down"
August 18 - September 1 Final evaluation
September 3 Submitting required code samples to Google

The planning is still a little vague, i still don't know examination dates, so it's just a guess, but i don't think to have big problems on working during that period (probably just a break the day of the exam or the day before...)

Current Status

Modifying the services discovery API to let me manage file addition...

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...