Hi all,
I want to capture video data from FPGA using VIN0 ports, performing image compressor and then send back compressing video data to FPGA using VOUTo port. is it possible?
DM8186 FPGA
VOUT0[0..29] -----------------> VOUT0[0..29]
VIN0[0..23] <-------------------- VIN0[0..23]
Thanks,
Bonzai
Yes, something like this is certainly possible.
For the capture side you could simply configure your FPGA to output a standard video looking signal set and use the standard capture drivers to capture to buffers.
For the output side you could basically output the compressed data as though it is part of a video frame. There are a few ways to do this and the video output is extremely flexible.
My suggestion would be to determine what you maximum peak bandwidth requirements are then create frame buffers which are large enough/fast enough to export the compressed data. The frame rate of the output and size of the output image is fully configurable.
I would then create some header type data at the start of each frame buffer indicating exactly how much active data is to follow in the current 'packet' and then copy the compressed data, appending it to the header data. In the FPGA you would then look for a v-sync event then process the active data, initially processing the 'header' in order to determine the exact amount of actual data in the frame.
The down side of this method is that the clock rate of the data is not the same as the actual data rate since you are effectively packing the compressed data into fixed size packets which can contain a variable amount of actual data.
BR,
Steve
Please mark this post as answered via the Verify Answer button below if you think it answers your question. Thanks!
Hi, Steve
I want to use FPGA send the handled data to vip0. FPGA configured 9388 when it was in power. So I don't configure in 8168.
But now it can not capture any frame.
How can I do? Can you help me?
Thanks.
There must be something different between your FPGA output and the original 9388 output. Are you 100% sure that your FPGA code mimics the same standard as what the 9388 was configured for?
Do you get any error messages when loading the drivers?
Are you also mimicking the I2C of the 9388? What about the interrupts that the 9388 might provide, make sure you are emulating those too.
Basically, you need to make sure that every signal that was originally connected to the 9388 is emulated by the FPGA.
I am sorry I don't have enough time to mimick the I2C of 9388, so I don't. My colleague uesd FPAG and 9388 in another project, it was OK.
this is the log.
root@dvr:/opt/dvr_rdk/ti816x# ./init.sh *** Bootargs Validated for mem param ****** Bootargs Validated for notifyk.vpssm3 params ***Kernel bootargs validatedamixer: Control default open error: No such file or directory
[c6xdsp ] Remote Debug Shared Memory @ 0xbff00000 [m3video] Remote Debug Shared Memory @ 0xbff05020 [m3vpss ] Remote Debug Shared Memory @ 0xbff0a040[ 95.070000] SysLink version : 2.10.02.17[ 95.070000] SysLink module created on Date:May 25 2012 Time:15:56:07[ 95.080000] Trace enabled[ 95.090000] Trace SetFailureReason enabled Setting DMM priority for [DUCATI ] to [0] ( 0x4e000624 = 0x08000000 ) Setting DMM priority for [HDVICP0 ] to [2] ( 0x4e000634 = 0x0000000a ) Setting DMM priority for [HDVICP1 ] to [2] ( 0x4e000634 = 0x000a0000 ) Setting DMM priority for [HDVICP2 ] to [2] ( 0x4e000634 = 0x00a00000 ) *** TVP5158 probe : START *** TI VS EVM : TVP5158 device address : 0x58, 0x5a, 0x5c, 0x5e TI DVR : TVP5158 device address : 0x5c, 0x5d, 0x5e, 0x5f Device found : I2C (0xXX): 0x08 = 0x51 I2C (0xXX): 0x09 = 0x58 Device NOT found : I2C (0xXX): Read ERROR !!! (reg[0x08], count = 2) ERROR (osa_i2c.c|OSA_i2cTestMain|263): OSA_i2cOpen( instId = 2 ) ERROR (osa_i2c.c|OSA_i2cTestMain|263): OSA_i2cOpen( instId = 2 ) ERROR (osa_i2c.c|OSA_i2cTestMain|263): OSA_i2cOpen( instId = 2 ) ERROR (osa_i2c.c|OSA_i2cTestMain|263): OSA_i2cOpen( instId = 2 ) ERROR (osa_i2c.c|OSA_i2cTestMain|263): OSA_i2cOpen( instId = 2 ) ERROR (osa_i2c.c|OSA_i2cTestMain|263): OSA_i2cOpen( instId = 2 ) *** TVP5158 probe : END *** /opt/dvr_rdk/ti816xroot@dvr:/opt/dvr_rdk/ti816x# ./load.sh Attached to slave procId 2.Loaded file ../firmware/dvr_rdk_fw_m3vpss.xem3 on slave procId 2.Started slave procId 2.After Ipc_loadcallback status [0x00000000] [m3vpss ] ***** SYSTEM : Frequency <ORG> - 250000000, <NEW> - 280000000 [m3vpss ] notify_attach rtnVal 0 [m3vpss ] initProxyServer rtnVal 0 [m3vpss ] [m3vpss ] *** UTILS: CPU KHz = 560000 Khz *** [m3vpss ] [m3vpss ] 43: SYSTEM : System Common Init in progress !!! [m3vpss ] 43: SYSTEM: IPC init in progress !!! [m3vpss ] 43: SYSTEM: Attaching to [HOST] ... [m3vpss ] 1043: SYSTEM: Attaching to [HOST] ... [m3vpss ] 1045: SYSTEM: Attaching to [HOST] ... SUCCESS !!! [m3vpss ] 1045: SYSTEM: Attaching to [DSP] ... After Ipc_startcallback status [0x097d2000]Attached to slave procId 1.Loaded file ../firmware/dvr_rdk_fw_m3video.xem3 on slave procId 1.Started slave procId 1.After Ipc_loadcallback status [0x00000000] [m3video] ***** SYSTEM : Frequency <ORG> - 250000000, <NEW> - 280000000After Ipc_startcallback status [0x00000000] [m3vpss ] 2045: SYSTEM: Attaching to [DSP] ... [m3video] [m3video] *** UTILS: CPU KHz = 560000 Khz *** [m3video] [m3video] 1544: SYSTEM : System Common Init in progress !!! [m3video] 1544: SYSTEM: IPC init in progress !!! [m3video] 1544: SYSTEM: Attaching to [HOST] ... [m3video] 2543: SYSTEM: Attaching to [HOST] ... [m3video] 2545: SYSTEM: Attaching to [HOST] ... SUCCESS !!! [m3video] 2546: SYSTEM: Attaching to [DSP] ... Attached to slave procId 0.Loaded file ../firmware/dvr_rdk_fw_c6xdsp.xe674 on slave procId 0.Started slave procId 0.After Ipc_loadcallback status [0x00000000] [c6xdsp ] ***** SYSTEM : Frequency <ORG> - 800000000, <NEW> - 800000000 [m3video] 3545: SYSTEM: Attaching to [DSP] ... [m3vpss ] 3045: SYSTEM: Attaching to [DSP] ... [c6xdsp ] [c6xdsp ] *** UTILS: CPU KHz = 800000 Khz *** [c6xdsp ] [c6xdsp ] 5: SYSTEM : System Common Init in progress !!! [c6xdsp ] 5: SYSTEM: IPC init in progress !!! [c6xdsp ] 5: SYSTEM: Attaching to [HOST] ... [c6xdsp ] 1029: SYSTEM: Attaching to [HOST] ... [c6xdsp ] 1031: SYSTEM: Attaching to [HOST] ... SUCCESS !!! [c6xdsp ] 1031: SYSTEM: Attaching to [VIDEO-M3] ... After Ipc_startcallback status [0x00000000][ 103.620000] DMA: Module install successful, device major num = 251 [ 103.630000] DRV: Module install successful[ 103.630000] DRV: Module built on May 25 2012 16:02:47 [m3vpss ] 4045: SYSTEM: Attaching to [DSP] ... [c6xdsp ] Remote Debug Shared Memory @ 0xbff00000 [m3video] Remote Debug Shared Memory @ 0xbff05020 [m3vpss ] Remote Debug Shared Memory @ 0xbff0a040 [m3video] 4545: SYSTEM: Attaching to [DSP] ... [c6xdsp ] 2055: SYSTEM: Attaching to [VIDEO-M3] ... [m3vpss ] 5045: SYSTEM: Attaching to [DSP] ... [c6xdsp ] 2678: SYSTEM: Attaching to [VIDEO-M3] ... SUCCESS !!! [m3video] 5545: SYSTEM: Attaching to [DSP] ... [c6xdsp ] 2678: SYSTEM: Attaching to [VPSS-M3] ... [m3video] 5545: SYSTEM: Attaching to [DSP] ... SUCCESS !!! [m3video] 5546: SYSTEM: Attaching to [VPSS-M3] ... [m3vpss ] 6045: SYSTEM: Attaching to [DSP] ... [m3video] 6545: SYSTEM: Attaching to [VPSS-M3] ... [c6xdsp ] 3701: SYSTEM: Attaching to [VPSS-M3] ... [c6xdsp ] 4202: SYSTEM: Attaching to [VPSS-M3] ... SUCCESS !!! [m3vpss ] 7045: SYSTEM: Attaching to [DSP] ... [c6xdsp ] 4202: SYSTEM: Opening MsgQ Heap [IPC_MSGQ_MSG_HEAP] ... [m3vpss ] 7045: SYSTEM: Attaching to [DSP] ... SUCCESS !!! [m3vpss ] 7045: SYSTEM: Attaching to [VIDEO-M3] ... [m3video] 7545: SYSTEM: Attaching to [VPSS-M3] ... [m3video] 8045: SYSTEM: Attaching to [VPSS-M3] ... SUCCESS !!! [m3vpss ] 8045: SYSTEM: Attaching to [VIDEO-M3] ... [m3video] 8045: SYSTEM: Opening MsgQ Heap [IPC_MSGQ_MSG_HEAP] ... [m3vpss ] 8045: SYSTEM: Attaching to [VIDEO-M3] ... SUCCESS !!! [m3video] 8046: SYSTEM: Creating MsgQ [VIDEO-M3_MSGQ] ... [m3vpss ] 8045: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP] ... [m3video] 8046: SYSTEM: Creating MsgQ [VIDEO-M3_ACK_MSGQ] ... [m3vpss ] 8045: SYSTEM: Creating MsgQ [VPSS-M3_MSGQ] ... [m3video] 8047: SYSTEM: Notify register to [HOST] line 0, event 15 ... [m3vpss ] 8046: SYSTEM: Creating MsgQ [VPSS-M3_ACK_MSGQ] ... [m3video] 8047: SYSTEM: Notify register to [DSP] line 0, event 15 ... [m3vpss ] 8047: SYSTEM: Notify register to [HOST] line 0, event 15 ... [m3video] 8048: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... [m3vpss ] 8047: SYSTEM: Notify register to [DSP] line 0, event 15 ... [m3video] 8048: SYSTEM: IPC init DONE !!! [m3vpss ] 8048: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... [m3vpss ] 8048: SYSTEM: IPC init DONE !!! [c6xdsp ] 5226: SYSTEM: Opening MsgQ Heap [IPC_MSGQ_MSG_HEAP] ... [m3video] 8053: MEM: Shared Region 2: Base = 0xb0000000, Length = 0x0e900000 (233 MB) [m3vpss ] 8053: MEM: Shared Region 2: Base = 0xb0000000, Length = 0x0e900000 (233 MB) [c6xdsp ] 5226: SYSTEM: Creating MsgQ [DSP_MSGQ] ... [m3video] 8054: MEM: Shared Region 1: Base = 0x90000000, Length = 0x0d180000 (209 MB) [m3vpss ] 8053: MEM: Shared Region 1: Base = 0x90000000, Length = 0x0d180000 (209 MB) [c6xdsp ] 5226: SYSTEM: Creating MsgQ [DSP_ACK_MSGQ] ... [m3video] 8055: SYSTEM : System Common Init Done !!! [m3vpss ] 8055: SYSTEM : System Common Init Done !!! [c6xdsp ] 5227: SYSTEM: Notify register to [HOST] line 0, event 15 ... [m3video] 8055: SYSTEM : System Video Init in progress !!! [m3vpss ] 8055: SYSTEM : System VPSS Init in progress !!! [c6xdsp ] 5227: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... [m3video] 8055: SYSTEM : System Video Init Done !!! [m3vpss ] === HDVPSS Clocks are enabled === [c6xdsp ] 5227: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... [m3video] 8056: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_0] in region 0 ... [m3vpss ] === HDVPSS is fully functional === [c6xdsp ] 5227: SYSTEM: IPC init DONE !!! [m3video] 8056: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_0] in region 0 ... [m3vpss ] === HDVPSS module is not in standby === [c6xdsp ] 5229: MEM: Shared Region 2: Base = 0xb0000000, Length = 0x0e900000 (233 MB) [m3video] 8056: SYSTEM: ListElem Shared Addr = 0xbe98b680 [c6xdsp ] 5229: MEM: Shared Region 1: Base = 0x90000000, Length = 0x0d180000 (209 MB) [m3video] 8058: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_1] in region 0 ... [c6xdsp ] 5229: SYSTEM : System Common Init Done !!! [m3video] 8059: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_1] in region 0 ... [c6xdsp ] 5103: SYSTEM : System DSP Init in progress !!! [m3video] 8059: SYSTEM: ListElem Shared Addr = 0xbe9ae580 [c6xdsp ] 5103: SYSTEM : RpeServer_init() done... Ret Val 0!!! [c6xdsp ] 5232: SYSTEM: Creating ListMP [DSP_IPC_OUT_23] in region 0 ... [c6xdsp ] 5232: SYSTEM: Creating ListMP [DSP_IPC_IN_23] in region 0 ... [c6xdsp ] 5232: SYSTEM: ListElem Shared Addr = 0xbe98ee00 [c6xdsp ] 5233: SYSTEM: Creating ListMP [DSP_IPC_OUT_24] in region 0 ... [c6xdsp ] 5233: SYSTEM: Creating ListMP [DSP_IPC_IN_24] in region 0 ... [c6xdsp ] 5233: SYSTEM: ListElem Shared Addr = 0xbe9b1a80 [c6xdsp ] 5234: SYSTEM: Creating ListMP [DSP_IPC_OUT_25] in region 0 ... [m3video] 8064: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_23] in region 0 ... [m3vpss ] === I2C1 Clk is active === [c6xdsp ] 5234: SYSTEM: Creating ListMP [DSP_IPC_IN_25] in region 0 ... [m3video] 8065: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_23] in region 0 ... [m3vpss ] 8060: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_0] in region 0 ... [c6xdsp ] 5234: SYSTEM: ListElem Shared Addr = 0xbe9d1480 [m3video] 8065: SYSTEM: ListElem Shared Addr = 0xbea30f80 [m3vpss ] 8061: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_0] in region 0 ... [c6xdsp ] 5234: SYSTEM: Creating ListMP [DSP_IPC_OUT_28] in region 0 ... [m3video] 8067: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_24] in region 0 ... [m3vpss ] 8061: SYSTEM: ListElem Shared Addr = 0xbea0da00 [c6xdsp ] 5234: SYSTEM: Creating ListMP [DSP_IPC_IN_28] in region 0 ... [m3video] 8067: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_24] in region 0 ... [m3vpss ] 8063: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_1] in region 0 ... [c6xdsp ] 5234: SYSTEM: ListElem Shared Addr = 0xbe9f1400 [m3video] 8068: SYSTEM: ListElem Shared Addr = 0xbea50980 [m3vpss ] 8063: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_1] in region 0 ... [c6xdsp ] 5235: SYSTEM: Creating ListMP [DSP_IPC_OUT_29] in region 0 ... [m3video] 8070: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_25] in region 0 ... [m3vpss ] 8063: SYSTEM: ListElem Shared Addr = 0xbea2da80 [c6xdsp ] 5235: SYSTEM: Creating ListMP [DSP_IPC_IN_29] in region 0 ... [m3video] 8070: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_25] in region 0 ... [m3vpss ] 8077: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_23] in region 0 ... [c6xdsp ] 5235: SYSTEM: ListElem Shared Addr = 0xbea10f00 [m3video] 8070: SYSTEM: ListElem Shared Addr = 0xbea70380 [m3vpss ] 8077: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_23] in region 0 ... [c6xdsp ] !!WARNING.Resource already registered:2 [c6xdsp ] 5109: SYSTEM : Initializing Links !!! [m3video] 8083: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_28] in region 0 ... [m3vpss ] 8077: SYSTEM: ListElem Shared Addr = 0xbea8fd80 [m3video] 8083: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_28] in region 0 ... [m3vpss ] 8079: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_24] in region 0 ... [c6xdsp ] 5236: SYSTEM : FREE SPACE : System Heap = 10268448 B, Mbx = 10240 msgs) [m3video] 8084: SYSTEM: ListElem Shared Addr = 0xbeaeeb80 [m3vpss ] 8080: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_24] in region 0 ... [m3video] 8086: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_29] in region 0 ... [m3vpss ] 8080: SYSTEM: ListElem Shared Addr = 0xbeaaf780 [c6xdsp ] 5117: SYSTEM : Initializing Links ... DONE !!! [m3video] 8086: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_29] in region 0 ... [m3vpss ] 8082: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_25] in region 0 ... [m3video] 8086: SYSTEM: ListElem Shared Addr = 0xbeb0b700 [m3vpss ] 8082: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_25] in region 0 ... [c6xdsp ] 5117: SYSTEM : System DSP Init Done !!! [m3video] 8088: HDVICP: Doing PRCM for IVAHD[0] ... [m3vpss ] 8083: SYSTEM: ListElem Shared Addr = 0xbeacf180 [m3video] 8088: HDVICP: PRCM for IVAHD[0] ... DONE. [m3vpss ] 8084: SYSTEM : HDVPSS Drivers Version: HDVPSS_01_00_01_37 [m3video] 8088: HDVICP: Doing PRCM for IVAHD[1] ... [m3vpss ] 8084: SYSTEM : FVID2 Init in progress !!! [m3video] 8088: HDVICP: PRCM for IVAHD[1] ... DONE. [m3vpss ] $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Vps mask.............. [m3video] 8088: HDVICP: Doing PRCM for IVAHD[2] ... [m3vpss ] $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Vps hal tempReg -2147483648..... [m3video] 8088: HDVICP: PRCM for IVAHD[2] ... DONE. [m3vpss ] $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Vps mask.............. [m3video] 8089: SYSTEM : Initializing Links !!! [m3vpss ] $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Vps hal tempReg -2147483648..... [m3vpss ] 8155: SYSTEM : FVID2 Init in progress DONE !!! [m3video] 8089: SYSTEM : FREE SPACE : System Heap = 6280232 B, Mbx = 10240 msgs) [m3vpss ] 8155: SYSTEM : Device Init in progress !!! [m3vpss ] Received character 's' [m3video] 8089: SYSTEM : FREE SPACE : SR0 Heap = 14517120 B (13 MB) [m3vpss ] initPrms.isI2cInitReq = 0 [c6xdsp ] Remote Debug Shared Memory @ 0xbff00000 [m3video] Remote Debug Shared Memory @ 0xbff05020 [m3vpss ] Remote Debug Shared Memory @ 0xbff0a040 [m3video] Received character 's' [m3video] 8089: SYSTEM : FREE SPACE : Frame Buffer = 244318080 B (232 MB) [m3vpss ] initPrms.isI2cInitReq = 0 [m3vpss ] 8158: SYSTEM : Device Init in progress DONE !!! [m3video] 8089: SYSTEM : FREE SPACE : Bitstream Buffer = 219676544 B (209 MB) [m3vpss ] 8276: SYSTEM : System VPSS Init Done !!! [m3vpss ] 8276: UTILS: DMA: HWI Create for INT62 !!! [m3video] 8090: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ... [m3vpss ] 8276: SYSTEM : Initializing Links !!! [m3video] 8090: SYSTEM : FREE SPACE : Tiler 8-bit = 134217728 B (128 MB) - TILER ON [m3vpss ] 8276: SYSTEM : FREE SPACE : System Heap = 13024 B, Mbx = 10240 msgs) [m3video] 8090: SYSTEM : FREE SPACE : Tiler 16-bit = 134217728 B (128 MB) - TILER ON [m3vpss ] 8276: SYSTEM : FREE SPACE : SR0 Heap = 14517120 B (13 MB) [m3video] 8121: SYSTEM : Initializing Links ... DONE !!! [m3vpss ] 8276: SYSTEM : FREE SPACE : Frame Buffer = 240008064 B (228 MB) [c6xdsp ] Remote Debug Shared Memory @ 0xbff00000 [m3video] Remote Debug Shared Memory @ 0xbff05020[ 108.470000] [module] vpss probe done.0xbff0a040
[c6xdsp ] Received character 's'/opt/dvr_rdk/ti816x [m3vpss ] 8277: SYSTEM : FREE SPACE : Bitstream Buffer = 219676544 B (209 MB) [m3vpss ] 8277: SYSTEM : FREE SPACE : Tiler 8-bit = 134217728 B (128 MB) - TILER ON [m3vpss ] 8277: SYSTEM : FREE SPACE : Tiler 16-bit = 134217728 B (128 MB) - TILER ON [m3vpss ] 8381: SYSTEM : Initializing Links ... DONE !!! [ 108.530000] [module] ti81xxfb probe done.[ 108.560000] HDMI W1 rev 2.0[ 108.570000] [module] ti81xx_hdmi probe done.[ 108.790000] I2C No Ack[ 108.790000] ORG 0x46c00524: 0 NEW 0x46c00524: 2
Hi, Steve.
If the FPGA is open. It will stop in
[m3vpss ] CH | In Recv In Reject In Process Out User Out [m3vpss ] Num | FPS FPS FPS FPS Skip FPS [m3vpss ] ------------------------------------------------ [m3vpss ] 0 | 0 0 0 0 0 [m3vpss ]
If FPGA is reseted, it will go on. But the HWI is 87.8%. What is the problem? [m3vpss ] AVSYNC:WallTime IGNORE Unexpected Discontinuity.PrevTs[215473]/CurTs[254593] [m3vpss ] [m3vpss ] 260623: LOAD: CPU: -18.0% HWI: 87.8%, SWI:1.6% [m3vpss ] [m3vpss ] 260623: LOAD: TSK: CAPTURE : 3.4% [m3vpss ] 260623: LOAD: TSK: NSF0 : 1.2% [m3vpss ] 260624: LOAD: TSK: MISC : -112.0%
Hi,
Could you print the statistics by pressing 'i' and share the log?
Regards,
Brijesh Jadav
I.m sorry I'm not very clear your advice: "print the statistics by pressing 'i' ". I try but not succed.
Invoke Vsys_printDetailedStatistics() API
The driver is probably trying to configure the 9388 but when it does not get the correct response it might fail.
I bet your other project either does not try to configure the 9388 or it ignores any errors it finds.
Are you 100% sure that you are duplicating ALL the signals that were originally generated by the 9388, i.e. frame syncs, interrupt outputs etc...
As I said previously, if you do not want to change the driver at all then you must 100% emulate the 9388. You need to make sure that every signal that was originally connected to the 9388 is emulated by the FPGA. If this is not true then you will need to modify the driver accordingly.
Removing 9388 configuration should be as simple as searching for "9388" in the drivers and making all functions that expect a response from the 9388 stubs. Other places may require the FPGA to generate frame pulses etc...
If I need to change the driver, I should modify what.
Can you help me?
As Brijesh mentioned in the other post the VIP register dump indicates protocol violation. This indicates the signal to VIP is wrong.It is not possible to resolve this with s/w changes.I would recommend the following:
1. Configure VIP as per Brijesh's recommendation (No changes in driver)
2. Check the signal levels and protocol using external probe as Sujith mentioned.
Do you have the abiliity to connect CCS via JTAG and load firmware on your board. It may be easier to use the capture sample app (M3 executable) to resolve issues with your capture before trying entire RDK application
Hi, thanks very much for your help. I'll try to debug accroding to your advice. I have not ability to connect CCS so it will need more time.
Now, my colleague suggested me to change VCORE_BP_DEFAULT_WIDTH and VCORE_BP_DEFAULT_HEIGHT to 1920, 1080 in vpscore_bypass.c.
I test if I change, it can successfully put 1 frame to fullQue some times, and it also can successfully call FVID2_Dequeue() sometimes, just about 10 times.
I test capture-display, I found it was green in screen wether it connected capture. Some information is as following. What's wrong? Can you help me?
[host] MCFW_IPCFRAMES: Callback function:VcapVenc_ipcFramesInCbFxn [host] MCFW_IPCFRAMES:Received first frame notify... [host] MCFW_IPCFRAMES:VIDFRAMELIST_INFO:FullFrameList numFullFrames:1 [host] MCFW_IPCFRAMES:VIDFRAME_INFO:chNum:0 fid:0 frameWidth:1920 frameHeight:1080 timeStamp:21967 virtAddr[0][0]:(nil) phyAddr[0][0]:0xb3786c80 [m3vpss ] | Total Even Odd Total Even Odd Min / Max Min / Max Dropped Fid Repeat Frame Error Y/C [m3vpss ] CH | Fields Fields Fields FPS FPS FPS Width Height Fields Count (Desc Error Y/C) [m3vpss ] ------------------------------------------------------------------------------------------------------------ [m3vpss ] [m3vpss ] VIP Capture Port 0 | DescMissMatch1 = 0, DescMissMatch2 = 0 , DescMissMatch3 = 0 [m3vpss ] [m3vpss ] *** Capture List Manager Advanced Statistics *** [m3vpss ] [m3vpss ] List Post Count : 1 [m3vpss ] List Stall Count : 0 [m3vpss ] List Post Time (ms) : Max = 0, Min = 0, Avg = 0, Total = 0 [m3vpss ] INTC Timeout Count : (0, 0) (Min timeout value = 993, 1000) [m3vpss ] Descriptor miss found count : 0 [m3vpss ] [m3vpss ] [m3vpss ] VIP and VPDMA registers, [m3vpss ] VIP0 : FIQ_STATUS : 0x4810551c = 0x00004400 [m3vpss ] VIP1 : FIQ_STATUS : 0x48105a1c = 0x00000000 [m3vpss ] VPDMA: LIST_BUSY : 0x4810d00c = 0x00000000 [m3vpss ] [m3vpss ] [m3vpss ] 21937: CAPTURE: Fields = 0 (fps = 0, CPU Load = 0) [m3vpss ] 21937: CAPTURE: Num Resets = 0 (Avg 0 ms per reset) [m3vpss ] 21937: SYSTEM : FREE SPACE : System Heap = 7104 B, Mbx = 10239 msgs) [m3vpss ] 21937: SYSTEM : FREE SPACE : SR0 Heap = 12076032 B (11 MB) [m3vpss ] 21937: SYSTEM : FREE SPACE : Frame Buffer = 167293824 B (159 MB) [m3vpss ] 21937: SYSTEM : FREE SPACE : Bitstream Buffer = 219676544 B (209 MB) [m3vpss ] 21938: SYSTEM : FREE SPACE : Tiler Buffer = 256 B (0 MB) - TILER OFF [m3vpss ] [m3vpss ] *** [NSF0] NSF Statistics *** [m3vpss ] [m3vpss ] Elasped Time : 0 secs [m3vpss ] Total Fields Processed : 0 [m3vpss ] Total Fields FPS : 0 FPS [m3vpss ] [m3vpss ] [m3vpss ] CH | In Recv In Reject In Process Out User Out [m3vpss ] Num | FPS FPS FPS FPS Skip FPS [m3vpss ] ------------------------------------------------ [m3vpss ] 0 | 0 0 0 0 0 [m3vpss ] [m3vpss ] @@@@@@@@@@@@@@@@@ pObj is = 9e2e1418!!! [m3vpss ] 222222222222222222222 Vps_captDequeue: the count of fullQue is 0.. [m3vpss ] @@@@@@@@@@@@@@@@@ pObj is = 9e2e1418!!! [m3vpss ] 222222222222222222222 Vps_captDequeue: the count of fullQue is 1.. [m3vpss ] @@@@@@@@@@@@@@@@@@@ post semaphore to unblock, blocked tasks......... [m3vpss ] !!!!!!!!!!!!!!!!!!!!!! eque is successful, add to frame list ... [m3vpss ] 222222222222222222222 Vps_captDequeue: the count of fullQue is 0.. [m3vpss ] NNNNNNNNNNNNNNNNNNNNNNNNNNNN CAPTURE: Queued back 21976 frames !!! [m3vpss ] 222222222222222222222222222222 Vps_captQueue: the emptyQue's count is 9 [m3vpss ] NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN FVID2_queue: the retVal is 0.. [m3vpss ] NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN FVID2_queue: the number of frameList is 1.. [m3vpss ] @@@@@@@@@@@@@@@@@ pObj is = 9e2e1418!!! [m3vpss ] 222222222222222222222 Vps_captDequeue: the count of fullQue is 1.. [m3vpss ] @@@@@@@@@@@@@@@@@@@ post semaphore to unblock, blocked tasks......... [m3vpss ] !!!!!!!!!!!!!!!!!!!!!! eque is successful, add to frame list ... [m3vpss ] 222222222222222222222 Vps_captDequeue: the count of fullQue is 0.. [m3vpss ] NNNNNNNNNNNNNNNNNNNNNNNNNNNN CAPTURE: Queued back 21992 frames !!! [m3vpss ] 222222222222222222222222222222 Vps_captQueue: the emptyQue's count is 9 [m3vpss ] NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN FVID2_queue: the retVal is 0.. [m3vpss ] NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN FVID2_queue: the number of frameList is 1.. [m3vpss ] @@@@@@@@@@@@@@@@@ pObj is = 9e2e1418!!! [m3vpss ] 222222222222222222222 Vps_captDequeue: the count of fullQue is 1.. [m3vpss ] @@@@@@@@@@@@@@@@@@@ post semaphore to unblock, blocked tasks......... [m3vpss ] !!!!!!!!!!!!!!!!!!!!!! eque is successful, add to frame list ... [m3vpss ] 222222222222222222222 Vps_captDequeue: the count of fullQue is 0.. [m3vpss ] NNNNNNNNNNNNNNNNNNNNNNNNNNNN CAPTURE: Queued back 22009 frames !!! [m3vpss ] 222222222222222222222222222222 Vps_captQueue: the emptyQue's count is 9 [m3vpss ] NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN FVID2_queue: the retVal is 0.. [m3vpss ] NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN FVID2_queue: the number of frameList is 1.. [m3vpss ] @@@@@@@@@@@@@@@@@ pObj is = 9e2e1418!!!
This statistics still shows that capture is not getting any input frame from the external decoder, so the number of captured frames is 0.. Green display could be becuase you display buffer is filled up with 0x0. Changing the default display width and height does not affect the capture, it will just make sure that the default display size is 1080p, which anyway you can configure using SET_FORMAT ioctl. One gogd thing this time, it does not show any violation, but it still has not capture any thing. Can you please make sure that your input source is on?
Hi, Brijesh. Thanks very much for your help.
Now the capture-display is OK.
But I have another problem. If I use capture-display, the count of fullQue is 1 in Vps_captDequeue().(Vps_captDequeue: the count of fullQue is 1...).
But if I change display to encode. " the count of fullQue is 1" can only print 12 times. And then it will print "Vps_captDequeue: the count of fullQue is 0..".
I am very confused. Can you help me???
Can you share your usecase c file. Looks like buffers are not being freed oback to capture link.