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.

VIDDEC2_process performance

hi, all.

we are facing with a problem that VIDDEC2_process cost about 300ms when it's first start.


basic info:

platform                         dm365
os                                    linux
H264DEC.version       02.00.00.13.wizardversion.0.5.3 (upgraded)
DVSDK version            dvsdk_2_10_01_18

decode input / output parameters


[decode] ***********************************************
[decode] outBufPtrArray [0]=0x421a3000 [1]=[0x4221c800], 497664, 248832
[decode] outBufDesc.numBufs [2]
[decode] inBufDesc.descs[0]=[0x40abf000], 45166
[decode] inBufDesc.numBufs [1]
[decode] inArgs = 12
[decode] inArgs = 45166
[decode] inArgs = 5
[decode] outArgs = 1952
[decode] dstBuf:start=0x421a3000, length=576000, w,h (800, 480)
[decode] ***********************************************






outArgs ==>
OutArgs size = 1952
Bytes consumed = 45166
Out Buffer in use flag = 0
Decoded Buffer numBufs = 2
Decoded Buffer frameWidth = 800
Decoded Buffer frameHeight = 480
Decoded Buffer framePitch = 864
Decoded Buffer extendedError = 0
Decoded Buffer frameType = 0
Decoded Buffer topFieldFirstFlag = 0
Decoded Buffer repeatFirstFieldFlag = 0
Decoded Buffer frameStatus = 0
Decoded Buffer repeatFrame = 0
Decoded Buffer contentType = 0
Decoded Buffer chromaFormat = 9
Decoded Buffer Buf[0] Address = 0x0x421ad218
Decoded Buffer Buf[0] Size = 0x79800
Decoded Buffer Buf[0] Access Mask = 0x0
Decoded Buffer Buf[1] Address = 0x0x42221918
Decoded Buffer Buf[1] Size = 0x3CC00
Decoded Buffer Buf[1] Access Mask = 0x0
Display Buffer 0: Output ID 5 numBufs = 2:
frameWidth = 800
frameHeight = 480
framePitch = 864
extendedError = 0
frameType = 0
topFieldFirstFlag = 0
repeatFirstFieldFlag = 0
frameStatus = 0
repeatFrame = 0
contentType = 0
chromaFormat = 9
Display Buffer Buf[0] Address = 0x0x421ad218
Display Buffer Buf[0] Size = 0x79800
Display Buffer Buf[0] Access Mask = 0x0
Display Buffer Buf[1] Address = 0x0x42221918
Display Buffer Buf[1] Size = 0x3CC00
Display Buffer Buf[1] Access Mask = 0x0
Free Buf ID[0]: 3
<==outArgs

code:

gettimeofday(&time_process, NULL);

status = VIDDEC2_process(pvideodec->hDecoder, &inBufs, &outBufDesc, &inArgs, &outArgs);


gettimeofday(&timeStamp, NULL);
inter = (long int)(timeStamp.tv_sec * 1000 + timeStamp.tv_usec / 1000) - (long int)(time_process.tv_sec * 1000 + time_process.tv_usec / 1000);
OSA_INFO("VIDDEC2_process over, hs = %ld\n", inter);


run with out GUI process :



[decode] VIDDEC2_process over, hs = 30
[decode] VIDDEC2_process over, hs = 13
[decode] VIDDEC2_process over, hs = 14
[decode] VIDDEC2_process over, hs = 13
[decode] VIDDEC2_process over, hs = 13
[decode] VIDDEC2_process over, hs = 13
[decode] VIDDEC2_process over, hs = 13
[decode] VIDDEC2_process over, hs = 13
[decode] VIDDEC2_process over, hs = 14
[decode] VIDDEC2_process over, hs = 14
[decode] VIDDEC2_process over, hs = 14



run with GUI process:

Restart with I Frame,ID=1
VIDDEC2_process over,hs=318
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=15
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=15
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=13
VIDDEC2_process over,hs=14
VIDDEC2_process over,hs=14

we have a GUI application that will run with codec applications.

what happened when the first time  VIDDEC2_process called after the system started that it needs 318ms?

Regards, Mike

Any advice will be appreciate.

