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.
System_getLinksFullFrames(pInQueParams->prevLinkId,
pInQueParams->prevLinkQueId, &frameList);
/*************************************************************************/
/* If input frame received from queue, get the output buffer from out */
/* queue and process the frame */
/*************************************************************************/
if (frameList.numFrames)
{
UInt8 *FRAMEPOI;
//pObj->totalFrameCount += frameList.numFrames;
for(frameId=0; frameId< frameList.numFrames; frameId++)
{
Bool doFrameDrop = FALSE;
pFrame = frameList.frames[frameId];
FRAMEPOI=pFrame.addr[0][0];
for(j=0;j<488*368;j++)
{
*FRAMEPOI=0x00;
FRAMEPOI++;
}
}
我的数据是.h264 (488*368)文件dec解码出来的YUV420SP数据
可是我按照上面来处理 得到的结果是屏幕显示。整个屏幕下面有几行是没有被处理的;
后来我又 尝试
for(j=0;j<488*368/2;j++)
{
*FRAMEPOI=0x00;
FRAMEPOI++;
}
得到的结果是;
屏幕显示整个屏幕会有数据叠加,例如人的头部会显示灰色,而上部分一小块显示白色
感谢你的回答。
我不了解DSP cache是什么。
我目前就是想直接的操作ADDR[0][0]指针。
来验证下Y分量是可以改变的,以及Y分量的大小、
这些你能告诉我如何做么、
多谢~
你好,
使用DSP,你需要了解什么是cache,它对数据会有什么样的影响。建议你阅读一下文档:《TI C64x+ DSP CACHE 一致性分析与维护》。
请问你使用的是DVR RDK么?如果是,你可以在scd_Link_alg.c里面看到cache相关的操作:ti_sysbios_family_c64p_Cache_inv,ti_sysbios_family_c64p_Cache_wb。你可以参考一下。
或者你可以尝试把DDR的cache都关闭,你可以修改FC_RMAN_IRES_c6xdsp.cfg里面MAR的配置。