Difference between revisions of "SoC 2010"
Line 192: | Line 192: | ||
Provide SD module for DLNA shares being compliant with DLNA specification as well as software (say, mediatomb, xbmc, etc) and hardware implementations. | 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. | 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. | ||
== Mini Projects - More ideas == | == Mini Projects - More ideas == |
Revision as of 07:20, 2 March 2010
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 and x264, the H.264 video encoder.
Contents
- 1 Introduction & Information
- 2 Main ideas
- 2.1 Rewrite Matroska demuxer
- 2.2 Assembly optimizations in VLC
- 2.3 Audio Filters
- 2.4 High-Level Capture API for Phonon (read: Webcam Support)
- 2.5 Phonon-VLC improvements and test
- 2.6 Phonon API for low-level PCM I/O
- 2.7 Phonon API for implementing effects in applications
- 2.8 Test Suite
- 2.9 VLC Personnal Cloud Project 2.0
- 2.10 DVD Audio
- 2.11 Embedded interface
- 2.12 Blu-ray
- 2.13 RTMPdump
- 2.14 UPNP DLNA Server and Client
- 3 Mini Projects - More ideas
- 4 Questions? Contact us?
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.
- 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
Template:X264 is the most popular open source video compression software in the world, 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
Read this
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 other ideas are less detailed but could be good ideas too.
- 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.
Main ideas
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.
If you are fast enough, the muxer side would be cool.
Proposed mentor: Fenrir
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.
- Stuff to read: http://www.agner.org/optimize/
Proposed mentor: jb
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.
This project needs some good audio knowledge and good C experience.
Proposed mentor: geal
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
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 personnal 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
This project has to work on the configuration and NAT traversal. Proposed mentor: dionoea
DVD Audio
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.
Proposed mentor: jpsaman
Embedded interface
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.
Proposed mentor: ILEoo
Blu-ray
Menu/Navigation support. VLC Currently supports Bluray chapter playback but still needs menu support.
BD-Live support.
BD-Java support.
RTMPdump
Integrate the RTMPdump library to play rtmp and rtmpe streams.
Proposed mentor: jpsaman
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.
Mini Projects - More 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
Gmail Integration
To Develop a Combination of VLC Patch and a FireFox Extension , working together to set currently Playing track as Custom Message in Gmail Chat. The FireFox Extension will fetch the track Information from VLC instance running and will
- Either, generate an XmlHttpRequest to send the new status to Server.
- Or, Fire the Gmail Eventlisteners accordingly.
The project succesfully completed this way will be Platform Independent.Had it been done through Google Talk Client , it would have been available for Windows users only.Had it been done using VLC<->Google server interaction, it would have required User authentications ,Proxy Handling etc.
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
Questions? Contact us?
If you need to contact us for any questions, you can:
- use the vlc-devel mailing list,
- come on IRC irc://irc.videolan.org #videolan
- contact one of the mentors or the backup mentors,
- or contact Jean-Baptiste Kempf
Mentors
The proposed mentors are:
- jpeg
- remi
- xtophe
- jb
- dionoea
- jpsaman
- fenrir
- ivoire
Administrators
- jb
- xtophe