Hi Prem:

Thanks for your help.

I chang another board to test, and found DVTB can work when intraFrame 30

But the original board still can not work,
So I think maybe my hardware has some problem,
The codec can work with P frame.

Thank you again!

Jack

在 2009-9-30,18:32,"JayaKumar, PremKumar" <[email protected]> 写到:

Hi Jack,

I'm bit surprised!

The same set of params works in my DVSDK 2.00.00.22 installation on the same stream.

Can you please send me your complete DVTB script file ("script.cfg" file that you are referring to)?

(P.S: DVTB script files are expected traditionally to have the extension ".dvs". But it is not mandatory.)

Regards,
Prem

-----Original Message-----
From: Jack [mailto:[email protected]]
Sent: Wednesday, September 30, 2009 7:55 AM
To: JayaKumar, PremKumar
Cc: '[email protected]'; Ring, Chris; Uppal, Deepali
Subject: RE: DSP hang when run DVSDK Demo in DM6446

Hi Prem:

I try those parameter values with DVTB, but failure, below is the output:
......
func videnc1 -s ./foreman_vga_422i.yuv -t testout.264
[DVTB-LOG]: linux/dvtbFuncDispatcher.c: Starting Thread for command <videnc1>
PNDG: func

[DVTB-LOG]: ../core/linux/dvtbEngine.c: Engine <encode> opened.
[DVTB-LOG]: linux/dvtbVidEnc1.c: Codec Instance Created.
[DVTB-LOG]: linux/dvtbVidEnc1.c: Set Dynamic Params.
[DVTB-LOG]: linux/dvtbVidCapture1.c: Video Encoder <h264enc> initialized
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 1: Bytes Generated <20205>

**********  Hang here, not respond   ********

If I change the intraFrameInterval value to 1, like this:
setp videnc1 intraFrameInterval 1 , then run again, output is:
......
func videnc1 -s ./foreman_vga_422i.yuv -t testout.264
[DVTB-LOG]: linux/dvtbFuncDispatcher.c: Starting Thread for command <videnc1>
PNDG: func

[DVTB-LOG]: ../core/linux/dvtbEngine.c: Engine <encode> opened.
[DVTB-LOG]: linux/dvtbVidEnc1.c: Codec Instance Created.
[DVTB-LOG]: linux/dvtbVidEnc1.c: Set Dynamic Params.
[DVTB-LOG]: linux/dvtbVidCapture1.c: Video Encoder <h264enc> initialized
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 1: Bytes Generated <20205>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 2: Bytes Generated <17501>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 3: Bytes Generated <17619>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 4: Bytes Generated <17181>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 5: Bytes Generated <16554>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 6: Bytes Generated <16842>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 7: Bytes Generated <17016>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 8: Bytes Generated <17281>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 9: Bytes Generated <17129>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 10: Bytes Generated <16750>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 11: Bytes Generated <16845>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 12: Bytes Generated <16782>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 13: Bytes Generated <18266>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 14: Bytes Generated <19369>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 15: Bytes Generated <19105>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 16: Bytes Generated <19012>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 17: Bytes Generated <18607>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 18: Bytes Generated <18182>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 19: Bytes Generated <17898>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 20: Bytes Generated <17697>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 21: Bytes Generated <17559>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 22: Bytes Generated <17984>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 23: Bytes Generated <18712>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 24: Bytes Generated <18992>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 25: Bytes Generated <19135>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Frame 26: Bytes Generated <19135>
[DVTB-LOG]: linux/dvtbVidCapture1.c: Video [capture][encode] completed for <26> frames
[DVTB-LOG]: linux/dvtbVidCapture1.c: Video Encoder <h264enc> closed
[DVTB-LOG]: linux/dvtbVidCapture1.c: Engine <encode> closed

The DVTB can complete the encode, so I think the videnc1 did not support P frame.

Attached: CE_DEBUG=3.TXT is the output message when " setp videnc1 intraFrameInterval 30"

Below is the intraFrameInterval's explain:

XDAS_Int32 IVIDENC1_DynamicParams::intraFrameInterval
The number of frames between two I frames. For example, 30.

Remarks:
   For example, this field will be:

       * 0 - Only first frame to be intra coded. e.g. IPPPPPP...
       * 1 - No inter frames (all intra frames).
       * 2 - Consecutive IPIPIP... sequence (if no B frames).
       * 3 - IPPIPP... or IPBIPBI... and so on.

Thanks.

Jack

From: JayaKumar, PremKumar [mailto:[email protected]]
Sent: Tuesday, September 29, 2009 8:49 PM
To: 'Jack'
Cc: '[email protected]'; Ring, Chris; Uppal, Deepali
Subject: RE: DSP hang when run DVSDK Demo in DM6446

