Page 1 of 1

multiple description in VLC!

Posted: 22 Feb 2005 17:50
by mhl
Hi VLC forum

I am trying to implement the multiple description video scheme in VLC, as described in the paper:

Frank H. P. Fitzek, Basak Can, Ramjee Prasad, Markos Katz, "Traffic Analysis of Multiple Description Coding of Video Services over IP Networks", Wireless Personal Multimedia Communications (WPMC) 2004, September, 2004

But, I have a problem in the decoder part. You don't need to read the paper to give me a hint :-)

I have two input thread and two mpeg decoder running simultaneous, controled by VLM interface. In a standard VLC the two decoder will display the result in two different windows (vout=picture).

But I need to mix the two results into one window.

I have tried to hack __vout_Request in video_output.c, but something went wrong when two decoders writing in the same p_dec->p_owner->p_vout buffer (this is done in the decoder thread).

Do you know the reason or do you have a better solution?

Best regards,
Morten

Posted: 22 Feb 2005 18:45
by Sigmund
code for something similar to this was added very recently to svn. It's called mosaic.c or something.

Posted: 22 Feb 2005 23:34
by dionoea
... and mosaic (along with the picture vout) is really a dirty hack. To do anything clean, we need to rewrite the whole vout system ...

Posted: 23 Feb 2005 12:42
by mhl
First tnk for the fast response :-)

If the vout will be rewriten will it get a new strategy or is it to remove some bugs?

I have tried you example as described in svn commit r10017 (dionoea) and it works perfect!

But the function Filter() will be conducted each time a new frame is ready in somevideo0.avi. Thus, if the famerate is 60 frames/sec. in somevideo1.avi and 30 frames/sec. in the somevideo0.avi then the output of the filter will only be 30 frames/sec.

Do I understand the filter construction currect?

Best regards
Morten

Posted: 23 Feb 2005 13:12
by zorglub
Hello,

A vout rewrite would target things like :
- Separation of "real windows" vs "helper" (like spectrum analyser, ...)
- better OSD handling
-only put OSD on real windows, not on "helper windows"
-ability to put OSD in black bars
- Better hotkeys handling
- Centralized management of streams (better PiP management)
- Better use of new generation of filters (ability to manually add them, on the fly, ...)

For your question, yes, the output will be only 30fps. But no desynchronization will happen. This "problem" is unlikely to be fixed, though

Posted: 23 Feb 2005 13:14
by zorglub
Just a precision: it won't be made in the next version of VLC (0.8.2), but in the next one. 0.8.2 is currently entering frozen state.

Posted: 23 Feb 2005 15:00
by mhl
Hi again!

If both somevideo0.avi and somevideo1.avi use vout=picture and we start a modified video_output thread. Thus, when a picture is ready for display, its (picture) thread send a vlc_condition to the sleeping video_output thread and the video_output thread will filter/OSD and finaly display it?

Is there a reason for not using vlc_condition in video_output?

Best regards,
Morten