Hello All, I am using the DM6467 EVM and trying to modify the
encodedecode demo to take a 1080i source (a camera). I works fine in
pass through mode, but when I try to get it to encode/decode, the
encoder creation fails. I have debugged it as far as I could and
traced it down to the call to VIDENC1_control(inside of Venc1_create)
returning a status of -1. But I have no indication of what parameters
it is complaining about. I understand that the encode/decode will not
keep up real-time, but I just want to make sure the encoder is working
for 1080i. BTW, it does work fine for 720p.
I've included some more debug info below. If anyone has an idea of
what I'm missing (or if I can provide more info), please let me know.
Thanks so much.
Best regards,
-Craig
0. Version info
LSP v1.30.0.82
DVSDK 1.4.0.31
DM6467 chip EVM
Demo CODECs
dvsdk_combos_1_15
1. Debug log from console
[EMAIL PROTECTED]:/opt/dvsdk/dm6467# DMAI_DEBUG=2 ./encodedecode -y5 -r1920x1072
@0x000bd11a:[T:0x40018528] ti.sdo.dmai - [Dmai] Dmai log level set to
'2'. Note that calling CERuntime_init after this point may cause
unexpected change to DMAI tracing b.
Encodedecode demo started.
@0x000ed24a:[T:0x43b4ab60] ti.sdo.dmai - [Venc1] Creating encoder
h264enc for max 1920x1072 bitrate 2000000 ratectrl 4
@0x000f6c49:[T:0x43b4ab60] ti.sdo.dmai - [Venc1] params 1920 1072
bitrate 2000000
@0x000f6daa:[T:0x43b4ab60] ti.sdo.dmai - [Venc1] Setting dynParams
size 1920x1072 bitrate 1000000
@0x000f6f01:[T:0x43b4ab60] ti.sdo.dmai - [Venc1] more dynParams
size:60 refFrameRate:30000 targetFrameRate:30000 intraFrameInterval:30
@0x000f7055:[T:0x43b4ab60] ti.sdo.dmai - [Venc1] more dynParams
generateHeader:0 captureWidth:0 forceFrame:0 interFrameInterval:30
mbDataFlag:0
@0x000f7323:[T:0x43b4ab60] ti.sdo.dmai - [Venc1] status = -1 encStatus
= size:156 extendedError:0x00000000
@0x000f7475:[T:0x43b4ab60] ti.sdo.dmai - [Venc1] encStatus.data =
buf:0x00000000 bufSize:-440470278 accessMask:0x00000000
@0x000f75c3:[T:0x43b4ab60] ti.sdo.dmai - [Venc1] encStatus.bufInfo =
minNumInBufs:2 minNumOutBufs:1048576
@0x000f76fa:[T:0x43b4ab60] ti.sdo.dmai - [Venc1] XDM_SETPARAMS failed, status=-1
Error: Failed to create h264 video encoder
@0x0025943d:[T:0x42b49b60] ti.sdo.dmai - [Display] Video output set to
size 1920x1080 pitch 1920
@0x002595c0:[T:0x42b49b60] ti.sdo.dmai - [BufTab] Allocating BufTab
for 3 buffers
@0x002a5db1:[T:0x42b49b60] ti.sdo.dmai - [Dmai] Driver buffer 0 mapped
to 0x43b4b000 has physical address 0x86400000
@0x002f2551:[T:0x42b49b60] ti.sdo.dmai - [Dmai] Driver buffer 1 mapped
to 0x43f40000 has physical address 0x86800000
@0x0033ed2d:[T:0x42b49b60] ti.sdo.dmai - [Dmai] Driver buffer 2 mapped
to 0x44335000 has physical address 0x86c00000
@0x004f49f3:[T:0x4334ab60] ti.sdo.dmai - [Capture] Capture input set
to COMPONENT
@0x004f4b3d:[T:0x4334ab60] ti.sdo.dmai - [Capture] Video input
connected size 1920x1080 pitch 1920
@0x004f4c53:[T:0x4334ab60] ti.sdo.dmai - [BufTab] Allocating BufTab
for 4 buffers
@0x00541583:[T:0x4334ab60] ti.sdo.dmai - [Dmai] Driver buffer 0 mapped
to 0x4472a000 has physical address 0x87400000
@0x0058df0a:[T:0x4334ab60] ti.sdo.dmai - [Dmai] Driver buffer 1 mapped
to 0x44b1f000 has physical address 0x80800000
@0x005da81b:[T:0x4334ab60] ti.sdo.dmai - [Dmai] Driver buffer 2 mapped
to 0x44f14000 has physical address 0x80c00000
@0x006270df:[T:0x4334ab60] ti.sdo.dmai - [Dmai] Driver buffer 3 mapped
to 0x45309000 has physical address 0x86000000
@0x00627637:[T:0x4334ab60] ti.sdo.dmai - [Buffer] Alloc Buffer of size
4147200 at 0x456fe000 (0x8b60b000 phys)
@0x00627715:[T:0x4334ab60] ti.sdo.dmai - [Resize] Configuring resize
from 1920x1080 (pitch 1920) to 1920x1080 (pitch 1920)
2. Using gdb, I dumped some paramaters before this line of code:
status = VIDENC1_control(hEncode, XDM_SETPARAMS, dynParams, &encStatus);
(gdb) p params
$1 = (VIDENC1_Params *) 0x43b49568
(gdb) p *(VIDENC1_Params *) 0x43b49568
$2 = {size = 48, encodingPreset = 0, rateControlPreset = 4, maxHeight
= 1072, maxWidth = 1920, maxFrameRate = 30000,
maxBitRate = 2000000, dataEndianness = 1, maxInterFrameInterval = 1,
inputChromaFormat = 1, inputContentType = 1,
reconChromaFormat = -1}
(gdb) p dynParams
$3 = (VIDENC1_DynamicParams *) 0x43b49538
(gdb) p *(VIDENC1_DynamicParams *) 0x43b49538
$4 = {size = 48, inputHeight = 1072, inputWidth = 1920, refFrameRate =
30000, targetFrameRate = 30000, targetBitRate = 1000000,
intraFrameInterval = 30, generateHeader = 0, captureWidth = 0,
forceFrame = 0, interFrameInterval = 30, mbDataFlag = 0}
status = VIDENC1_control(hEncode, XDM_SETPARAMS, dynParams, &encStatus);
3. Parameters passed to Venc1_create() from inside encodedecode demo code
(copied from default 720p and modified for 1080i):
const VIDENC1_Params Venc1_Params_1080i = {
sizeof(VIDENC1_Params), /* size */
XDM_DEFAULT, /* encodingPreset */
IVIDEO_LOW_DELAY, /* rateControlPreset */
1080, /* maxHeight */
1920, /* maxWidth */
30000, /* maxFrameRate */
1000000, /* maxBitRate */
XDM_BYTE, /* dataEndianness */
1, /* maxInterFrameInterval */
XDM_YUV_420P, /* inputChromaFormat */
IVIDEO_INTERLACED, /* inputContentType */
XDM_CHROMA_NA /* reconChromaFormat */
};
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source