2012-06-04

来源:互联网 发布:日本变态杀人犯知乎 编辑:程序博客网 时间:2024/06/05 19:53

协议层的代码卡住了,收到的数据包解析有问题,也无法导入fflemg解码, 看AX的代码, 不知道是程序员偷懒还是对数据长度认识不足, 在很多地方用了sizeof(struct)类似的东西来指定长度做内存拷贝, 其实struct的长度不见的是内部元素的长度之和,很有可能会大于实际长度,这是c++的内部数据对齐规则,如:

struct s{int n; char c;}其实 sizeof(s) = 8, 而不是5,它会根据内部最大的元素长度进行对齐 在做memcpy的时候, 用复杂类型数据的sizeof来做长度是不科学的。

等老徐那边先看看,确定一下是哪边的问题再动手吧。先把显示YUV数据的模块搞了一下,:

查阅了大多数资料,基本是把YUV转成RBG的数据,

第一种用GDI来绘制视频帧,

第二种使用DDRAW,这个是DX7的老东西了,用起很诡异

第三种使用DSHOW,一看到COM的东西就恶心

第四种采用SDL, 一个跨平台媒体库

 

方案待选,能实现功能就行,效率方面也要考虑到。

原创粉丝点击