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.

8148processlink alg data的问题

Other Parts Discussed in Thread: SYSBIOS

 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 开启有关?

  • 感谢你的回答。

    我不了解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的配置。

x 出现错误。请重试或与管理员联系。