Summer of Code 2015: Difference between revisions
(→Streaming / Icecast: moved note to the bottom) |
|||
Line 33: | Line 33: | ||
==== Solution / Task ==== | ==== Solution / Task ==== | ||
The Icecast project should have its own reference configuration UI. It should expose all possible configuration options. It should have several detail levels to make it easier for users. Easy with core items, up to Expert exposing all items. Either from scratch or by adopting existing open source code. | The Icecast project should have its own reference configuration UI. It should expose all possible configuration options. It should have several detail levels to make it easier for users. ''Easy'' with only core items, up to ''Expert'' exposing all items. Either from scratch or by adopting existing open source code. | ||
[https://trac.xiph.org/ticket/2127 ticket on this topic] | [https://trac.xiph.org/ticket/2127 ticket on this topic] |
Revision as of 23:50, 18 January 2015
This is our ideas page for Google Summer of Code 2015 projects with Xiph.org.
Students please use the template at Summer of Code Applications when applying for a GSoC position.
Mentors please visit Summer of Code Mentoring and help us prepare our application as a mentoring organization.
General Ideas
Streaming / Icecast
- Configuration interface
- Improved video stream handling
- Improved stream meta-data handling
- Stream directory API
- Client side for stream directory API
In addition Trac contains some tickets tagged GSoC that can serve as starting points for developing project ideas.
Xiph.org in general
Detailed Project Descriptions
These ideas were suggested by various members of the developer community as projects that would be beneficial and which we feel we can mentor. Students should feel free to select one of these, develop a variation, or propose their own ideas. Here, ideally.
Icecast configuration interface
Icecast is very flexible in its configuration and uses XML to store configuration.
Problem / Intro
While we do our best to document things and have a solid default configuration, many users fail at setting up Icecast by e.g. malforming the XML or misunderstanding options.
Solution / Task
The Icecast project should have its own reference configuration UI. It should expose all possible configuration options. It should have several detail levels to make it easier for users. Easy with only core items, up to Expert exposing all items. Either from scratch or by adopting existing open source code.
Requirements
The student should be familiar with XML, c programming and HTML.
Mentors
Thomas B. Rücker, tbr
Stream directory API
For live streams Xiph.org operates a directory, mainly used by Icecast. It lists tens of thousands of streams.
Problem / Intro
The old directory only exposes a XML export of most of the database as the closest thing to an API. A lot of listener software uses this XML, but would benefit from a server side search. We've been experimenting with exposing a feature rich JSON API, but then decided to rewrite the directory code from scratch.
Solution / Task
The rewritten directory needs a well designed API with a performance optimized and robust implementation that integrates with listener software, it has been set up in a way that will make this sufficiently easy. The API will need to be tested.
Requirements
The student should be familiar with nodejs, SQL (in particular Postgres) and JSON (both generating and consuming). API design knowledge would be appreciated, but we have that also in the core team.
Mentors
Thomas B. Rücker, tbr
Client side for stream directory API
For live streams Xiph.org operates a directory, mainly used by Icecast. It lists tens of thousands of streams.
Problem / Intro
The old directory only exposes a XML export of most of the database as the closest thing to an API. A lot of listener software uses this XML, but would benefit from a server side search. We've been experimenting with exposing a feature rich JSON API, but then decided to rewrite the directory code from scratch. We are designing and implementing a JSON API (possibly also as part of GSoC), but will need client software to use it.
Solution / Task
To start the student will need to find as many open source consumers of the old XML API as possible and also open source players that don't have Icecast directory support yet, but would benefit from it. Then after agreeing with us on a short list of software, depending on the students knowledge of programming language used and client software popularity, implement new directory support for those players (at least one, possibly more if time and complexity allow).
Requirements
The student should be familiar with JSON, the HTTP protocol and at least one major programing language (preferably C; if other show, that there are possible target projects written in that language).
Mentors
Thomas B. Rücker, tbr