Status update, Visualizations GSoC project (and a cry for help)

Martin T. Sandsmark sandsmark at samfundet.no
Mon Jun 8 18:46:47 CEST 2009


Hey!

This is my second status update from my GSoC project. Since my blogpost, I 
have finished a lot of RL-stuff (exams, travels, etc.), and started on 
implementing support for the Phonon AudioDataOutput API in the Xine Phonon 
backend (the vlc backend isn't released yet, which was the one I hoped to 
implement it in first).


I've hit a snag though; the callback has to be a static function. The 
VideoDataOutput plugin solved this by storing a pointer to the instance of 
VideoDataOutputXT in the “user_data” field of “raw_visual_t”. This pointer is 
in turn passed to the callback together with the video data, and the callback 
then uses to forward the video frame data to the appropriate VideoDataOutput 
object.

For audio data, I have to make a separate post (-processing, I guess, the only 
proper documentation I've found is the commented header files, but I digress) 
plugin, and the audio post plugin stuff in Xine has no nice “user_data” void 
pointer for me to play with. One possible solution I see is to store pointers 
to all instances of the AudioDataOutput in a static list, that the static 
callback method uses to forward the data (but with some obvious drawbacks; 
being extremely hackish, problems with multiple AudioDataOutput-objects or 
multiple output streams, etc.).

Now, I might've some grave mistakes, as I'm not really familiar with the Xine 
API, so any hints or pointers would be very welcome.

Please ask if anything was unclear.

-- 
martin t. sandsmark


More information about the Amarok-devel mailing list