MyWork >
Visuals
Introduction
I participated at the visuals project which had the goal, to render visuals
in real time. Most visuals that you can see nowadays are precalculated or available
software is hard to afford.
Visuals are videos that are manipulated in dependence of various audio parameters.
My part was the real time modification of the videos.
The technical details
I decided to implement it with the help of C++ and DirectShow. DirectShow seemed to be a good solution to the
task, because you donīt have to deal with the low-level implementation, for example decoding the mpeg stream.
The current implementation plays mpg videos and allows to apply various effects.
The effects where implemented as a DirectShow filter, so that they can also
be used alone.
Sound is not played because it should come from the audio file. Note also, that this part only provides functions
for modifying the video and some effects. If you want to modify the video on dependence on an audio file you have to
write an audio-anylizer and the appropiate functions calls by yourself.
Whatīs in the package
My part provides functions for playing a mpg video,
functions that apply effects,
effects as a DirectShow filter and
an example program that shows how to use the library.
Filter Effects
The example program & the filter
The sample application consists of a main window and an video window.

Main window & video window of the sample application
The main window provides a function for selecting an effect and for controlling the video (play, stop, pause).
The filter effects have various properties. These properties can only be set directly in the code. The sample
program and the property page of the filter do not provide this.
The property page of the filter provides the possibilty to choose one of the effects.
The property page can be viewed in Microsofts GraphEdit. GraphEdit allows you to build filter graphs.
Before the filter can be used you have to register him.
Download
The hole package can be downloaded
here. Includes the Visual C++ .NET project.
Note: this package contains only my part, which was described above.
Further information
The visuals project homepage was unfortunately abandoned.