70

帖子

0

TA的资源

一粒金砂(初级)

21
 
而对m_pStreamDescriptorList[ dwCounter ].pCsStreamDescriptorExternal它的设置是在EnqueueDescriptor()中。进一步跟踪,这个 函数没有执行里面的设置,是因为PinIoControl传递进来的参数pOutbuf为NULL,既应用程序没有把buffer地址传进来。

回复

67

帖子

0

TA的资源

一粒金砂(初级)

22
 
高手请跟贴。
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

23
 
我之前在调WINCE6.0的一个驱动的时候也碰到了类似的问题.
后来按照文章: http://blog.eeworld.net/FLandY1982/archive/2010/01/20/5216778.aspx做依然没有解决问题,后来参照了友善公司出的驱动的做法才解决掉.
楼主可以试试:
原驱动的代码段是这样的:

  1. UCHAR * pOutBuf = NULL;
  2. pOutBuf = pOutBufUnmapped;
复制代码

你修改下,改成这种样子:

  1. UCHAR pOutBuf[YOUR_BUF_SIZE];
  2. memset(pOutBuf, 0, YOUR_BUF_SIZE);
复制代码

在操作完成后将pOutBuf的内容再复制给pOutBufUnmapped, 另外InBuf也要做类似修改.
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

24
 
上面这篇文章楼主也可以试试, 主要是用WINCE6.0新加的一个函数 CeOpenCallerBuffer, 如果成功了分享下心得
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

25
 
楼主用得是CE5还是CE6,还是其它的。CE5是没有Camera的框架的,而在CE6才有。
CE6如果DSHOW分配BUFF成功,一定会创建出这个BUFF LIST的。
若是CE5,可能和提供的Camera框架有关,是不是框架指定只能由驱动去malloc所需的BUFF,所以才会传过来的stream descriptor为NULL
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

26
 
mark
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

27
 
!!!!!!!!!!!结帖,散分!!!!!!!!问题解决了!!!!!!!!!!!!!!!!!!!
********************先感谢FLandY1982和Terryzou对本帖的参与***************************
********************同时分享经验****************************************************
问题出在了:
PIN_IOControl(
    DWORD  dwContext,
    DWORD  Ioctl,
    PUCHAR pInBuf ,
    DWORD  InBufLen,
    PUCHAR pOutBuf,
    DWORD  OutBufLen,
    PDWORD pdwBytesTransferred
   )
PinHandleBufferRequest( dwCommand, pOutBuf, OutBufLen, pdwBytesTransferred );
、、、、
  PCS_STREAM_DESCRIPTOR pCsDescriptor = (PCS_STREAM_DESCRIPTOR) pOutBuf;
、、、、
EnqueueDescriptor( pCsDescriptor );
  还是那个问题,等参数传入的EnqueueDescriptor()里面的时候,是Pin_IoControl里的pOutbuf.问题就在这里,不应该是pOutbuf的,而应该是pInbuf.
  当然,对与应用层传入的指针或者嵌套指针,在CE6驱动里必须进行检测与映射的。这个就是FLandY1982所连接介绍的。其实在驱动中marshal.hpp定义了一个类MarshalledBuffer_t,专门来处理应用层传入的指针。对于FLandY1982的第二种方法,真接强制分配一块内存给poutbuf,我以前也试过,是在Allocatbuffer中截获的pinbuf的地址付回去的。那样只能在开始时进行still模式下拍一两张照片,预览与拍照不能持续下去。
   现在俺的平台能够用摄像头进行预览,拍照和录像了。一个字,爽!!!!!!
  FLandY1982所
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

28
 
呵呵。。。。。。。。。。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表