Summer of Code
From AnnodexFoundation
Google is once again running its "Summer of Code" program, in which it pays for students to work on Open Source projects (see http://code.google.com/soc/studentfaq.html). We are now essentially setting up a pool of projects and a mentor (or two) for each project to propose to Google. If you have a project idea, add it here. Also, feel free to edit the existing ones if you see something missing - and in particular if you'd like to mentor one.
Project Ideas (draft)
1. CMML Subtitling
Mentor: Silvia Pfeiffer + Chris Chiu + ?
Aim: Currently, neither Annodex nor Theora files can carry subtitles in a well structured way. CMML can carry timed text, but is not particularly useful for subtitles yet, since it has no means of formatting its timed text. It has however always been planned to put that into CMML and provide a nice separation between formatting and structuring in the way that HTML separates formatting with style sheets from content. The aim of this project is to extend the existing Annodex work to allow this, also implementing support for the subtitling in existing media frameworks and media players.
Tasks:
- extend CMML specification to cover subtitling
- extend libcmml & libannodex to support that extension for encoding
- extend xine or gstreamer or vlc to display these subtitles for on-screen display
- extend a media player to display these subtitles, e.g. totem
- possibly extend the python and php bindings to include subtitles
2. Fix Annodex Firefox Plugin (AFE) for Linux
Mentor: Chris Chiu + ?
Aim: While the AFE currently works well on Windows, it is very unstable on Linux and on OS X. Most of the hard issues are to do with the use of vlc as the backend. But there are also some screen refresh issues with the XUL. The aim of this project is to make AFE more stable on Linux. This may include fixes to vlc or the use of alternate backends such as gstreamer or xine.
Tasks:
- debug AFE on ubuntu (or other distro of choice)
- fix displayed XUL interface
- fix vlc backend to not segfault regularly
- investigate alternate backends (gstreamer a possibility)
3. Include real-time annotations into flumotion
Aim: Annotations for audio-visual content can be created on the fly - e.g. at the recent Linux.conf.au, flumotion was used to stream and record the talks, while irc channels were being captured at the same time to allow the audience to provide comments and searchable annotations. This approach requires postprocessing that would not be necessary if flumotion could take an annotation stream as input and record it in conjunction with audio and video as an Annodex stream. The aim of this project is to implement such an extension to flumotion.
Mentor: ?
Tasks:
- create a means to author annotations real-time for flumotion, e.g. by hooking it up to irc or jabber
- extend flumotion to capture these annotations, multiplex them into the stream as CMML/Annodex and record them
4. Create a Graphical Annodexing Tool
Aim: Currently there is no GUI authoring tool for Linux for Annodex. The only existing means of creating Annodex/CMML are through the command-line or through cmmlwiki. The aim of this project is to create a theora and vorbis player that allows the creation of annotations, including possibly subtitles as defined in project 1 above.
Mentor: James Purser + ?
Tasks:
- create a GUI tool which allows you to create the cmml and mux the media and cmml
- the GUI needs to cover the creation of clips, annotations for clips, metadata for clips, hyperlinks for clips, and keyframes for clips (e.g. using mplayer for image extraction)
- should include import functionality for multiple audio-visual format (e.g. using ffmpeg2theora)
- should include import functionality for multiple annotation formats (using existing conversion scripts)
- should include search functionality for video and audio
Details on GSoC
Looking over the doco online, we have to get our application in to Google by the 1st May with the following information:
* A pool of project ideas for students to choose from, publicly published by the mentoring organization * Someone available to review student "blue-sky" proposals should the student not find something appealing in the organization's published ideas * Someone available to review the incoming student applications targeted to the organization and to decide which applications should be accepted * A person (or people) to monitor the progress of the students and to mentor them as their projects progress * A mentor ready to take over for the assigned mentor(s) in the event they are unable to continue providing guidance to the accepted student applicant, e.g. take a vacation, etc. * A written evaluation of each student developer, including how s/he worked with the group, whether s/he should be invited back should we do another Summer of Code, etc
So if anyone would like to volunteer for any of the above roles, or nominate a project they would like to oversee please step forward.
For more information about the mentoring process here's the google Mentoring FAQ: http://code.google.com/soc/mentorfaq.html