Jack,
You would need to use DVTB's "videnc1" class for XDM 1.0 H.264 Encoder.

Can you try these parameter values (copy to your script file) or use the attached DVTB script file?

setp engine name encode
setp videnc1 codec h264enc
setp videnc1 encodingPreset 0
setp videnc1 rateControlPreset 2
setp videnc1 maxHeight 480
setp videnc1 maxWidth 720
setp videnc1 maxFrameRate 25000
setp videnc1 maxBitRate 2000000
setp videnc1 dataEndianness 1
setp videnc1 maxInterFrameInterval 1
setp videnc1 inputChromaFormat 4
setp videnc1 inputContentType 0
setp videnc1 reconChromaFormat -1
setp videnc1 inputHeight 480
setp videnc1 inputWidth 640
setp videnc1 refFrameRate 25000
setp videnc1 targetFrameRate 25000
setp videnc1 targetBitRate 2000000
setp videnc1 intraFrameInterval 30
setp videnc1 generateHeader 0
setp videnc1 captureWidth 0
setp videnc1 forceFrame -1
setp videnc1 interFrameInterval 1
setp videnc1 mbDataFlag 0
setp videnc1 framePitch 640
setp videnc1 numFrames 30
func videnc1 -s ./foreman_vga_422i.yuv -t testout.264

Regards,
Prem

________________________________________
From: Jack [mailto:[email protected]]
Sent: Tuesday, September 29, 2009 4:47 PM
To: JayaKumar, PremKumar
Cc: '[email protected]'; Ring, Chris; Uppal, Deepali
Subject: RE: DSP hang when run DVSDK Demo in DM6446

Hi Prem:

My step is:
1, In /mnt/sdb/dvsdk_2_00_00_22, run:
      make clean
      make all
      make install
cp dvtb_4_00_08/packages/ti/sdo/dvtb/dm6446/bin/dvtb-d install/dm6446/ cp dvtb_4_00_08/packages/ti/sdo/dvtb/dm6446/bin/dvtb-r install/dm6446/
      cp examples/dm355/venc/foreman_vga_422i.yuv  install/dm6446

2, vi script.cfg
             setp engine name encode
             setp videnc codec h264enc
             setp videnc inputChromaFormat 1
             setp videnc maxFrameRate 25000
             setp videnc refFrameRate 25000
             setp videnc targetFrameRate 25000
             setp videnc intraFrameInterval 25
             setp videnc maxHeight 480
             setp videnc maxWidth 720
             setp videnc inputHeight 480
             setp videnc inputWidth 720
             setp videnc targetBitRate 2000000
             func videnc -s ./foreman_vga_422i.yuv -t ./video.264

3, In my DM6446 board, run:
      CE_DEBUG=1 ./dvtb-r -s script.cfg
......
[DVTB-LOG]: ../core/linux/dvtbEngine.c: Engine <encode> opened.
@0,852,001us: [+6 T:0x413a4490] CE - Engine_getConstName> Unable to locate alg "h264enc" (type "ti.sdo.ce.video.IVIDENC"). @0,852,193us: [+6 T:0x413a4490] CV - VISA_create2> Unable to locate alg "h264enc".
[DVTB-ERROR]: linux/dvtbVidEnc.c: Unable to initialize Video Encoder
[DVTB-ERROR]: linux/dvtbVidCapture.c: Unable to initialize Video Encoder <h264enc> [DVTB-LOG]: linux/dvtbVidCapture.c: Video [capture][encode] completed for <-1> frames
[DVTB-LOG]: linux/dvtbVidCapture.c: Video Encoder <h264enc> closed
[DVTB-LOG]: linux/dvtbVidCapture.c: Engine <encode> closed

4, If run the dvtb-d, the result is same: Unable to locate alg "h264enc"

Which step do I missing ?

Thanks.

Jack

From: JayaKumar, PremKumar [mailto:[email protected]]
Sent: Tuesday, September 29, 2009 4:47 PM
To: Jack
Cc: '[email protected]'; Ring, Chris; Uppal, Deepali
Subject: RE: DSP hang when run DVSDK Demo in DM6446

Jack,

H.264 Encoder will support different values for intraFrameInterval. You can check this out using the Digital Video Test Bench (DVTB) application that would be present in your DVSDK installation.

Please try setting the following parameter values in DVTB to see if the intraFrameInterval works for values other than 1. (The use-case referred here is for encoding a D1 PAL stream.)

        encodingPreset
0
        rateControlPreset
2
        maxHeight
576
        maxWidth
