TI中文支持网
TI专业的中文技术问题搜集分享网站

修改video_copy例程的数据拷贝部分源码(memcpy),结果未改变

修改TI DVSDK的viddec_copy中的CODEC的源码文件(viddec_copy.c)中的数据拷贝部分代码如下:

if(curBuf!=20)
{ memcpy(outBufs->bufs[curBuf], inBufs->bufs[curBuf+1], minSamples);}
else
{ memcpy(outBufs->bufs[curBuf], inBufs->bufs[curBuf], minSamples);}
/*memcpy(outBufs->bufs[curBuf], inBufs->bufs[curBuf++], minSamples+1);*/
GT_1trace( curTrace, GT_2CLASS, "VIDDECCOPY_TI_process> "
"Processed %d bytes.\n", minSamples );

最后生成的APP可执行文件,并没有实现所需测试结果(即第20个数据复制第21个输入数据),而是还是完整的一对一拷贝,很是奇怪,为什么修改了源码运行结果却不能改变

Chris Meng:

Xu Bin,

能否添加一些打印,看看修改是否成功? 或者加一下打印,看一下curBuf的值,看一下是否有跳转你修改的分支?

bin xu7:

回复 Chris Meng:

如你所说,我在编码程序videnc_copy中修改代码如下:

if(curBuf<=5) {printf("control sucessful"); memcpy(outBufs->bufs[curBuf], inBufs->bufs[curBuf], minSamples);}

输出并没有打印出信息,而且遇到的另一个问题是输入in.dat为3KB,输出的out.dat为2KB的情况,如果用DVSDK自带的128 in.dat文件则能完整复制,程序不是能自动能检测输入大小的吗,调试用的3KB in.dat为一列向量,个数为684,顺序按1~255排列,超过255的索引仍未255,能提供一下问题大概可能出错在哪里的思路吗?

赞(0)
未经允许不得转载:TI中文支持网 » 修改video_copy例程的数据拷贝部分源码(memcpy),结果未改变
分享到: 更多 (0)