SoC 2010 Phonon Capture API

From VideoLAN Wiki
Jump to navigation Jump to search
This project is part of Google Summer of Code 2010.
Student: Casian Andrei
Mentor: Hugo Beauzee-Luyssen

Phonon High-level Capture API

Abstract

The goal of this project is to enable Phonon applications to access and display input devices, like webcams. The Phonon code-base is well designed and flexible, and apparently no major modifications are needed to the current API. The ease of use for the Phonon application developer is a priority. Features implemented in Phonon will be implemented in the Phonon-VLC back-end in parallel. Various device classes should be supported.

Information

The exam session lasts here most of June, so I won't be able to work at full capacity during this time (I hope I can achieve 50%-75% of the July work time).

If extra time remains, I will work on improving the overall quality of Phonon.

Timeline

The following timeline may be a bit optimistic, but I will try to respect it. It will be revised during the summer if neccessary. By revised I mean adding smaller tasks, not removing tasks or delaying.

Date Status Description
May 10 - May 24 Completed Setup development environment, test things, play with the code
May 24 - June 15 Waiting Setup MediaSource to handle capture devices, implement in Phonon-VLC
June 5 - June 15 In progress Implement API to get information about capture devices
June 15 - June 25 Not started Link video and audio capture devices in AVCapture
June 25 - July 12 Not started Test, improve, simplify the classes implemented previously
July 12 - July 25 Not started Improve Phonon-VLC - document code, implement some lacking API
July 25 - August 16 Not started Implement the capture API in other backends

Repositories

There is one repo for Phonon and one for the Phonon-VLC backend.

Status report

May 31

One week has passed and I still determining what I can use from Phonon::Experimental. There is capture-api code in there, and I need to see if it works or not and how it works. I can't start writing code around without knowing what is already done. Unfortunately the stupid school keeps throwing stuff at me (until June 2) and progress is slow. However, I want to get over this study and test phase by the start of next week. Now I'm putting together a couple of primitive apps to test things about the existing capture-api code.

June 6

During this week I've investigated more into what exists regarding capture in Phonon::Experimental. I've created another executable test in phonon/experimental/tests, that retrieves the lists of devices and their properties for audio output, capture, and video capture. I've implemented a couple of simple methods to do this in Phonon::Experimental::GlobalConfig. It appears that the devices and properties are working (they look the same as in the KDE config center). I need to find a way to test this with a more complicated device configuration, perhaps without PulseAudio. After that, I will have to implement getting the capture device list for Phonon-VLC.

Next week I plan to work with the MediaObject / MediaSource classes, to try to make them to use VLC to capture audio.