720
        maxFrameRate
30000
        maxBitRate
4000000
        dataEndianness
1
        maxInterFrameInterval
1
        inputChromaFormat
4
        inputContentType
0
        reconChromaFormat
-1
        inputHeight
576
        inputWidth
720
        refFrameRate
30000
        targetFrameRate
30000
        targetBitRate
4000000
        intraFrameInterval
30
        generateHeader
0
        captureWidth
720
        forceFrame
0
        interFrameInterval
1
        mbDataFlag
0
        framePitch
720


Regards,
Prem

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Jack
Sent: Monday, September 28, 2009 1:58 PM
To: Ring, Chris; Uppal, Deepali; '[email protected] '
Subject: RE: DSP hang when run DVSDK Demo in DM6446

Hi Chris and Deepali:

Thanks for the input!

The DSP always halt when encoding the second frame.

We try to change the value of Params and DynamicParams,
We found if we set dynParams->intraFrameInterval = 1 ; other params we use the Demo's value; the DSP will not halt, the dvsdk_2_00_00_22/dvsdk_demos_2_00_00_07/ dm6446/encode can continue work,

Does the Ti H.264 encode only support I frame ?
or we need to change another params value?

Below is the intraFrameInterval's explain:

XDAS_Int32 IVIDENC1_DynamicParams::intraFrameInterval
The number of frames between two I frames. For example, 30.

Remarks:
   For example, this field will be:

       * 0 - Only first frame to be intra coded. e.g. IPPPPPP...
       * 1 - No inter frames (all intra frames).
       * 2 - Consecutive IPIPIP... sequence (if no B frames).
       * 3 - IPPIPP... or IPBIPBI... and so on.

Thanks.

Jack

-----Original Message-----
From: Ring, Chris [mailto:[email protected]]
Sent: Wednesday, September 23, 2009 10:33 PM
To: Jack; Uppal, Deepali; '[email protected] '
Subject: RE: DSP hang when run DVSDK Demo in DM6446

When the DSP becomes unresponsive well after startup, like in this case, it's typically b/c some DSP side code has crashed.

Is it always when encoding the 3rd frame (if I counted right)? Does it happen when encoding different scenes?

Can you connect with CCS and see what the DSP is doing? If so, you might use the BIOS object viewers to inspect what tasks are running, if any have blown their stacks, etc.

Chris

-----Original Message-----
From: [email protected]
[mailto:[email protected]
] On Behalf Of Jack
Sent: Wednesday, September 23, 2009 2:39 AM
To: Uppal, Deepali; '[email protected]'
Subject: RE: DSP hang when run DVSDK Demo in DM6446

Hi:

No!
my meaning is after check the message when using CE_DEBUG=2,
It seems the DSP hanging.

Thanks.

Jack

-----Original Message-----
From: Uppal, Deepali [mailto:[email protected]]
Sent: Wednesday, September 23, 2009 5:29 PM
To: Jack; '[email protected]'
Subject: RE: DSP hang when run DVSDK Demo in DM6446

Hi,

But system no respond after capture and encode some frame,
It seems the DSP hand after running with CE_DEBUG=2

Do you see a hang only when you run with CE_DEBUG=2?

Thanks and Regards,
Deepali Uppal
DSP/BIOS Link
Platform Support Products


-----Original Message-----
From: Jack [mailto:[email protected]]
Sent: Wednesday, September 23, 2009 1:50 PM
To: Uppal, Deepali; '[email protected]'
Subject: RE: DSP hang when run DVSDK Demo in DM6446

Hi Deepali Uppal:

You are right, each time when the DSP hanging, it run at:
@6,001,216us: [+0 T:0x41baf490 S:0x41baea84] OC - Comm_get>
Enter(queue=0x10001, msg=0x41baeb3c, timeout=-1)

and the next code is (according log):
@6,021,210us: [+0 T:0x41baf490 S:0x41baea84] OC - Comm_get>
MSGQ_get() status=0x8000, return (0)

It seems DSPLink waiting to get a message...


@6,000,282us: [+1 T:0x41baf490 S:0x41baea84] OM -
Memory__getPhysicalAddress> returning physAddr=0x87965000
@6,000,443us: [+0 T:0x41baf490 S:0x41baea84] OM -
Memory_getBufferPhysicalAddress> return (0x87965000)
@6,000,612us: [+0 T:0x41baf490 S:0x41baeac4] CV -
VISA_call(visa=0x60f90, msg=0x425d0c80):
messageId=0x00023823, command=0x0
@6,000,792us: [+0 T:0x41baf490 S:0x41baea8c] OC - Comm_put>
Enter(queue=0x2, msg=0x425d0c80)
@6,001,036us: [+0 T:0x41baf490 S:0x41baea8c] OC - Comm_put> return (0)
@6,001,216us: [+0 T:0x41baf490 S:0x41baea84] OC - Comm_get>
Enter(queue=0x10001, msg=0x41baeb3c, timeout=-1)

***  hang up here each time ***

@6,021,210us: [+0 T:0x41baf490 S:0x41baea84] OC - Comm_get>
MSGQ_get() status=0x8000, return (0)
@6,021,508us: [+0 T:0x41baf490 S:0x41baea14] OC - Comm_put>
Enter(queue=0x0, msg=0x425cfc80)
@6,021,903us: [+0 T:0x41baf490 S:0x41baea14] OC - Comm_put> return (0)
@6,022,158us: [+0 T:0x41baf490 S:0x41baea0c] OC - Comm_get>
Enter(queue=0x10000, msg=0x41baeaac, timeout=-1)
@6,022,541us: [+0 T:0x41baf490 S:0x41baea0c] OC - Comm_get>
MSGQ_get() status=0x8000, return (0)
[DSP] @7,792,696tk: [+5 T:0x8fa474e4 S:0x8fa4b8b4] CN - NODE>
0x8fa46f88(h264enc#0) call(algHandle=0x8fa47048,
msg=0x8fe06c80); messageId=0x00023823
[DSP] @7,792,786tk: [+0 T:0x8fa474e4 S:0x8fa4b77c] OM -
Memory_cacheInv> Enter(addr=0x87bc6000, sizeInBytes=691200)
[DSP] @7,793,597tk: [+0 T:0x8fa474e4 S:0x8fa4b77c] OM -
Memory_cacheInv> return
[DSP] @7,793,647tk: [+0 T:0x8fa474e4 S:0x8fa4b744]
ti.sdo.ce.video1.VIDENC1 - VIDENC1_process> Enter
(handle=0x8fa47048, inBufs=0x8fa4b7e4, outBufs=0x8fa4b8b4,
inArgs=0x8fe06e04, outArgs=0x8fe06e10)
[DSP] @7,793,754tk: [+5 T:0x8fa474e4 S:0x8fa4b724] CV -
VISA_enter(visa=0x8fa47048): algHandle = 0x8fa47078
[DSP] @7,793,813tk: [+0 T:0x8fa474e4 S:0x8fa4b704]
ti.sdo.ce.alg.Algorithm - Algorithm_activate> Enter(alg=0x8fa47078)
[DSP] @7,793,876tk: [+0 T:0x8fa474e4 S:0x8fa4b704]
ti.sdo.ce.alg.Algorithm - Algorithm_activate> Exit
[DSP] @7,836,543tk: [+5 T:0x8fa474e4 S:0x8fa4b724] CV -
VISA_exit(visa=0x8fa47048): algHandle = 0x8fa47078
[DSP] @7,836,637tk: [+0 T:0x8fa474e4 S:0x8fa4b704]
ti.sdo.ce.alg.Algorithm - Algorithm_deactivate> Enter(alg=0x8fa47078)
[DSP] @7,836,707tk: [+0 T:0x8fa474e4 S:0x8fa4b704]
ti.sdo.ce.alg.Algorithm - Algorithm_deactivate> Exit
[DSP] @7,836,763tk: [+0 T:0x8fa474e4 S:0x8fa4b744]
ti.sdo.ce.video1.VIDENC1 - VIDENC1_process> Exit
(handle=0x8fa47048, retVal=0x0)
[DSP] @7,836,836tk: [+0 T:0x8fa474e4 S:0x8fa4b77c] OM -
Memory_cacheWb> Enter(addr=0x87965000, sizeInBytes=345600)
[DSP] @7,837,300tk: [+0 T:0x8fa474e4 S:0x8fa4b77c] OM -
Memory_cacheWb> return
Cap:    Complete cap 02 frame at:84300000 691200
[DSP] @7,837,345tk: [+5 T:0x8fa474e4 S:0x8fa4b8b4] CN - NODE>
returned from call(algHandle=0x8fa47048, msg=0x8fe06c80);
messageId=0x00023823
[DSP] @7,841,122tk: [+0 T:0x8fa424e4 S:0x8fa464a4] CR -
processRmsCmd(0x8fe05ca8, 4056): cmd = 5
[DSP] @7,841,179tk: [+0 T:0x8fa424e4 S:0x8fa464a4] CR -
remote time = 0x0, trace buffer size = 4032
@6,451,400us: [+0 T:0x41baf490 S:0x41baea44] CE -
Engine_fwriteTrace> retu

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to