Is there a reason your video source requires this technique to buffer? This code is inefficient because:
1. It allocates a new buffer every time it reads from the source buffer. 2. It removes data from the source buffer by doing 2 more heap and block copies. </qoute> Yes buffer is needed. I would like to use the "stack" buffer. That is, that would be required bytes were always first. In .NET it works very effectively. Almost the same as without it. But, the main issue is, why must you dynamically allocate new buffers and "remove" data from the source buffer in the first place? In the buffering scenarios I'm familiar with, you would normally allocate a fixed-size buffer which you would pass down to the underlying data provider along with the start index and length to fill. Once your buffer is full, you stop reading from the source until you drain your buffer. Your buffer is emptied not by copying data and re-allocating a buffer, but by simply moving the index for the start of your buffered data. Specifically, you might want to check out this article on circular buffers. </qoute> Yes, I have come to the conclusion that it is necessary to use a circular buffer. Maybe this will solve the problem. -- View this message in context: http://mono.1490590.n4.nabble.com/Array-CopyTo-Mono-Ubuntu-vs-Net-Windows-tp4660316p4660364.html Sent from the Mono - General mailing list archive at Nabble.com. _______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
