Tool/software: Linux
Hi !
I'm trying to capture video frames from the camera in 720p-30 (YUV 422) mode with the subsequent compression of the H264 codec, but frame capture occurs at a frequency of half the time, that is, 15 Hz.
My set:
Camera( OV5640 720P-30 YUV 422) ----> LEOPARDBOARD( DM368 ARM 432 MHz DDR: 340 MHz ) ---> Linux DVSDK 4.02.00.06-->program capture ENCODE (from DVSDK) display video output OFF.
encode log:
ARM Load: 2% Video fps: 15 fps Demo: Encode Display: 720P 60Hz Video Codec: H.264 HP Resolution: N/A Sound Codec: N/A Sampling Freq: N/A
............... ARM Load: 0% Video fps: 15 fps Demo: Encode Display: 720P 60Hz Video Codec: H.264 HP Resolution: N/A Sound Codec: N/A Sampling Freq: N/A ARM Load: 0% Video fps: 15 fps Demo: Encode Display: 720P 60Hz Video Codec: H.264 HP Resolution: N/A Sound Codec: N/A Sampling Freq: N/A
in Capture.c file (dmai_2_20_00_15) :
/* In DM365 the capture driver does not support 720P-30, but the
LSP has an option to reduce the capture rate to half. So when user
sets for 720P-30, we treat it as 720P-60 except we set LSP capture
rate to half. */
/* NOTE: make execption for DM368 camera input which supports 720P-30*/
I tried to forcefully disable halfRateCapture = TRUE;
In the state halfRateCapture = FALSE;
As a result, frames are no longer captured at all .....
encode log:
ARM Load: 3% Video fps: 0 fps Demo: Encode Display: 720P 60Hz Video Codec: H.264 HP Resolution: N/A Sound Codec: N/A Sampling Freq: N/A
................. ARM Load: 0% Video fps: 0 fps Demo: Encode Display: 720P 60Hz Video Codec: H.264 HP Resolution: N/A Sound Codec: N/A Sampling Freq: N/A ARM Load: 0% Video fps: 0 fps Demo: Encode Display: 720P 60Hz Video Codec: H.264 HP Resolution: N/A Sound Codec: N/A Sampling Freq: N/A
I tried to apply recommendations for optimizing the DM36x:
MSTPRI0: 0x00550011(default) to 0x00440022 or 0x00440011 or 0x00220044
DMA_RZA: 0x00(default) to 0x20 or 0x40 or 0x80 or 0x90
The result is the same 0 frames received.
I tried to lower the frame rate of the camera to 4-10 Hz, the result is the same 0 frames captured.
What needs to be done to capture frames without missing every second frame ?
Tell me how to solve this problem ?
what am I doing wrong ? what could be the problem ?
My log VPFE register.
IPIPEIF ADDRU = 0x0 IPIPEIF ADDRL = 0x0 IPIPEIF ADOFS = 0x0 IPIPEIF RSZ = 0x10 IPIPEIF GAIN = 0x200 IPIPEIF DPCM = 0x0 IPIPEIF CFG2 = 0x48 IPIPEIF INIRSZ = 0x0 IPIPEIF OCLIP = fff IPIPEIF DTUDF = 0 IPIPEIF CLKDIV = 1 IPIPEIF DPC1 = 0 IPIPEIF DPC2 = 0 IPIPEIF DFSGVL = 0 IPIPEIF DFSGTH = fff IPIPEIF RSZ3A = 10 IPIPEIF INIRSZ3A = 0 IPIPE Registers ************************************************** IPIPE_SRC_EN = 0x0 IPIPE_SRC_MODE = 0x0 IPIPE_SRC_FMT = 0x3 IPIPE_SRC_COL = 0xe4 IPIPE_SRC_VPS = 0x1 IPIPE_SRC_VSZ = 0x2cf IPIPE_SRC_HPS = 0x0 IPIPE_SRC_HSZ = 0x4ff IPIPE_SEL_SBU = 0x0 IPIPE_DMA_STA = 0x0 IPIPE_GCK_MMR = 0x1 IPIPE_GCK_PIX = 0xe Resizer Registers ************************************************** RSZ_SRC_EN = 0x0 RSZ_SRC_MODE = 0x0 RSZ_SRC_FMT0 = 0x0 RSZ_SRC_FMT1 = 0x0 RSZ_SRC_VPS = 0x0 RSZ_SRC_VSZ = 0x2cf RSZ_SRC_HPS = 0x0 RSZ_SRC_HSZ = 0x4ff RSZ_DMA_RZA = 0x90 RSZ_DMA_RZB = 0x0 RSZ_DMA_STA = 0x0 RSZ_GCK_MMR = 0x1 RSZ_GCK_SDR = 0x1 RSZ_IRQ_RZA = 0x1fff RSZ_IRQ_RZB = 0x1fff RSZ_YUV_Y_MIN = 0x0 RSZ_YUV_Y_MAX = 0xff RSZ_YUV_C_MIN = 0x0 RSZ_YUV_C_MAX = 0xff RSZ_YUV_PHS = 0x0 RSZ_SEQ = 0x0 RSZ A EN = 0x0 RSZ A MODE = 0x0 RSZ A 420 = 0x3 RSZ A I_VPS = 0x0 RSZ A I_HPS = 0x0 RSZ A O_VSZ = 0x2cf RSZ A O_HSZ = 0x4ff RSZ A V_PHS_Y = 0x0 RSZ A V_PHS_C = 0x0 RSZ A V_DIF = 0x100 RSZ A V_TYP = 0x0 RSZ A V_LPF = 0x0 RSZ A H_PHS = 0x0 RSZ A H_PHS_ADJ = 0x0 RSZ A H_DIF = 0x100 RSZ A H_TYP = 0x0 RSZ A H_LPF = 0x0 RSZ A DWN_EN = 0x0 RSZ A DWN_AV = 0x0 RSZ A RGB_EN = 0x0 RSZ A RGB_TYP = 0x0 RSZ A RGB_BLD = 0x0 RSZ A SDR_Y_BAD_H = 0x86ef RSZ A SDR_Y_BAD_L = 0xa000 RSZ A SDR_Y_SAD_H = 0x86ef RSZ A SDR_Y_SAD_L = 0xa000 RSZ A SDR_Y_OFT = 0x500 RSZ A SDR_Y_Y_PTR_S = 0x0 RSZ A SDR_Y_PTR_E = 0x2d0 RSZ A SDR_C_BAD_H = 0x86fd RSZ A SDR_C_BAD_L = 0xb000 RSZ A SDR_C_SAD_H = 0x86fd RSZ A SDR_C_SAD_L = 0xb000 RSZ A SDR_C_OFT = 0x500 RSZ A SDR_C_PTR_S = 0x0 RSZ A SDR_C_PTR_E = 0x168 RSZ B EN = 0x0 RSZ B MODE = 0x0 RSZ B 420 = 0x0 RSZ B I_VPS = 0x0 RSZ B I_HPS = 0x0 RSZ B O_VSZ = 0x0 RSZ B O_HSZ = 0x1 RSZ B V_PHS_Y = 0x0 RSZ B V_PHS_C = 0x0 RSZ B V_DIF = 0x100 RSZ B V_TYP = 0x0 RSZ B V_LPF = 0x0 RSZ B H_PHS = 0x0 RSZ B H_PHS_ADJ = 0x0 RSZ B H_DIF = 0x100 RSZ B H_TYP = 0x0 RSZ B H_LPF = 0x0 RSZ B DWN_EN = 0x0 RSZ B DWN_AV = 0x0 RSZ B RGB_EN = 0x0 RSZ B RGB_TYP = 0x0 RSZ B RGB_BLD = 0x0 RSZ B SDR_Y_BAD_H = 0x0 RSZ B SDR_Y_BAD_L = 0x0 RSZ B SDR_Y_SAD_H = 0x0 RSZ B SDR_Y_SAD_L = 0x0 RSZ B SDR_Y_OFT = 0x0 RSZ B SDR_Y_Y_PTR_S = 0x0 RSZ B SDR_Y_PTR_E = 0x1fff RSZ b SDR_C_BAD_H = 0x0 RSZ B SDR_C_BAD_L = 0x0 RSZ B SDR_C_SAD_H = 0x0 RSZ B SDR_C_SAD_L = 0x0 RSZ B SDR_C_OFT = 0x0 RSZ B SDR_C_PTR_S = 0x0 RSZ B SDR_C_PTR_E = 0x1fff