Difference between revisions of "SoC 2008"

From VideoLAN Wiki
Jump to navigation Jump to search
Line 110: Line 110:
Then a rework of the interface should happen.
Then a rework of the interface should happen.
''mentoring would be done by djc.''
''Proposed mentor: djc.''
=== threading/locking consistency/correctness checker===
=== threading/locking consistency/correctness checker===

Revision as of 13:01, 6 March 2008

Google Summer of Code 2008.

VideoLAN tries to be a mentoring organization

Introduction & Information

This wiki page covers the attempt by the VideoLAN project to act as a mentoring organization for Google Summer of Code, in order to improve VLC media player.

VLC media player

VLC media player is a cross-platform Multimedia player, and encoding and streaming application. It is one of the most successful open-source projects without any professional structure underneath.

VLC media player is downloaded at an approximate monthly rate of 4 millions from the main website (not including third-party distributions (Linux)), which means about 30 million people have downloaded VLC 0.8.5 from the main website!

You can find more information on VLC on Wikipedia or on this wiki.

Summer of Code

If selected and developed, SoC ideas will be included in the VLC 0.9.1 or any later version release, and covered by the GPL licence.


Read this

We (the VideoLAN team, and jb, the author of this page) have split this page in two lists of ideas:

  • The main ideas are the ones we would like to focus on, and seem to be key projects for VLC and a lot more thrilling than the other ones; we have assigned a potential mentor to each of these.
  • The other ideas are less detailed but could be good ideas too.

We don't want to impose anything. This is free and Open Source software. Last year, many projects were external ideas.

If you don't want to apply for SoC but want other ideas to develop on, check the Mini Projects page! And on IRC channel, you can have even more ideas.

Main ideas

Fullscreen Controller

This project is easy to describe, it would provide a fullscreen controller for Linux/Unix and Windows, as VLC media player already has on Mac OS X version since 0.8.6.

It should be draggable, clickable and support the classical control buttons to control VLC playback in fullscreen mode.

With this project, which is not too long, there should be some related work on Vout (Making sure the video output does not close and reopen between files for example...)

This project needs basic C++ knowledge. Qt knowledge would be a plus.

Proposed mentor: jb

Test Suite

This project aims at making automatic tests to improve VLC quality.

- Write a series of tests for vlc-internal - Define a way to test plugins - Automatize the different codec playback/mux/etc tests - Automatize the subtitles tests - Write tests for the different bindings: Mac OS X Framework/Python Bindings... etc.

This project is a code project and may require advanced coding skills

Proposed mentor: User:Pdherbemont (backup: courmisch)

MTP / iPod Service Discovery

This project would work on the MTP devices and iPod device integration in VLC through a Service Discovery.

This project might need improvements in the Service Discovery live handling

Proposed mentor: Unknown

QuickTimeVR Playing

This project deals with integration QuickTimeVR inside VLC using work from FreePV (SoC 2007). This project will require some modification on image handling inside VLC.

Proposed mentor: Unknown (backup Yuval Levy)

Easy Streaming

This project should focus on easiness of streaming on the LAN (for example, other people can see that you're playing something and request to see the same). This project could work on VLC DLNA and UPnP integration.

Proposed mentor: Unknown

Other Ideas SoC 2008

QTKit access

QTKit-based access module for OS X (allowing input from USB / FireWire cameras, audio devices, camcorders, tape recorders [, ...your favourite here] )

Proposed mentor: Unknown (backup feepk)

Leopard integration

- a QuickLook-plugin for OS X Leopard - Video Output animations - VLC_app (VLCKit based) improvements. - VLCKit oneclick-Streaming Server implementation.

Proposed mentor: pdherbemont, feepk

iPhone / iPod touch port

Now that the SDK is approaching, we might consider the port of VLC to the iPhone / iPod touch platform. Obviously, this project requires the student to own such a device.

Proposed mentor: Unknown (backup feepk)

Matroska (mkv) muxing

This project is about writing a mkv muxer for VLC with advanced support (chapters, multiple audio and multiple subtitles, etc...) like when you need to rip or archive a DVD.

FFMPEG project has a similar project, and we could use the libavformat muxer and adapt ourselves, but we are not sure if we will be able to use therefore all the advanced features.

robUx4 can do the mentoring. He has already wrote the demux and has worked for matroska, so knows it very well.

WinCE port

The WinCE port has been broken for some time now before 0.8.4. Repairing the builds of all the external libraries build and making VLC build and work should take some time :D

Then a rework of the interface should happen.

Proposed mentor: djc.

threading/locking consistency/correctness checker

This project would create a threading/locking consistency/correctness checker, much like the Linux kernel has, but VLC is simpler as it does not have interrupts.

mentoring would be done by courmisch

GUI interfaces for the browsers plug-ins

This project focuses on adding interfaces to our browser plug-ins, in order to have, in the web pages embedded mode, buttons to control VLC media player as in WMP or Youtube player. These buttons need to be cross-platform and cross-browsers.

The second part of this project aims to provide a replacement for all preconfigured media players embedded in web pages, if possible.

For example, when a webpage asks for WMP embedded plugin, youtube player, quicktime player or any other, VLC would detect the stream and display it. This would mean less CPU needed than Flash based players...

This project may need to work in concert with some improvements on the cache handling module access.

The look of the interface should not be a problem (it can be added later on).

Proposed mentor: dionoea

Vista acceleration and DirectX improvements

Current versions of VLC media player have a lot of problems on Windows Vista (check the forums for specifics).

We need support for the new EVR (enhanced video renderer) in Windows Vista, and make it the default Video Output module for that OS.

See Windows Vista Video Pipeline Architecture And Implementation and DirectShow Improvements in Vista

Some rework and enhancements of the DirectX and Direct3D Video Output modules may also be necessary.

Proposed mentor: Quovodis

Mini Projects - More ideas

We have a more general page for ideas for Project in VLC media player, that could give you ideas: Mini_Projects.

Questions? Contact us?

If you need to contact us for any questions, you can:


The proposed mentors are:

  • courmisch,
  • dionoea,
  • djc
  • feepk,
  • Quovodis,
  • pdherbemont,
  • robUx4


  • jb
  • xtophe