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