程序不知道改了哪里, 四个视频输入端口,必须在板子启动器插上摄像头,如果在板子启动后插摄像头,则监控没有画面、
for example, 摄像头a插入vin0口,启动板子,监控会有画面,拔掉摄像头a再插到vin0口,仍然能监控,但是如果插入到vin1,则没有监控画面了、怀疑是加载驱动的问题? 但是不知道到程序哪块找了、、、请指个方向~~~~~~~~~~~many many many thanks ~
Eason Wang:
你尝试一下这个:
在5158初始化的配置里面设置Output Formatter Control 2
01 Blue screen out when TVP5158 detects lost lock 或者10 Force Blue screen out
这样的话,会强制输出蓝屏的。
ocean cheng:
回复 Eason Wang:
5158初始化的配置里面设置? 没找到地方呢o(╯□╰)o。。。
Chris Meng:
回复 ocean cheng:
你好,
DM36x的VPFE要求输入的时序是连续不变的。如果输入的时序发生变化,需要复位VPSS。
如果你插拔视频源,TVP5158的输出时序会有变化,这时候需要复位VPSS。
如果强制TVP5158输出蓝屏,当你插上视频源后,TVP5158的输出时序仍然会有变化,这时候仍然需要复位VPSS。
kooking:
ocean cheng
程序不知道改了哪里, 四个视频输入端口,必须在板子启动器插上摄像头,如果在板子启动后插摄像头,则监控没有画面、
for example, 摄像头a插入vin0口,启动板子,监控会有画面,拔掉摄像头a再插到vin0口,仍然能监控,但是如果插入到vin1,则没有监控画面了、怀疑是加载驱动的问题? 但是不知道到程序哪块找了、、、请指个方向~~~~~~~~~~~many many many thanks ~
ocean cheng:
回复 kooking:
好的,麻烦了哈~~~
kooking:
回复 ocean cheng:
const VIDENC1_DynamicParams Venc1_DynamicParams_DEFAULT = { //sizeof(IVIDENC1_DynamicParams), /* size */ sizeof(IH264VENC_DynamicParams), /* size */ 720, /* inputHeight */ 1280, /* inputWidth */ 30000, /* refFrameRate */ 30000, /* targetFrameRate */ 6000000, /* targetBitRate */ 30, /* intraFrameInterval */ XDM_ENCODE_AU, /* generateHeader */ 0, /* captureWidth */ IVIDEO_NA_FRAME, /* forceFrame */ 1, /* interFrameInterval */ 0 /* mbDataFlag */};
/****************************************************************************** * Venc1_create ******************************************************************************/Venc1_Handle Venc1_create(Engine_Handle hEngine, Char *codecName, VIDENC1_Params *params, VIDENC1_DynamicParams *dynParams){ Venc1_Handle hVe; VIDENC1_Status encStatus; XDAS_Int32 status; VIDENC1_Handle hEncode; IH264VENC_DynamicParams *IH264DynParams;
if (hEngine == NULL || codecName == NULL || params == NULL || dynParams == NULL) { Dmai_err0("Cannot pass null for engine, codec name, params or " "dynamic params\n"); return NULL; }
/* Allocate space for the object */ hVe = (Venc1_Handle)calloc(1, sizeof(Venc1_Object));
if (hVe == NULL) { Dmai_err0("Failed to allocate space for Venc1 Object\n"); return NULL; }
Dmai_dbg5("Creating encoder %s for max %dx%d bitrate %d ratectrl %d\n", codecName, params->maxWidth, params->maxHeight, params->maxBitRate, params->rateControlPreset);
/* Create video encoder instance */ hEncode = VIDENC1_create(hEngine, codecName, params);
if (hEncode == NULL) { Dmai_err2("Failed to open video encode algorithm: %s (0x%x)\n", codecName, Engine_getLastError(hEngine)); free(hVe); return NULL; }
Dmai_dbg3("Setting dynParams size %dx%d bitrate %d\n", dynParams->inputWidth, dynParams->inputHeight, dynParams->targetBitRate);
/* Set video encoder dynamic parameters */ encStatus.size = sizeof(VIDENC1_Status); encStatus.data.buf = NULL;
IH264DynParams = &H264VENC_TI_IH264VENC_DYNAMICPARAMS; memcpy(IH264DynParams, dynParams, sizeof(VIDENC1_DynamicParams) ); IH264DynParams ->idrFrameInterval = 25;
//status = VIDENC1_control(hEncode, XDM_SETPARAMS, dynParams, &encStatus); status = VIDENC1_control(hEncode, XDM_SETPARAMS, (VIDENC1_DynamicParams*)IH264DynParams, &encStatus);
…
}
kooking:
回复 ocean cheng:
dmai Venc1.c
kooking:
回复 ocean cheng:
目前什么情况,我想知道这个修改在你上面会不会发生作用