This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM6467 运行VIDENC_COPY的问题



用DVSDK例程中的encode 调用VIDENC_COPY     

DSP中只执行一个MEMCPY函数:

        minSamples = inBufs->bufDesc[curBuf].bufSize;

    memset(outBufs->bufs[curBuf], 0xFF, minSamples );
    memcpy(outBufs->bufs[curBuf], (inBufs->bufDesc[curBuf].buf), minSamples );
  
    outArgs->bytesGenerated = minSamples ;

,在video.c中执行Venc1_process(hVe1, hCapBuf, hDstBuf)之前将hCapBuf中的数据fwrite成文件

执行之后将hDstBuf中的数据写成文件,二进制对比  发现数据不相同..... 而且是大部分相同,小部分区域为0xFF  (连续的)...

什么原因呢?

怀疑memcpy函数有问题,把它改成一个for循环

 memset(outBufs->bufs[curBuf], 0xFF, minSamples );

    for(i=0;i<minSamples ;i++)
    {

            outBufs->bufs[curBuf][i] = inBufs->bufDesc[curBuf].buf[i];
    }

还是会在每帧末尾部分 出现很多的0xFF....

又把for循环改成如下:

    for(i=0;i<minSamples ;i++)
    {

            outBufs->bufs[curBuf][i] = i %256 ;
    }

依旧存在0xFF,而且写入FF的时候  i的值在发生变化

实在想不明白了           难道for循环没有执行完全?

在后面加一个空循环..... 还是一样

    for(i=0;i<minSamples ;i++);

难道是内存出什么问题了? 不然为什么会有这个错误呢  求指导...