Difference between revisions of "SoC 2007"

From VideoLAN Wiki
Jump to navigation Jump to search
 
(54 intermediate revisions by 8 users not shown)
Line 1: Line 1:
Reflexions for Google Summer of Code applications.
+
Google Summer of Code 2007.
 +
 
 +
''VideoLAN is a mentoring organization — List of accepted projects can be found [[SoC 2007 projects|here]]''
  
 
== Introduction & Informations ==
 
== Introduction & Informations ==
  
This wiki page deals with [[VideoLAN]] attempt to be a mentoring organisation for [http://code.google.com/soc/ Google Summer of Code]
+
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}}.
to improve {{VLC}}.
+
 
 +
We are now (15 March, 2007), an official mentoring organization!
  
 
=== VLC media player ===
 
=== VLC media player ===
{{VLC}} is a Multimedia player, encoder and streamer platform independant application.
+
{{VLC}} is a cross-platform Multimedia player, and encoding and streaming application.
It is one of the best succesfull open-source project without any profesional structure underneath.
+
It is one of the most successful open-source projects without any professional structure underneath.
  
{{VLC}} is downloaded at an approximate rate of 4 millions every month from the main website (does not include unofficial mirrors and package distribution.
+
{{VLC}} 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 have more information on [http://en.wikipedia.org/wiki/VLC_media_player 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]].
  
 
=== Summer of Code ===
 
=== Summer of Code ===
We would like to be a mentoring organisation ([http://code.google.com/support/bin/answer.py?answer=60303&topic=10727 mentors on SoC Website]).
+
We are now a mentoring organisation ([http://code.google.com/support/bin/answer.py?answer=60303&topic=10727 mentors on SoC Website]).
  
If selected and developed, SoC ideas will be included in {{VLC}} 0.9.1, under the GPL licence. 0.9.0, next version of VLC should be out before the summer.
+
If selected and developed, SoC ideas will be included in the VLC 0.9.1 release, and covered by the GPL licence. 0.9.0, our upcoming release, should be out before the summer.
  
 
=== Ideas ===
 
=== Ideas ===
 
'''Read this'''
 
'''Read this'''
We (the VideoLAN team, and [[User:J-b|jb], the writer of this page) have architectured this page in two main lists of idea. The ''first ones'' are the one we would like to focus on, and seems key projects for VLC and a lot more ''fun'' than the others; and other ones that are less detailed but could be good ideas too.
+
 
 +
We (the VideoLAN team, and [[User:J-b|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 detailled but could be good ideas too.
  
 
We don't want to impose anything. This is free and Open Source software.
 
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!
+
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 ==
 +
 
 +
===  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}} as in WMP or Youtube player. These buttons need to be cross-platform and cross-browsers.
  
== Proposed ones ==
+
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...
  
===  GUI intfs for the browsers plugins ===
+
This project may need to work in concert with some improvements on the cache handling module access.
This project is about adding interfaces possibilities to the browsers plugin in order to have a correct embedded mode inside webpages, with buttons to control VLC.  
 
  
The second part of this project is to provide a replacement for all preconfigured media players embedded in webpages.
+
The look of the interface should not be a problem (it can be added later on).
Instead of having youtube player, windows media player, quicktime player or any other, VLC can take their place.
 
A better suited cache handling module access is also needed.
 
  
Proposed mentor: Quovodis.
+
''Proposed mentor: Quovodis.''
  
 
=== Fullscreen Controller ===
 
=== Fullscreen Controller ===
This project would provide a fullscreen controller for Linux/Unix and Windows, as {{VLC}} already has on MacOS X.
+
This project is easy to describe, it would provide a fullscreen controller for Linux/Unix and Windows, as {{VLC}} 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.
  
It should be draggable, clickable and support the classic buttons.
+
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: Dnumgis
+
''Proposed mentor: Not defined yet''
  
 
=== Subtitle support ===
 
=== Subtitle support ===
  
This project would rework the subtitle infrastructure and freetype module in order to read more subtitles:
+
This project would work on the subtitle infrastructure and freetype module in order to read more types of subtitles:
  
* support for SSA/ASS using libass or asa,
+
* support for advanced SSA/ASS rendering using libass or asa or any other mean,  
* support bold, italic, underline, RGB colors, size changes and font changes for a whole line or part of one line.
+
* support bold, italic, underline, RGB colors, size changes and font changes for a whole line or part of one line, (not all of these are supported now),
* support for the HTML tags, and add all the useful subtitles types that are not yet in.
+
* support for the subtitles HTML tags, and add all the most used subtitles types that are not yet in,  
* capability of moving the subtitles in the picture,  
+
* detecting overlap of two subtitle pictures and moving them so that this is less annoying,
* capability of displaying two different subtitles, with no overlap,
 
 
* capability of displaying subtitles with no video enabled for audio books,
 
* capability of displaying subtitles with no video enabled for audio books,
* support for Karaoke subtitles,
+
* ease the automatic extraction to a filebased format of subtitles. These subtitles can come from videos used in different formats (DVB, line 23...),
* ease the automatic extraction of subtitles.
+
 
 +
Optional related work:
 +
* capability of moving the subtitles in the picture (freetype renderer),
 +
* support for Karaoke subtitles ( :D )
 +
 
 +
''Proposed mentor: Dnumgis'' (Backup dionoea)
  
 
=== Vista acceleration and DirectX improvements ===
 
=== Vista acceleration and DirectX improvements ===
Support for EVR for rendering in windows Vista and make it default for Vista.
+
Current versions of {{VLC}} have a lot of problems on Windows Vista (check the forums for specifics).
http://download.microsoft.com/download/5/b/9/5b97017b-e28a-4bae-ba48-174cf47d23cd/MED134_WH06.ppt
 
http://msdn2.microsoft.com/en-us/library/ms788119.aspx
 
  
Rework and ameliorations of DirectX Video Output modules for older versions of windows and/or DirectX.
+
We need support for the new EVR (enhanced video renderer) in Windows Vista, and make it the default Video Output module for that OS.
  
Proposed mentor: Quovodis
+
See [http://download.microsoft.com/download/5/b/9/5b97017b-e28a-4bae-ba48-174cf47d23cd/MED134_WH06.ppt Windows Vista Video Pipeline Architecture And Implementation] and [http://msdn2.microsoft.com/en-us/library/ms788119.aspx DirectShow Improvements in Vista]
  
=== MacOS X ===
+
Some rework and enhancements of the DirectX and Direct3D Video Output modules may also be necessary.
Create a VLC framework that can be used by both VLC.app and VLCplugin.bundle.
 
Adapt and use Leopard enhancement in VLC
 
  
Proposed mentor : TheDJ
+
''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}} 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}}: QTKit Capture API, Resolution independence, iChat Theatre, ...
 +
 +
''Proposed mentor : TheDJ'' (Backup feepk)
 +
 +
=== RTSP streaming server ===
 +
The RTSP server implementation in VLC is inefficient and lacks support for traversal mechanisms. Possible improvements include:
 +
 +
* Support for RTSP interleaved RTP media
 +
* RTSP over HTTP tunneling
 +
* Per-asset accounting options
 +
* Profiling and performance improvements of the RTSP, HTTP and RTP server code
 +
* (RTCP support on the VLC '''server side''')
 +
 +
''Proposed mentor: jpsaman'' (backup Courmisch)
  
 
== Other Ideas SoC 2007 ==
 
== Other Ideas SoC 2007 ==
  
=== GUI intfs for the mozilla plugins ===
+
=== Matroska (mkv) muxing ===
  
=== BDA Drivers ===
+
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.
and TV stuffs for windows
 
  
=== Subtitles support ===
+
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.
SSA, freetype, whatever
 
  
Preferrably incorporating either the libass (http://sourceforge.net/projects/libass/) or asa (http://asa.diac24.net/Main_Page) libraries instead of writing our own.
+
robUx4 can do the mentoring. He has already wrote the demux and has worked for matroska, so knows it very well.
  
=== Fullscreen Controller ===
+
=== VLM Schedule and recording ===
 +
VLM is under rework by fenrir on these days. But some work of our scheduler and recorder might be an interesting and needed project to improve recording  with VLC.
  
=== RTCP support ===  
+
=== WinCE port ===
 
+
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
=== Vista acceleration support ===
 
  
=== Vout Rework (lol) ===
+
Then a rework of the interface should happen.
  
=== Working skins2 support on OSX ===
+
=== Phonon Back-End ===
  
=== OSX Leopard support ===
+
KDE4 will be out with a new framework for multimedia, this year. Using {{VLC}} as a back-end for phonon would be great!
especially: QTKit Capture API, Resolution independence, iChat Theatre
 
  
=== Mac OS X Framework ===
+
''Proposed mentor: Courmisch'' (unless someone feel easier with this, jb? thresh? or...?)
Create a VLC framework that can be used by both VLC.app and VLCplugin.bundle. ([https://trac.videolan.org/vlc/ticket/739 Trac Ticket #739])
 
  
=== VLM Schedule rework ===
+
=== Mini Projects - More ideas ===
  
=== WinCE port ===
+
We have a more general page for ideas for Project in {{VLC}}, that could give you ideas: [[Mini_Projects]].
  
=== Matroska (mkv) muxing ===
+
== Questions? Contact us? ==
 +
If you need to contact us for any questions, you can:
 +
* use this [[Talk:SoC_2007| Talk page]],
 +
* use the [http://www.videolan.org/developers/lists.html vlc-devel] mailing list,
 +
* come on IRC irc://irc.videolan.org #videolan
 +
* contact one of the mentors or the backup mentors,
 +
* or contact [[User:J-b| Jean-Baptiste Kempf]]
  
robUx4 can do the mentoring. He already wrote the demux and knows mkv really well. Sounds like a nice SoC subject.
+
=== Mentors ===
http://forum.videolan.org/viewtopic.php?t=33015
+
The proposed mentors are:
 +
* Quovodis,
 +
* thedj,
 +
* jpsaman,
 +
* Dnumgis,
 +
* robUx4 (if needed)
  
=== Hint MP4/MOV Files ===
+
With backups:
 +
* dionoea,
 +
* feepk,
  
Add video and audio hint tracks as the output file is muxed. Resulting files can be streamed from RTSP server with trickplay, like DSS/QTSS. Probably requires use of GPAC libraries.
+
=== Administrators ===
 +
* jb
 +
* xtophe
  
=== Extract Subtitles ===
+
{{GSoC}}
  
It would be great to have an easy way to extract subtitles from all
+
[[Category:SoC 2007 Project|*]]
the types of embedding used in different formats of video streams.
 
DVB, line 23, etc.  Google could be interested because it's a really
 
hard, but discrete task. And who wouldn't like search google videos
 
with text.
 

Latest revision as of 06:24, 5 February 2019

Google Summer of Code 2007.

VideoLAN is a mentoring organization — List of accepted projects can be found here

Introduction & Informations

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.

We are now (15 March, 2007), an official mentoring organization!

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

We are now a mentoring organisation (mentors on SoC Website).

If selected and developed, SoC ideas will be included in the VLC 0.9.1 release, and covered by the GPL licence. 0.9.0, our upcoming release, should be out before the summer.

Ideas

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 detailled 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 to develop on, check the Mini Projects page! And on IRC channel, you can have even more ideas.

Main ideas

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.

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

Subtitle support

This project would work on the subtitle infrastructure and freetype module in order to read more types of subtitles:

  • support for advanced SSA/ASS rendering using libass or asa or any other mean,
  • support bold, italic, underline, RGB colors, size changes and font changes for a whole line or part of one line, (not all of these are supported now),
  • support for the subtitles HTML tags, and add all the most used subtitles types that are not yet in,
  • 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 (Backup 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

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 (Backup feepk)

RTSP streaming server

The RTSP server implementation in VLC is inefficient and lacks support for traversal mechanisms. Possible improvements include:

  • Support for RTSP interleaved RTP media
  • RTSP over HTTP tunneling
  • Per-asset accounting options
  • Profiling and performance improvements of the RTSP, HTTP and RTP server code
  • (RTCP support on the VLC server side)

Proposed mentor: jpsaman (backup Courmisch)

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 and recording

VLM is under rework by fenrir on these days. But some work of our scheduler and recorder might be an interesting and needed project to improve recording with VLC.

WinCE port

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.

Phonon Back-End

KDE4 will be out with a new framework for multimedia, this year. Using VLC media player as a back-end for phonon would be great!

Proposed mentor: Courmisch (unless someone feel easier with this, jb? thresh? or...?)

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:

Mentors

The proposed mentors are:

  • Quovodis,
  • thedj,
  • jpsaman,
  • Dnumgis,
  • robUx4 (if needed)

With backups:

  • dionoea,
  • feepk,

Administrators

  • jb
  • xtophe


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