Difference between revisions of "SoC 2010"

From VideoLAN Wiki
Jump to navigation Jump to search
m (Substitute Template:x264)
 
(86 intermediate revisions by 16 users not shown)
Line 1: Line 1:
 
'''Google Summer of Code 2010.'''
 
'''Google Summer of Code 2010.'''
  
This wiki page covers the attempt by the [[VideoLAN]] project to act as a mentoring organization for [http://code.google.com/soc/ Google Summer of Code], in order to improve {{VLC}} .
+
This wiki page covers the attempt by the [[VideoLAN]] project to act as a mentoring organization for [http://code.google.com/soc/ Google Summer of Code], in order to improve {{VLC}}, [[x264]], the H.264 video encoder, and VLMC. The accepted projects are seen on a [[SoC 2010 projects|separate page]].
  
  
 
== Introduction & Information ==
 
== Introduction & Information ==
  
This wiki page covers the attempt by the [[VideoLAN]] project to act as a mentoring organization for [http://code.google.com/soc/ Google Summer of Code], in order to improve {{VLC}} .
+
This wiki page covers the attempt by the [[VideoLAN]] project to act as a mentoring organization for [http://code.google.com/soc/ Google Summer of Code], in order to improve {{VLC}} and [[x264]], the H.264 video encoder.
  
 +
[[VideoLAN]] was a mentoring organization in [[SoC_2007|2007]], [[SoC_2008|2008]] and [[SoC_2009|2009]].
 +
 +
* This page list the ideas for VLC.
 +
* There is also a separate page for project ideas for [[x264]]: '''[[SoC x264 2010]]'''.
 +
 +
If you are a '''student''', please read [[SoC_2010_Rules|the rules and advice]].
  
 
=== VLC media player ===
 
=== VLC media player ===
Line 16: Line 22:
  
 
You can find more information on [http://en.wikipedia.org/wiki/VLC_media_player VLC on Wikipedia] or on this [[Main_Page|wiki]].
 
You can find more information on [http://en.wikipedia.org/wiki/VLC_media_player VLC on Wikipedia] or on this [[Main_Page|wiki]].
 +
 +
=== x264 ===
 +
[[x264]] is probably the most popular open source video compression software, used worldwide for applications such as web video, television broadcast, and Blu-ray authoring. It outclasses practically all commercial implementations both speed and compression-wise. While not actually part of VLC or ffmpeg, it is a major library used by both, licensed under the GPL. Due to its popularity in the commercial world (for example, Youtube and Facebook rely on it), many companies have offered bounties in the past for features and improvements that they found useful.
  
 
=== Summer of Code ===
 
=== Summer of Code ===
  
If selected and developed, SoC projects for VLC will be included in later releases.
+
If selected and developed, SoC projects for VLC will be included in later releases; SoC projects for x264 will be included in the main tree of the project.  
 +
 
 
All projects are covered by the GPL licence. (v2+)
 
All projects are covered by the GPL licence. (v2+)
  
=== Ideas for VLC ===
+
=== Ideas for VLC and VLMC ===
  
 
'''''Read this'''''
 
'''''Read this'''''
  
 
This page is split in three lists of ideas:
 
This page is split in three lists of ideas:
 +
 
# The ''main ideas'' are what seem to be ''key projects'' for VLC and should be more ''thrilling'' than the other ones; we have assigned a potential mentor to each of these.
 
# The ''main ideas'' are what seem to be ''key projects'' for VLC and should be more ''thrilling'' than the other ones; we have assigned a potential mentor to each of these.
 +
# Phonon ideas, for KDE/Phonon work.
 
# The other ideas are less detailed but could be good ideas too.
 
# The other ideas are less detailed but could be good ideas too.
# [[Mini_Projects]] has some ideas too.
+
# VLMC ideas
 +
# [[Mini_Projects]] are short-span projects which can be given as Qualification tasks or extended to be Full Summer of Code project.
  
 
* '''Original good ideas will be valued'''. Last year, half of the ideas were given by students.  We don't want to impose anything. This is free and Open Source software.
 
* '''Original good ideas will be valued'''. Last year, half of the ideas were given by students.  We don't want to impose anything. This is free and Open Source software.
Line 37: Line 50:
 
And on the IRC channel, you can have even more ideas.
 
And on the IRC channel, you can have even more ideas.
  
 +
===Ideas for x264===
 +
For x264 ideas, please see [[SoC x264 2010]].
  
== Main ideas ==
+
== Key VLC projects ==
 
 
=== Qt pimping ===
 
 
 
Improve Qt interface, used on linux and windows with use of Qt-Kinetic or plasma.
 
 
 
The basic, primary interface is reasonable but it could be improved in many ways. The (sub)menus and popups need a lot of (re)design, evaluation, Q&A, tinkering, and so on. For example, adding files is cumbersome and repeated adding even more so. Sorting and other displaying options in the playlist would be nice. Error reporting, presentation, and resolution needs improving. For example, import a few audio streams (one or more m3u/pls playlists, perhaps), try to use them, and see what happens when some urls are not available.
 
 
 
Try to borrow the best ideas from amarok, iTunes, WMP, winamp, freeamp and integrate them into VLC.
 
  
Look at other Qt applications or KDE applications.
+
=== Shader support for DirectX/OpenGL ===
 +
A lot of video post-processing such as RGB-YUV conversion can be accelerated by using GPU and Shaders. Implement support for this in the DirectX and OpenGL drivers for Windows and OpenGL for other platforms. (coding in C and custom shader creation).
  
* You need some Qt and C++ knowlegde and a lot of creativity.
+
''Proposed mentor: Fenrir''
  
''Proposed mentor: [[User:J-b|jb]]''
+
=== Rewrite Matroska demuxer ===
 +
This project is for advanced multimedia coders.
  
 +
If you are well introduced in muxers/demuxers and know pretty well how matroska is done, this is for you.
  
 +
You will very likely need to use an existing open source demuxer, for example the libavformat demuxer (written in C)
  
=== Assembly optimizations in VLC ===
+
If you are fast enough, the muxer side would be cool.
  
If you are fond of writing ASM and you are fluent in MMX/SSE2, there are many interesting things in VLC to speed up.
+
Code will be in ''C''.
* Profiling VLC.
 
* memcpy implementations in SSE* and MMX (see modules/misc/memcpy/fastmemcpy.h)
 
* video filters ASM speedups (see modules/video_filter/blend.c)
 
* audio filters ASM speedups (see modules/audio_filter/equalizer.c)
 
* Porting other ASM video filters to VLC.
 
  
This project needs some good ASM knowledge and good C experience.
+
''Proposed mentor: Fenrir''
 
 
* Stuff to read: http://www.agner.org/optimize/
 
 
 
''Proposed mentor: [[User:J-b|jb]]''
 
  
 
=== Audio Filters ===
 
=== Audio Filters ===
Line 78: Line 80:
 
* to work on tracks mixing,
 
* to work on tracks mixing,
 
* to create scriptable new audio filters in lua and enable users to create whatever audio filtering function they want in a Lua script.
 
* to create scriptable new audio filters in lua and enable users to create whatever audio filtering function they want in a Lua script.
 +
* LADSPA or other libraries integration will be interesting.
  
 
This project needs some good audio knowledge and good C experience.
 
This project needs some good audio knowledge and good C experience.
Line 83: Line 86:
 
''Proposed mentor: [[User:Geal|geal]]''
 
''Proposed mentor: [[User:Geal|geal]]''
  
=== Test Suite ===
+
 
 +
=== VLC Test Suite ===
 
This project aims at making automatic tests to improve VLC quality.
 
This project aims at making automatic tests to improve VLC quality.
  
Line 96: Line 100:
 
''Proposed mentor: Rémi''
 
''Proposed mentor: Rémi''
  
=== Media Library work ===
+
=== VLC Personnal Cloud Project 2.0 ===
This project is about working on the media library in SQL.
 
  
Modern media applications deal with a lot of huge quantity of data, and it can be difficult to deal with it.
+
The personal cloud project is a simple project to allow people to play their media files anywhere in the world.
This can mean:
 
* Smart Folders
 
* Smart Playlists
 
* IMDB integration
 
* Integrated and saved bookmarks
 
* MetaData searching and editing
 
* Voting and external data integration
 
  
See http://jpeg.dinauz.org/VideoLAN/gsoc/
+
Through the http interface of VLC, a user can:
 +
* list the medias from the Media Library,
 +
* play those medias,
 +
* those medias get transcoded and streamed in:
 +
** Flash
 +
** Silverlight
 +
** iPhone format
 +
** Android format
 +
** html5
 +
** A VLC webplugin
  
Proposed mentor: ''jpeg''
+
A good example of the aim is http://www.vodobox.c.la/
  
 +
This project has to work on the configuration and NAT traversal.
  
=== Services Discovery, like Jamendo integration ===
+
This projects needs knowledge in HTML and JS; it might require C coding.
  
Jamendo, Last.fm and other online music and video services would be great to integrate into VLC.
+
''Proposed mentor: dionoea''
  
This project deals with this integration.
+
=== Enhanced DVD Audio support ===
  
* This needs lua, C and C++ programming skills.
+
This project is quite simple, it speaks about supporting DVD-Audio.
  
''Proposed mentor: ?''
+
VLC already decodes .aob files, but doesn't handle the DVD-Audio extensions, nor the decryption.
  
=== Flash Streaming ===
+
The student should be passionate about Audio and have already one DVD-Audio Disc.
  
RTMP implementation for streaming to Flash10.
+
This project is a code project, require knowledge of C.
  
 
''Proposed mentor: jpsaman''
 
''Proposed mentor: jpsaman''
  
=== Qt embedded interface ===
+
=== Interface for VLC on Mobile phones ===
  
VLC uses Qt for its main interfaces on desktop systems. It would be nice to have the same type of UI on systems like Maemo or Windows Mobile.
+
VLC uses Qt for its main interfaces on desktop systems.
 +
 
 +
It would be nice to have an UI for embedded systems like Windows Mobile.
 +
 
 +
Using Qt or EFL would be a good idea.
 +
 
 +
This project is a code project, require knowledge of C or C++.
  
 
''Proposed mentor: ILEoo''
 
''Proposed mentor: ILEoo''
  
== More Ideas ==
+
=== Blu-ray enhancements ===
  
=== QTKit access ===
+
We need Menu/Navigation support.
Build a QTKit-based access module for OS X (allowing input from USB / FireWire cameras, audio devices, camcorders, tape recorders [, ...your favourite here] ). This access module will also need a nice component GUI.
+
VLC Currently supports Bluray chapter playback but still needs menu support.
  
This project requires knowlege of C and preferably also Objective C, and interest in video/audio capture devices. Obviously, the student is required to own at a least a Mac with a (embedded) webcam and an audio input facility for development. Knowledge of the QuickTime APIs and previous experience with Cocoa are strong pluses.
+
BD-Live and BD-Java support would be interesting.
  
''Proposed mentor: thedj''
+
Proposed mentor: jb
 +
 +
=== RTMPdump ===
  
===  GUI interfaces for the browsers plug-ins ===
+
Integrate the RTMPdump library to play rtmp and rtmpe streams.
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}} as in WMP or Youtube player. These buttons need to be cross-platform and cross-browsers. A right-click context menu with basic commands might be a nice way to get started.
 
  
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.
+
''Proposed mentor: jpsaman or ivoire''
  
This project may need to work in concert with some improvements on the cache handling module access.
+
=== UPNP DLNA Server and Client ===
  
The look of the interface should not be a problem. There is a proof of concept and a better design can be added later on.
+
Provide SD module for DLNA shares being compliant with DLNA specification as well as software (say, mediatomb, xbmc, etc) and hardware implementations.
  
''Proposed mentor: jpsaman and jpd''
+
Provide DLNA plugin for DLNA server compliant with opensource (xbmc, djmount, etc) and proprietary (PS3, xbox360, etc) DLNA clients.
  
=== OpenMAX AL bindings for LibVLC ===
+
Be smart enough to provide "presets" for known DLNA media clients with limited features (PS3, for instance) which require additional quirks or hacks or items to be transcoded.
  
OpenMAX is a portable framework for handling audio, video and pictures.
+
''Proposed mentor: ivoire or Meuuh''
  
OpenMAX AL is an API designed to create and control media players, and make them communicate with devices such as audio inputs and outputs, cameras, LEDs, etc. In this project, the student would integrate LibVLC, the VLC framework with OpenMAX.
+
=== Assembly optimizations in VLC ===
  
''Proposed mentor: Rémi''
+
If you are fond of writing ASM and you are fluent in MMX/SSE2/SSE4, there are many interesting things in VLC to speed up.
 +
* Profiling VLC.
 +
* memcpy implementations in SSE* and MMX (see modules/misc/memcpy/fastmemcpy.h)
 +
* video filters ASM speedups (see modules/video_filter/blend.c)
 +
* audio filters ASM speedups (see modules/audio_filter/equalizer.c)
 +
* Porting other ASM video filters to VLC.
 +
 
 +
This project needs some good ASM knowledge and good C experience.
 +
 
 +
* Stuff to read: http://www.agner.org/optimize/
 +
 
 +
''Proposed mentor: [[User:J-b|jb]]''
 +
 
 +
=== Set of lua extensions ===
 +
 
 +
With VLC 1.1, extensions can be written for VLC in lua.
 +
 
 +
This project deals with writing many new extensions (between 20 and 30) during the summer for the most interesting features we can find on the Net.
 +
 
 +
''Proposed mentor: [[User:Jpeg|jpeg]]''
 +
 
 +
== Phonon ideas ==
 +
 
 +
=== High-Level Capture API for Phonon (read: Webcam Support) ===
 +
Phonon is a multimedia abstraction layer, developed by the KDE project.
 +
 
 +
It features multiple backends, including VLC.
 +
 
 +
The goal of this project would be to create an API to allow Phonon application to display and access input devices, like webcams. The API would then be implemented in phonon-vlc and other backends, such as phonon-gst, as time permits.
 +
 
 +
''Proposed mentor: Ian Monroe''
 +
 
 +
=== Phonon-VLC improvements and test ===
 +
 
 +
This project would be about improving the long-term quality of the Phonon-VLC backend:
 +
* Improving VLC Phonon backend, implementing lacking API,
 +
* Fixing the Phonon CTest-based tests,
 +
* Implement more tests,
 +
* Run the tests on windows,
 +
* Implement cool features like DVD-Audio or Blu-Ray support (should be pretty easy),
 +
 
 +
''Proposed Mentor: Sandsmark (if not a student himself)''
 +
 
 +
=== Phonon API for low-level PCM I/O ===
 +
 
 +
This would be about implementing API for low-level PCM I/O in Phonon, and support in one or more backends (at least Phonon-VLC):
  
=== DXVA Integration ===
+
''Proposed mentor: Ian Monroe''
Since Windows Vista, some nice APIs are available, and you can do fun things like GPU-based decoding. Some good work could be done here.
 
  
''Proposed mentor: geal''
+
=== Phonon API for implementing effects in applications ===
  
=== Linux GPU Acceleration Integration ===
+
This would be about fleshing out an API for letting applications make their own effects (get data out, and push data back). Might be useful to use AudioDataOutput.
Some nice APIs are available like VAAPI and like XvBA, and you can do fun things like GPU-based decoding.
 
  
''Proposed mentor: jpsaman''
+
''Proposed mentor: Ian Monroe''
  
=== Automated threading error detection ===
+
== VLMC (VideoLAN Movie Creator) ideas ==
VLC is heavily multithreaded.
 
  
This project would involve extending the VLC threading APIs to provide better run-time consistency checks, and possibly proof of correctness.
+
=== Add Jack support ===
  
This could be similar to the lock consistency checking in the Linux kernel, albeit more simple - VLC does not have to deal with interruptions neither atomic operation and has fewer thread and synchronisation constructs.
+
This is an often request features.
  
This project requires working knowledge of the C programming language and POSIX threads.
+
It would be nice to be abble to export VLMC sound output to another program, or reading from another program output instead or reading from an audio file.
  
''proposed mentor: ?''
+
This project includes core VLMC programming, to allow the selection of an audio input/output, as VLMC only supports file input, and doesn't really deals with output. Once this is done, it will require some GUI programming, to create some configuration widgets.
  
=== Skins improvements ===
+
'' Proposed mentor: chouquette''
  
Better video output integration.
+
=== Adding custom widgets ===
  
Better skin support.
+
Many widgets are not good enough right now. Correcting those widgets, provide alternative widget so VLMC better fits with the video editing needs.
  
''Proposed mentor: ?''
+
Many widgets can be rewritten : Import, Library, Clip property... be creative !
 +
'' Proposed mentor: etix''
  
=== SVCD handling ===
+
=== Youtube integration ===
  
Make SVCD's work. Menu selection, navigation and hot spots.  
+
As VLC can read a Youtube input, so does VLMC. However, this is not implemented at this time.
 +
This project would consist in : importing media from youtube , allowing direct export to youtube, directly export to youtube, instead of a file.
  
''Proposed mentor: ?''
+
'' Proposed mentor: chouquette''
  
== Mini Projects - More ideas ==
+
== Supplementary ideas ==
  
 
This sections welcomes all '''Original''' ideas which can be implemented in a short span of time.However, We have a more general page for ideas for Project in {{VLC}}, that could give you ideas: [[Mini_Projects]].
 
This sections welcomes all '''Original''' ideas which can be implemented in a short span of time.However, We have a more general page for ideas for Project in {{VLC}}, that could give you ideas: [[Mini_Projects]].
 +
 +
=== Add Proxy Support ===
 +
 +
Add a central Proxy Server option for all the HTTP operations performed by vlc.This project will need to add a UI component to VLC and then converting the way VLC interacts with Various Websites like last.fm or imdb.com
 +
 +
=== VLC Taskbar/Toolbar Mode ===
 +
 +
To Develop a Toolbar mode which shows the sound current sound track information,and avails basic control to users eliminating the hassle of swtching between UIs.This mode is already available in many Media players.VLC is lacking this feature currently.
 +
 +
''Proposed mentor: [[User:J-b|jb]]''
 +
Proposed by : pk
 +
 +
=== Spotify integration ===
 +
 +
Develop a way to decode spotify streams.
 +
 +
=== Windows 7 integration ===
 +
 +
Use taskbar and tasklist cool feature.
 +
 +
Integrate with DirectWrite and Direct2D
 +
 +
=== Symbian port ===
 +
 +
Port VLC to S60 platform
 +
 +
=== SVCD/VCD improvements ===
 +
 +
Menus and such  needs to be improvements and fixed.
  
 
== Questions? Contact us? ==
 
== Questions? Contact us? ==
Line 217: Line 303:
 
* dionoea
 
* dionoea
 
* jpsaman
 
* jpsaman
* jpd
+
* fenrir
 +
* ivoire
 +
* funman (backup)
  
 
=== Administrators ===
 
=== Administrators ===
Line 223: Line 311:
 
* xtophe
 
* xtophe
  
[[Category:Activities]] [[Category:SoC]]
+
{{GSoC}}
 +
 
 +
[[Category:SoC 2010 Project|*]]

Latest revision as of 05:16, 23 March 2019

Google Summer of Code 2010.

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, x264, the H.264 video encoder, and VLMC. The accepted projects are seen on a separate page.


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 and x264, the H.264 video encoder.

VideoLAN was a mentoring organization in 2007, 2008 and 2009.

  • This page list the ideas for VLC.
  • There is also a separate page for project ideas for x264: SoC x264 2010.

If you are a student, please read the rules and advice.

VLC media player

VLC media player is a cross-platform multimedia player, encoder and streamer 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 5 millions from the main website and that's not including third-party distributions (Linux)!

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

x264

x264 is probably the most popular open source video compression software, used worldwide for applications such as web video, television broadcast, and Blu-ray authoring. It outclasses practically all commercial implementations both speed and compression-wise. While not actually part of VLC or ffmpeg, it is a major library used by both, licensed under the GPL. Due to its popularity in the commercial world (for example, Youtube and Facebook rely on it), many companies have offered bounties in the past for features and improvements that they found useful.

Summer of Code

If selected and developed, SoC projects for VLC will be included in later releases; SoC projects for x264 will be included in the main tree of the project.

All projects are covered by the GPL licence. (v2+)

Ideas for VLC and VLMC

Read this

This page is split in three lists of ideas:

  1. The main ideas are what seem to be key projects for VLC and should be more thrilling than the other ones; we have assigned a potential mentor to each of these.
  2. Phonon ideas, for KDE/Phonon work.
  3. The other ideas are less detailed but could be good ideas too.
  4. VLMC ideas
  5. Mini_Projects are short-span projects which can be given as Qualification tasks or extended to be Full Summer of Code project.
  • Original good ideas will be valued. Last year, half of the ideas were given by students. We don't want to impose anything. This is free and Open Source software.

If you don't want to apply for SoC but want other ideas to develop on, check the Mini Projects page!

And on the IRC channel, you can have even more ideas.

Ideas for x264

For x264 ideas, please see SoC x264 2010.

Key VLC projects

Shader support for DirectX/OpenGL

A lot of video post-processing such as RGB-YUV conversion can be accelerated by using GPU and Shaders. Implement support for this in the DirectX and OpenGL drivers for Windows and OpenGL for other platforms. (coding in C and custom shader creation).

Proposed mentor: Fenrir

Rewrite Matroska demuxer

This project is for advanced multimedia coders.

If you are well introduced in muxers/demuxers and know pretty well how matroska is done, this is for you.

You will very likely need to use an existing open source demuxer, for example the libavformat demuxer (written in C)

If you are fast enough, the muxer side would be cool.

Code will be in C.

Proposed mentor: Fenrir

Audio Filters

We are looking for a skilled audiophile that knows a lot about audio theory and practice:

  • to create or implement new algorithms, like SRS WoW or other 3D effects
  • to work on channels mixing,
  • to work on tracks mixing,
  • to create scriptable new audio filters in lua and enable users to create whatever audio filtering function they want in a Lua script.
  • LADSPA or other libraries integration will be interesting.

This project needs some good audio knowledge and good C experience.

Proposed mentor: geal


VLC Test Suite

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

  • Write a series of tests for vlc-internal
  • Integrate a framework for automated plugins testing with the automake build system
  • Automate the different codec playback/mux/etc tests
  • Automate the subtitles tests
  • Write tests for the different bindings: Mac OS X Framework/Python Bindings... etc.

This project is a code project, require good knowledge of C

Proposed mentor: Rémi

VLC Personnal Cloud Project 2.0

The personal cloud project is a simple project to allow people to play their media files anywhere in the world.

Through the http interface of VLC, a user can:

  • list the medias from the Media Library,
  • play those medias,
  • those medias get transcoded and streamed in:
    • Flash
    • Silverlight
    • iPhone format
    • Android format
    • html5
    • A VLC webplugin

A good example of the aim is http://www.vodobox.c.la/

This project has to work on the configuration and NAT traversal.

This projects needs knowledge in HTML and JS; it might require C coding.

Proposed mentor: dionoea

Enhanced DVD Audio support

This project is quite simple, it speaks about supporting DVD-Audio.

VLC already decodes .aob files, but doesn't handle the DVD-Audio extensions, nor the decryption.

The student should be passionate about Audio and have already one DVD-Audio Disc.

This project is a code project, require knowledge of C.

Proposed mentor: jpsaman

Interface for VLC on Mobile phones

VLC uses Qt for its main interfaces on desktop systems.

It would be nice to have an UI for embedded systems like Windows Mobile.

Using Qt or EFL would be a good idea.

This project is a code project, require knowledge of C or C++.

Proposed mentor: ILEoo

Blu-ray enhancements

We need Menu/Navigation support. VLC Currently supports Bluray chapter playback but still needs menu support.

BD-Live and BD-Java support would be interesting.

Proposed mentor: jb

RTMPdump

Integrate the RTMPdump library to play rtmp and rtmpe streams.

Proposed mentor: jpsaman or ivoire

UPNP DLNA Server and Client

Provide SD module for DLNA shares being compliant with DLNA specification as well as software (say, mediatomb, xbmc, etc) and hardware implementations.

Provide DLNA plugin for DLNA server compliant with opensource (xbmc, djmount, etc) and proprietary (PS3, xbox360, etc) DLNA clients.

Be smart enough to provide "presets" for known DLNA media clients with limited features (PS3, for instance) which require additional quirks or hacks or items to be transcoded.

Proposed mentor: ivoire or Meuuh

Assembly optimizations in VLC

If you are fond of writing ASM and you are fluent in MMX/SSE2/SSE4, there are many interesting things in VLC to speed up.

  • Profiling VLC.
  • memcpy implementations in SSE* and MMX (see modules/misc/memcpy/fastmemcpy.h)
  • video filters ASM speedups (see modules/video_filter/blend.c)
  • audio filters ASM speedups (see modules/audio_filter/equalizer.c)
  • Porting other ASM video filters to VLC.

This project needs some good ASM knowledge and good C experience.

Proposed mentor: jb

Set of lua extensions

With VLC 1.1, extensions can be written for VLC in lua.

This project deals with writing many new extensions (between 20 and 30) during the summer for the most interesting features we can find on the Net.

Proposed mentor: jpeg

Phonon ideas

High-Level Capture API for Phonon (read: Webcam Support)

Phonon is a multimedia abstraction layer, developed by the KDE project.

It features multiple backends, including VLC.

The goal of this project would be to create an API to allow Phonon application to display and access input devices, like webcams. The API would then be implemented in phonon-vlc and other backends, such as phonon-gst, as time permits.

Proposed mentor: Ian Monroe

Phonon-VLC improvements and test

This project would be about improving the long-term quality of the Phonon-VLC backend:

  • Improving VLC Phonon backend, implementing lacking API,
  • Fixing the Phonon CTest-based tests,
  • Implement more tests,
  • Run the tests on windows,
  • Implement cool features like DVD-Audio or Blu-Ray support (should be pretty easy),

Proposed Mentor: Sandsmark (if not a student himself)

Phonon API for low-level PCM I/O

This would be about implementing API for low-level PCM I/O in Phonon, and support in one or more backends (at least Phonon-VLC):

Proposed mentor: Ian Monroe

Phonon API for implementing effects in applications

This would be about fleshing out an API for letting applications make their own effects (get data out, and push data back). Might be useful to use AudioDataOutput.

Proposed mentor: Ian Monroe

VLMC (VideoLAN Movie Creator) ideas

Add Jack support

This is an often request features.

It would be nice to be abble to export VLMC sound output to another program, or reading from another program output instead or reading from an audio file.

This project includes core VLMC programming, to allow the selection of an audio input/output, as VLMC only supports file input, and doesn't really deals with output. Once this is done, it will require some GUI programming, to create some configuration widgets.

Proposed mentor: chouquette

Adding custom widgets

Many widgets are not good enough right now. Correcting those widgets, provide alternative widget so VLMC better fits with the video editing needs.

Many widgets can be rewritten : Import, Library, Clip property... be creative ! Proposed mentor: etix

Youtube integration

As VLC can read a Youtube input, so does VLMC. However, this is not implemented at this time. This project would consist in : importing media from youtube , allowing direct export to youtube, directly export to youtube, instead of a file.

Proposed mentor: chouquette

Supplementary ideas

This sections welcomes all Original ideas which can be implemented in a short span of time.However, We have a more general page for ideas for Project in VLC media player, that could give you ideas: Mini_Projects.

Add Proxy Support

Add a central Proxy Server option for all the HTTP operations performed by vlc.This project will need to add a UI component to VLC and then converting the way VLC interacts with Various Websites like last.fm or imdb.com

VLC Taskbar/Toolbar Mode

To Develop a Toolbar mode which shows the sound current sound track information,and avails basic control to users eliminating the hassle of swtching between UIs.This mode is already available in many Media players.VLC is lacking this feature currently.

Proposed mentor: jb Proposed by : pk

Spotify integration

Develop a way to decode spotify streams.

Windows 7 integration

Use taskbar and tasklist cool feature.

Integrate with DirectWrite and Direct2D

Symbian port

Port VLC to S60 platform

SVCD/VCD improvements

Menus and such needs to be improvements and fixed.

Questions? Contact us?

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

Mentors

The proposed mentors are:

  • jpeg
  • remi
  • xtophe
  • jb
  • dionoea
  • jpsaman
  • fenrir
  • ivoire
  • funman (backup)

Administrators

  • jb
  • xtophe


VideoLAN Google Summer of Code (GSoC/SoC) mentoring projects
20072008200920102011 (GCi 2011SOCIS x264 2011)20122013201620172018201920202021202220232024