bensari / mediaserver

Automatically exported from code.google.com/p/mediaserver
1 stars 0 forks source link

Mixer/Splitter Redesign #58

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Currently for each connection in endpoint mixer and splitter exists for eeach 
sound
One more exists for connections mixing/splitting.
And there may exists others depending on endpoint.

This is invalid design since first splitter splits the data to different 
locations and then mixer mixes them back.

When 15 connections exists , 16 mixers mixes 16 sources.
It gives 16*16 = 256 operations for each byte of data ( plus operation ).
Connection 1 mixes connection 2-15 and connections mixer 
Connection 2 mixes connection 1,3-15 and connection mixer.
e.t.c
This can be reduced to 31 operations by following
1) Create result for each pair ( 8 operations ) 
2) Create result for each 4 by using result from previous ( 4 operations)
3) create result for each 8 by using result from previous ( 2 operations)
4) Create result for all ( mixed all together ) 
Till now totally 15 operations
Next step will be reveresed operation from mixing ( since mixer is using + we 
can do - )
For each connection /connections reduce the souce for this connection from 
result in step 4. totally 16 operations.

Overall 31 ( instead of n in power 2 , 2*n ).

Thats only for mixer , same may be possible with splitter.Also splitter will 
not be required.
Another problem with current design is that not all mixers can be executed 
simultaniously.
That means that lines like splitter - mixer - splitter - mixer exists.Which 
causes delay of data transfer since each mixer - splitter pair is executed in 
only cycle , and second pair will be excecuted on next cycle.

Some sort of core component has to be created , which will replace mixers and 
splitter , since component should be used per endpoint.

Great perfomance optimization should be obtained by this optimization

Original issue reported on code.google.com by oifa.yul...@gmail.com on 26 Jul 2012 at 7:06

GoogleCodeExporter commented 9 years ago

Original comment by oifa.yul...@gmail.com on 5 Aug 2012 at 9:54

GoogleCodeExporter commented 9 years ago
Creating issues for specific components to allow better progress monitoring

Original comment by oifa.yul...@gmail.com on 17 Aug 2012 at 11:19