Difference between revisions of "SoC 2007"
m (→WinCE port)
|Line 116:||Line 116:|
=== WinCE port ===
=== WinCE port ===
=== Mini Projects - More ideas ===
=== Mini Projects - More ideas ===
Revision as of 18:05, 8 March 2007
Reflexions for Google Summer of Code applications.
- 1 Introduction & Informations
- 2 Main ideas
- 3 Other Ideas SoC 2007
- 4 Questions? Contact us?
Introduction & Informations
VLC media player
VLC media player is a Multimedia player, encoder and streamer application, that is platform independant. It is one of the most successful open-source projects without any professional structure underneath.
VLC media player is downloaded at an approximate rate of 4 millions every month from the main website (does not include unofficial mirrors and packaged distribution (linux)), which means about 30 million people have downloaded VLC 0.8.5 from the main website!
Summer of Code
We would like to be a mentoring organisation (mentors on SoC Website).
If selected and developed, SoC ideas will be included in VLC media player 0.9.1, under the GPL licence. 0.9.0 which should be the next version of VLC should be out before the summer.
We (the VideoLAN team, and jb, the writer of this page) have split this page in two idea lists:
- The first ideas are the ones we would like to focus on, and seem to be key projects for VLC and a lot more fun than the others; we have affected potential mentors to these projects.
- and other ones that are less detailed but could be good ideas too.
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, check the Mini Projects page!
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: Quovodis.
This project is easy to describe, it would provide a fullscreen controller for Linux/Unix and Windows, as VLC media player already has on MacOS 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...)
Proposed mentor: Not defined yet
This project would rework the subtitle infrastructure and freetype module in order to read more subtitles:
- support bold, italic, underline, RGB colors, size changes and font changes for a whole line or part of one line, (partial now)
- support for the subtitles HTML tags, and add all the most used subtitles types that are not yet in, (almost complete now)
- support for advanced SSA/ASS rendering using libass or asa or any other mean, (not existing today)
- detecting overlap of two subtitle pictures and moving them so that this is less annoying,
- capability of displaying subtitles with no video enabled for audio books,
- ease the automatic extraction to a filebased format of subtitles. These subtitles can come from videos used in different formats (DVB, line 23...)
Optional related work:
- capability of moving the subtitles in the picture (freetype renderer),
- support for Karaoke subtitles ( :D )
Proposed mentor: Dnumgis
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.
Some rework and enhancements of the DirectX and Direct3D Video Output modules may also be necessary.
Proposed mentor: Quovodis
MacOS X and Leopard
There are a few MacOS X specific projects, especially for Leopard (Mac OS X 10.5)
- Creation a VLC media player framework that can be used by both VLC.app and VLCplugin.bundle to integrate better with other Mac applications
- Adapt and use Leopard enhancements in VLC media player: QTKit Capture API, Resolution independence, iChat Theatre, ...
Proposed mentor : TheDJ
RTSP / Sout (Name to be changed)
The VLC RTSP implementation is not perfect but is very important to be a true VoD and streaming solution.
- TCP framing and RTSP interleaving for our RTSP VLM server
- HTTP tunneling for our RTSP server
- RTCP usage
- Improved accounting options for our server (per asset accounting)
- Rework RTP packetizers of VLM/Sout
- Profiling and performance improving of the stream output (mostly HTTP/RTSP/RTP)
Proposed mentor: jpsaman
Other Ideas SoC 2007
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.
VLM Schedule rework
VLM is under rework by fenrir on these days. But a rework of our scheduler and recorder could be an interesting project.
The WinCE port has been broken for some time now before 0.8.4. Reparing 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.
Mini Projects - More ideas
Questions? Contact us?
If you need to contact us for any questions, you can: