Camera AllocateBuffer 问题

luixing67 2010-12-20 09:00:42
在 CPinDevice::AllocateBuffer 的时候为什么我的Preview只能申请到1个BUFFER,而still可以申请到10个buffer(这个是我设置的),正常情况应该是Preview只能申请到10个BUFFER,而still可以申请到1个buffer,我看了一下申请过程都是正确的,返回值啊什么的都对。
做过dshow架构camera驱动的大侠是否可以指点一二,我用的是CameraDshowApp.exe测试的,这个应该是标准的测试程序,没什么问题的
...全文
231 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
简单并快乐着 2012-11-05
  • 打赏
  • 举报
回复
其实这个问题挺有意思的。 让我了解了很多关于摄像头的内存申请问题。
dajohn007 2011-12-22
  • 打赏
  • 举报
回复
可以在PinHandleConnectionRequests中进行设置:
。。
CSPROPERTY_TYPE_SET:
。。
if (m_ulPinId==STILL)
{
m_ulMaxNumOfBuffers = 1;
}
else
{
m_ulMaxNumOfBuffers = 10;//pCsAllocatorFraming->Frames;
}
luixing67 2010-12-24
  • 打赏
  • 举报
回复
有没有朋友知道AllocateBuffer的一次结束的时候,什么情况下会调用 PinHandleConnStateSubReqs 参数为CSPROPERTY_TYPE_SET CSSTATE_PAUSE
wjcapple 2010-12-21
  • 打赏
  • 举报
回复
顶一下楼主的肺
luixing67 2010-12-21
  • 打赏
  • 举报
回复
Cm_SensorModeInfo[PREVIEW].MemoryModel = SPROPERTY_BUFFER_CLIENT_UNLIMITED,

这个是可以的,现在是我的CameraDshowApp.exe在调用的一个AllocateBuffer之后,又调用了CSPROPERTY_TYPE_SET 参数为 CSSTATE_PAUSE,停止了PREVIEW PIN继续申请BUFFER
loongdao777 2010-12-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 luixing67 的回复:]
引用 2 楼 loongdao777 的回复:
还有就是你的still不要设置太多,最好只设置一个buffer。


是的,按道理说PREVIEW是10个BUFFER,STILL是一个,这个是AP来控制的,但是驱动不知道哪里配置来通知应用
[/Quote]
m_SensorModeInfo[PREVIEW].MemoryModel =??
可以决定是应用来分配还是驱动来分配。
loongembedded 2010-12-21
  • 打赏
  • 举报
回复
CPinDevice::AllocateBuffer()会调用的camera驱动哪个函数啊?好像在驱动中没有找到对应的函数来分配buffer
luixing67 2010-12-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 loongembedded 的回复:]
在 CPinDevice::AllocateBuffer 的时候为什么我的Preview只能申请到1个BUFFER,而still可以申请到10个buffer(这个是我设置的),正常情况应该是Preview只能申请到10个BUFFER,而still可以申请到1个buffer,我看了一下申请过程都是正确的,返回值啊什么的都对。
---》preview和still分别申请的buffer大小都一样吗?它……
[/Quote]
一样
luixing67 2010-12-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 loongdao777 的回复:]
还有就是你的still不要设置太多,最好只设置一个buffer。
[/Quote]

是的,按道理说PREVIEW是10个BUFFER,STILL是一个,这个是AP来控制的,但是驱动不知道哪里配置来通知应用
loongembedded 2010-12-21
  • 打赏
  • 举报
回复
在 CPinDevice::AllocateBuffer 的时候为什么我的Preview只能申请到1个BUFFER,而still可以申请到10个buffer(这个是我设置的),正常情况应该是Preview只能申请到10个BUFFER,而still可以申请到1个buffer,我看了一下申请过程都是正确的,返回值啊什么的都对。
---》preview和still分别申请的buffer大小都一样吗?它们的申请方式是一样的吗?
loongdao777 2010-12-20
  • 打赏
  • 举报
回复
设置其它的太多,会不会你内存不够的问题呀?
loongdao777 2010-12-20
  • 打赏
  • 举报
回复
还有就是你的still不要设置太多,最好只设置一个buffer。
loongdao777 2010-12-20
  • 打赏
  • 举报
回复
在camerapdd中是下面的设置吗:m_SensorModeInfo[PREVIEW].MemoryModel = CSPROPERTY_BUFFER_CLIENT_UNLIMITED;

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