Hi, my hardware = ti8168 + vc daughter board.We have worked on DVR RDK for 3 weeks, and we need the decoder to read encoded bit stream and then output frames to ARM. We read the MCFW demos and make some changes on VDEC-VDIS demo:
The origin links chain:
BitOutHost-BitInVideo-DEC-OutVideo-InVpss-Dup-2SWMOSAIC-2Displays
The changed links chain:
BitOutHost-BitInVideo-DEC-OutVideo-InVpss-Dup-FrameOutVpss-FrameInHost
The results are:
[host] TI_VDEC:Entered function:Vdec_ipcFramesInCbFxn
[host] Vdec_ipcFramesInCbFxn
[host] MCFW_IPCFRAMES:Received first frame notify...
[host] TI_VDEC:Entered function:Vdec_getFullVideoFrames
[host]
[host] TI_VDEC:Leaving function:Vdec_copyVidFrameInfoLink2McFw
[host] VidFrameInfo:virt[0][0]:(nil),phy[0][0]:0x20,channelNum:0,fid:0,frameWidth:1920,frameHeight:1080,timeStamp:0,
[host] TI_VDEC:Leaving function:Vdec_getFullVideoFrames
[host] NumFrames Received:1
[host] MCFW_IPCFRAMES:VIDFRAMELIST_INFO:FullFrameList numFullFrames:1
[host] MCFW_IPCFRAMES:VIDFRAME_INFO:chNum:0 fid:0 frameWidth:1920 frameHeight:1080 timeStamp:0 virtAddr[0][0]:(nil) phyAddr[0][0]:0x20
[host] MCFW_IPCFRAMES:VIDFRAMELIST_INFO:EmptyFrameList numFullFrames:1
[host] MCFW_IPCFRAMES:VIDFRAME_INFO:chNum:0 fid:0 frameWidth:1920 frameHeight:1080 timeStamp:0 virtAddr[0][0]:(nil) phyAddr[0][0]:0x20
[host] TI_VDEC:Entered function:Vdec_putEmptyVideoFrames
[host] Num bufs released:1
[host] TI_VDEC:Leaving function:Vdec_copyVidFrameInfoMcFw2Link
[host] VidFrameInfo:virt[0][0]:(nil),phy[0][0]:0x20,channelNum:0,fid:0,frameWidth:1920,frameHeight:1080,timeStamp:0,
[host] TI_VDEC:Leaving function:Vdec_putEmptyVideoFrames
[host] VIDFrame release status:0
[host] MCFW_IPCFRAMES:VdecVdis_ipcFramesRecvFxn:INFO: periodic print.. [m3video] Ch number:0 InputFPS :30, trickPlay outputFrameRate: 30
[host] MCFW_IPCFRAMES:VIDFRAMELIST_INFO:FullFrameList numFullFrames:1
[host] MCFW_IPCFRAMES:VIDFRAME_INFO:chNum:0 fid:0 frameWidth:1920 frameHeight:1080 timeStamp:33 virtAddr[0][0]:(nil) phyAddr[0][0]:0x820
[host] MCFW_IPCFRAMES:VIDFRAMELIST_INFO:EmptyFrameList numFullFrames:1
[host] MCFW_IPCFRAMES:VIDFRAME_INFO:chNum:0 fid:0 frameWidth:1920 frameHeight:1080 timeStamp:33 virtAddr[0][0]:(nil) phyAddr[0][0]:0x820
[host] MCFW_IPCFRAMES:VIDFRAMELIST_INFO:FullFrameList numFullFrames:1
[host] MCFW_IPCFRAMES:VIDFRAME_INFO:chNum:0 fid:0 frameWidth:1920 frameHeight:1080 timeStamp:66 virtAddr[0][0]:(nil) phyAddr[0][0]:0x1020
[host] MCFW_IPCFRAMES:VIDFRAMELIST_INFO:EmptyFrameList numFullFrames:1
[host] MCFW_IPCFRAMES:VIDFRAME_INFO:chNum:0 fid:0 frameWidth:1920 frameHeight:1080 timeStamp:66 virtAddr[0][0]:(nil) phyAddr[0][0]:0x1020
[host] MCFW_IPCFRAMES:VIDFRAMELIST_INFO:FullFrameList numFullFrames:1
[host] MCFW_IPCFRAMES:VIDFRAME_INFO:chNum:0 fid:0 frameWidth:1920 frameHeight:1080 timeStamp:99 virtAddr[0][0]:(nil) phyAddr[0][0]:0x1820
[host] MCFW_IPCFRAMES:VIDFRAMELIST_INFO:EmptyFrameList numFullFrames:1
[host] MCFW_IPCFRAMES:VIDFRAME_INFO:chNum:0 fid:0 frameWidth:1920 frameHeight:1080 timeStamp:99 virtAddr[0][0]:(nil) phyAddr[0][0]:0x1820
As the results show, the physical address is wrong(0x20,0x820,0x1020,0x1820). Is the changed links chain correct? If not, how to get frame in A8 from video decoder?