Difference between revisions of "SoC 2010 Phonon Capture API"

From VideoLAN Wiki
Jump to navigation Jump to search
Line 19: Line 19:
 
| May 10 - May 24 || Completed || Setup development environment, test things, play with the code
 
| May 10 - May 24 || Completed || Setup development environment, test things, play with the code
 
|-
 
|-
| May 24 - June 15 || V4L ok, improving || Setup MediaSource to handle capture devices, implement in Phonon-VLC
+
| May 24 - June 15 || V4L ok || Setup MediaSource to handle capture devices, implement in Phonon-VLC
 
|-
 
|-
| June 5 - June 15 || V4L ok, improving || Implement API to get information about capture devices
+
| June 5 - June 15 || V4L ok || Implement API to get information about capture devices
 
|-
 
|-
 
| June 15 - June 25 || Not started || Link video and audio capture devices in AVCapture
 
| June 15 - June 25 || Not started || Link video and audio capture devices in AVCapture

Revision as of 09:25, 28 June 2010

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 V4L ok Setup MediaSource to handle capture devices, implement in Phonon-VLC
June 5 - June 15 V4L ok 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 In progress 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.

June 14

Unfortunately much of this week I was bogged down in trying to learn for an exam, but I also managed to implement things in Phonon-VLC. Not as much as I hoped, but now the lists of available v4l capture devices appear to be working (with one small device id issue). I should try to step up work this week, by disregarding (a bit) another exam. The small device id's issue will be fixed and I can start working on the fun part.

June 22

The primitive testing application using Phonon with Phonon-VLC shows up images from a webcam. But the device list is not easy to use and improvements have to be made. Additional improvements are needed in the other areas of the code. Some cleanup in Phonon::Experimental regarding VideoCaptureDevice should also be done.

I will start working on these various improvements this week.