Welcome to the GStreamer SOC 2013 ideas page. Due to the freedesktop.org moin wiki outdage, the GStreamer project doesn't have an active Wiki. The GNOME project has been kind enough to let us use theirs. Please collect ideas for google summer of code 2013 projects that are GStreamer related here.

Project proposals which lets a student cooperate closely with established developers are strongly prefered over projects which makes the students work alone. So when we choose which projects gets the go-ahead such projects will be prioritized.

Be aware that projects related to applications using GStreamer are more than welcome to be proposed and done under the banner of the GStreamer GSoC. So if you want to do a project related to for instance Totem, Rhythmbox, Banshee, Jokosher, Pitivi, gnome-media, Buzztard, Thoggen, Amarok, Flumotion, Exaile and so on feel free to add it below.

Guidelines

This section contains some general information for potential mentors and students interesting in participating in GSoC under the GStreamer banner.

We will try to do GSoC in a more firm way than what we feel other mentoring organisations have done in earlier years. This mean we will require that our mentors have a firm comittment to follow-up their student(s). It also mean that the mentors will be checked up upon by the GStreamer SoC administrators to make sure they are following up their students in a good manner. For mentors this means that being a mentor will be expected to be more than just replying to questions asked from the student(s), but also function as a project leader for the student in question in terms of pushing for progress proactively and trying to help the student progress.

We hope that by stressing that the mentors need to see themselves as project leaders and not just as someone to reply to questions we will be able to keep most of our students on track and on-the-ball throughout the project period.

But in the same vein that we will try to push our mentors harder we will also be harder on our students. Which means that any student being mentored under our banner who we during the project period we feel didn't give it the priority and effort the project mandated, will have their final result judged harder than someone we feel give it a honest and strong attempt. This essentially mean that if you sign up for SoC and don't put a strong effort inn the chance of us not approving your project is probably higher than with many other mentoring organisations which in the end also means Google will not be paying out any money to the student in question.

Project proposals

The following is merely a small selection of possible GSoC ideas. Students are encouraged to submit their own project ideas related to GStreamer, and are encouraged to pop into #gstreamer on FreeNode IRC or send a mail to the mailing list to get feedback on their ideas before submitting them.

Framework

  • implement a tracing subsystem

  • Implement a generic sandboxing solution by implementing a GstElement / GstPad subclass that can be provide functionality of any GstElement in another process

  • Improve QA by setting up an automated system that checks if GStreamer regresses on a set of media files, elements are behaving correctly and outputting data correctly

Plugins

Applications

Android Platform Support

  • Fill me

Windows Platform Support

  • Generator for MSVC project files, similar to the androgenizer tool used for Android
  • Hardware-accelerated video decoding? (DXVA?)
  • MediaFoundation wrapper plugin (replaces DirectShow)

OS/X Platform Support

Orc Acceleration

  • Create a summary of existing GStreamer elements that should be using Orc
  • Write Orc code for GStreamer elements that should be using Orc
  • Extend Orc as necessary (new opcodes) to cover more elements
  • Consult with Pitivi developers to develop new video filter elements and orcify them.

Bindings

  • JavaScript

    • Now that gnome picked JavaScript as a preferred language for desktop apps, we should check the JS bindings

    • developers can use gjs (mozilla) and seed (webkit), both engines support gir

Distribution

  • Add support for building GStreamer 1.0 packages to cerbero, with all plugin dependencies but without things from the GStreamer SDK like GTK, clutter, bindings, ... (at least two of Linux, Android, iOS, Windows and OS X)

Tips for writing a good proposal

  • make sure it is relevant to GStreamer or the wider GStreamer ecosystem
  • show that you have a basic understanding of the state of affairs and the problem space. This means you should have at least a basic understanding of GStreamer already, and know what exists and works and what is missing. Just picking one of the proposals from the list and making a timetable saying '4 weeks of learning GStreamer' plus '4 weeks of implementing xyz' is not likely to impress.
  • show you have the skills required to succeed
    • you should have good knowledge of the C programming language
    • you should have some basic knowledge of using GStreamer in C
    • if you have worked on similar things before, tell us
  • show you have the motivation required to succeed
    • why you find this project interesting
    • have you contributed to other free software/open source projects?
    • if you have worked on similar things before, tell us
    • you should be self-motivated
  • make sure you target GStreamer 1.0 (not the old 0.10)
  • the project should be challenging enough, but not too challenging
    • there should be enough work to keep you busy for the duration of the summer of code, projects that are too easy are unlikely to be accepted
    • it's okay not to know every single detail already, but you should know at least some basics already, so it's okay to plan time for figuring out design and implementation details, but not okay to only start learning GStreamer during the project (after all it's called "Summer of Code" not "Summer of Learning GStreamer")

Projects/GStreamer/SoC2013 (last edited 2013-11-22 18:40:12 by WilliamJonMcCann)