memfile例子的缓冲改进

王朝vc·作者佚名  2006-01-08
宽屏版  字体: |||超大  

在使用当中,很多人对应默认的读取数据大小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.就完成了这个工作.好了,你现在的数据量的要求应该是你自己设置的了...跟踪看看就知道了.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有