User:Bananadine/GSoC

Project Title: Porting Flumotion to the gstreamer-1.0 API

Personal Information:
 * Name: Maksimilijan Sarajlija
 * E-mail: maksimilijans@gmail.com
 * IRC : bananadine
 * GitHub: bananadine

Short description of this project: Flumotion is a streaming media server which uses GStreamer 0.1 at its core. Porting Flumotion to the GStreamer 1.0 is necessary because GStreamer 0.1 is no longer maintained. Flumotion is written in python binded with GStreamer, so python is what I'll be working with.

Project Plan

Project schedule:
 * 22 Apr: Pre-Coding
 * Installing Flumotion, trying out it's features
 * Reading documentation
 * Reading the code and finding out where GStreamer is used
 * Get completely familiar with the parts of GStreamer used
 * 17 Jun: Coding begins
 * Week 1
 * List of necessary changes will be made
 * Week 2
 * I ran the flumotion unittest suite and found that it only covers some of the modules: the common modules, worker, manager, very little of the components and some other things such as the wizard and the porter, so I'll need to add tests for the producers, encoders, decoders, effects, muxers  before I can port it.
 * Week 3
 * Writing tests
 * Week 4
 * Porting the PyGST app to GStreamer 1.0 manually. The core modules will be ported first. Starting from the common modules and base components (feeder, decoder and so on). After each module is ported tests will be made before proceeding to the next one.
 * Porting the PyGST app to GStreamer 1.0 manually. The core modules will be ported first. Starting from the common modules and base components (feeder, decoder and so on). After each module is ported tests will be made before proceeding to the next one.

Testing will be done in parallel with the porting and new unit tests will be written.
 * Week 5
 * Porting
 * Week 6
 * Porting
 * 29 Jul: Mid-term evaluation
 * 2 Aug: Second part begins
 * Week 7
 * What's left will be ported to GStreamer 1.0. This part includes “minor” things such as monitor.
 * Week 8
 * Some minor refactoring or code clean-up.
 * Checking for missed stuff.
 * Week 9
 * A last run of unit tests.
 * Week 10
 * Flumotion comes with integration tests for Twisted, going to run those.
 * Week 11
 * Verification and validation
 * Week 12
 * Start writing documentation
 * 16 Sep: Suggested pencils-down date
 * Documentation will be written.
 * 23 Sep: End of GSoC
 * Post-GSoC period:
 * Maintenance; bug fixing.
 * 23 Sep: End of GSoC
 * Post-GSoC period:
 * Maintenance; bug fixing.
 * Post-GSoC period:
 * Maintenance; bug fixing.

Skills:
 * C (Intermediate)
 * Python (intermediate)
 * HTML and CSS (Intermediate)
 * Java (Advanced Beginner)
 * C++ (Beginner)
 * LISP (Beginner)
 * SQL (Beginner)

Some more personal info:


 * I'm a student of Computer Science and Engineering at Ss. Cyril and Methodius University in Skopje, Macedonia; 2nd year.
 * My general interests include AI,Cognitive Science, Python, Human-Computer interaction and of course Multimedia since it's a part of mine and almost everyone else's everyday life. Outside of Computer science: Music making, writing, sleeping.

Personal goals for the summer:
 * Experience working on a programming project and contribute to the open source community.
 * Get papers for finished summer practice which I need to enroll in my 3rd year at University.

How much time can I dedicate:


 * I have no other major plans for this summer, so I will dedicate myself to this project.