在使用當中,很多人對應默認的讀取數據大小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.就完成了這個工作.好了,你現在的數據量的要求應該是你自己設置的了...跟蹤看看就知道了.