memfile例子的緩沖改進

發表于:2007-07-01來源:作者:點擊數: 標簽:
在使用當中,很多人對應默認的讀取數據大小32768非常不滿意.好像大部分的人都用到時時播放的系統中了.其實這個值是可以修改的.2的n次方的大小,還不能夠改成任意大小的. 在他的基類CAsyncOutputPin::RequestAllocator函數中. 參數IMemAllocator* pPreferred指

在使用當中,很多人對應默認的讀取數據大小32768非常不滿意.好像大部分的人都用到時時播放的系統中了.其實這個值是可以修改的.2的n次方的大小,還不能夠改成任意大小的.

在他的基類CAsyncOutputPin::RequestAllocator函數中.
參數IMemAllocator* pPreferred指出的緩沖的大小32768*6.
可以跟蹤看看他的值就知道了.
而參數IMemAllocator ** ppActual就是返回的實際值,他默認是使用pPreferred的.文檔也是說最好不要修改這些東西.當然自己修改是沒有問題的.
通過IMemAllocator的HRESULT SetProperties來設置.可以在文檔中看到:
typedef struct _AllocatorProperties {
    long cBuffers;
    long cbBuffer;
    long cbAlign;
    long cbPrefix;
} ALLOCATOR_PROPERTIES;

其中,cBuffers指出了有多少個緩沖塊,cbBuffer指出了沒有緩沖塊的大小.因為受到一些限制,緩沖的總數只是能夠為32768*6的大小...
把cbBuffer改成你想要的值,同時修改相應的cBuffers.就完成了這個工作.好了,你現在的數據量的要求應該是你自己設置的了...跟蹤看看就知道了.


原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97