This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM8127 RDK 2.8- How to get the FramesBuf for YVU not raw data

Dear all,

I use DM8127 RDK 2.8 and demo code steting is vsysParams.systemUseCase = VSYS_USECASE_MULTICHN_TRISTREAM_FULLFTR

and I want to get 1080P YUV data for my own app use.

But the demo code only  App_ipcBitsInit(); 

I try this fun:  Int32 Vcap_getFullVideoFrames(VIDEO_FRAMEBUF_LIST_S *pFrameBufList, UInt32 timeout)  in Ti_vcap.c

but I get FrameBuf once only so who can tell me how to get. 

Thanks.

  • While building do the following change in Rules.make

    # Set this flag to "YUV" = YUV frames (secondary stream only) will do a round trip M3-A8-M3 to reach the SD display
    # Set this flag to "RAW" = RAW frames will be sent to A8 and then back to M3
    FRAMES_TO_A8 := YUV

  • Thank u,

    let me try it and reply here.

  • Daer sir,

    I check the Rule.make in RDK 2.8.

    There is no such this flag setting like below.

    -------------------------------------------------------------------------------------------------------------------------------------------------------------

    While building do the following change in Rules.mak

    # Set this flag to "YUV" = YUV frames (secondary stream only) will do a round trip M3-A8-M3 to reach the SD display
    # Set this flag to "RAW" = RAW frames will be sent to A8 and then back to M3
    FRAMES_TO_A8 := YUV

    ------------------------------------------------------------------------------------------------------------------------------------------------------------

    but those flag in RDK 3.2 Rule.make. So should I copy those flag to RDK 2.8 Rule.make?

    would u tell me about this. thank u again.

  • You need to upgrade it to IPNC 3.0 onwards to have this feature.

  • Dear sir,

    I have RDK 2.8 and 3.2.

    When I use RDK 3.2, it has problem in boot kernel and NFS mountinig.

    So I go back to  use RDK 2.8.

    The RDK 2.8 has no the YUV/RAW  data capture funs, is that right.

  • Try building "make sysall" in the RDK 3.2

  • Dear Sir,

    I will try it again on monday but I did that  "make -s sysall"   many time.  

    and I always met those problem ..

    1. It could not build the 64bit EBIF but 32bit is no problem.

    2.after build sysall I update u-boot 1 & 2..   then kernel. 

    3. The kernel could not boot very often.

    4. NFS fun failed very often or it is mounting but boa server or some thread will fail.

    Is any thing I did worng because I follow the install guide. 

  • Dear Sir,

    After I chmod & chown to my usraccnt & Building "make sysall" in the RDk 3.2

    I got those error below:

    Arago Project http://arago-project.org dm814x-evm ttyO0

    Arago 2010.11 dm814x-evm ttyO0

    dm814x-evm login: root (automatic login)
    [m3vpss ] 7479: CAMERA: Detect video in progress !!!
    [m3vpss ] 7480: CAMERA: Detect video Done !!!
    [m3vpss ] 7624: DUP : Create Done !!!
    [m3vpss ] 7624: NSF: Create in progress !!!
    [m3vpss ] NSF::HEAPID:0 USED:128
    [m3vpss ] NSF::HEAPID:1 USED:4928
    [m3vpss ] 7729: NSF: Create Done !!!
    [m3vpss ] 7736: DUP : Create Done !!!
    [m3vpss ] 7743: DUP : Create Done !!!
    [m3vpss ] 7745: MERGE : Create Done !!!
    [m3vpss ] DCC server task running
    [m3vpss ] {SWOSD} edma3Handle->tccVal = 34
    [m3vpss ] {SWOSD} edma3Handle->chId = 34
    [m3vpss ] {SWOSD} edma3Handle->tccVal = 35
    [m3vpss ] {SWOSD} edma3Handle->chId = 35
    [m3vpss ] {SWOSD} edma3Handle->tccVal = 36
    [m3vpss ] {SWOSD} edma3Handle->chId = 36
    [m3vpss ] 7673: SWOSD : Create Done !!!
    [m3vpss ] 7812: SCLR: Create in progress !!!
    [m3vpss ] 7817: SCLR : Loading Up-scaling Co-effs ...
    [m3vpss ] 7817: SCLR : Co-effs Loading ... DONE !!!
    [m3video] 7825: IPC_IN_M3 : Create in progress !!!
    [m3video] 7825: SYSTEM: Opening ListMP [VPSS-M3_IPC_OUT_0] ...
    [m3vpss ] SCLR:HEAPID:0 USED:64
    [m3video] 7826: SYSTEM: Opening ListMP [VPSS-M3_IPC_IN_0] ...
    [m3vpss ] SCLR:HEAPID:1 USED:5952
    [m3video] 7826: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...
    [m3vpss ] 7817: SCLR: Create Done !!!
    [m3vpss ] 7685: FD : Alg Create Done !!!
    [m3video] 7829: IPC_IN_M3 : Create Done !!!
    [m3vpss ] 7685: FD : Create Done !!!
    [m3vpss ] 7823: IPC_OUT_M3 : Create in progress !!!
    [m3vpss ] 7824: IPC_OUT_M3 : Create Done !!!
    root@dm814x-evm:~# [m3video] 7830: ENCODE: Create in progress ... !!!
    FAT: bogus number of reserved sectors
    VFS: Can't find a valid FAT filesystem on dev sbulla.
    [m3video] 7957: ENCODE: Creating CH0 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED ], bitrate = 2000 Kbps ...
    mkdosfs 2.11 (12 Mar 2005)
    unable to get drive geometry, using default 255/63/dev/sbulla has 255 heads and 63 sectors per track,
    logical sector size is 512,
    using 0xf8 media descriptor, with 1024 sectors;
    file system has 2 12-bit FATs and 4 sectors per cluster.
    FAT size is 1 sector, and provides 247 clusters.
    Root directory contains 512 slots.
    Volume ID is 4d81f2df, no volume label.
    [m3video] ENCLINK_H264:HEAPID:0 USED:13808
    [m3video] 8064: ENCODE: Creating CH1 of 720 x 480, pitch = (720, 720) [PROGRESSIVE] [NON-TILED ], bitrate = 2000 Kbps ...
    g_file_storage gadget: No serial-number string provided!
    g_file_storage gadget: File-backed Storage Gadget, version: 1 September 2010
    g_file_storage gadget: Number of LUNs=1
    g_file_storage gadget-lun0: ro=0, nofua=0, file: /dev/sbulla

    [host] IpcBitsInLink_tskMain:Entered
    [host] 1077: IPC_BITS_IN : Create in progress !!!

    [host] 1077: IPC_BITS_IN : ListMPOpen start !!!

    [host] 1077: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_28] ...

    [host] 1079: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_28] ...

    [host] 1081: IPC_BITS_IN : ListMPOpen done !!!

    [host] 1084: IPC_BITS_IN : System_linkGetInfo done !!!

    [host] 1084: IPC_BITS_IN : Create Done !!!

    [host] USECASE SETUP DONE
    [m3video] ENCLINK_H264:HEAPID:0 USED:11912
    [m3vpss ] 8186: DISPLAY: Create in progress !!!
    [m3video] 8171: ENCODE: Creating CH2 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED ], bitrate = 100 Kbps ...
    [m3vpss ] 8188: DISPLAY: Create Done !!!
    [m3vpss ] 8188: DISPLAY: Create in progress !!!
    [m3vpss ] 8189: DISPLAY: Create Done !!!
    [m3video] ENCLINK_JPEG:HEAPID:0 USED:2176
    [m3vpss ] 8190: DISPLAY: Start in progress !!!
    [m3video] 8172: ENCODE: All CH Create ... DONE !!!
    [m3video] ENCLINK:HEAPID:0 USED:28056
    [m3video] 8175: ENCODE: Create ... DONE !!!
    [m3video] 8086: VSTAB : Alg Create Done !!!
    [m3video] 8086: VSTAB : Create Done !!!
    [m3video] 8176: IPC_BITS_OUT : Create in progress !!!
    Simple mixer control 'PGA',0
    Capabilities: cvolume cswitch penum
    Capture channels: Front Left - Front Right
    Limits: Capture 0 - 119
    Front Left: Capture 80 [67%] [40.00dB] [on]
    Front Right: Capture 80 [67%] [40.00dB] [on]
    [m3video] 8178: IPC_BITS_OUT : Create Done !!!
    [m3vpss ] 8233: DISPLAY: Start Done !!!
    [m3vpss ] 8233: DISPLAY: HDDAC(BP0) : 46 fps, Latency (Min / Max) = ( 255 / 0 ), Callback Interval (Min / Max) = ( 255 / 0 ) !!!
    [m3vpss ] 8233: DISPLAY: UNDERFLOW COUNT: HDMI(BP0) 1, HDDAC(BP0) 0, DVO2(BP1) 1, SDDAC(SEC1) 1
    [m3vpss ] 8234: SYSTEM : FREE SPACE : System Heap = 1208752 B, Mbx = 10237 msgs)
    [m3vpss ] 8234: SYSTEM : FREE SPACE : SR0 Heap = 14164352 B (13 MB)
    [m3vpss ] 8234: SYSTEM : FREE SPACE : Frame Buffer = 2326272 B (2 MB)
    [m3vpss ] 8234: SYSTEM : FREE SPACE : Bitstream Buffer = 42587264 B (40 MB)
    [m3vpss ] 8234: SYSTEM : FREE SPACE : Tiler Buffer = 123 B (0 MB) - TILER OFF
    [m3vpss ] 8235: DISPLAY: Start in progress !!!
    [m3vpss ] 8271: DISPLAY: Start Done !!!
    [m3vpss ] 8272: DISPLAY: SDDAC(SEC1): 27 fps, Latency (Min / Max) = ( 255 / 0 ), Callback Interval (Min / Max) = ( 255 / 0 ) !!!
    [m3vpss ] 8136: CAMERA: Start in progress !!!
    [m3vpss ] 8136: CAMERA: Start Done !!!

    [host]
    Application Run Completed
    [m3vpss ] 8257: CAMERA: Fields = 2 (fps = 0), Total Resets = 0 (Avg 0 ms per reset)

    [host] MCFW_IPCBITS: Callback function:App_ipcBitsInCbFxn
    [host] MCFW_IPCBITS:App_ipcBitsRecvStreamFxn:INFO: periodic print.. [m3video] Channel:1 inputframerate:30 targetfps:60
    [m3video] Channel:0 inputframerate:60 targetfps:60
    [m3video] Channel:2 inputframerate:60 targetfps:5

    [host] ITT server task running !!!

    [host]
    ITT ittServer_run

    [host] ITT Server Message initialization successful

    [host]
    ITT capture task created

    [host] DCC server Message ques is open succefully

    [host] Setting cmd <1> in message <45c26100>

    [host] Posting message <45c26100> in QId <20002>
    [m3vpss ] Command 1 recived from HOST A8

    [host] Response from M3 is : 1
    [m3vpss ] Command 2 recived from HOST A8
    [m3vpss ] New DCC data of size <33603>

    [host] Response from M3 is : 1

    [host] Default parameters were sent sucessfully

    [host] Server Socket created with ID <22>
    [m3vpss ] Call to VNF_LINK_CMD_UPDATE_DCC -1
    queue id:0
    ApproDrvInit: 3
    queue id:131076
    queue id:0
    queue id:32769
    queue id:0
    ApproDrvInit: 7
    queue id:131076
    TimeOut occure in boot_proc.
    Program exit.
    TimeOut occure in boot_proc.
    Program exit.

    would u mind tell me where I should so something.

  • dear chair : I have a common demand with you, i also want get yuv data for my app , but i don't know how to do , could you tell me how can i to do that ? add fun :Vcap_getFullVideoFrames(VIDEO_FRAMEBUF_LIST_S *pFrameBufList, UInt32 timeout) in mcfw_main.c 's app_rundemo ? Regards, derek

  • Dear Jack Jack2,

    My name is Vincent is not chair...

    and what I did on DM8127 IPNC_RDK 2.8.

    I tell you.

    1. Use the IPNC_RDK 3.2

    2. set capture display mode

    3. set flag FRAMES_TO_A8 := YUV

    you well get the yuv 720x480 data.

    If you want 1920x1080 you need change the sys-link in multich_capturedisplay.c.

    and you will meet a problem that is ...

    there is a thread will get the yuv frame buf phyaddr for you in ti_mcfw_ipcframes.c

    you can mmap to viraddr and memcpy to you A8 memory.

    If you want use dma funs I also stuck on dma copy SR2 frame buf.


    I hope that help you some

  • Dear  Vincent :

                             Thank you for your answer ,and  I'm so sorry to call you "chair" . 

                              I not very familiar with ipnc RDK, and I only find the fun :App_ipcBitsInit() in demo .

                            Is add the  fun:  Int32 Vcap_getFullVideoFrames(VIDEO_FRAMEBUF_LIST_S *pFrameBufList, UInt32 timeout)  in Ti_vcap.c after App_ipcBitsInit() to get YUV data ?

                             My English is not very good, please forgive me.

     

  • Dear Jack Jack2...

    About the name it is ok...

    and my english is not good too.

    The IPNC_RDK is my first time use..

    Int32 Vcap_getFullVideoFrames(VIDEO_FRAMEBUF_LIST_S *pFrameBufList, UInt32 timeout)  in Ti_vcap.c after App_ipcBitsInit() to get YUV data ?

    I don't try this funs, so I don't know. I think it is the data after encoder.

    If you want make sure what is it, you can po the question to ask TI.

    do you need the yuv data only?

  • Dear  vincent kuo ....

    I want to get a copy of the YUV data to DSP algorithm, but also do not want to affect the normal operation of the IPNC.

    Now , I don't know what should I do about that.

  • Dear Jack Jack2..

    Pls take a look for http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/182597.aspx#658353

    There is someone ask for dsp use EDMA to get yuv data or something.

  • dear   vincent kuo :

                                     I also want to get YUV data to one of my want to ipnc integrated into the data processing function, but I don't know where to add this function,

    and how to get yuv data . Could you guide me ? thanks you .

     

     

  • Dear time derek,

    1. I use IPNC_RDK 3.2

    2. I modify the Rules.make

    # Capture Display Use case

    CAPTURE_DISPLAY_MODE_ON := YES

    # Set this flag to "YUV" = YUV frames (secondary stream only) will do a round trip M3-A8-M3 to reach the SD display # Set this flag to "RAW" = RAW frames will be sent to A8 and then back to M3

    FRAMES_TO_A8 := YUV

    3. Then you can get the YUV FrameBuf

    by

    ti_mcfw_ipcframes.c

    on 

    /home/vk/dm8127/Source/ipnc_rdk/ipnc_mcfw/demos/mcfw_api_demos/multich_usecase

    4.This is all I got so far.

    have a nice day.

    VK


  •     dear VK ...

                           Thank you for your answer , but I used the RDK 2.8 , It doesn't have ti_mcfw_ipcframes.c ,but has ti_mcfw_ipcBits.c .

         Does it can be used in ti_mcdw_main.c to get YUV Data ?

                           And could you tell me which fun() do you choosed ?

                           thanks again .

  • Dear Time Derek,

    The ti_mcfw_ipcBits.c is getting the Image after ENCODE. 

    I used the IPNC_RDK 3.2, so it has the fun what I told you.

    I don't made the IP cam product or something relation. I afraid I can not help you. But you can refer ITT folder in demo.

    It is use DCC software on PC via TCP/IP to get the YUV framer buffer,

    or

    You just move to IPNC_RDK 3.2, it might be a quickly way.

    I tried the rdk 2.8 to use funs in ti_vcam.c or ti_vcap.c.

    I want to get the yuv framebuf in main.c but it does not work, you can take a look what I posted and I don't get it.

    Vincent Kuo

  • dear VK ...

    My goal is in full mode, main code flow to provide network transmission, second code spread to DSP algorithm to DSP after 264 decoding.

    But now I can't find the two code flow place. Also don't know this from which laid a hand on him, what about your can give some ideas?