xbmc/xbmc — pull request #4509 by Memphiz (2014-04-04 09:48:19+00:00)
Title: [osxsink] don't iterate through all buffers in the CA rendercallback but only fill our stream idx

This reverts commit b9a1d07a7d1a2bec3bb094b97cc7d96a325b9b98.

I think this is needed for working nicely with some studio equipment (like fireface). As mentioned here by a fireface user he gets speed up sound with hickups comeing out of more output channels then configured:

http://forum.xbmc.org/showthread.php?tid=185454&pid=1661985#pid1661985

My guess is that this card (it has 18 or more audio outputs) has split its channels into multiple buffers/streams - so we are now feeding our data into those buffers and the for loop spreads our data throughout all channels of that card. This leads to the distortion/speedup the user describes because our data is ment to be fed into a 2.0 channel buffer for example instead of 6 2.0 channel buffers for example.

Unfortunatly i can't get a hand on that user anymore but i think what we do now is just dangerous.

@jmarshallnz - i think i found one with more then 1 buffer ;)