thanks in advance.

  • Hi Mike:

       Is this an apples to apples comparison?  I.e., in the first case, without the GUI application, is the first frame decoded also an IDR or I-Frame?

       I wouldn't expect VIDDEC2_process() to give that much overhead on an ARM only device, since the largest contribution would be cache maintenance (if any).  And that has been shown to be on the order of 20-30ms on some devices:

       http://processors.wiki.ti.com/index.php/Codec_Engine_Overhead

       Are all your video buffers in contiguous non-cached memory?  If so, there shouldn't be any cache effects.

       I'm wondering if the GUI application to video process context switch time is increased by some latent paging activity to get the IDR frame from a video file into the buffer.

       Instead of gettimeofday(), you might use clock_gettime(CLOCK_PROCESS_CPUTIME_ID,..) to isolate the time spent in the video decode process from other possible interrupting Linux worker threads which might have been launched by the GUI application.

    Regards,
    - Gil

  • Hi, GAnthony.
     
    the first frame decoded is I frame with or without GUI application respectively.
     
     
    We are using the CMEM for both inBufsand  outBufs:
     
    CMEM_AllocParams para =
    {
           CMEM_HEAP,CMEM_NONCACHED, 32
    };
     
    Those buffs are private for the algorithm if they are not freed from it by outArgs.
     
    THE GUI process are now getting the H264 data though RTP with frame verification before pass to VIDDEC2_process.
     
    There should be competing for MIPS from the OS but we don’t expect that result.
     
     
    About the timer usage, we change to:
     
    gettimeofday(&t1, NULL);
     
    clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time_process);
     
        status =VIDDEC2_process(pvideodec->hDecoder, &inBufs, &outBufDesc, &inArgs, &outArgs);
     
    gettimeofday(&t2, NULL);
     
    clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &timeStamp);
     
    t = (long int)(t2.tv_sec * 1000 + t2.tv_usec / 1000) - (long int)(t1.tv_sec * 1000 + t1.tv_usec / 1000);
     
    inter = (long int)(timeStamp.tv_sec * 1000 + timeStamp.tv_nsec / 1000000) - (long int)(time_process.tv_sec * 1000 + time_process.tv_nsec / 1000000);
     
    OSA_INFO("VIDDEC2_process over, hs = %ld, t = %ld\n", inter, t);
     
     
    And I now got:
    [decode] VIDDEC2_process over, hs = 90, t = 134
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 13
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 13
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 13
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 13
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] SET_DECODE_STOP
    [videoCtrl Tsk]Stop Fame, bufId = 4
    [decode] SET_DECODE_START
    [decode] VIDDEC2_process over, hs = 10, t = 1
    [decode] VIDDEC2_process over, hs = 10, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 13
    [decode] VIDDEC2_process over, hs = 0, t = 13
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 13
    [decode] VIDDEC2_process over, hs = 0, t = 13
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 0, t = 13
    [decode] VIDDEC2_process over, hs = 0, t = 13
    [decode] VIDDEC2_process over, hs = 0, t = 14
    [decode] VIDDEC2_process over, hs = 10, t = 14
     
     
    What do you think ?
    Thanks very much for your replay.
     
    Regards, Mike.
  • Mike:

       Those numbers from clock_gettime() don't look convincing, and the drop from 300ms to 134ms for the I frame seems to indicate some scheduling variability (assuming the I frame being decoded is exactly the same in both tests). 

       I've had difficulty with clock_gettime() accuracy on some Linux distributions in the past.

       You might see if CLOCK_REALTIME gives more accurate results.   http://linux.die.net/man/3/clock_gettime

       To determine if the I-Frame processing is taking this long (or it's something else related to task switching), you can put your timestamps around the process() call in the VIDDEC2_process() function in  ./ti/sdo/ce/video2/viddec2.c:

              

         VISA_enter((VISA_Handle)handle);
    /* ---> Insert timestamp start here: */
    retVal = fxns->process(alg, inBufs, outBufs, inArgs, outArgs);
    /* ---> Insert timestamp end here: */
    VISA_exit((VISA_Handle)handle);

        And rebuild Codec Engine.  Also, you can run top in Linux to see what other threads are taking CPU time.   If using RTP, I'll bet there's some background ethernet worker threads adding to the time.   You might also compute the I-frame processing by replacing the RTP input with just File I/O.

        Also, an H.264 codec expert on the forum may be able to answer how long an I-frame takes to decode versus a P-frame (I recommend posting a separate question on that topic).

    Regards,
    - Gil

  • hi, Gil

    we have now increase the function of the device, such as wifi, the interface is SDIO,  and CPU is a bit hight when we do decode and snap.

    now we faced on the problem when we do decode and snap, someitme we got very long time processing with the imgdec or / and viddec:

    [decode] IMGDEC TIME = 370 ms
    [decode] IMGDEC TIME clock = 130 ms  ( with  CLOCK_REALTIME function as you said above)

     

    the log is as follow:

    [decode] IMGDEC TIME = 370 ms
    [decode] IMGDEC TIME clock = 130 ms
    10:42:49|trace threadProc(Page-pageCall)msg11=7, pItem=(&Call)
    10:42:49|warn  PageCall Ldown
    10:42:49|trace threadProc(Page-pageCall)msg22=7, pItem=(&Call)
    10:42:49|trace tmp >>>>>>>>>>>play hookkey
    10:42:49|trace threadProc(Page-pageCall)msg11=8, pItem=(&Call)
    10:42:49|warn  PageCall Lup
    10:42:49|trace threadProc(Page-pageCall)msg22=8, pItem=(&Call)
    10:42:49|trace tmp >>>>>>>>>>>play hookkey
    Mem: 75028K used, 1476K free, 0K shrd, 4576K buff, 10788K cached
    CPU:  7.6% usr 30.7% sys  7.6% nice 53.8% idle  0.0% io  0.0% irq  0.0% softir
    Load average: 2.51 0.69 0.24
      PID  PPID USER     STAT   VSZ %MEM %CPU COMMAND
      406   405 root     S     169m227.3 23.0 /var/tmp/sonia 
      475   474 root     R     2812  3.6 23.0 top -n 3 -d 0 
      387     1 root     S      98m131.2  0.0 VideoDaemon DECOUT 
      398     1 root     S    10436 13.6  0.0 wpa_supplicant -g/var/tmp/wpa_supplic
      240     1 root     S    10304 13.4  0.0 /utils/syshelper 25 
    [edma]: -playback_edma_irq--empty stop0.0 /bin/sh -- 
    
        1     0 root     S     2812  3.6  0.0 init [edma]: capture_edma_irq:full stop
                  
      399     1 root     S     2812  3.6  0.0 /bin/sh /etc/init.d/appd 
      474   387 root     S     2812  3.6  0.0 sh -c top -n 3 -d 0 
      405   404 root     S     2812  3.6  0.0 /bin/sh /sbin/ii 
      238     1 root     S     2812  3.6  0.0 /utils/telnetd 
      239     1 root     S     2400  3.1  0.0 /utils/upgraded 
      136    14 root     SW<      0  0.0  0.0 [dm_spi.0]
      130     1 root     SW       0  0.0  0.0 [mtdblockd]
      343    14 root     SW<      0  0.0  0.0 [mmcqd]
       13     1 root     SW<      0  0.0  0.0 [khelper]
       81    14 root     SW<      0  0.0  0.0 [kswapd0]
      334    14 root     SW<      0  0.0  0.0 [kmmcd]
      372    14 root     SW<      0  0.0  0.0 [ksdioirqd/mmc1]
    Mem: 75040K used, 1464K free, 0K shrd, 4576K buff, 10788K cached
    CPU: 40.0% usr 60.0% sys  0.0% nice  0.0% idle  0.0% io  0.0% irq  0.0% softir
    Load average: 2.51 0.69 0.24
      PID  PPID USER     STAT   VSZ %MEM %CPU COMMAND
      475   474 root     R     2816  3.6100.0 top -n 3 -d 0 
      406   405 root     S     169m227.3  0.0 /var/tmp/sonia 
      387     1 root     S      98m131.2  0.0 VideoDaemon DECOUT 
      398     1 root     S    10436 13.6  0.0 wpa_supplicant -g/var/tmp/wpa_supplic
      240     1 root     S    10304 13.4  0.0 /utils/syshelper 25 
      404   399 root     S     2816  3.6  0.0 /bin/sh -- 
        1     0 root     S     2812  3.6  0.0 init               
      399     1 root     S     2812  3.6  0.0 /bin/sh /etc/init.d/appd 
      474   387 root     S     2812  3.6  0.0 sh -c top -n 3 -d 0 
      405   404 root     S     2812  3.6  0.0 /bin/sh /sbin/ii 
      238     1 root     S     2812  3.6  0.0 /utils/telnetd 
      239     1 root     S     2400  3.1  0.0 /utils/upgraded 
      136    14 root     SW<      0  0.0  0.0 [dm_spi.0]
      130     1 root     SW       0  0.0  0.0 [mtdblockd]
      343    14 root     SW<      0  0.0  0.0 [mmcqd]
       13     1 root     SW<      0  0.0  0.0 [khelper]
       81    14 root     SW<      0  0.0  0.0 [kswapd0]
      334    14 root     SW<      0  0.0  0.0 [kmmcd]
      372    14 root     SW<      0  0.0  0.0 [ksdioirqd/mmc1]
    Mem: 75064K used, 1440K free, 0K shrd, 4576K buff, 10788K cached
    CPU:  0.0% usr 75.0% sys  0.0% nice  0.0% idle  0.0% io 25.0% irq  0.0% softir
    Load average: 2.51 0.69 0.24
      PID  PPID USER     STAT   VSZ %MEM %CPU COMMAND
      475   474 root     R     2816  3.6100.0 top -n 3 -d 0 
      406   405 root     S     169m227.3  0.0 /var/tmp/sonia 
      387     1 root     S      98m131.2  0.0 VideoDaemon DECOUT 
      398     1 root     S    10436 13.6  0.0 wpa_supplicant -g/var/tmp/wpa_supplic
      240     1 root     S    10304 13.4  0.0 /utils/syshelper 25 
      404   399 root     S     2816  3.6  0.0 /bin/sh -- 
        1     0 root     S     2812  3.6  0.0 init               
      399     1 root     S     2812  3.6  0.0 /bin/sh /etc/init.d/appd 
      474   387 root     S     2812  3.6  0.0 sh -c top -n 3 -d 0 
      405   404 root     S     2812  3.6  0.0 /bin/sh /sbin/ii 
      238     1 root     S     2812  3.6  0.0 /utils/telnetd 
      239     1 root     S     2400  3.1  0.0 /utils/upgraded 
      136    14 root     SW<      0  0.0  0.0 [dm_spi.0]
      130     1 root     SW       0  0.0  0.0 [mtdblockd]
      343    14 root     SW<      0  0.0  0.0 [mmcqd]
       13     1 root     SW<      0  0.0  0.0 [khelper]
       81    14 root     SW<      0  0.0  0.0 [kswapd0]
      334    14 root     SW<      0  0.0  0.0 [kmmcd]
      372    14 root     SW<      0  0.0  0.0 [ksdioirqd/mmc1]
       80    14 root     SW       0  0.0  0.0 [pdflush]
    [libdec] video_put_packet 568 ms10:42:49|trace tmp >>>>>>>>>>>play hookkey
    [libdec] BMP File(96, 64) Len = 24630
    [libdec] video_put_packet 2295 ms10:42:49|error >>>>>path:/
    10:42:49|error >>>>>path:/mnt/
    10:42:49|error >>>>>path:/mnt/sd/
    10:42:49|error >>>>>path:/mnt/sd/SnapShot/
    10:42:49|error >>>>>path:/mnt/sd/SnapShot/2013-10-23/
    10:42:49|error >>>>>path:/mnt/sd/SnapShot/2013-10-23/10/
    10:42:49|error >>>>>path:/mnt/sd/SnapShot/2013-10-23/10/42/
    10:42:49|trace threadProc(Page-pageCall)msg11=9, pItem=(&Call)
     
    VIDDEC
     
     
    10:42:47|trace threadProc(Page-pageCall)msg22=8, pItem=(&Call)
    [decode] VIDDEC TIME = 350 ms
    [decode] VIDDEC TIME clock = 120 ms
    10:42:47|trace tmp >>>>>>>>>>>play hookkey
    10:42:47|trace threadProc(Page-pageCall)msg11=9, pItem=(&Call)
    10:42:47|warn  PageCall Ldown
    10:42:47|trace threadProc(Page-pageCall)msg22=9, pItem=(&Call)
    Mem: 74776K used, 1728K free, 0K shrd, 4628K buff, 10496K cached
    CPU:  0.0% usr 41.6% sys  0.0% nice  0.0% idle 58.3% io  0.0% irq  0.0% softir
    Load average: 0.64 0.30 0.11
      PID  PPID USER     STAT   VSZ %MEM %CPU COMMAND
      136    14 root     SW<      0  0.0 15.6 [dm_spi.0]
      406   405 root     S     169m227.3  7.8 /var/tmp/sonia 
      473   472 root     R     2812  3.6  7.8 top -n 3 -d 0 
      387     1 root     S      98m131.2  5.2 VideoDaemon DECOUT 
      130     1 root     SW       0  0.0  5.2 [mtdblockd]
      398     1 root     S    10436 13.6  0.0 wpa_supplicant -g/var/tmp/wpa_supplic
      240     1 root     R    10304 13.4  0.0 /utils/syshelper 25 
      404   399 root     S     2816  3.6  0.0 /bin/sh -- 
        1     0 root     S     2812  3.6  0.0 init               
      399     1 root     S     2812  3.6  0.0 /bin/sh /etc/init.d/appd 
      472   387 root     S     2812  3.6  0.0 sh -c top -n 3 -d 0 
      405   404 root     S     2812  3.6  0.0 /bin/sh /sbin/ii 
      238     1 root     S     2812  3.6  0.0 /utils/telnetd 
      239     1 root     S     2400  3.1  0.0 /utils/upgraded 
      343    14 root     SW<      0  0.0  0.0 [mmcqd]
       13     1 root     SW<      0  0.0  0.0 [khelper]
       81    14 root     RW<      0  0.0  0.0 [kswapd0]
      334    14 root     SW<      0  0.0  0.0 [kmmcd]
      372    14 root     SW<      0  0.0  0.0 [ksdioirqd/mmc1]
    Mem: 74776K used, 1728K free, 0K shrd, 4636K buff, 10500K cached
    CPU: 28.5% usr 71.4% sys  0.0% nice  0.0% idle  0.0% io  0.0% irq  0.0% softir
    Load average: 0.64 0.30 0.11
      PID  PPID USER     STAT   VSZ %MEM %CPU COMMAND
      473   472 root     R     2816  3.6 71.3 top -n 3 -d 0 
      406   405 root     S     169m227.3 14.2 /var/tmp/sonia 
      136    14 root     SW<      0  0.0 14.2 [dm_spi.0]
      387     1 root     S      98m131.2  0.0 VideoDaemon DECOUT 
      398     1 root     S    10436 13.6  0.0 wpa_supplicant -g/var/tmp/wpa_supplic
      240     1 root     S    10304 13.4  0.0 /utils/syshelper 25 
      404   399 root     S     2816  3.6  0.0 /bin/sh -- 
        1     0 root     S     2812  3.6  0.0 init               
      399     1 root     S     2812  3.6  0.0 /bin/sh /etc/init.d/appd 
      472   387 root     S     2812  3.6  0.0 sh -c top -n 3 -d 0 
      405   404 root     S     2812  3.6  0.0 /bin/sh /sbin/ii 
      238     1 root     S     2812  3.6  0.0 /utils/telnetd 
      239     1 root     S     2400  3.1  0.0 /utils/upgraded 
      130     1 root     SW       0  0.0  0.0 [mtdblockd]
      343    14 root     SW<      0  0.0  0.0 [mmcqd]
       13     1 root     SW<      0  0.0  0.0 [khelper]
       81    14 root     DW<      0  0.0  0.0 [kswapd0]
      334    14 root     SW<      0  0.0  0.0 [kmmcd]
      372    14 root     SW<      0  0.0  0.0 [ksdioirqd/mmc1]
    Mem: 74788K used, 1716K free, 0K shrd, 4636K buff, 10500K cached
    CPU: 25.0% usr 75.0% sys  0.0% nice  0.0% idle  0.0% io  0.0% irq  0.0% softir
    Load average: 0.64 0.30 0.11
      PID  PPID USER     STAT   VSZ %MEM %CPU COMMAND
      473   472 root     R     2816  3.6100.0 top -n 3 -d 0 
      406   405 root     S     169m227.3  0.0 /var/tmp/sonia 
      387     1 root     S      98m131.2  0.0 VideoDaemon DECOUT 
      398     1 root     S    10436 13.6  0.0 wpa_supplicant -g/var/tmp/wpa_supplic
      240     1 root     S    10304 13.4  0.0 /utils/syshelper 25 
      404   399 root     S     2816  3.6  0.0 /bin/sh -- 
        1     0 root     S     2812  3.6  0.0 init               
      399     1 root     S     2812  3.6  0.0 /bin/sh /etc/init.d/appd 
      472   387 root     S     2812  3.6  0.0 sh -c top -n 3 -d 0 
      405   404 root     S     2812  3.6  0.0 /bin/sh /sbin/ii 
      238     1 root     S     2812  3.6  0.0 /utils/telnetd 
      239     1 root     S     2400  3.1  0.0 /utils/upgraded 
      136    14 root     SW<      0  0.0  0.0 [dm_spi.0]
      130     1 root     SW       0  0.0  0.0 [mtdblockd]
      343    14 root     SW<      0  0.0  0.0 [mmcqd]
       13     1 root     SW<      0  0.0  0.0 [khelper]
       81    14 root     DW<      0  0.0  0.0 [kswapd0]
      334    14 root     SW<      0  0.0  0.0 [kmmcd]
      372    14 root     SW<      0  0.0  0.0 [ksdioirqd/mmc1]
       80    14 root     SW       0  0.0  0.0 [pdflush]
     
    when this problem happen, we can see the video has (transverse) stipes.
     we are going to check if the mmc edma is connected to this problem and audio edma too.
     
    any advice will be appreciate.
    thanks in advance