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.

DM8168 HelloWorld算法中一帧视频数据的处理



硬件环境:DM8168EVM+DaughterCard

软件环境:DVRRDK3.0

数据流:Cap->OutVpss->Dis

                                            ->InDsp->HelloWorldAlg

Dis是OutVpss的NextLink,HelloWorld是OutVpss的ProcessLink

在HelloWorldLink_ProcessData函数中定义:

UInt8 *p = pFrame->addr[0][0];

UInt32 YUV_test;
    for(YUV_test = 0; YUV_test < 1920*1080*2; YUV_test ++ )
    {
     int mod = YUV_test % 4;
     if(mod == 0)
      *(p + YUV_test)= 0xff;
     else if(mod == 1)
       *(p + YUV_test)= 0x80;
      else if(mod == 2)
       *(p + YUV_test)= 0xff;
       else if(mod == 3)
        *(p + YUV_test)= 0x80;

    }

编译通过,但是运行的时候,大概3~5s就会死机。我的问题是:

1.为什么会死机?不能直接操作数据?还是有其他特殊的操作方式?

2.我的猜想是在HelloWorldLink_ProcessData中是不是没有释放Cap缓冲区或者Dis缓冲区导致死机现象,如果是,改怎么修改?

  • 在做这样的处理的时候 可以直接操作数据的!!!我是在OSD的框架下做的,之前也老是死机,但是 后来把demo中SCD的使能关掉,就可以了……现在很流畅

    还有就是在做的时候确保你的程序是在DSP中运行的!!!

  • 1. 有关OSD的我也就看了看,在A8端开OSD,并且关掉SCD。在DSP中我看了下,对pFrame->addr[0][0]操作跟我提出的问题一样,也会死机。不知道你是怎么处理的?

    2.我的空算法已经能再DSP中运行,问题是我现在不能操作一帧的数据。不知道你是怎么操作一帧的数据?

    如果可以的话,给我个操作一帧数据的简单代码,我的 邮箱:wchyhst@126.com

  • 发你邮箱了!!! 我qq653943306有什么问题 在留言!!!

  • 数据流:Cap->OutVpss->Dis

                                                ->InDsp->HelloWorldAlg

    这是怎么流的? Dis link 后面就是InDsp link 么   你的HelloWorldAlg没有输出么,就是后面没有link了?