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.

Decode Application for DM8168

Guru 10685 points

With the old DM6467T there was a brilliant example application called "decode" which was provided in the DVSDK with full source code (well commented) which would decode video using a codec of your choice and making use of the DMAI abstraction layer (now replaced with OpenMAX IL I think) and display it on screen using a selected frame rate and resolution.

Is there a similar application for the DM8168 in the latest EZSDK? I really need one and fear I may have to trudge through the OMTB application source code to extract what I want.

I have found the example in the OMX directory and I'm going through it now but it doesn't appear to display anything on screen. Also, I can't find the actual H264 codec itself. Does anyone know where it is?

Thanks,

Ralph

  • I've attached the 'C' OMX example application which does H.264 decode and doesn't rely on the OMTB framework.

    1401.decode_display.zip7536.OpenMax Decode_Display.doc

    Can you describe how you are launching the example in the OMX directory.  The quick start guide and software developers guide found under <ezsdk_root>\doc\ provide detailed instructions for board setup and lanching the example OMTB script.

  • I've found a decode demo in "ti-ezsdk_dm816x-evm_5_01_01_80/omx_05_01_01_80/packages/ti/omx/demos/decode". I haven't had success building it but that's another problem.

    Thanks for your demo. It looks like just what I wanted and I think it will be very useful.

    I don't have any problems running .oms scripts with OMTB. All the basic stuff is easy and runs fine. It's development of an encode/decode application that I'm most interested in (until the Gstreamer plugin is completed at least) and the source code you provided should help.

    I found out where the codecs are. They are in the media controller binaries in <EZSDK>/omx/firmware. I had previously been looking for .xe674 extension files. Of course it would be nice if this had been documented somewhere...

    Cheers,

    Ralph

  • I'm having trouble running the application. I'm using EZSDK 5.01.01.80 and the SD card environment as comes with the EVM. Matrix GUI runs fine, the stand alone (non-OMTB) decode demo in the OMX directory runs fine, but the decode_display demo does not run properly but crashes out. Here is the text when it crashes:

    root@dm816x-evm:/# ./decode_display_a8host_debug.xv5T 1920 1080 60 /usr/share/ti
    /data/videos/dm816x_1080p_demo.264
    Entered Frame Width: 1920
    Entered Frame Height: 1080
    Entered Frame Rate: 60
    Entered File name: /usr/share/ti/data/videos/dm816x_1080p_demo.264
     Decoder-Display example
    ===============================

    Starting threads

    Threads started. Starting platform init
    Wait for VM3 to to create the server first
    Assertion at LinUnable to handle kernel paging request at virtual address 40000000
    e no: 1989 in /hpgd = cae30000
    ome/ralphc/ezsdk[40000000] *pgd=8acef031/ti-ezsdk_dm816x, *pte=00000000-evm_5_01_01_80/, *ppte=00000000syslink_02_00_00
    _68_beta1/ti/sysInternal error: Oops: 17 [#1]
    last sysfs file: /sys/module/pvrsrvkm/initstate
    Modules linked in: bufferclass_ti omaplfb pvrsrvkm TI81xx_hdmi ti81xxfb vpss syslink ipv6
    CPU: 0    Not tainted  (2.6.37 #1)
    PC is at HeapMemMP_openByAddr+0x1f4/0x2f0 [syslink]
    LR is at SharedRegion_isCacheEnabled+0x148/0x180 [syslink]
    pc : [<bf0984b4>]    lr : [<bf07cd1c>]    psr: 60000013
    sp : caceddf0  ip : 00000000  fp : cacede2c
    r10: 00000000  r9 : 00000024  r8 : 00000001
    r7 : d094b044  r6 : d094b024  r5 : bf10f434  r4 : 40000000
    r3 : 00000000  r2 : 00000000  r1 : 00060000  r0 : 00000000
    Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
    Control: 10c5387d  Table: 8ae30019  DAC: 00000015
    Process decode_display_ (pid: 1286, stack limit = 0xcacec2e8)
    Stack: (0xcaceddf0 to 0xcacee000)
    dde0:                                     d094b044 bf13f528 cacede2c 00000000
    de00: 00000000 40000000 00000000 00000000 00000000 cacedeb8 d094b024 00000000
    de20: cacede84 cacede30 bf07f1b8 bf0982cc cacedeb8 cc914d08 cacede74 d094b000
    de40: 00000001 bf13f528 00000008 be8cdb2c cacede84 cacede60 bf06f410 c024f2a0
    de60: ccb9fc80 be8cdb2c 00000008 be8cdb2c cacec000 00000000 cacedef4 cacede88
    de80: bf0c4b20 bf07ee84 c024f2a0 be8cdb2c cacfda80 00000000 ccb0a400 cacec000
    dea0: 00000000 000000ab caceded4 cacedeb8 c005c0d4 c005c040 40000000 00b00000
    dec0: 0001ffff 00000000 00000080 00000001 00000000 c005c0b8 00000000 ccb9fc80
    dee0: 00000008 00000008 cacedf04 cacedef8 c00c49b8 bf0c4708 cacedf74 cacedf08
    df00: c00c50c8 c00c499c 400fb000 ccbbf300 c01afa44 cacfda80 4de65cfb 127a3078
    df20: cacedf54 ccbbf300 400fb000 cacedf70 000000ab 400fb000 cacec000 00000000
    df40: 00000001 000000ab 00000000 00000000 be8cdb2c c024f2a0 00000008 ccb9fc80
    df60: cacec000 00000000 cacedfa4 cacedf78 c00c5160 c00c4bd4 cacedfac 00000001
    df80: c0354434 0008b1d4 00000000 0000a84c 00000036 c003ff48 00000000 cacedfa8
    dfa0: c003fda0 c00c5114 0008b1d4 00000000 00000008 c024f2a0 be8cdb2c 00000008
    dfc0: 0008b1d4 00000000 0000a84c 00000036 00000000 00000000 4003b000 be8cdb14
    dfe0: 00000000 be8cdad0 00072a1c 4027daec 20000010 00000008 00000000 00000000
    Backtrace:
    [<bf0982c0>] (HeapMemMP_openByAddr+0x0/0x2f0 [syslink]) from [<bf07f1b8>] (SharedRegion_setEntry+0x340/0x40c [syslink])
     r7:00000000 r6:d094b024 r5:cacedeb8 r4:00000000
    [<bf07ee78>] (SharedRegion_setEntry+0x0/0x40c [syslink]) from [<bf0c4b20>] (SharedRegionDrv_ioctl+0x424/0x574 [syslink])
    [<bf0c46fc>] (SharedRegionDrv_ioctl+0x0/0x574 [syslink]) from [<c00c49b8>] (vfs_ioctl+0x28/0x44)
     r7:00000008 r6:00000008 r5:ccb9fc80 r4:00000000
    [<c00c4990>] (vfs_ioctl+0x0/0x44) from [<c00c50c8>] (do_vfs_ioctl+0x500/0x540)
    [<c00c4bc8>] (do_vfs_ioctl+0x0/0x540) from [<c00c5160>] (sys_ioctl+0x58/0x7c)
    [<c00c5108>] (sys_ioctl+0x0/0x7c) from [<c003fda0>] (ret_fast_syscall+0x0/0x30)
     r8:c003ff48 r7:00000036 r6:0000a84c r5:00000000 r4:0008b1d4
    Code: e3a01014 e30f2fff e3a03001 ebff2f71 (e5942000)
    link/procMgr/hlo---[ end trace bf302103864eaf52 ]---
    s/usr/ProcMgr.c: (handle != NULL) : failed
    Assertion at Line no: 1786 in /home/ralphc/ezsdk/ti-ezsdk_dm816x-evm_5_01_01_80/syslink_02_00_00_68_beta1/ti/syslink/procMgr/hlos/usr/ProcMgr.c: (handle != NULL) : failed
    Assertion at Line no: 1989 in /home/ralphc/ezsdk/ti-ezsdk_dm816x-evm_5_01_01_80/syslink_02_00_00_68_beta1/ti/syslink/procMgr/hlos/usr/ProcMgr.c: (handle != NULL) : failed
    Assertion at Line no: 1786 in /home/ralphc/ezsdk/ti-ezsdk_dm816x-evm_5_01_01_80/syslink_02_00_00_68_beta1/ti/syslink/procMgr/hlos/usr/ProcMgr.c: (handle != NULL) : failed

    I have already brought down the graphics planes after the Matrix GUI autostarts on boot up. Having said this, even if I don't bring down the graphics planes it still crashes in the same way. Any ideas?

    The immediate cause appears to be ProcMgr_translateAddr() being called with a null handle.

    Thanks,

    Ralph

  • I'll admit I didn't follow the Word document exactly when I received the above problems. If I follow the Word document exactly, here is the output:

    # /decode_display_a8host_debug.xv5T 1920 1080 60 /localdisc/x264Encoder/Water_10
    80p60_BP_10Mbps.264               
    Entered Frame Width: 1920
    Entered Frame Height: 1080
    Entered Frame Rate: 60
    Entered File name: /localdisc/x264Encoder/Water_1080p60_BP_10Mbps.264
     Decoder-Display example
    ===============================

    Starting threads

    Threads started. Starting platform init
    [t=0x00000003] [tid=0x400d3000] xdc.runtime.Main: ERROR: "IpcSupport.c", line 154: ipc_initialize(), error in ProcMgr_load()
    xdc.runtime.Main: "IpcSupport.c", line 154: ipc_initialize(), error in ProcMgr_load()
    [t=0x000000cf] [tid=0x400d3000] xdc.runtime.Main: ERROR: "IpcSupport.c", line 211: ipc_initialize() failed
    xdc.runtime.Main: "IpcSupport.c", line 211: ipc_initialize() failed
    [t=0x000010c3] [tid=0x400d3000] xdc.runtime.Main: ERROR: "IpcSupport.c", line 154: ipc_initialize(), error in ProcMgr_load()
    xdc.runtime.Main: "IpcSupport.c", line 154: ipc_initialize(), error in ProcMgr_load()
    [t=0x00001166] [tid=0x400d3000] xdc.runtime.Main: ERROR: "IpcSupport.c", line 211: ipc_initialize() failed
    xdc.runtime.Main: "IpcSupport.c", line 211: ipc_initialize() failed
    Wait for VM3 to to create the server first

    Platform initialized
     openeing file
    [t=0x000fee66] [tid=0x400d3000] xdc.runtime.Main: ERROR: "IpcSupport.c", line 154: ipc_initialize(), error in ProcMgr_load()
    xdc.runtime.Main: "IpcSupport.c", line 154: ipc_initialize(), error in ProcMgr_load()
    [t=0x000fef1f] [tid=0x400d3000] xdc.runtime.Main: ERROR: "IpcSupport.c", line 211: ipc_initialize() failed
    xdc.runtime.Main: "IpcSupport.c", line 211: ipc_initialize() failed
    [t=0x000ff27f] [tid=0x400d3000] xdc.runtime.Main: ERROR: "IpcSupport.c", line 154: ipc_initialize(), error in ProcMgr_load()
    xdc.runtime.Main: "IpcSupport.c", line 154: ipc_initialize(), error in ProcMgr_load()
    [t=0x000ff2f1] [tid=0x400d3000] xdc.runtime.Main: ERROR: "IpcSupport.c", line 211: ipc_initialize() failed
    xdc.runtime.Main: "IpcSupport.c", line 211: ipc_initialize() failed
    Wait for VM3 to to create the server first
     OMX_Init completed
      decoder compoenent is created
    Error in Get Handle function : OMX_ErrorNotReady
    Segmentation fault

    Thanks,

    Ralph

  • Okay, I think the error above was due to having already loaded the firmware files. I've rectified that, and now get another error:

    # /decode_display_a8host_debug.xv5T 1920 1080 60 /localdisc/x264Encoder/Water_1080p60_BP_10Mbps.264
    Entered Frame Width: 1920
    Entered Frame Height: 1080
    Entered Frame Rate: 60
    Entered File name: /localdisc/x264Encoder/Water_1080p60_BP_10Mbps.264
     Decoder-Display example
    ===============================

    Starting threads

    Threads started. Starting platform init
    Wait for VM3 to to create the server first


    Platform initialized
     openeing file
     OMX_Init completed
      decoder compoenent is created
     scalar compoenent is created
    set input port params (width = 1920, height = 1080)
    set output port params (width = 1920, height = 1080)set number of channelsset input resolutionset output resolutionenable scalar input port
    got eventEnable/Disable Event
    enable scalar output port
    got eventEnable/Disable Event
    found handle 0x103fc8 for component OMX.TI.VPSSM3.VFDC
     got display handle
    found handle 0x107848 for component OMX.TI.VPSSM3.CTRL.DC
    Buffer Size computed: 4147200
    set input port params (width = 1920, height = 1080)setting input and output memory type to defaultenable input port
    got eventEnable/Disable Event
     connect call for decoder-scalar
      connect call for scalar-display
     Error in OMX_AllocateBuffer()- Input Port State set : <unknown>

    Any help gratefully received. I'll try some debugging in the meantime.

    Ralph

  • Hi Ralph,

    I am also running into the same error in IpcSupport.c. Your investigation found this error was due to double-loading the firmware -- one is in the board bootup process, the other is in decode_display application (?). How did you resolved this issue? Where did you disable the second loading?

    I didn't modify any bootup script.  so I think the steps mentioned in word document might not necessary -- 1.  run "./prcm_config_app s"  2. do "insmod syslink.ko"  3. "insmod TI81xx_hdmi.ko hdmi_mode=2". if you do a "lsmod", you will find kernel drivers for  syslink.ko and TI81xx_hdmi.ko are already loaded. the boot-up script have already done these three things. If you have found how to disable the auto booting process so that the board won't load the graphic demo application menu, please share that knowledge with us.

    I think you are close to make the application work. if Marcus Cooksey from TI could give us some tips,  that would certainly speed thing up.

    Thanks,

    -Perry

  • I'm looking into this, but looping in others from TI as well.

  • By default the OMX components should be enable, but based on the log file the input port is disabled.

    In file  ilclient.c, please add the code shown in red to affect the call to IL_ClientSetDecodeParams(pAppData), as shown below.

        /* Configute the decoder componet */
        /* calling OMX_Setparam in this function */
        IL_ClientSetDecodeParams(pAppData);

        /* enable input and output port */
        /* as per openmax specs all the ports should be enabled by default but
           EZSDK OMX component does not enable it hence we manually need to enable
           it. */

        printf("enable decoder input port \n");
        OMX_SendCommand(pAppData->pDecHandle, OMX_CommandPortEnable,
                      OMX_VIDDEC_INPUT_PORT, NULL);

        /* wait for both ports to get enabled, event handler would be notified from
           the component after enabling the port, which inturn would post this
           semaphore */

        semp_pend(pAppData->decILComp->port_sem);

        printf("enable scalar output port \n");
        OMX_SendCommand(pAppData->pDecHandle, OMX_CommandPortEnable,
                        OMX_VIDDEC_OUTPUT_PORT, NULL);
        semp_pend(pAppData->decILComp->port_sem);

  • Hi,

    IPC problems would be beacuse of loading the firmware twice.

    Firmware can be loaded in two ways, Either by firmware loader scripts, which by deafult in the Kit happens. Or application itseld can load the binaries. In the decode-display example, application is configured to load the binaries, which can be disabled.

    To disable appliaction loading the binaries, you need to do make clean , modify the app_cfg.h file for line # 177

     #define DOMX_CORE_DOPROCINIT                     (1)

    and modify as

     #define DOMX_CORE_DOPROCINIT                     (0)

    and rebuild the app.

    for decoder ports are enabled by default, so no need to enable it again. ( It is harmless though, even if enabled in app).

  • Marcus, thanks for that. The program now works fine and I think it will be much clearer for us to follow this than the OMTB source code.

    Perry, the alternative to Vimal's post is to make sure the firmware does not load at boot by going inside /etc/rc5.d/ (as the default Linux on SD card boots at run level 5) and renaming or removing the "S10load-hdvicp2-firmware.sh" and "S15load-hdvpss-firmware.sh" scripts then reboot.

    While I'm here, can I ask what settings and which encoder TI used to create the .264 test clip? My own clips aren't playing at present so I was looking for a quick way to produce my own clips.

    Thanks,

    Ralph

  • Thanks for the input from Marcus and  Vimal. We finally get a working demo application now which is way better than the one shipped in SDK.

     

    I only run into a minor issue in my build process.  I followed Vimal’s method to resolve the firmware double loading issue.  I guess Ralph used the method of removing firmware loading script at bootup.  He might not run into this build issue.  I found that I have to do a “make clean” as Vimal suggested to make the code change of “#define DOMX_CORE_DOPROCINIT    (0)” take effect. This was why I didn’t success the first time before I saw Vimal’s input. But “make clean” also removed cmem.a470MV file. Although I manually copied the file from another SDK tree and fixed the issue, I would like to know the simple fix, it might just be something like a “make linuxutils”. Somebody who familiar with TI's SDK build process might easily help on this.  

     

    arm-none-linux-gnueabi-gcc: /home/perry/sdk06_2011/linuxutils_3_21_00_02_eng/packages/ti/sdo/linuxutils/cmem/lib/cmem.a470MV: No such file or directory

    make[2]: *** [/home/perry/sdk06_2011/omx_05_01_01_80/rebuilt-binaries/decode_display/bin/ti816x-evm/decode_display_a8host_debug.xv5T] Error 1

    make[2]: Leaving directory `/home/perry/sdk06_2011/omx_05_01_01_80/packages/ti/omx/demos/decode_display'

    make[1]: *** [decode_displayhost] Error 2

    make[1]: Leaving directory `/home/perry/sdk06_2011/omx_05_01_01_80/packages'

    make: *** [omx] Error 2

      

    Anyway I am pretty happy to get this thing running at last. Thanks Ralph for referring me to this thread at the first place. As the H.264 test clip is concerned, I am still use the one shipped in SDK.  I am also not feeling very good that I can only run through TI's codec with one particular test clip file. Tried a couple of other H.264 clips downloaded online. All didn’t work out. I haven’t got my hands on encoder side yet. I think it is the way to go to produce our own clips on TI chip.

     

    Regards,

     

    -Perry

  • Hi Perry,

    I have the demo working right now with the firmware already loaded (it gets loaded at bootup). I have found the #define fix to work. I suggest running "make clean" then "make" in the root of the EZSDK to try and resolve any issues (assuming you've followed the instructions in the Word document precisely). Hope you are aware of the ability to just build the OMX stuff (which includes the demo) by running "make omx" and to clean it by running "make omx_clean".

    As for real-world H264 decoding examples, I agree with you in that none of the clips other than the TI one will decode beyond a few frames with this demo. I've tried 5 different H264 encoders to produce clips at high profile, base profile, and numerous different bit rates from 5Mbps to 20Mbps.

    I have hope that there may be a possible way to fix it as the OMTB does manage to successfully decode any clips given to it.

    Ralph

  • Hi Ralph & Perry,

    In default example, Number of Decoder output buffers can be increased so that, It can have more referance buffers . and it should be able to decode.

    Regards

    Vimal

  • Hello Vimal,

    thanks for the tip. I thought it would have something to do with the number of buffers. Having had a look at the code, may I humbly suggest that if another version of this useful application is released that not so many "magic numbers" are used in the code (particularly to define the number of input and output buffers) as this will aid readability and improve the ability of the user to simply change the number of input and output buffers using #defines. Oh, and "scalar" should be spelt "scaler" ;-)

    For reference, I have had success with IL_CLIENT_DECODER_INPUT_BUFFER_COUNT set to 6 and IL_CLIENT_SCALAR_OUTPUT_BUFFER_COUNT set to 7 in ilclient_utils.h. Certain lines in ilclient_utils.c need to have their magic numbers changed to these #defines. They are lines that look similar to "inPortParamsPtr->nBufferCountActual = ........"

    Thanks,
    Ralph

  • Hi,

    Thanks for pointing out the "numbers". #defines were added for avoiding the inconvenience you faced. Unfortunately We missed it in IL Client structure. We will rectify this in next release.

    Regards

    Vimal

  • Vimal,

    my main aim is to test dual parallel decode. I have adapted the application you helpfully provided in order to achieve this but something isn't right. If you have the time I'd be grateful if you could just check on my methodology which I describe below for how I converted the single decode application to dual decode.

    1. From main(), call Thread_start() followed by platform_init().
    2. From main(),  call the code in Decode_Display_Example() for each of the 2 H264 video files in turn, up to and including the Decode_ParserInit() call. This results in one IL_Client structure being created for each video file. The idea being to set up 2 strings of components to perform 2 parallel decodes.
    3. From main(), call OMX_Init() once only.
    4. From main(), call the code in Decode_Display_Example() for each of the 2 H264 video files in turn, from after the OMX_Init() call, up to and including the IL_ClientConnectComponents() calls which connect decoder to scaler and scaler to display. One video is outputted on component-out DAC, the other on HDMI. I have modified IL_ClientSetDisplayParams() so that the first call to it sets the output to HDMI and the second uses the analogue "component out" (DAC) output.
    5. From main() call the rest of Decode_Display_Example() as a thread for each of the 2 H264 video files, up to and including the 4 pthread_join() calls. That is, one thread per video file.
    6. From main(), call OMX_Deinit() once and IL_ClientDeInit() for each of the pAppData structures (though my code never gets past the above step)

    In step 5, that basically calls the idle and execute state changes for the string of components for each video file in parallel.

    • I get no errors along the way, but in step 5 one of the threads only gets as far as "scaler state execute" whereas the other only gets as far as allocating all the input/output buffers for its thread (i.e. it runs both OMX_AllocateBuffer() calls then stops).
    • If I put a load of sleep and printf statements into the function that gets called as a thread (step 5) I see that each thread gets as far as its very first call of OMX_AllocateBuffer() and then hangs on the second call.

    Any help would be very gratefully received.

    Thanks,

    Ralph

     

    P.S.

    In case it helps.....

    • If I make the threads in step 5 run sequentially then the first video displays fine but ends with a "got event*** unrecoverable error: OMX_ErrorPortUnpopulated (0x8000101c)" error. This means the second clip cannot be decoded.
    • Bizarrely, if I make the threads in step 5 into normal function calls that run sequentially, the decode for each video runs fine as expected on the HDMI and DAC outputs of the EVM.
  • Ralph,

    Could you please try both channels getting upto IDLE state in sequence, and then let two threads do execute and do data transfer.

    Also there is an utility in ti-uia folder, where one could see logs from firmware. please take a log from this by doing

    ./loogerSMDump.out 0xaf000000 vpss and ./loogerSMDump.out 0xaf000000 video (you could do telnet to evm and do this )

    I can try to analyze the logs.

    Regards

    Vimal

     

  • Hi Vimal,

    so as you said, I moved the start of the thread function in step 5 up to and including the "display state IDLE" printf back into the code in step 4. This leaves the thread function to start with changing the state to EXECUTE for the control and carry on past the sleep() statement (during which the decoding happens) and up to and including the 4 pthread_join() calls.

    I had actually already tried this before without luck but I repeat it so I can provide you with logs. My reason for leaving the IDLE setting out of the main threads was that I read in the OpenMAX user guide that TI's implementation jumps straight from IDLE to EXECUTE because "In the current implementation, all the buffers (resource) are assumed to be available and the component moves directly from IDLE to EXECUTING" to quote the User Guide.

    Anyway, with the changes the program runs step 4 for the first video fine, but when it comes to the second video it hangs on the very first "semp_pend(pAppData->decILComp->done_sem);" line. It is interesting to note that if I put a "sleep(1)" statement before the buffer allocation that happens just before this semp_pend call, the program hangs for the second video at an earlier stage; on the first call of "OMX_AllocateBuffer" in the loop. With or without my added sleep(1), the first video manages to allocate all 4 buffers of course as it completes the function. There must be some background thread race/timeout condition happening because otherwise the sleep(1) statement would not have an effect on how far the program reached before hanging.

    Here are the logs:

    # ./loggerSMDump.out 0xaf000000 vpss
    Opened loggerSM.bin to store encoded records
    N:VPSS  P:2 #:00000 T:00000000|7b576365 S:<-- createIpcHeap()
    N:VPSS  P:2 #:00001 T:00000000|814ace7b S:<-- createIpcHeap()
    N:VPSS  P:2 #:00002 T:00000000|814ff9eb S:main: calling RcmServer_addSymbol(OmxRpcGetHandle)
    N:VPSS  P:2 #:00003 T:00000000|81508ccb S:main: calling RcmServer_addSymbol(OmxRpcFreeHandle)
    N:VPSS  P:2 #:00004 T:00000000|8151003f S:main: calling RcmServer_addSymbol(OmxRpcCreateProxyLite)
    N:VPSS  P:2 #:00005 T:00000000|8151a76f S:Calling SharedRegion_setEntry (1, 0x9df7b0b4)
    N:VPSS  P:2 #:00006 T:00000000|815217b9 S:base : 0x9ea00000, len: 0xb00000, ownerProcId: 65535
    N:VPSS  P:2 #:00007 T:00000000|8152e227 S:Calling SharedRegion_setEntry (2, 0x9df7b0b4)
    N:VPSS  P:2 #:00008 T:00000000|81534f0b S:base : 0xa0400000, len: 0xbc00000, ownerProcId: 65535
    N:VPSS  P:2 #:00009 T:00000038|aff762a1 S:OmxRpc_rcmIfGetHandle:ComponentName:OMX.TI.VPSSM3.VFPC.INDTXSCWB
    N:VPSS  P:2 #:00010 T:00000038|affbf8e9 S:omxrpc_module_init_client: Located the remoteCoreRcmServer
    N:VPSS  P:2 #:00011 T:00000038|affc6d0d S:main: calling RcmClient_getSymbolIndex(OmxRpcGetHandle)
    N:VPSS  P:2 #:00012 T:00000038|affe4615 S:main: calling RcmClient_getSymbolIndex(OmxRpcFreeHandle)
    N:VPSS  P:2 #:00013 T:00000038|afffd1a9 S:main: calling RcmClient_getSymbolIndex(OmxRpcCreateProxyLite)
    N:VPSS  P:2 #:00014 T:00000038|b00149a7 S:LayerId: 2
    N:VPSS  P:2 #:00015 T:00000038|b00685e3 S:main: calling RcmServer_addSymbol(OmxRpcSetParameter)
    N:VPSS  P:2 #:00016 T:00000038|b007111d S:main: calling RcmServer_addSymbol(OmxRpcGetParameter)
    N:VPSS  P:2 #:00017 T:00000038|b0077c57 S:main: calling RcmServer_addSymbol(OmxRpcSetConfig)
    N:VPSS  P:2 #:00018 T:00000038|b007e47f S:main: calling RcmServer_addSymbol(OmxRpcGetConfig)
    N:VPSS  P:2 #:00019 T:00000038|b0084c7d S:main: calling RcmServer_addSymbol(OmxRpcGetComponentVersion)
    N:VPSS  P:2 #:00020 T:00000038|b008b9f9 S:main: calling RcmServer_addSymbol(OmxRpcGetExtensionIndex)
    N:VPSS  P:2 #:00021 T:00000038|b00928bd S:main: calling RcmServer_addSymbol(OmxRpcGetState)
    N:VPSS  P:2 #:00022 T:00000038|b0098d19 S:main: calling RcmServer_addSymbol(OmxRpcSendCommand)
    N:VPSS  P:2 #:00023 T:00000038|b009f763 S:main: calling RcmServer_addSymbol(OmxRpcUseBuffer)
    N:VPSS  P:2 #:00024 T:00000038|b00a7c23 S:main: calling RcmServer_addSymbol(OmxRpcAllocBuffer)
    N:VPSS  P:2 #:00025 T:00000038|b00ae651 S:main: calling RcmServer_addSymbol(OmxRpcFreeBuffer)
    N:VPSS  P:2 #:00026 T:00000038|b00b501d S:main: calling RcmServer_addSymbol(OmxRpcEmptyThisBuffer)
    N:VPSS  P:2 #:00027 T:00000038|b00bbdc9 S:main: calling RcmServer_addSymbol(OmxRpcFillThisBuffer)
    N:VPSS  P:2 #:00028 T:00000038|b00c27fd S:main: calling RcmServer_addSymbol(OmxRpcTunnelRequest)
    N:VPSS  P:2 #:00029 T:00000038|b00c9d73 S:Instance Register with omxRpc Module.Cnt = 1
    N:VPSS  P:2 #:00030 T:00000038|b00d187b S:Component OMX.TI.VPSSM3.VFPC.INDTXSCWB found idx: 5
    N:VPSS  P:2 #:00031 T:00000038|b04d7ba7 S:Result of pComponentInit: ErrorNone
    N:VPSS  P:2 #:00032 T:00000038|b04ddbe1 S:Registering the component with TunnelMgr
    N:VPSS  P:2 #:00033 T:00000038|b054e1b1 S:main: calling RcmClient_getSymbolIndex(OmxRpcCbEventHandler)
    N:VPSS  P:2 #:00034 T:00000038|b056f369 S:main: calling RcmClient_getSymbolIndex(OmxRpcCbEmptyBufferDone)
    N:VPSS  P:2 #:00035 T:00000038|b0588d3f S:main: calling RcmClient_getSymbolIndex(OmxRpcCbFillBufferDone)
    N:VPSS  P:2 #:00036 T:00000038|b05a47b9 S:OmxRpc_rcmIfGetHandle:ComponentName:OmxRpcRcmServer_OMX.TI.VPSSM3.VFPC.INDTXSCWB_Ctrl_2_0.Exiting..
    N:VPSS  P:2 #:00037 T:00000038|b0aeaa27 S:OmxRpc_rcmIfGetHandle:ComponentName:OMX.TI.VPSSM3.VFDC
    N:VPSS  P:2 #:00038 T:00000038|b0af3a53 S:LayerId: 2
    N:VPSS  P:2 #:00039 T:00000038|b0b48b89 S:main: calling RcmServer_addSymbol(OmxRpcSetParameter)
    N:VPSS  P:2 #:00040 T:00000038|b0b51a47 S:main: calling RcmServer_addSymbol(OmxRpcGetParameter)
    N:VPSS  P:2 #:00041 T:00000038|b0b58717 S:main: calling RcmServer_addSymbol(OmxRpcSetConfig)
    N:VPSS  P:2 #:00042 T:00000038|b0b5f067 S:main: calling RcmServer_addSymbol(OmxRpcGetConfig)
    N:VPSS  P:2 #:00043 T:00000038|b0b6561b S:main: calling RcmServer_addSymbol(OmxRpcGetComponentVersion)
    N:VPSS  P:2 #:00044 T:00000038|b0b6c661 S:main: calling RcmServer_addSymbol(OmxRpcGetExtensionIndex)
    N:VPSS  P:2 #:00045 T:00000038|b0b7334f S:main: calling RcmServer_addSymbol(OmxRpcGetState)
    N:VPSS  P:2 #:00046 T:00000038|b0b79adf S:main: calling RcmServer_addSymbol(OmxRpcSendCommand)
    N:VPSS  P:2 #:00047 T:00000038|b0b805df S:main: calling RcmServer_addSymbol(OmxRpcUseBuffer)
    N:VPSS  P:2 #:00048 T:00000038|b0b86c53 S:main: calling RcmServer_addSymbol(OmxRpcAllocBuffer)
    N:VPSS  P:2 #:00049 T:00000038|b0b8d7b3 S:main: calling RcmServer_addSymbol(OmxRpcFreeBuffer)
    N:VPSS  P:2 #:00050 T:00000038|b0b940c5 S:main: calling RcmServer_addSymbol(OmxRpcEmptyThisBuffer)
    N:VPSS  P:2 #:00051 T:00000038|b0b9ae91 S:main: calling RcmServer_addSymbol(OmxRpcFillThisBuffer)
    N:VPSS  P:2 #:00052 T:00000038|b0ba31b5 S:main: calling RcmServer_addSymbol(OmxRpcTunnelRequest)
    N:VPSS  P:2 #:00053 T:00000038|b0baab6d S:Instance Register with omxRpc Module.Cnt = 2
    N:VPSS  P:2 #:00054 T:00000038|b0bb1297 S:Component OMX.TI.VPSSM3.VFDC found idx: 1
    N:VPSS  P:2 #:00055 T:00000038|b181036f S:Result of pComponentInit: ErrorNone
    N:VPSS  P:2 #:00056 T:00000038|b1816281 S:Registering the component with TunnelMgr
    N:VPSS  P:2 #:00057 T:00000038|b18759f5 S:main: calling RcmClient_getSymbolIndex(OmxRpcCbEventHandler)
    N:VPSS  P:2 #:00058 T:00000038|b1897ac7 S:main: calling RcmClient_getSymbolIndex(OmxRpcCbEmptyBufferDone)
    N:VPSS  P:2 #:00059 T:00000038|b18b03c9 S:main: calling RcmClient_getSymbolIndex(OmxRpcCbFillBufferDone)
    N:VPSS  P:2 #:00060 T:00000038|b18ca40b S:OmxRpc_rcmIfGetHandle:ComponentName:OmxRpcRcmServer_OMX.TI.VPSSM3.VFDC_Ctrl_2_1.Exiting..
    N:VPSS  P:2 #:00061 T:00000038|b1d5d205 S:OmxRpc_rcmIfGetHandle:ComponentName:OMX.TI.VPSSM3.CTRL.DC
    N:VPSS  P:2 #:00062 T:00000038|b1d66977 S:LayerId: 2
    N:VPSS  P:2 #:00063 T:00000038|b1db9bf9 S:main: calling RcmServer_addSymbol(OmxRpcSetParameter)
    N:VPSS  P:2 #:00064 T:00000038|b1dc4611 S:main: calling RcmServer_addSymbol(OmxRpcGetParameter)
    N:VPSS  P:2 #:00065 T:00000038|b1dcb3a7 S:main: calling RcmServer_addSymbol(OmxRpcSetConfig)
    N:VPSS  P:2 #:00066 T:00000038|b1dd1cbd S:main: calling RcmServer_addSymbol(OmxRpcGetConfig)
    N:VPSS  P:2 #:00067 T:00000038|b1dd8231 S:main: calling RcmServer_addSymbol(OmxRpcGetComponentVersion)
    N:VPSS  P:2 #:00068 T:00000038|b1ddf33f S:main: calling RcmServer_addSymbol(OmxRpcGetExtensionIndex)
    N:VPSS  P:2 #:00069 T:00000038|b1de5f8b S:main: calling RcmServer_addSymbol(OmxRpcGetState)
    N:VPSS  P:2 #:00070 T:00000038|b1dec7ab S:main: calling RcmServer_addSymbol(OmxRpcSendCommand)
    N:VPSS  P:2 #:00071 T:00000038|b1df325b S:main: calling RcmServer_addSymbol(OmxRpcUseBuffer)
    N:VPSS  P:2 #:00072 T:00000038|b1df9911 S:main: calling RcmServer_addSymbol(OmxRpcAllocBuffer)
    N:VPSS  P:2 #:00073 T:00000038|b1e003f3 S:main: calling RcmServer_addSymbol(OmxRpcFreeBuffer)
    N:VPSS  P:2 #:00074 T:00000038|b1e06b7b S:main: calling RcmServer_addSymbol(OmxRpcEmptyThisBuffer)
    N:VPSS  P:2 #:00075 T:00000038|b1e0d94f S:main: calling RcmServer_addSymbol(OmxRpcFillThisBuffer)
    N:VPSS  P:2 #:00076 T:00000038|b1e14737 S:main: calling RcmServer_addSymbol(OmxRpcTunnelRequest)
    N:VPSS  P:2 #:00077 T:00000038|b1e1bfdb S:Instance Register with omxRpc Module.Cnt = 3
    N:VPSS  P:2 #:00078 T:00000038|b1e238cd S:Component OMX.TI.VPSSM3.CTRL.DC found idx: 7
    N:VPSS  P:2 #:00079 T:00000038|b1ed9433 S:Result of pComponentInit: ErrorNone
    N:VPSS  P:2 #:00080 T:00000038|b1edecb3 S:Registering the component with TunnelMgr
    N:VPSS  P:2 #:00081 T:00000038|b1f420fd S:main: calling RcmClient_getSymbolIndex(OmxRpcCbEventHandler)
    N:VPSS  P:2 #:00082 T:00000038|b1f628cb S:main: calling RcmClient_getSymbolIndex(OmxRpcCbEmptyBufferDone)
    N:VPSS  P:2 #:00083 T:00000038|b1f7ba09 S:main: calling RcmClient_getSymbolIndex(OmxRpcCbFillBufferDone)
    N:VPSS  P:2 #:00084 T:00000038|b1f96bc9 S:OmxRpc_rcmIfGetHandle:ComponentName:OmxRpcRcmServer_OMX.TI.VPSSM3.CTRL.DC_Ctrl_2_2.Exiting..
    N:VPSS  P:2 #:00085 T:00000038|b2761d67 S:Entered Function :omxrpc_skel_usebuffer
    N:VPSS  P:2 #:00086 T:00000038|b27b1bc9 S:Entered Function :omxrpc_skel_usebuffer
    N:VPSS  P:2 #:00087 T:00000038|b27e0e79 S:Entered Function :omxrpc_skel_usebuffer
    N:VPSS  P:2 #:00088 T:00000038|b280b52f S:Entered Function :omxrpc_skel_usebuffer
    N:VPSS  P:2 #:00089 T:00000038|b2837beb S:Entered Function :omxrpc_skel_allocbuffer
    N:VPSS  P:2 #:00091 T:00000038|b28f1d51 S:Entered Function :omxrpc_skel_allocbuffer
    N:VPSS  P:2 #:00090 T:00000038|b28e7bc1 S:M2M Driver IndTxSc Opened!!
    N:VPSS  P:2 #:00092 T:00000038|b291c811 S:Entered Function :omxrpc_skel_allocbuffer
    N:VPSS  P:2 #:00093 T:00000038|b29482fb S:Entered Function :omxrpc_skel_allocbuffer
    N:VPSS  P:2 #:00094 T:00000038|b2970089 S:Entered Function :omxrpc_skel_allocbuffer
    N:VPSS  P:2 #:00095 T:00000038|b420c1a3 S:Display Controller Path configured for 0!!
    N:VPSS  P:2 #:00096 T:00000038|b4211e3b S: Display Controller Driver Create - DONE !!!
    N:VPSS  P:2 #:00097 T:00000038|b425f424 S:Entered Function :omxrpc_skel_usebuffer
    N:VPSS  P:2 #:00098 T:00000038|b42a9559 S:Entered Function :omxrpc_skel_usebuffer
    N:VPSS  P:2 #:00099 T:00000038|b42d37ff S:Entered Function :omxrpc_skel_usebuffer
    N:VPSS  P:2 #:00100 T:00000038|b42fc731 S:Entered Function :omxrpc_skel_usebuffer
    N:VPSS  P:2 #:00101 T:00000038|b432400b S:Entered Function :omxrpc_skel_usebuffer
    N:VPSS  P:2 #:00102 T:00000038|b4d14d3d S:OmxRpc_rcmIfGetHandle:ComponentName:OMX.TI.VPSSM3.VFPC.INDTXSCWB
    N:VPSS  P:2 #:00103 T:00000038|b4d1f92d S:LayerId: 2
    N:VPSS  P:2 #:00104 T:00000038|b4d7622b S:main: calling RcmServer_addSymbol(OmxRpcSetParameter)
    N:VPSS  P:2 #:00105 T:00000038|b4d7ec7b S:main: calling RcmServer_addSymbol(OmxRpcGetParameter)
    N:VPSS  P:2 #:00106 T:00000038|b4d858b5 S:main: calling RcmServer_addSymbol(OmxRpcSetConfig)
    N:VPSS  P:2 #:00107 T:00000038|b4d8c0c9 S:main: calling RcmServer_addSymbol(OmxRpcGetConfig)
    N:VPSS  P:2 #:00108 T:00000038|b4d92a3d S:main: calling RcmServer_addSymbol(OmxRpcGetComponentVersion)
    N:VPSS  P:2 #:00109 T:00000038|b4d99863 S:main: calling RcmServer_addSymbol(OmxRpcGetExtensionIndex)
    N:VPSS  P:2 #:00110 T:00000038|b4da08f3 S:main: calling RcmServer_addSymbol(OmxRpcGetState)
    N:VPSS  P:2 #:00111 T:00000038|b4da6e87 S:main: calling RcmServer_addSymbol(OmxRpcSendCommand)
    N:VPSS  P:2 #:00112 T:00000038|b4dad803 S:main: calling RcmServer_addSymbol(OmxRpcUseBuffer)
    N:VPSS  P:2 #:00113 T:00000038|b4db415b S:main: calling RcmServer_addSymbol(OmxRpcAllocBuffer)
    N:VPSS  P:2 #:00114 T:00000038|b4dbaaa7 S:main: calling RcmServer_addSymbol(OmxRpcFreeBuffer)
    N:VPSS  P:2 #:00115 T:00000038|b4dc16a3 S:main: calling RcmServer_addSymbol(OmxRpcEmptyThisBuffer)
    N:VPSS  P:2 #:00116 T:00000038|b4dc8563 S:main: calling RcmServer_addSymbol(OmxRpcFillThisBuffer)
    N:VPSS  P:2 #:00117 T:00000038|b4dcf10b S:main: calling RcmServer_addSymbol(OmxRpcTunnelRequest)
    N:VPSS  P:2 #:00118 T:00000038|b4dd6875 S:Instance Register with omxRpc Module.Cnt = 4
    N:VPSS  P:2 #:00119 T:00000038|b4dde317 S:Component OMX.TI.VPSSM3.VFPC.INDTXSCWB found idx: 5
    N:VPSS  P:2 #:00120 T:00000038|b51eacbf S:Result of pComponentInit: ErrorNone
    N:VPSS  P:2 #:00121 T:00000038|b51f1209 S:Registering the component with TunnelMgr
    N:VPSS  P:2 #:00122 T:00000038|b52626f3 S:main: calling RcmClient_getSymbolIndex(OmxRpcCbEventHandler)
    N:VPSS  P:2 #:00123 T:00000038|b5282ed5 S:main: calling RcmClient_getSymbolIndex(OmxRpcCbEmptyBufferDone)
    N:VPSS  P:2 #:00124 T:00000038|b529bfed S:main: calling RcmClient_getSymbolIndex(OmxRpcCbFillBufferDone)
    N:VPSS  P:2 #:00125 T:00000038|b52b7be1 S:OmxRpc_rcmIfGetHandle:ComponentName:OmxRpcRcmServer_OMX.TI.VPSSM3.VFPC.INDTXSCWB_Ctrl_2_3.Exiting..
    N:VPSS  P:2 #:00126 T:00000038|b594b5ad S:OmxRpc_rcmIfGetHandle:ComponentName:OMX.TI.VPSSM3.VFDC
    N:VPSS  P:2 #:00127 T:00000038|b5954fb3 S:LayerId: 2
    N:VPSS  P:2 #:00128 T:00000038|b59aab1b S:main: calling RcmServer_addSymbol(OmxRpcSetParameter)
    N:VPSS  P:2 #:00129 T:00000038|b59b36a5 S:main: calling RcmServer_addSymbol(OmxRpcGetParameter)
    N:VPSS  P:2 #:00130 T:00000038|b59ba533 S:main: calling RcmServer_addSymbol(OmxRpcSetConfig)
    N:VPSS  P:2 #:00131 T:00000038|b59c0f3f S:main: calling RcmServer_addSymbol(OmxRpcGetConfig)
    N:VPSS  P:2 #:00132 T:00000038|b59c779f S:main: calling RcmServer_addSymbol(OmxRpcGetComponentVersion)
    N:VPSS  P:2 #:00133 T:00000038|b59ceac5 S:main: calling RcmServer_addSymbol(OmxRpcGetExtensionIndex)
    N:VPSS  P:2 #:00134 T:00000038|b59d774d S:main: calling RcmServer_addSymbol(OmxRpcGetState)
    N:VPSS  P:2 #:00135 T:00000038|b59ddfc7 S:main: calling RcmServer_addSymbol(OmxRpcSendCommand)
    N:VPSS  P:2 #:00136 T:00000038|b59e4ba9 S:main: calling RcmServer_addSymbol(OmxRpcUseBuffer)
    N:VPSS  P:2 #:00137 T:00000038|b59eb1e9 S:main: calling RcmServer_addSymbol(OmxRpcAllocBuffer)
    N:VPSS  P:2 #:00138 T:00000038|b59f1df7 S:main: calling RcmServer_addSymbol(OmxRpcFreeBuffer)
    N:VPSS  P:2 #:00139 T:00000038|b59f8633 S:main: calling RcmServer_addSymbol(OmxRpcEmptyThisBuffer)
    N:VPSS  P:2 #:00140 T:00000038|b59ff34b S:main: calling RcmServer_addSymbol(OmxRpcFillThisBuffer)
    N:VPSS  P:2 #:00141 T:00000038|b5a06213 S:main: calling RcmServer_addSymbol(OmxRpcTunnelRequest)
    N:VPSS  P:2 #:00142 T:00000038|b5a0dabb S:Instance Register with omxRpc Module.Cnt = 5
    N:VPSS  P:2 #:00143 T:00000038|b5a142ed S:Component OMX.TI.VPSSM3.VFDC found idx: 1
    N:VPSS  P:2 #:00144 T:00000038|b5c6b967 S:Result of pComponentInit: ErrorNone
    N:VPSS  P:2 #:00145 T:00000038|b5c71a13 S:Registering the component with TunnelMgr
    N:VPSS  P:2 #:00146 T:00000038|b5cd2ac9 S:main: calling RcmClient_getSymbolIndex(OmxRpcCbEventHandler)
    N:VPSS  P:2 #:00147 T:00000038|b5cf343d S:main: calling RcmClient_getSymbolIndex(OmxRpcCbEmptyBufferDone)
    N:VPSS  P:2 #:00148 T:00000038|b5d0cd93 S:main: calling RcmClient_getSymbolIndex(OmxRpcCbFillBufferDone)
    N:VPSS  P:2 #:00149 T:00000038|b5d29abb S:OmxRpc_rcmIfGetHandle:ComponentName:OmxRpcRcmServer_OMX.TI.VPSSM3.VFDC_Ctrl_2_4.Exiting..
    N:VPSS  P:2 #:00150 T:00000038|b62335b3 S:OmxRpc_rcmIfGetHandle:ComponentName:OMX.TI.VPSSM3.CTRL.DC
    N:VPSS  P:2 #:00151 T:00000038|b623cbb5 S:LayerId: 2
    N:VPSS  P:2 #:00152 T:00000038|b6292f6d S:main: calling RcmServer_addSymbol(OmxRpcSetParameter)
    N:VPSS  P:2 #:00153 T:00000038|b629bce3 S:main: calling RcmServer_addSymbol(OmxRpcGetParameter)
    N:VPSS  P:2 #:00154 T:00000038|b62a2a61 S:main: calling RcmServer_addSymbol(OmxRpcSetConfig)
    N:VPSS  P:2 #:00155 T:00000038|b62a9521 S:main: calling RcmServer_addSymbol(OmxRpcGetConfig)
    N:VPSS  P:2 #:00156 T:00000038|b62afbc9 S:main: calling RcmServer_addSymbol(OmxRpcGetComponentVersion)
    N:VPSS  P:2 #:00157 T:00000038|b62b6cd5 S:main: calling RcmServer_addSymbol(OmxRpcGetExtensionIndex)
    N:VPSS  P:2 #:00158 T:00000038|b62bd9fd S:main: calling RcmServer_addSymbol(OmxRpcGetState)
    N:VPSS  P:2 #:00159 T:00000038|b62c42d1 S:main: calling RcmServer_addSymbol(OmxRpcSendCommand)
    N:VPSS  P:2 #:00160 T:00000038|b62cae01 S:main: calling RcmServer_addSymbol(OmxRpcUseBuffer)
    N:VPSS  P:2 #:00161 T:00000038|b62d156b S:main: calling RcmServer_addSymbol(OmxRpcAllocBuffer)
    N:VPSS  P:2 #:00162 T:00000038|b62d8503 S:main: calling RcmServer_addSymbol(OmxRpcFreeBuffer)
    N:VPSS  P:2 #:00163 T:00000038|b62ded2b S:main: calling RcmServer_addSymbol(OmxRpcEmptyThisBuffer)
    N:VPSS  P:2 #:00164 T:00000038|b62e6d0f S:main: calling RcmServer_addSymbol(OmxRpcFillThisBuffer)
    N:VPSS  P:2 #:00165 T:00000038|b62edbe5 S:main: calling RcmServer_addSymbol(OmxRpcTunnelRequest)
    N:VPSS  P:2 #:00166 T:00000038|b62f56e7 S:Instance Register with omxRpc Module.Cnt = 6
    N:VPSS  P:2 #:00167 T:00000038|b62fd171 S:Component OMX.TI.VPSSM3.CTRL.DC found idx: 7
    N:VPSS  P:2 #:00168 T:00000038|b63b1dcb S:Result of pComponentInit: ErrorNone
    N:VPSS  P:2 #:00169 T:00000038|b63b7927 S:Registering the component with TunnelMgr
    N:VPSS  P:2 #:00170 T:00000038|b641dceb S:main: calling RcmClient_getSymbolIndex(OmxRpcCbEventHandler)
    N:VPSS  P:2 #:00171 T:00000038|b643d105 S:main: calling RcmClient_getSymbolIndex(OmxRpcCbEmptyBufferDone)
    N:VPSS  P:2 #:00172 T:00000038|b6456dfd S:main: calling RcmClient_getSymbolIndex(OmxRpcCbFillBufferDone)
    N:VPSS  P:2 #:00173 T:00000038|b6472c5b S:OmxRpc_rcmIfGetHandle:ComponentName:OmxRpcRcmServer_OMX.TI.VPSSM3.CTRL.DC_Ctrl_2_5.Exiting..

    and

    # ./loggerSMDump.out 0xaf000000 video
    Opened loggerSM.bin to store encoded records
    N:Video P:1 #:00000 T:00000000|06f0c6b9 S:<-- createIpcHeap()
    N:Video P:1 #:00001 T:00000000|814f3ab5 S:<-- createIpcHeap()
    N:Video P:1 #:00002 T:00000000|81544d77 S:main: calling RcmServer_addSymbol(OmxRpcGetHandle)
    N:Video P:1 #:00003 T:00000000|8154dded S:main: calling RcmServer_addSymbol(OmxRpcFreeHandle)
    N:Video P:1 #:00004 T:00000000|81554a5b S:main: calling RcmServer_addSymbol(OmxRpcCreateProxyLite)
    N:Video P:1 #:00005 T:00000000|8155f3b5 S:Calling SharedRegion_setEntry (1, 0x9a1f1074)
    N:Video P:1 #:00006 T:00000000|81565f31 S:base : 0x9ea00000, len: 0xb00000, ownerProcId: 1
    N:Video P:1 #:00007 T:00000000|8157262f S:Calling SharedRegion_setEntry (2, 0x9a1f1074)
    N:Video P:1 #:00008 T:00000000|81578d71 S:base : 0xa0400000, len: 0xbc00000, ownerProcId: 1
    N:Video P:1 #:00009 T:00000015|2fc98a61 S:OmxRpc_rcmIfGetHandle:ComponentName:OMX.TI.DUCATI.VIDDEC
    N:Video P:1 #:00010 T:00000015|2fce1dd9 S:omxrpc_module_init_client: Located the remoteCoreRcmServer
    N:Video P:1 #:00011 T:00000015|2fce8ba9 S:main: calling RcmClient_getSymbolIndex(OmxRpcGetHandle)
    N:Video P:1 #:00012 T:00000015|2fd07e85 S:main: calling RcmClient_getSymbolIndex(OmxRpcFreeHandle)
    N:Video P:1 #:00013 T:00000015|2fd201db S:main: calling RcmClient_getSymbolIndex(OmxRpcCreateProxyLite)
    N:Video P:1 #:00014 T:00000015|2fd36829 S:LayerId: 2
    N:Video P:1 #:00015 T:00000015|2fd87e4f S:main: calling RcmServer_addSymbol(OmxRpcSetParameter)
    N:Video P:1 #:00016 T:00000015|2fd905cb S:main: calling RcmServer_addSymbol(OmxRpcGetParameter)
    N:Video P:1 #:00017 T:00000015|2fd96975 S:main: calling RcmServer_addSymbol(OmxRpcSetConfig)
    N:Video P:1 #:00018 T:00000015|2fd9cacd S:main: calling RcmServer_addSymbol(OmxRpcGetConfig)
    N:Video P:1 #:00019 T:00000015|2fda2e99 S:main: calling RcmServer_addSymbol(OmxRpcGetComponentVersion)
    N:Video P:1 #:00020 T:00000015|2fda964f S:main: calling RcmServer_addSymbol(OmxRpcGetExtensionIndex)
    N:Video P:1 #:00021 T:00000015|2fdaffbd S:main: calling RcmServer_addSymbol(OmxRpcGetState)
    N:Video P:1 #:00022 T:00000015|2fdb5fcb S:main: calling RcmServer_addSymbol(OmxRpcSendCommand)
    N:Video P:1 #:00023 T:00000015|2fdbc3b7 S:main: calling RcmServer_addSymbol(OmxRpcUseBuffer)
    N:Video P:1 #:00024 T:00000015|2fdc28f7 S:main: calling RcmServer_addSymbol(OmxRpcAllocBuffer)
    N:Video P:1 #:00025 T:00000015|2fdc8c7b S:main: calling RcmServer_addSymbol(OmxRpcFreeBuffer)
    N:Video P:1 #:00026 T:00000015|2fdcf163 S:main: calling RcmServer_addSymbol(OmxRpcEmptyThisBuffer)
    N:Video P:1 #:00027 T:00000015|2fdd5a7b S:main: calling RcmServer_addSymbol(OmxRpcFillThisBuffer)
    N:Video P:1 #:00028 T:00000015|2fddbf11 S:main: calling RcmServer_addSymbol(OmxRpcTunnelRequest)
    N:Video P:1 #:00029 T:00000015|2fde2f27 S:Instance Register with omxRpc Module.Cnt = 1
    N:Video P:1 #:00030 T:00000015|2fdeb873 S:Component OMX.TI.DUCATI.VIDDEC found idx: 9
    N:Video P:1 #:00031 T:00000015|3003dd91 S:Result of pComponentInit: ErrorNone
    N:Video P:1 #:00032 T:00000015|30043d09 S:Registering the component with TunnelMgr
    N:Video P:1 #:00033 T:00000015|300a04b1 S:main: calling RcmClient_getSymbolIndex(OmxRpcCbEventHandler)
    N:Video P:1 #:00034 T:00000015|300bbbef S:main: calling RcmClient_getSymbolIndex(OmxRpcCbEmptyBufferDone)
    N:Video P:1 #:00035 T:00000015|300d48a1 S:main: calling RcmClient_getSymbolIndex(OmxRpcCbFillBufferDone)
    N:Video P:1 #:00036 T:00000015|300edc65 S:OmxRpc_rcmIfGetHandle:ComponentName:OmxRpcRcmServer_OMX.TI.DUCATI.VIDDEC_Ctrl_1_0.Exiting..
    N:Video P:1 #:00037 T:00000015|303c513f S:OMX_TI_VIDDEC_CommandNotify::Line 2249::VDEC->Port Enable Begin
    N:Video P:1 #:00038 T:00000015|303d09cb S:OMX_TI_VIDDEC_CommandNotify::Line 2436::VDEC->Port Enable End
    N:Video P:1 #:00039 T:00000015|303d6903 S:OMX_TI_VIDDEC_CommandNotify::Line 2487::VDEC->Before OMX_EventCmdComplete Notify
    N:Video P:1 #:00040 T:00000015|303dd665 S:OMX_TI_VIDDEC_CommandNotify::Line 2496::VDEC->OMX_EventCmdComplete Notify Done
    N:Video P:1 #:00041 T:00000015|30435341 S:OMX_TI_VIDDEC_CommandNotify::Line 2249::VDEC->Port Enable Begin
    N:Video P:1 #:00042 T:00000015|3043ef33 S:OMX_TI_VIDDEC_CommandNotify::Line 2436::VDEC->Port Enable End
    N:Video P:1 #:00043 T:00000015|30444b05 S:OMX_TI_VIDDEC_CommandNotify::Line 2487::VDEC->Before OMX_EventCmdComplete Notify
    N:Video P:1 #:00044 T:00000015|3044b42b S:OMX_TI_VIDDEC_CommandNotify::Line 2496::VDEC->OMX_EventCmdComplete Notify Done
    N:Video P:1 #:00045 T:00000015|3292cfd9 S:OMX_TI_VIDDEC_CommandNotify::Line 1816::VDEC->Loaded to Idle Transition Begin
    N:Video P:1 #:00047 T:00000015|3293e40b S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00046 T:00000015|32935309 S:OMX_TI_VIDDEC_CommandNotify::Line 1829::VDEC->Before VIDDEC3_create
    N:Video P:1 #:00048 T:00000015|329ce6c5 S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00049 T:00000015|329f7895 S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00050 T:00000015|32a1fc9b S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00051 T:00000015|32a4b09b S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00052 T:00000015|32b20b29 S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00053 T:00000015|32b4c93b S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00054 T:00000015|32b753af S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00055 T:00000015|32bd925f S:OMX_TI_VIDDEC_CommandNotify::Line 1845::VDEC->VIDDEC3_create Successful
    N:Video P:1 #:00056 T:00000015|32be0713 S:OMX_TI_VIDDEC_CommandNotify::Line 1855::VDEC->Before VIDDEC3_control XDM_GETBUFINFO call
    N:Video P:1 #:00057 T:00000015|32bed34d S:OMX_TI_VIDDEC_CommandNotify::Line 1875::VDEC->VIDDEC3_control XDM_GETBUFINFO Successful
    N:Video P:1 #:00058 T:00000015|32bf4f01 S:OMX_TI_VIDDEC_CommandNotify::Line 1974::VDEC->Before IvaServer_registerInstance
    N:Video P:1 #:00059 T:00000015|32bfd869 S:IvaScheduler_registerInstance::Line 627::Width 1920::Height 1080::Resolution 4
    N:Video P:1 #:00060 T:00000015|32c06287 S:IvaScheduler_asssignStaticResource::Line 330::CodecId 1::Allocated IVAHD 0::Estimated IVAHD Load of Codec(MHz) 500::Total IVAHD load(MHz) 500
    N:Video P:1 #:00061 T:00000015|32c0ff83 S:IvaScheduler_registerInstance::Line 775::Scheduling Scheme 0
    N:Video P:1 #:00062 T:00000015|32c16067 S:IvaScheduler_registerInstance::Line 777::Number of IVAHDs 3
    N:Video P:1 #:00063 T:00000015|32c1c169 S:IvaScheduler_registerInstance::Line 779::Number of registered channels 1
    N:Video P:1 #:00064 T:00000015|32c22b11 S:IvaScheduler_registerInstance::Line 784::IVAHD Queue 0::Number of channels 1
    N:Video P:1 #:00065 T:00000015|32c2b767 S:IvaScheduler_registerInstance::Line 786::IVAHD Queue 0::Number of frames 0
    N:Video P:1 #:00066 T:00000015|32c32439 S:IvaScheduler_registerInstance::Line 788::IVAHD Queue 0::Number of commands 0
    N:Video P:1 #:00067 T:00000015|32c38c3d S:IvaScheduler_registerInstance::Line 790::IVAHD Queue 0::Last Codec Id 0
    N:Video P:1 #:00068 T:00000015|32c3f665 S:IvaScheduler_registerInstance::Line 792::IVAHD Queue 0::Load(MHz) 500
    N:Video P:1 #:00069 T:00000015|32c460d3 S:IvaScheduler_registerInstance::Line 784::IVAHD Queue 1::Number of channels 0
    N:Video P:1 #:00070 T:00000015|32c4cc33 S:IvaScheduler_registerInstance::Line 786::IVAHD Queue 1::Number of frames 0
    N:Video P:1 #:00071 T:00000015|32c5321b S:IvaScheduler_registerInstance::Line 788::IVAHD Queue 1::Number of commands 0
    N:Video P:1 #:00072 T:00000015|32c59d0b S:IvaScheduler_registerInstance::Line 790::IVAHD Queue 1::Last Codec Id 0
    N:Video P:1 #:00073 T:00000015|32c601c5 S:IvaScheduler_registerInstance::Line 792::IVAHD Queue 1::Load(MHz) 0
    N:Video P:1 #:00074 T:00000015|32c666e1 S:IvaScheduler_registerInstance::Line 784::IVAHD Queue 2::Number of channels 0
    N:Video P:1 #:00075 T:00000015|32c6ce0f S:IvaScheduler_registerInstance::Line 786::IVAHD Queue 2::Number of frames 0
    N:Video P:1 #:00076 T:00000015|32c737b7 S:IvaScheduler_registerInstance::Line 788::IVAHD Queue 2::Number of commands 0
    N:Video P:1 #:00077 T:00000015|32c79e99 S:IvaScheduler_registerInstance::Line 790::IVAHD Queue 2::Last Codec Id 0
    N:Video P:1 #:00078 T:00000015|32c80759 S:IvaScheduler_registerInstance::Line 792::IVAHD Queue 2::Load(MHz) 0
    N:Video P:1 #:00079 T:00000015|32c872c3 S:OMX_TI_VIDDEC_CommandNotify::Line 1980::VDEC->IvaServer_registerInstance done
    N:Video P:1 #:00080 T:00000015|32c8dbcf S:OMX_TI_VIDDEC_CommandNotify::Line 1986::VDEC->Loaded to Idle Transition End
    N:Video P:1 #:00081 T:00000015|32c942b3 S:OMX_TI_VIDDEC_CommandNotify::Line 2487::VDEC->Before OMX_EventCmdComplete Notify
    N:Video P:1 #:00082 T:00000015|32c9b7ed S:OMX_TI_VIDDEC_CommandNotify::Line 2496::VDEC->OMX_EventCmdComplete Notify Done
    N:Video P:1 #:00083 T:00000015|34b0c5e7 S:OmxRpc_rcmIfGetHandle:ComponentName:OMX.TI.DUCATI.VIDDEC
    N:Video P:1 #:00084 T:00000015|34b1720b S:LayerId: 2
    N:Video P:1 #:00085 T:00000015|34b6b871 S:main: calling RcmServer_addSymbol(OmxRpcSetParameter)
    N:Video P:1 #:00086 T:00000015|34b73ef3 S:main: calling RcmServer_addSymbol(OmxRpcGetParameter)
    N:Video P:1 #:00087 T:00000015|34b7a3d3 S:main: calling RcmServer_addSymbol(OmxRpcSetConfig)
    N:Video P:1 #:00088 T:00000015|34b8053b S:main: calling RcmServer_addSymbol(OmxRpcGetConfig)
    N:Video P:1 #:00089 T:00000015|34b86969 S:main: calling RcmServer_addSymbol(OmxRpcGetComponentVersion)
    N:Video P:1 #:00090 T:00000015|34b8d5c9 S:main: calling RcmServer_addSymbol(OmxRpcGetExtensionIndex)
    N:Video P:1 #:00091 T:00000015|34b94015 S:main: calling RcmServer_addSymbol(OmxRpcGetState)
    N:Video P:1 #:00092 T:00000015|34b9a0c1 S:main: calling RcmServer_addSymbol(OmxRpcSendCommand)
    N:Video P:1 #:00093 T:00000015|34ba0455 S:main: calling RcmServer_addSymbol(OmxRpcUseBuffer)
    N:Video P:1 #:00094 T:00000015|34ba8703 S:main: calling RcmServer_addSymbol(OmxRpcAllocBuffer)
    N:Video P:1 #:00095 T:00000015|34baed03 S:main: calling RcmServer_addSymbol(OmxRpcFreeBuffer)
    N:Video P:1 #:00096 T:00000015|34bb52a7 S:main: calling RcmServer_addSymbol(OmxRpcEmptyThisBuffer)
    N:Video P:1 #:00097 T:00000015|34bbbeb1 S:main: calling RcmServer_addSymbol(OmxRpcFillThisBuffer)
    N:Video P:1 #:00098 T:00000015|34bc24e5 S:main: calling RcmServer_addSymbol(OmxRpcTunnelRequest)
    N:Video P:1 #:00099 T:00000015|34bc9603 S:Instance Register with omxRpc Module.Cnt = 2
    N:Video P:1 #:00100 T:00000015|34bd09a9 S:Component OMX.TI.DUCATI.VIDDEC found idx: 9
    N:Video P:1 #:00101 T:00000015|34d55b01 S:Result of pComponentInit: ErrorNone
    N:Video P:1 #:00102 T:00000015|34d5b8dd S:Registering the component with TunnelMgr
    N:Video P:1 #:00103 T:00000015|34dbd2d5 S:main: calling RcmClient_getSymbolIndex(OmxRpcCbEventHandler)
    N:Video P:1 #:00104 T:00000015|34ddb32f S:main: calling RcmClient_getSymbolIndex(OmxRpcCbEmptyBufferDone)
    N:Video P:1 #:00105 T:00000015|34df3a5f S:main: calling RcmClient_getSymbolIndex(OmxRpcCbFillBufferDone)
    N:Video P:1 #:00106 T:00000015|34e0e005 S:OmxRpc_rcmIfGetHandle:ComponentName:OmxRpcRcmServer_OMX.TI.DUCATI.VIDDEC_Ctrl_1_1.Exiting..
    N:Video P:1 #:00107 T:00000015|351a60f1 S:OMX_TI_VIDDEC_CommandNotify::Line 2249::VDEC->Port Enable Begin
    N:Video P:1 #:00108 T:00000015|351b16f7 S:OMX_TI_VIDDEC_CommandNotify::Line 2436::VDEC->Port Enable End
    N:Video P:1 #:00109 T:00000015|351b7793 S:OMX_TI_VIDDEC_CommandNotify::Line 2487::VDEC->Before OMX_EventCmdComplete Notify
    N:Video P:1 #:00110 T:00000015|351be731 S:OMX_TI_VIDDEC_CommandNotify::Line 2496::VDEC->OMX_EventCmdComplete Notify Done
    N:Video P:1 #:00111 T:00000015|351ef72f S:OMX_TI_VIDDEC_CommandNotify::Line 2249::VDEC->Port Enable Begin
    N:Video P:1 #:00112 T:00000015|351f9813 S:OMX_TI_VIDDEC_CommandNotify::Line 2436::VDEC->Port Enable End
    N:Video P:1 #:00113 T:00000015|351ff4d3 S:OMX_TI_VIDDEC_CommandNotify::Line 2487::VDEC->Before OMX_EventCmdComplete Notify
    N:Video P:1 #:00114 T:00000015|35205d9d S:OMX_TI_VIDDEC_CommandNotify::Line 2496::VDEC->OMX_EventCmdComplete Notify Done
    N:Video P:1 #:00116 T:00000015|36ea936b S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00115 T:00000015|36e9cb91 S:OMX_TI_VIDDEC_CommandNotify::Line 1816::VDEC->Loaded to Idle Transition Begin
    N:Video P:1 #:00117 T:00000015|36f2c94d S:OMX_TI_VIDDEC_CommandNotify::Line 1829::VDEC->Before VIDDEC3_create
    N:Video P:1 #:00118 T:00000015|36f3a2a3 S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00119 T:00000015|36f6392f S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00120 T:00000015|36f8dbe7 S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00121 T:00000015|36fbc271 S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00122 T:00000015|370980d9 S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00124 T:00000015|370c502b S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00123 T:00000015|370bbd39 S:ERROR: line 296:
    N:Video P:1 #:00125 T:00000015|370f0115 S:Entered Function :omxrpc_skel_allocbuffer


    Thanks,
    Ralph

  • Pardon the interruption, but I was wondering if someone could answer a quick question. Does this demo use OMX "proprietary tunneling" or "standard non-tunneling" (SNT)? The reason I ask is that I'm looking for a similar starting point, but in my case for the 8148 EVM, which  doesn't yet support SNT.

    The source code comments (e.g. @file decode_display_test.c) indicate "proprietary ", but I have a feeling that's wrong (?).

    Thanks...
    stegre

  • The ezsdk 05.01.01.80 release supports SNT.  I'm not sure which version you're based on.  SNT support for Centaurus is planned for availability in mid-August.

  • I'm using ezsdk 05.00.00.26. which is the latest available for 8148 / Centaurus - no SNT in that. So this "docode_display" app does use SNT, is that correct?

  • That's correct

     

  • Ralph,

    I see there is an error in the log (second last line of log), unfortunetly, it does not specify more details. We will try to reproduce this issue, I too feel it is race condition in the firmware. I will keep you updated, if we can reproduce and root cause it. As of now, it seems there is issue in creating codec.

    when component moves to IDLE state, buffers are being allocated, so my assumption was, during buffer allocation there is some issue. Since you are able to get it working when you call both threads as function, When you move to IDLE both the channels in the main, error should not have been seen..

    Regards

    Vimal

  • Okay, well thanks for looking into this. I have similar issues using the OpenMAX test bench (which I may put in a different thread) in that I cannot use 2 decoders at the same time however I am aware that the documentation specifically says that you can use 2 decoders simultaneously (but not 3).

    The issue does seem to occur in code that is in or around the OMX_AllocateBuffer()/semp_pend() calls. At the back of my mind, something says to me that it is a malloc()problem in the OMX framework that is showing itself in an unusual way. Just to summarise what I've found so it's clear;

    1. The code always runs fine when executed sequentially for each video in turn up to and including the IL_ClientConnectComponents() calls.
    2. Placing the rest of the code starting with setting IDLE state then allocating buffers into a thread for each video ends in failure. The first thread called (for the first video clip) hangs at the semp_pend(pAppData->decILComp->done_sem) call just before the "decoder state execute" printf. The second thread called (for the second video clip) hangs at the semp_pend(pAppData->decILComp->done_sem) call just before the "state IDLE" printf.
    3. If these threads are run in sequence instead of in parallel, the first video displays fine but ends with "got event*** unrecoverable error: OMX_ErrorPortUnpopulated (0x8000101c)" which causes a program crash so the second thread does not run.
    4. If these threads are run as 2 separate function calls (to the same function but for each video clip in turn) then each video is played back one after the other perfectly, one on HDMI and the other on analogue DAC.
    5. Forcefully slowing the execution of each thread down with sleep() statements causes each thread to hang on its second ever OMX_AllocateBuffer() call.
    6. If step 1 is extended so that the code for setting states to IDLE and allocating buffers is moved out of the threads and instead is run for each video in turn as part of a normal sequential program, it is found that the first video has its components set to IDLE and its buffers allocated fine. After this, the second video does not complete this state setting and allocation and instead halts at the very first semp_pend(pAppData->decILComp->done_sem) call. (The following running of threads to enter EXECUTE state for each video does not happen as the program stops running while setting up the second video OMX chain).
    7. The state setting and allocation for the second video is found to progress even less far if sleep statements are used to slow program execution. This suggests one of the OMX framework threads operating in the background (presumably from setting up the first video OMX chain) is causing an issue.

    Thanks,
    Ralph

  • Hi,

        , I learn your decode_display example to decode scal and display 4 channel 1080p h264 stream but failed,   I would be very appreciated that if you could give me a demo which can decode and display 4 channel 1080p h264 stream!

    thanks and regards

    Qin

  • Qin,

    The initial 5.01 release official supports 2 1080p60 streams (1080p30 should be possible).  Also the current DM8168 EVM+Daughter Card only has 2 HDMI outputs, so I'm not sure how you will display 2 additional displays at 1080p60.

  • hi Marcus,

                  Thanks for your reply!

                  I want to create  four decoder to decode 1080p h264 file and display in mosaics mode simultaneously only use the HDMI.

                 1. I refer to your decode_display demo, just one decoder to decode a 1080p file, works fine!!!!.

                 2.but when I create four decoder to decode four 1080p h264 file simultaneously , the decoder not works。

               some errors encounted,  when the decoder state change to IDEL, and hang!!!!!

    ./loggerSMDump.out 0xaf000000  all

    ..................................................

    each time will  get this :

    N:Video P:1 #:00117 T:00000015|36f2c94d S:OMX_TI_VIDDEC_CommandNotify::Line 1829::VDEC->Before VIDDEC3_create
    N:Video P:1 #:00118 T:00000015|36f3a2a3 S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00119 T:00000015|36f6392f S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00120 T:00000015|36f8dbe7 S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00121 T:00000015|36fbc271 S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00122 T:00000015|370980d9 S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00124 T:00000015|370c502b S:Entered Function :omxrpc_skel_allocbuffer
    N:Video P:1 #:00123 T:00000015|370bbd39 S:ERROR: line 296:
    N:Video P:1 #:00125 T:00000015|370f0115 S:Entered Function :omxrpc_skel_allocbuffer

    What is the problem of that?

    thanks and regards

    Qin

     

  • The documentation states that you can only run two instances of the decoder in parallel of any resolution in this version of the EZSDK for the current implementation of OpenMAX. If you want to run 4 decoders at 1080p60 you may be waiting a long time as the HDVICPs only support 3 parallel decodes at a time of 1080p60.

  • hi  _Ralph_,

              Thank you for your message,  I just want  to decode four  1080p25 stream, not the 1080p60, which documentation states only can support two decoder?

    thanks and regards,

    Qin

  • Ah okay, you should be alright as far as the hardware goes.

    I had a look and I can't find the documentation about 2 decoders, however I may have been confusing decoder with display as the OpenMAX user guide says only 2 displays are supported. Marcus says only 2 1080p60 steams are supported which is good enough for me as he is an official TI guy.

    http://e2e.ti.com/support/dsp/integra_dsparm/f/625/p/121270/444548.aspx#444548

    I suppose it would be possible for the OMX framework to support decoding up to 4x1080p30 streams if it interleaved the decoding somehow by alternately decoding sections of video that started with an "I" frame from one stream and then the next. It would be interested to know if this multiplexing were possible and done by OMX.

    Ralph

  • Hello Vimal and others,

    I still can't make this work. Did anyone from TI work out what was going wrong with the state change and semaphore pends?

    Thanks,
    Ralph

  • Ralph,

    This may take some testing on our end to work out the issues you're observing with 2 channel decode @ 1080p60.  From a system level this is achievible, but their may be some issues that may require addressing outside the scope of the application layer.   I hope to get back soon on the resolution for this issue.

    Marcus

  • Hello Marcus,

    I hope I made it clear what my setup was.

    I have been trying to step through debug the code after turning off optimisation in "ezsdk\ti-ezsdk_dm816x-evm_5_01_01_80\omx_05_01_01_80\packages\makerules\rules_a8_extend.mk" but end up with the code hanging in the platform_init() function so I look forward to hearing back.

    Ralph

  • Ralph,

    Is the problem you're facing related to performing 2 decodes channels in parallel but with optimization disabled.  However you're now hanging earlier at platform_init() as opposed to Allocation or semaphore wait?

    This post has so many different questions and topics, that's it becoming difficult to follow.  Could you please open a new E2E post and summaries this issue you're facing?

  • Hi Marcus,

    I agree it is getting difficult to follow. I'll create a new thread here:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/125802/449577.aspx

    Ralph

  • Hi Folks,

    Have any of you seen this behaviour when running the decode_display OpenMax demo app?

    Here is the application output (up until it stops responding) ...

    Entered Frame Width: 1920
    Entered Frame Height: 1080
    Entered Frame Rate: 60
    Entered File name: /usr/share/ti/data/videos/dm816x_1080p_demo.264
     Decoder-Display example
    ===============================

    Starting threads

    Threads started. Starting platform init
    Wait for VM3 to to create the server first

    Platform initialized
     openeing file
     OMX_Init completed
      decoder compoenent is created
    enable decoder input port
    got eventEnable/Disable Event
    enable scalar output port
    got eventEnable/Disable Event
     scalar compoenent is created
    set input port params (width = 1920, height = 1080)
    set output port params (width = 1920, height = 1080)set number of channelsset input resolutionset output resolutionenable scalar input port
    got eventEnable/Disable Event
    enable scalar output port
    got eventEnable/Disable Event
    found handle 0x1042c0 for component OMX.TI.VPSSM3.VFDC
     got display handle
    found handle 0x107b40 for component OMX.TI.VPSSM3.CTRL.DC
    Buffer Size computed: 4147200
    set input port params (width = 1920, height = 1080)setting input and output memory type to defaultenable input port
    got eventEnable/Disable Event
     connect call for decoder-scalar
      connect call for scalar-display
      decoder inport buffers allocated
      decoder outport buffers allocated
     got eventState changed to: OMX_StateIdle
     state IDLE
      Scalar input port use buffer done
      scalar outport buffers allocated
     got eventState changed to: OMX_StateIdle
     scalar state IDLE
     got eventState changed to: OMX_StateIdle
     ctrl-dc state IDLE
     got eventState changed to: OMX_StateIdle
     display state IDLE
     got eventState changed to: OMX_StateExecuting
     display control state execute

    NO MORE CONSOLE OUTPUT. NO VIDEO. EVM NEEDS TO BE REBOOTED.

  • Not if you're talking about single stream decode. Are you using the TI H264 video file to test this with? It's called dm816x_1080p_demo.264.

    Ralph

  • I am using the dm816x_1080p_demo.264 file and the exact command specified in the .doc file to launch the application.

    I managed to get a little further. I now see program output up until the line "executing the application now!!" It seems as though the application is running but no video is displayed on the HDMI monitor. I expected to see some video? All I see is black.

    Steve

  • It's worth checking you've EXACTLY followed the instructions in the .doc. I can't remember which one, but there was one instruction I simplfied slightly and the whole thing wouldn't work.

    Ralph

  •  

    If you are seeing just black screen (not even white/grey), Then most likely you might have missed insmod of HDMI module. Is TV /monitor detecting any signal ?

    Regards

    Vimal

  • Here is what I see when I insmod the HDMI module ...

    #insmod TI81xx_hdmi.ko -hdmi_mode=2
    insmod: error inserting 'TI81xx_hdmi.ko': -1 File exists

    Here is what I see when I run lsmod ...

    # lsmod
    Module                  Size  Used by
    bufferclass_ti          4918  0
    omaplfb                 7962  0
    pvrsrvkm              155136  2 bufferclass_ti,omaplfb
    TI81xx_hdmi            11226  0
    ti81xxfb               20355  3
    vpss                   59536  2 omaplfb,ti81xxfb
    syslink              1096481  1 vpss
    ipv6                  209879  12

    I see the Matrix GUI when I start the board. Can this application be run when the Matrix GUI is running? I have tried stopping the Matrix GUI and then running the demo application but still no video from the demo app.

    Steve

  • If Matrix GUI is running, it needs to be stopped else Graphics plane will be displayed instead of video. You can try aviding running pvr and matrix srcipts in the init time. In rc5.d directory these two scripts you can rename and then can try running the demo again.

    Regards

    Vimal

  • Thanks Vimal. It is now working properly.

    Steve

  • Where can these documents be found now, as I'm unable to download.

    1401.decode_display.zip

     7536.OpenMax Decode_Display.doc

     

    Thanks Alec

  • Hello Alec,

    If you are using EZSDK you could check in:

    /ti-ezsdk_dm816x-evm_5_05_01_04/component-sources/omx_05_02_00_46/examples/ti/omx/demos/

    decode_display demo

    and

    ti-ezsdk_dm816x-evm_5_05_01_04/component-sources/omx_05_02_00_46

    OMX_05_02_00_46_UserGuide.pdf

    Chapter: Multimedia Sample Applications

    Best Regards,

    Margarita