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.

Questions about SW Mosaic Link

Hi, 

    I am new to DVRRDK, and I have some questions about SW Mosaic Link. There are few introductions about SW Mosaic Link. DVR_RDK_McFW_Link_API_Training.pdf metiones something but not enough. I want to know how many SW Mosaic Links could be created in DVRRDK? And does each SW Mosaic Link make only one kind of mosaic output of the inputs? I mean if we have four input streams, can we get one output stream which is mosaiced by stream 1 and 2, and another output stream which is  mosaiced by stream 3 and 4?

Appreciate for your reply! Thanks very much!

  • You can create upto 4 swms instances. Pls refer /dvr_rdk/mcfw/interfaces/link_api/system_linkId.h which lists the link ids for the4 swms instances:

        SYSTEM_VPSS_LINK_ID_SW_MS_MULTI_INST_0,
        SYSTEM_VPSS_LINK_ID_SW_MS_MULTI_INST_1,
        SYSTEM_VPSS_LINK_ID_SW_MS_MULTI_INST_2,
        SYSTEM_VPSS_LINK_ID_SW_MS_MULTI_INST_3,

    Swms has only one output so it is not possible to use the same swms instance to output two streams as you have mentioned. You have to use 2 swms instances for this

  • Hi Badri,

         Thanks so much for your quick reply! So what limits the number of swms instances, the hw or DVRRDK? We have to use  8 swms instances to do mosaic jobs as we want to get 8 different mosaic output through 8 input streams. Is there a solution? 

  • Can you explain your requirement . Do you want to scale each channel to a different resolution and display it ? There are only 3 display (2 HD + 1SD) so you cannot display 8 different layout even if swms was able to create different layouts. Pls explain your data flow >Maybe scaler link can be used instead of SwMs if you just want to scale and not compose. The limitation on swms instance is sw limitation but there are limited hw resource on the device so even if you open multiple swms instances you are limited by h/w scaling capability

  •  Hi Badri,

    Actually we want to set up a media server of video conference. The following picture describes our data flow. Each swms instance would take some decoded video streams as its input and generate a specific output. This is because in the video conference each participant should be able to choose the other participants' pictures which he want to see. The input video size is under D1, so I think the hw capability is enough. And in EZSDK we can create more than 8 swms instances. So, if the limitation on swms instance is sw limitation, how could I increase it?

    Thanks so much!

  • I don't see any picture but I understand you want to compose and encode instead of display. To increase number of swms instances modify

    /dvr_rdk/mcfw/interfaces/link_api/system_linkId.h

    typedef  enum
    {
        SYSTEM_VPSS_LINK_ID_CAPTURE   = (SYSTEM_LINK_COMMON_LINKS_MAX_ID+1),

        SYSTEM_VPSS_LINK_ID_NSF_0,
        SYSTEM_VPSS_LINK_ID_NSF_1,
        SYSTEM_VPSS_LINK_ID_NSF_2,
        SYSTEM_VPSS_LINK_ID_NSF_3,

        SYSTEM_VPSS_LINK_ID_DEI_HQ_0,
        SYSTEM_VPSS_LINK_ID_DEI_HQ_1,

        SYSTEM_VPSS_LINK_ID_DEI_0,
        SYSTEM_VPSS_LINK_ID_DEI_1,

        SYSTEM_VPSS_LINK_ID_DISPLAY_0,
        SYSTEM_VPSS_LINK_ID_DISPLAY_1,
        SYSTEM_VPSS_LINK_ID_DISPLAY_2,

        SYSTEM_VPSS_LINK_ID_GRPX_0,
        SYSTEM_VPSS_LINK_ID_GRPX_1,
        SYSTEM_VPSS_LINK_ID_GRPX_2,

        SYSTEM_VPSS_LINK_ID_SW_MS_MULTI_INST_0,
        SYSTEM_VPSS_LINK_ID_SW_MS_MULTI_INST_1,
        SYSTEM_VPSS_LINK_ID_SW_MS_MULTI_INST_2,
        SYSTEM_VPSS_LINK_ID_SW_MS_MULTI_INST_3,

        SYSTEM_VPSS_LINK_ID_SCLR_INST_0,
        SYSTEM_VPSS_LINK_ID_SCLR_INST_1,

        SYSTEM_VPSS_LINK_ID_AVSYNC,

        SYSTEM_VPSS_LINK_ID_MP_SCLR_INST_0,
        SYSTEM_VPSS_LINK_ID_MP_SCLR_INST_1

    } SYSTEM_VPSS_PROC_LINK_IDS;

    to

    typedef  enum
    {
        SYSTEM_VPSS_LINK_ID_CAPTURE   = (SYSTEM_LINK_COMMON_LINKS_MAX_ID+1),

        SYSTEM_VPSS_LINK_ID_NSF_0,
        SYSTEM_VPSS_LINK_ID_NSF_1,
        SYSTEM_VPSS_LINK_ID_NSF_2,
        SYSTEM_VPSS_LINK_ID_NSF_3,

        SYSTEM_VPSS_LINK_ID_DEI_HQ_0,
        SYSTEM_VPSS_LINK_ID_DEI_HQ_1,

        SYSTEM_VPSS_LINK_ID_DEI_0,
        SYSTEM_VPSS_LINK_ID_DEI_1,

        SYSTEM_VPSS_LINK_ID_DISPLAY_0,
        SYSTEM_VPSS_LINK_ID_DISPLAY_1,
        SYSTEM_VPSS_LINK_ID_DISPLAY_2,

        SYSTEM_VPSS_LINK_ID_GRPX_0,
        SYSTEM_VPSS_LINK_ID_GRPX_1,
        SYSTEM_VPSS_LINK_ID_GRPX_2,

        SYSTEM_VPSS_LINK_ID_SW_MS_MULTI_INST_0,
        SYSTEM_VPSS_LINK_ID_SW_MS_MULTI_INST_1,
        SYSTEM_VPSS_LINK_ID_SW_MS_MULTI_INST_2,
        SYSTEM_VPSS_LINK_ID_SW_MS_MULTI_INST_3,

        SYSTEM_VPSS_LINK_ID_SW_MS_MULTI_INST_4,
        SYSTEM_VPSS_LINK_ID_SW_MS_MULTI_INST_5,
        SYSTEM_VPSS_LINK_ID_SW_MS_MULTI_INST_6,
        SYSTEM_VPSS_LINK_ID_SW_MS_MULTI_INST_7,

        SYSTEM_VPSS_LINK_ID_SCLR_INST_0,
        SYSTEM_VPSS_LINK_ID_SCLR_INST_1,

        SYSTEM_VPSS_LINK_ID_AVSYNC,

        SYSTEM_VPSS_LINK_ID_MP_SCLR_INST_0,
        SYSTEM_VPSS_LINK_ID_MP_SCLR_INST_1

    } SYSTEM_VPSS_PROC_LINK_IDS;

    and change

    /dvr_rdk/mcfw/src_bios6/links_m3vpss/swMs/swMsLink_priv.h

    #define SW_MS_LINK_OBJ_MAX              (4)

    to

    #define SW_MS_LINK_OBJ_MAX              (8)

    After doing this change you have to clean and rebuild rdk as:

    rm -rf build

    rm -rf lib

    make clean

    make dvr_rdk

    and use the rebuilt firmware and rdk libs.

  • Hi Badri,

    Sorry for forgetting to paste attachment. Thanks for your kindly reply! I will do as you said. 

  • Another question about dup link. In the file system_linkId.h there are two kinds of dup links, one is SYSTEM_LINK_ID_DUP_0-3, another is SYSTEM_VPSS_LINK_ID_DUP_0-3. What is the difference between them? And could both of these dup links be connected to dec link as we need 8 dup links too?

  • You should use SYSTEM_VPSS_LINK_ID_DUP_0-3. You cannot use  SYSTEM_LINK_ID_DUP_0-3.They are not real linkIDs as they don't have the coreID defined. I don't understand why you need 8 dupInstances. You require each decode input channel to be duped 8 times and output to all swms instances ? If so you use a single dupInstance.

    Also the output of SwMs is by default 422I but encode requires input in 420SP. So you should have a nsf to convert 422I to 420SP to be able to encode.

  • Hi Badri,

    You are right! There is no need of 8 dup links. And the nsf links must be added to convert the format. I find that the dup link support at most 5 outqueues. Does that mean I need at least 3 dups linkde to make 8 times copy? And maybe I need 8 select links to choose the input of each swms link, do you think so?

  • I think your data flow would be :

    IpcBitsOutHLOS -> IpcBitsInRTOS -> decLink -> ipcOutM3 -> ipcInM3 -> Merge -> Dup -> SwMs 0 - 7 -> Merge -> Nsf -> ipcOutM3 -> ipcInM3 -> encLink -> ipcBitsOutRTOS -> ipcBitsInHLOS

    SwMs itself can be configured to map input channel to output window so you don't need selectlink.

     

    You will have to modify dupLink to support 8 output queues and merge link to support  input queues.You have to modify

    /dvr_rdk/mcfw/interfaces/link_api/dupLink.h

    #define DUP_LINK_MAX_OUT_QUE (5)

    and

    /dvr_rdk/mcfw/interfaces/link_api/mergeLink.h

    #define MERGE_LINK_MAX_IN_QUE (8)

     

     

     

  • Yes, the data flow is exactly what I need. I think the first merge before dup could be removed. So, I need to write a usecase to realize the data flow and create a new demo. Then, how could I make the usecase? I mean how to write or modify the *.MK files. 

  • Yes merge before dup is not needed. Refer exisiting usecase like VSYS_USECASE_MULTICHN_HYBRID_DVR_16CH

    Refer changes in

    1. /dvr_rdk/demos/mcfw_api_demos/mcfw_demo/demo_spl_usecases.c for example of how to add and configure a usecase.

    2. Search for a usecase file like /dvr_rdk/mcfw/src_linux/mcfw_api/usecases/multich_hybrid_dvr.c to know the makefile changes.

    3. Search for defines VSYS_USECASE_MULTICHN_HYBRID_DVR_16CH & DEMO_HYBRIDDVR_16CH to see the changes to integrate a new usecase.

     

  • Refer the usecase and demo src files I could manage to write a new usecase and add it to the demo system. But I don't quite understand  how to change the makefile. I will try to learn and understand the makefile hierarchy.

    Thanks so much!

  • You don't have to make any changes in makefile. You only have to add the new usecase file under /dvr_rdk/mcfw/src_linux/mcfw_api/usecases.It will automatically be compiled

  • Hi Badri,

    You mean that the new usecase file will be compiled and add to the lib file dvr_rdk_mcfw_api.a? Is there any limitation on the usecase file name?

    After build the usecases, I have to add the demo file to \dvr_rdk\demos\mcfw_api_demos\mcfw_demo and modify the demo.c to add the new usecase to the demo system. Do I need to change the makefile in this folder?

  • You mean that the new usecase file will be compiled and add to the lib file dvr_rdk_mcfw_api.a?

     - yes

     Is there any limitation on the usecase file name?

    - no

    After build the usecases, I have to add the demo file to \dvr_rdk\demos\mcfw_api_demos\mcfw_demo and modify the demo.c to add the new usecase to the demo system. Do I need to change the makefile in this folder?

    - No. Search for usecase file name and demo file name for an existing demo in *.mk,Mak* under dvr_rdk folder to see the changes to add a new file

  • Thanks so much! You are so kind! 

  • Hi Badri,

    I have two more questions: 

    1. You said that the swms link could the input channels to the output windows. Is that use the swmsPrm.layoutPrm.winInfo.ChannelNum to do this?

    2. There is no usecase file names or demo file names of the existing demos in *.mk,Mak* in dvr_rdk folder. I go through all these “.mk” files, but could not find any way how to add a new file to the build system.

    Thanks in advance!

  • 1. You said that the swms link could the input channels to the output windows. Is that use the swmsPrm.layoutPrm.winInfo.ChannelNum to do this?

     - yes . Refer link API documentation to understand the parameters to be used.

    2. There is no usecase file names or demo file names of the existing demos in *.mk,Mak* in dvr_rdk folder. I go through all these “.mk” files, but could not find any way how to add a new file to the build system.

     - If you place the c files in the correct folder they will automatically be compiled. Are you seeing the files not being compiled ?

  • Hi Badri,

    Thanks again for your kindly reply! Yes, the build system automatically compiled all the ".c" files in the demo folder and usecase folder. But after changing the system_linkId.h, swMsLink_priv.h, dupLink.h and mergeLink.h to modify the params, I encouter errors when rebuilding dvrrdk. The error message is below, and it seems something with the memery map is wrong. 

    Build of libraries done.
    # Configuro done!
    # Making ti816x-evm:m3video:release:dvr_rdk_bios6...
    # Compiling ti816x-evm:m3video:release:dvr_rdk: src/main_m3video.c
    # Compiling generated MAIN_APP_m3video_pem3.oem3
    # Linking into /usr/local/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/dvr_rdk/bin/ti816x-evm/dvr_rdk_m3video_release_1024M_256M.xem3...
    #
    <Linking>
    "/usr/local/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/dvr_rdk/obj/ti816x-evm/m3video/release/dvr_rdk_configuro/linker_mod.cmd", line 251: error:
    run placement fails for object "GROUP_1", size 0xaa2c74 (page 0). Available
    ranges:
    VIDEO_M3_BSS_MAPPED_MEM size: 0xa80000 unused: 0xa7c000 max hole:
    0xa7c000
    error: errors encountered during linking;
    "/usr/local/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/dvr_rdk/bin/ti816x-e
    vm/dvr_rdk_m3video_release_1024M_256M.xem3" not built

    >> Compilation failure
    make[2]: *** [/usr/local/DVRRDK_03.50.00.05/dvr_rdk/../dvr_rdk/build/dvr_rdk/bin/ti816x-evm/dvr_rdk_m3video_release_1024M_256M.xem3] 错误 1
    make[1]: *** [apps] 错误 2
    make: *** [dvr_rdk_bios6] 错误 2


  • As you have increased the number of link instances the bss size is no longer sufficient. You have to increase the size of DSS_M3_BSS Size

    /dvr_rdk/mcfw/src_bios6/cfg/ti816x/config_1G_256MLinux.bld

    Try

    Reduce SR1_SIZE                   = 201*MB; by 2MB

    and increase

    DSS_M3_BSS_SIZE            = 16*MB  + 512*KB;

    by 2 MB

     

  • Ok, I will try and let you know the result.

  • Hi Badri,

    I do as what you said, but the error is the same. 

  • I know what 's wrong. I should increase the VIDEO_M3_BSS_SIZE not the DSS_M3_BSS_SIZE

  • No need to modify makefile. .c files in the folder will be compiled automatically.

  • Hi Badri,

    Now I could build the usecase that I write following the existing ones. But I met some mistakes when running the usecase. The following is the error message. It seems something wrong with the swms link params. I just followed the existing usecase files to set the params in my usecase. So I don't know what's wrong. I attached my usecase file, and could you help me to find the issue.

    Thanks in advance!

    [host] 69: IPC_BITS_OUT : Create in progress !!!
    ###Bit buff of size from the SR # 1 : 460800

    [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:0,Size:0x70800
    [host] IPCBITSOUTLINK:Translated Addr Virt:0x42499080 To Phy:0x90000080###Bit buff of size from the SR # 1 : 460800

    [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:1,Size:0x70800
    [host] IPCBITSOUTLINK:Translated Addr Virt:0x42509880 To Phy:0x90070880###Bit buff of size from the SR # 1 : 460800

    [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:2,Size:0x70800
    [host] IPCBITSOUTLINK:Translated Addr Virt:0x4257a080 To Phy:0x900e1080###Bit buff of size from the SR # 1 : 460800

    [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:3,Size:0x70800
    [host] IPCBITSOUTLINK:Translated Addr Virt:0x425ea880 To Phy:0x90151880###Bit buff of size from the SR # 1 : 460800

    [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:4,Size:0x70800
    [host] IPCBITSOUTLINK:Translated Addr Virt:0x4265b080 To Phy:0x901c2080###Bit buff of size from the SR # 1 : 460800

    [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:5,Size:0x70800
    [host] IPCBITSOUTLINK:Translated Addr Virt:0x426cb880 To Phy:0x90232880###Bit buff of size from the SR # 1 : 460800

    [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:6,Size:0x70800
    [host] IPCBITSOUTLINK:Translated Addr Virt:0x4273c080 To Phy:0x902a3080###Bit buff of size from the SR # 1 : 460800

    [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:7,Size:0x70800
    [host] IPCBITSOUTLINK:Translated Addr Virt:0x427ac880 To Phy:0x90313880
    [host] 70: IPC_BITS_OUT : Create Done !!!
    [m3video] 84903: IPC_BITS_IN : Create in progress !!!
    [m3video] 84903: SYSTEM: Opening ListMP [HOST_IPC_OUT_24] ...
    [m3video] 84904: SYSTEM: Opening ListMP [HOST_IPC_IN_24] ...
    [m3video] 84904: SYSTEM: Opening MsgQ [HOST_MSGQ] ...
    [m3video] 84906: IPC_BITS_IN : Create Done !!!
    [m3video] 84906: DECODE: Create in progress ... !!!
    [m3video] DECLINK_H264:HEAPID:0 USED:4264
    [m3video] DECLINK_H264:HEAPID:3 USED:1482752
    [m3video] 84923: DECODE: Creating CH0 of 320 x 240 [PROGRESSIVE] [NON-TILED ],target bitrate = 2000 Kbps ...
    [m3video] DECLINK_H264:HEAPID:0 USED:2368
    [m3video] DECLINK_H264:HEAPID:3 USED:1482752
    [m3video] 84938: DECODE: Creating CH1 of 320 x 240 [PROGRESSIVE] [NON-TILED ],target bitrate = 2000 Kbps ...
    [m3video] DECLINK_H264:HEAPID:0 USED:2368
    [m3video] DECLINK_H264:HEAPID:3 USED:1482752
    [m3video] 84954: DECODE: Creating CH2 of 320 x 240 [PROGRESSIVE] [NON-TILED ],target bitrate = 2000 Kbps ...
    [m3video] DECLINK_H264:HEAPID:0 USED:2368
    [m3video] DECLINK_H264:HEAPID:3 USED:1482752
    [m3video] 84969: DECODE: Creating CH3 of 320 x 240 [PROGRESSIVE] [NON-TILED ],target bitrate = 2000 Kbps ...
    [m3video] DECLINK_H264:HEAPID:0 USED:2368
    [m3video] DECLINK_H264:HEAPID:3 USED:1482752
    [m3video] 84984: DECODE: Creating CH4 of 320 x 240 [PROGRESSIVE] [NON-TILED ],target bitrate = 2000 Kbps ...
    [m3video] DECLINK_H264:HEAPID:0 USED:2368
    [m3vpss ] 85037: IPC_IN_M3 : Create in progress !!!
    [m3video] DECLINK_H264:HEAPID:3 USED:1482752
    [m3vpss ] 85037: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_0] ...
    [m3video] 85000: DECODE: Creating CH5 of 320 x 240 [PROGRESSIVE] [NON-TILED ],target bitrate = 2000 Kbps ...
    [m3vpss ] 85037: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_0] ...
    [m3vpss ] 85038: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...
    [m3vpss ] 85040: IPC_IN_M3 : Create Done !!!
    [m3video] DECLINK_H264:HEAPID:0 USED:2368
    [m3video] DECLINK_H264:HEAPID:3 USED:1482752
    [m3video] 85015: DECODE: Creating CH6 of 320 x 240 [PROGRESSIVE] [NON-TILED ],target bitrate = 2000 Kbps ...
    [m3vpss ] 85048: DUP : Create Done !!!
    [m3video] DECLINK_H264:HEAPID:0 USED:2368
    [m3vpss ] 85048: SWMS: Create in progress !!!
    [m3video] DECLINK_H264:HEAPID:3 USED:1482752
    [m3video] 85030: DECODE: Creating CH7 of 320 x 240 [PROGRESSIVE] [NON-TILED ],target bitrate = 2000 Kbps ...
    [m3video] 85032: DECODE: All CH Create ... DONE !!!
    [m3video] DECLINK:HEAPID:0 USED:20960
    [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 58 (58)
    [m3video] DECLINK:HEAPID:3 USED:21299200
    [m3vpss ] UTILS: DMA: 0 of 1: Allocated PaRAM = 58 (0x49004740)
    [m3video] 85035: DECODE: Create ... DONE !!!
    [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 59 (59)
    [m3video] 85036: IPC_OUT_M3 : Create in progress !!!
    [m3vpss ] UTILS: DMA: 0 of 4: Allocated PaRAM = 59 (0x49004760)
    [m3video] 85037: IPC_OUT_M3 : Create Done !!!
    [m3vpss ] UTILS: DMA: 1 of 4: Allocated PaRAM = 64 (0x49004800)
    [m3vpss ] UTILS: DMA: 2 of 4: Allocated PaRAM = 65 (0x49004820)
    [m3vpss ] UTILS: DMA: 3 of 4: Allocated PaRAM = 66 (0x49004840)
    [m3vpss ] SWMS: instance 0, sc id 5, start win 0 end win 17
    [m3vpss ] AVSYNC:WallTime IGNORE Unexpected Discontinuity.PrevTs[85071]/CurTs[239002]
    [m3vpss ] AVSYNC:WallTime IGNORE Unexpected Discontinuity.PrevTs[239002]/CurTs[393024]
    [m3vpss ] 393025: Assertion @ Line: 2330 in links_m3vpss/swMs/swMsLink_drv.c: pDrvObj->fvidHandle != NULL : failed !!!

    #include "multich_common.h"
    #include "multich_ipcbits.h"
    #include "mcfw/interfaces/link_api/avsync_hlos.h"
    #include "mcfw/interfaces/link_api/system_tiler.h"
    
    #define     NUM_SWMS_LINK                        (8)
    
    #define     NUM_BUFS_PER_CH_DEC                  (4)
    #define     NUM_BUFS_PER_CH_SWMS                 (4)
    #define     NUM_BUFS_PER_CH_ENC                  (4)
    #define     NUM_BUFS_PER_CH_NSF                  (4)
    #define     NUM_BUFS_PER_CH_MERGE                (4)
    
    
    static SystemVideo_Ivahd2ChMap_Tbl systemVid_encDecIvaChMapTbl =
    {
        .isPopulated = 1,
        .ivaMap[0] =
        {
            .EncNumCh  = 8,
            .EncChList = {0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 8,
            .DecChList = {0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0 , 0, 0},
        },
        .ivaMap[1] =  {  .EncNumCh  = 0,  .DecNumCh  = 0,  },
        .ivaMap[2] =  {  .EncNumCh  = 0,  .DecNumCh  = 0,  },
    };
    
    typedef struct {
    
        UInt32 swmsId[NUM_SWMS_LINK];
        UInt32 mergeId;
    	UInt32 nsfId;
    	UInt32 dupId;
    
        /* encode, deccode, ipc ID's are in gVxxxModuleContext */
    } MultiCh_VdecVmosaicVencVObj;
    
    MultiCh_VdecVmosaicVencVObj gMultiCh_VdecVmosaicVencVObj;
    
    /*Set Link IDs*/
    void Multich_SetLinkIds()
    {
    	gVdecModuleContext.ipcBitsOutHLOSId      = SYSTEM_HOST_LINK_ID_IPC_BITS_OUT_0;
        gVdecModuleContext.ipcBitsInRTOSId       = SYSTEM_VIDEO_LINK_ID_IPC_BITS_IN_0;
    	gVdecModuleContext.ipcM3InId             = SYSTEM_VPSS_LINK_ID_IPC_IN_M3_0;
    	gVdecModuleContext.ipcM3OutId            = SYSTEM_VIDEO_LINK_ID_IPC_OUT_M3_0;
        gVdecModuleContext.decId                 = SYSTEM_LINK_ID_VDEC_0;
    	
    	gVencModuleContext.ipcBitsOutRTOSId      = SYSTEM_VIDEO_LINK_ID_IPC_BITS_OUT_0;
    	gVencModuleContext.ipcBitsInHLOSId       = SYSTEM_HOST_LINK_ID_IPC_BITS_IN_0;
    	gVencModuleContext.ipcM3InId             = SYSTEM_VIDEO_LINK_ID_IPC_IN_M3_0;
    	gVencModuleContext.ipcM3OutId            = SYSTEM_VPSS_LINK_ID_IPC_OUT_M3_0;
    	gVencModuleContext.encId                 = SYSTEM_LINK_ID_VENC_0;
    
        gMultiCh_VdecVmosaicVencVObj.dupId       = SYSTEM_VPSS_LINK_ID_DUP_0;
        gMultiCh_VdecVmosaicVencVObj.mergeId     = SYSTEM_VPSS_LINK_ID_MERGE_0;
    	gMultiCh_VdecVmosaicVencVObj.nsfId       = SYSTEM_LINK_ID_NSF_0;
    	
    	gMultiCh_VdecVmosaicVencVObj.swmsId[0]   = SYSTEM_LINK_ID_SW_MS_MULTI_INST_0;
    	gMultiCh_VdecVmosaicVencVObj.swmsId[1]   = SYSTEM_LINK_ID_SW_MS_MULTI_INST_1;
    	gMultiCh_VdecVmosaicVencVObj.swmsId[2]   = SYSTEM_LINK_ID_SW_MS_MULTI_INST_2;
    	gMultiCh_VdecVmosaicVencVObj.swmsId[3]   = SYSTEM_LINK_ID_SW_MS_MULTI_INST_3;
    	gMultiCh_VdecVmosaicVencVObj.swmsId[4]   = SYSTEM_LINK_ID_SW_MS_MULTI_INST_4;
    	gMultiCh_VdecVmosaicVencVObj.swmsId[5]   = SYSTEM_LINK_ID_SW_MS_MULTI_INST_5;
    	gMultiCh_VdecVmosaicVencVObj.swmsId[6]   = SYSTEM_LINK_ID_SW_MS_MULTI_INST_6;
    	gMultiCh_VdecVmosaicVencVObj.swmsId[7]   = SYSTEM_LINK_ID_SW_MS_MULTI_INST_7;
    }
    
    /*Set Encoder Params*/
    static Void Multich_SetEncParams(EncLink_CreateParams *encPrm)
    {
        Uint32 i;
        EncLink_ChCreateParams *pLinkChPrm;
        EncLink_ChDynamicParams *pLinkDynPrm;
        VENC_CHN_DYNAMIC_PARAM_S *pDynPrm;
        VENC_CHN_PARAMS_S *pChPrm;
        
        encPrm->numBufPerCh[0] = NUM_BUFS_PER_CH_ENC;
        for (i=0; i < gVencModuleContext.vencConfig.numPrimaryChn; i++)
        {
            pLinkChPrm  = &encPrm->chCreateParams[i];
            pLinkDynPrm = &pLinkChPrm->defaultDynamicParams;
    
            pChPrm      = &gVencModuleContext.vencConfig.encChannelParams[i];
            pDynPrm     = &pChPrm->dynamicParam;
    
            pLinkChPrm->format                  = IVIDEO_H264HP;
            pLinkChPrm->profile                 = gVencModuleContext.vencConfig.h264Profile[i];
            pLinkChPrm->dataLayout              = IVIDEO_FIELD_SEPARATED;
            pLinkChPrm->fieldMergeEncodeEnable  = FALSE;
            pLinkChPrm->enableAnalyticinfo      = pChPrm->enableAnalyticinfo;
            pLinkChPrm->maxBitRate              = pChPrm->maxBitRate;
            pLinkChPrm->encodingPreset          = pChPrm->encodingPreset;
            pLinkChPrm->rateControlPreset       = pChPrm->rcType;
            pLinkChPrm->enableHighSpeed         = FALSE;
            pLinkChPrm->numTemporalLayer        = pChPrm->numTemporalLayer;
            pLinkChPrm->enableSVCExtensionFlag  = pChPrm->enableSVCExtensionFlag;
    
            pLinkDynPrm->intraFrameInterval     = pDynPrm->intraFrameInterval;
            pLinkDynPrm->targetBitRate          = pDynPrm->targetBitRate;
            pLinkDynPrm->interFrameInterval     = 1;
            pLinkDynPrm->mvAccuracy             = IVIDENC2_MOTIONVECTOR_QUARTERPEL;
            pLinkDynPrm->inputFrameRate         = pDynPrm->inputFrameRate;
            pLinkDynPrm->rcAlg                  = pDynPrm->rcAlg;
            pLinkDynPrm->qpMin                  = pDynPrm->qpMin;
            pLinkDynPrm->qpMax                  = pDynPrm->qpMax;
            pLinkDynPrm->qpInit                 = pDynPrm->qpInit;
            pLinkDynPrm->vbrDuration            = pDynPrm->vbrDuration;
            pLinkDynPrm->vbrSensitivity         = pDynPrm->vbrSensitivity;
        }
    }
    
    
    /*Set Mosaic Params*/
    static Void MultiCh_setSwMsParams(SwMsLink_CreateParams *swMsPrm, int i)//之后修改为只混合除与会者本人之外的7路图像
    {
        SwMsLink_LayoutPrm *layoutInfo;
        SwMsLink_LayoutWinInfo *winInfo;
        UInt32 outWidth, outHeight, row, col, winId, widthAlign, heightAlign;
        outWidth  = 1280;
        outHeight = 720;
    	
        widthAlign = 8;
        heightAlign = 1;
    
        layoutInfo = &swMsPrm->layoutPrm;
        /* init to known default */
        memset(layoutInfo, 0, sizeof(*layoutInfo));
    	
    	layoutInfo->onlyCh2WinMapChanged = FALSE;
    	layoutInfo->outputFPS = 30;
    	layoutInfo->numWin = 8;
    	
    	for(row=0; row<2; row++)
    	{
    	  for(col=0; col<2; col++)
    	  {
    		  winId = row*2+col;
    		  winInfo = &layoutInfo->winInfo[winId];
    		  winInfo->width  = SystemUtils_floor((outWidth*2)/5, widthAlign);
    		  winInfo->height = SystemUtils_floor(outHeight/2, heightAlign);
    		  winInfo->startX = winInfo->width*col;
    		  winInfo->startY = winInfo->height*row;
    		  winInfo->bypass = FALSE;
    		  winInfo->channelNum = winId;
    	  }
    	}
    
    	for(row=0; row<4; row++)
    	{
    	  winId = 4 + row;
    	  winInfo = &layoutInfo->winInfo[winId];
    	  winInfo->width  = layoutInfo->winInfo[0].width/2;
    	  winInfo->height = layoutInfo->winInfo[0].height/2;
    	  winInfo->startX = layoutInfo->winInfo[0].width*2;
    	  winInfo->startY = winInfo->height*row;
    	  winInfo->bypass = FALSE;
    	  winInfo->channelNum = winId;
    	}
    }
    
    /*Set Noisefilter Params*/
    static Void Multich_SetNsfParams(NsfLink_CreateParams *nsfPrm)
    {
        nsfPrm->bypassNsf                        = TRUE;
        nsfPrm->tilerEnable                      = FALSE;
        nsfPrm->numOutQue                        = 1;
        nsfPrm->numBufsPerCh                     = NUM_BUFS_PER_CH_NSF;
    }
    /*Create usecase*/
    void MultiCh_createVdecVmosaicVenc()
    {
        printf("Enter the usecase file!!!\n");
        //Define Link Params
        SwMsLink_CreateParams           swMsPrm[NUM_SWMS_LINK];
        MergeLink_CreateParams          mergePrm;
        DupLink_CreateParams            dupPrm;
        NsfLink_CreateParams            nsfPrm;
        IpcLink_CreateParams            ipcOutVpssPrm;
        IpcLink_CreateParams            ipcInVideoPrm;
    	IpcLink_CreateParams            ipcOutVideoPrm;
    	IpcLink_CreateParams            ipcInVpssPrm;
        EncLink_CreateParams            encPrm;
    	DecLink_CreateParams            decPrm;
        IpcBitsOutLinkRTOS_CreateParams ipcBitsOutVideoPrm;
    	IpcBitsInLinkRTOS_CreateParams  ipcBitsInVideoPrm;
    	IpcBitsOutLinkHLOS_CreateParams ipcBitsOutHostPrm;
        IpcBitsInLinkHLOS_CreateParams  ipcBitsInHostPrm;
    	
    	UInt32 i;
    	//Set Link ID
    	Multich_SetLinkIds();
    	//Init Link Params
    	for(i=0; i<NUM_SWMS_LINK; i++)
    	    MULTICH_INIT_STRUCT(SwMsLink_CreateParams, swMsPrm[i]);
    	//MULTICH_INIT_STRUCT(MergeLink_CreateParams, mergePrm);
    	//MULTICH_INIT_STRUCT(DupLink_CreateParams, dupPrm);
    	MULTICH_INIT_STRUCT(NsfLink_CreateParams, nsfPrm);
    	MULTICH_INIT_STRUCT(IpcLink_CreateParams, ipcOutVpssPrm);
    	MULTICH_INIT_STRUCT(IpcLink_CreateParams, ipcInVideoPrm);
    	MULTICH_INIT_STRUCT(IpcLink_CreateParams, ipcOutVideoPrm);
    	MULTICH_INIT_STRUCT(IpcLink_CreateParams, ipcInVpssPrm);
    	MULTICH_INIT_STRUCT(EncLink_CreateParams, encPrm);
    	MULTICH_INIT_STRUCT(DecLink_CreateParams, decPrm);
    	MULTICH_INIT_STRUCT(IpcBitsOutLinkRTOS_CreateParams, ipcBitsOutVideoPrm);
    	MULTICH_INIT_STRUCT(IpcBitsInLinkRTOS_CreateParams, ipcBitsInVideoPrm);
    	MULTICH_INIT_STRUCT(IpcBitsOutLinkHLOS_CreateParams, ipcBitsOutHostPrm);
    	MULTICH_INIT_STRUCT(IpcBitsInLinkHLOS_CreateParams, ipcBitsInHostPrm);
    	
    	MultiCh_detectBoard();
    
        System_linkControl(
            SYSTEM_LINK_ID_M3VPSS,
            SYSTEM_M3VPSS_CMD_RESET_VIDEO_DEVICES,
            NULL,
            0,
            TRUE
            );
        /* Disable tiler allocator for this usecase
         * for that tiler memory can be reused for
         * non-tiled allocation
         */
        SystemTiler_disableAllocator();
    
        System_linkControl(
            SYSTEM_LINK_ID_M3VIDEO,
            SYSTEM_COMMON_CMD_SET_CH2IVAHD_MAP_TBL,
            &systemVid_encDecIvaChMapTbl,
            sizeof(SystemVideo_Ivahd2ChMap_Tbl),
            TRUE
            );
    
        printf("Start to config Link Params!!!\n");
        /******************************set ipcBitsOutHLOS link param *******************************/
    	IpcBitsOutLinkHLOS_CreateParams_Init(&ipcBitsOutHostPrm);
        ipcBitsOutHostPrm.baseCreateParams.outQueParams[0].nextLink = gVdecModuleContext.ipcBitsInRTOSId;
        ipcBitsOutHostPrm.baseCreateParams.notifyNextLink           = FALSE;
        ipcBitsOutHostPrm.baseCreateParams.notifyPrevLink           = FALSE;
        ipcBitsOutHostPrm.baseCreateParams.noNotifyMode             = TRUE;
        ipcBitsOutHostPrm.baseCreateParams.numOutQue                = 1;
        ipcBitsOutHostPrm.inQueInfo.numCh                           = NUM_SWMS_LINK;
        ipcBitsOutHostPrm.bufPoolPerCh                              = TRUE;
        for (i=0; i<ipcBitsOutHostPrm.inQueInfo.numCh; i++)
        {
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].width =
                gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoWidth;
    
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].height =
                gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoHeight;
    
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].scanFormat =
                SYSTEM_SF_PROGRESSIVE;
    
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].bufType        = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].codingformat   = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].dataFormat     = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].memType        = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].startX         = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].startY         = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[0]       = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[1]       = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[2]       = 0; // NOT USED
            ipcBitsOutHostPrm.numBufPerCh[i] = 6;
        }
    	/******************************set ipcBitsInRTOS link param *******************************/
    	IpcBitsInLinkRTOS_CreateParams_Init(&ipcBitsInVideoPrm);
        ipcBitsInVideoPrm.baseCreateParams.inQueParams.prevLinkId    = gVdecModuleContext.ipcBitsOutHLOSId;//Arm out
        ipcBitsInVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        ipcBitsInVideoPrm.baseCreateParams.outQueParams[0].nextLink  = gVdecModuleContext.decId;
        ipcBitsInVideoPrm.baseCreateParams.noNotifyMode              = TRUE;
        ipcBitsInVideoPrm.baseCreateParams.notifyNextLink            = FALSE;
        ipcBitsInVideoPrm.baseCreateParams.notifyPrevLink            = FALSE;
        ipcBitsInVideoPrm.baseCreateParams.numOutQue                 = 1;
    
        printf("Config DecLink Params!!!\n");
    	/******************************set dec link param *******************************/
    	DecLink_CreateParams_Init(&decPrm);
    
    	for (i=0; i<NUM_SWMS_LINK; i++)
    	{
    	decPrm.chCreateParams[i].format                 = IVIDEO_H264HP;
    	decPrm.chCreateParams[i].profile                = IH264VDEC_PROFILE_ANY;
    	decPrm.chCreateParams[i].processCallLevel       = VDEC_FRAMELEVELPROCESSCALL;
    	decPrm.chCreateParams[i].dpbBufSizeInFrames     = IH264VDEC_DPB_NUMFRAMES_AUTO;
    	decPrm.chCreateParams[i].targetMaxWidth         = ipcBitsOutHostPrm.inQueInfo.chInfo[i].width;
    	decPrm.chCreateParams[i].targetMaxHeight        = ipcBitsOutHostPrm.inQueInfo.chInfo[i].height;
    	decPrm.chCreateParams[i].numBufPerCh            = NUM_BUFS_PER_CH_DEC; 
    	decPrm.chCreateParams[i].defaultDynamicParams.targetFrameRate = gVdecModuleContext.vdecConfig.decChannelParams[i].dynamicParam.frameRate;
    	decPrm.chCreateParams[i].defaultDynamicParams.targetBitRate   = gVdecModuleContext.vdecConfig.decChannelParams[i].dynamicParam.targetBitRate;
    	decPrm.chCreateParams[i].tilerEnable = FALSE;
    	}
    	decPrm.inQueParams.prevLinkId       = gVdecModuleContext.ipcBitsInRTOSId;//video in
        decPrm.inQueParams.prevLinkQueId    = 0;
        decPrm.outQueParams.nextLink        = gVdecModuleContext.ipcM3OutId;//Video out
    
    	/******************************set ipcOutVideo link param *******************************/
    	IpcLink_CreateParams_Init(&ipcOutVideoPrm);
    	ipcOutVideoPrm.inQueParams.prevLinkId    = gVdecModuleContext.decId;
        ipcOutVideoPrm.inQueParams.prevLinkQueId = 0;
        ipcOutVideoPrm.outQueParams[0].nextLink  = gVdecModuleContext.ipcM3InId;//Vpss in
        ipcOutVideoPrm.notifyNextLink            = FALSE;
        ipcOutVideoPrm.notifyPrevLink            = FALSE;
    	ipcOutVideoPrm.noNotifyMode              = TRUE;
        ipcOutVideoPrm.numOutQue                 = 1;
        /******************************set ipcInVpss link param *******************************/
    	IpcLink_CreateParams_Init(&ipcInVpssPrm);
        ipcInVpssPrm.inQueParams.prevLinkId    = gVdecModuleContext.ipcM3OutId;
        ipcInVpssPrm.inQueParams.prevLinkQueId = 0;
        ipcInVpssPrm.notifyNextLink            = FALSE;
        ipcInVpssPrm.notifyPrevLink            = FALSE;
    	ipcInVpssPrm.noNotifyMode              = TRUE;
        ipcInVpssPrm.numOutQue                 = 1;
    	ipcInVpssPrm.outQueParams[0].nextLink  = gMultiCh_VdecVmosaicVencVObj.dupId;
    
        printf("Config DupLink Params!!!\n");
    	/******************************set dup link param *******************************/
    	dupPrm.inQueParams.prevLinkId         = gVdecModuleContext.ipcM3InId;;
        dupPrm.inQueParams.prevLinkQueId      = 0;
    	dupPrm.numOutQue                      = NUM_SWMS_LINK;
    	for(i=0; i<NUM_SWMS_LINK; i++)   
    		dupPrm.outQueParams[i].nextLink   = gMultiCh_VdecVmosaicVencVObj.swmsId[i];
        dupPrm.notifyNextLink                 = TRUE;
    
        printf("Config SWMSLink Params!!!\n");
    	/******************************set swms link param *******************************/
    	for(i=0; i<NUM_SWMS_LINK; i++)
    	{
    	    SwMsLink_CreateParams_Init(&swMsPrm[i]);
    		swMsPrm[i].numSwMsInst                  = 1;
    		swMsPrm[i].swMsInstId[0]                = SYSTEM_SW_MS_SC_INST_SC5;
    		swMsPrm[i].maxInputQueLen               = SYSTEM_SW_MS_DEFAULT_INPUT_QUE_LEN + 4;
    		swMsPrm[i].numOutBuf                    = NUM_BUFS_PER_CH_SWMS;
    
    		swMsPrm[i].maxOutRes                    = VSYS_STD_PAL;
    		swMsPrm[i].initOutRes                   = VSYS_STD_1080P_30;
    		swMsPrm[i].lineSkipMode                 = FALSE;
    		swMsPrm[i].enableLayoutGridDraw         = TRUE;
    		MultiCh_setSwMsParams(&swMsPrm[i], i);
    		swMsPrm[i].inQueParams.prevLinkId     = gMultiCh_VdecVmosaicVencVObj.dupId;
    		swMsPrm[i].inQueParams.prevLinkQueId  = i;
    		swMsPrm[i].outQueParams.nextLink      = gMultiCh_VdecVmosaicVencVObj.mergeId;
    	    
    	}
        printf("Config MergeLink Params!!!\n");
    	/******************************set merge link param *******************************/
    	mergePrm.numInQue                         = NUM_SWMS_LINK;
    	for(i=0; i<NUM_SWMS_LINK; i++)
    	{
    		mergePrm.inQueParams[i].prevLinkId    = gMultiCh_VdecVmosaicVencVObj.swmsId[i];
    		mergePrm.inQueParams[i].prevLinkQueId = i;
    	}
        mergePrm.outQueParams.nextLink            = gMultiCh_VdecVmosaicVencVObj.nsfId;
        mergePrm.notifyNextLink                   = TRUE;
        
        printf("Config NfsLink Params!!!\n");
    	/******************************set nsf link param *******************************/
        NsfLink_CreateParams_Init(&nsfPrm);
        Multich_SetNsfParams(&nsfPrm);
        nsfPrm.inQueParams.prevLinkId             = gMultiCh_VdecVmosaicVencVObj.mergeId;
        nsfPrm.inQueParams.prevLinkQueId          = 0;
        nsfPrm.outQueParams[0].nextLink              = gVencModuleContext.ipcM3OutId;
    	/******************************set ipcOutVpssPrm link param *******************************/
    	IpcLink_CreateParams_Init(&ipcOutVpssPrm);
    	ipcOutVpssPrm.inQueParams.prevLinkId      = gMultiCh_VdecVmosaicVencVObj.nsfId;
        ipcOutVpssPrm.inQueParams.prevLinkQueId   = 0;
        ipcOutVpssPrm.numOutQue                   = 1;
        ipcOutVpssPrm.outQueParams[0].nextLink    = gVencModuleContext.ipcM3InId;
        ipcOutVpssPrm.notifyNextLink              = FALSE;
        ipcOutVpssPrm.notifyPrevLink              = FALSE;
        ipcOutVpssPrm.noNotifyMode                = TRUE;
    	/******************************set ipcInVideoPrm link param *******************************/
        IpcLink_CreateParams_Init(&ipcInVideoPrm);
        ipcInVideoPrm.inQueParams.prevLinkId      = gVencModuleContext.ipcM3OutId;
        ipcInVideoPrm.inQueParams.prevLinkQueId   = 0;
        ipcInVideoPrm.numOutQue                   = 1;
        ipcInVideoPrm.outQueParams[0].nextLink    = gVencModuleContext.encId;
        ipcInVideoPrm.notifyNextLink              = FALSE;
        ipcInVideoPrm.notifyPrevLink              = FALSE;
        ipcInVideoPrm.noNotifyMode                = TRUE;
    
        printf("Config EncLink Params!!!\n");
    	/******************************set enc link param *******************************/	
    	EncLink_CreateParams_Init(&encPrm);
    	Multich_SetEncParams(&encPrm);
    	encPrm.inQueParams.prevLinkId             = gVencModuleContext.ipcM3InId;
        encPrm.inQueParams.prevLinkQueId          = 0;
        encPrm.outQueParams.nextLink              = gVencModuleContext.ipcBitsOutRTOSId;
    	/******************************set IpcBitsOutLinkRTOS link param *******************************/	
        IpcBitsOutLinkRTOS_CreateParams_Init(&ipcBitsOutVideoPrm);
    	ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkId     = gVencModuleContext.encId;
        ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkQueId      = 0;
    	ipcBitsOutVideoPrm.baseCreateParams.numOutQue                  = 1;
        ipcBitsOutVideoPrm.baseCreateParams.outQueParams[0].nextLink       = gVencModuleContext.ipcBitsInHLOSId;
        ipcBitsOutVideoPrm.baseCreateParams.notifyNextLink                 = FALSE;
        ipcBitsOutVideoPrm.baseCreateParams.notifyPrevLink                 = FALSE;
        ipcBitsOutVideoPrm.baseCreateParams.noNotifyMode                   = TRUE;
     
        /******************************set IpcBitsInLinkHLOS link param *******************************/
        IpcBitsInLinkHLOS_CreateParams_Init(&ipcBitsInHostPrm);
        ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkId           = gVencModuleContext.ipcBitsOutRTOSId;
        ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkQueId        = 0;
        ipcBitsInHostPrm.baseCreateParams.numOutQue                        = 1;
        ipcBitsInHostPrm.baseCreateParams.outQueParams[0].nextLink         = SYSTEM_LINK_ID_INVALID;
        ipcBitsInHostPrm.baseCreateParams.notifyNextLink                   = FALSE;
        ipcBitsInHostPrm.baseCreateParams.notifyPrevLink                   = FALSE;
        ipcBitsInHostPrm.baseCreateParams.noNotifyMode                     = TRUE;
    	/******************************Create Links from src to sink *******************************/
    	System_linkCreate(gVdecModuleContext.ipcBitsOutHLOSId,&ipcBitsOutHostPrm,sizeof(ipcBitsOutHostPrm));
        System_linkCreate(gVdecModuleContext.ipcBitsInRTOSId,&ipcBitsInVideoPrm,sizeof(ipcBitsInVideoPrm));
        System_linkCreate(gVdecModuleContext.decId, &decPrm, sizeof(decPrm));
    	System_linkCreate(gVdecModuleContext.ipcM3OutId, &ipcOutVideoPrm, sizeof(ipcOutVideoPrm));
        System_linkCreate(gVdecModuleContext.ipcM3InId, &ipcInVpssPrm, sizeof(ipcInVpssPrm));
    	
    	System_linkCreate(gMultiCh_VdecVmosaicVencVObj.dupId, &dupPrm, sizeof(dupPrm));
    	for(i=0; i<NUM_SWMS_LINK; i++)
            { 
    	     System_linkCreate(gMultiCh_VdecVmosaicVencVObj.swmsId[i],
                                   &swMsPrm[i],
                                   sizeof(swMsPrm[i])
                                  );
            }
    	System_linkCreate(gMultiCh_VdecVmosaicVencVObj.mergeId, &mergePrm, sizeof(mergePrm));
    	System_linkCreate(gMultiCh_VdecVmosaicVencVObj.nsfId, &nsfPrm, sizeof(nsfPrm));
    	
    	System_linkCreate(gVencModuleContext.ipcM3OutId, &ipcOutVpssPrm, sizeof(ipcOutVpssPrm));
    	System_linkCreate(gVencModuleContext.ipcM3InId, &ipcInVideoPrm, sizeof(ipcInVideoPrm));
    	System_linkCreate(gVencModuleContext.encId, &encPrm, sizeof(encPrm));
    	System_linkCreate(gVencModuleContext.ipcBitsOutRTOSId, &ipcBitsOutVideoPrm, sizeof(ipcBitsOutVideoPrm));
    	System_linkCreate(gVencModuleContext.ipcBitsInHLOSId, &ipcBitsInHostPrm, sizeof(ipcBitsInHostPrm));
    	
    	MultiCh_memPrintHeapStatus();
    }
    //delete usecase
    void MultiCh_deleteVdecVmosaicVenc()
    {
        int i;
        Vdec_delete();
        Venc_delete();
    	System_linkDelete(gMultiCh_VdecVmosaicVencVObj.dupId);
    	for(i=0; i<NUM_SWMS_LINK; i++)
    		System_linkDelete(gMultiCh_VdecVmosaicVencVObj.swmsId[i]);
    	System_linkDelete(gMultiCh_VdecVmosaicVencVObj.mergeId);
    	System_linkDelete(gMultiCh_VdecVmosaicVencVObj.nsfId);
    	/* Print slave processor load info */
        MultiCh_prfLoadCalcEnable(FALSE, TRUE, FALSE);
    }
    

  • Is the above the full log ? Are you getting failure when opening the first swms instance itself ?

    Below code is wrong:

    swMsPrm[i].maxOutRes                    = VSYS_STD_PAL;
    swMsPrm[i].initOutRes                   = VSYS_STD_1080P_30;

    maxOutRes cannot be smaller than initOutRes.Also you layout is 1280 x 720 so both initOutRes and maxOutRes should be 720P.

     

  • Hi Badri,

     Below is the full log. And sorry for make this easy mistake. I will set both of them to VSYS_STD_720P_60 to have a try. 

    =========
    Main Menu
    =========

    1: VCAP + VENC + VDEC + VDIS - Progressive SD Encode + Decode
    2: VCAP + VENC + VDIS - SD Encode ONLY
    3: VCAP + VENC + VDIS - HD Encode ONLY
    4: VDEC + VDIS - SD/HD Decode ONLY
    5: VDEC + VMOSAIC + VENC -8_CH_D1

    e: Exit

    Enter Choice: 5

    Sample ini files available in ./demo_ini folder.
    Enter the .ini filename with full path : /opt/dvr_rdk/ti816x/demo_ini/320x240_8CH.ini
    *** a new param codec is needed for ini, if you not sure about this
    *** please reference demo_ini/704x576_02_32CH.ini
    *** H264: codec = h264
    *** MPEG4: codec = mpeg4
    *** MJPEG: codec = mjpeg
    *** Two new params numbuf & displaydelay has been added for ini, if not defaults are set

    *** Generate header files ***

    This will take very long time if the file is large.
    - For first time you MUST select YES.
    - If you already have the header file on disk, you can select NO.

    Do you want to generate header ? (YES - y, NO - n) : n

    0: Opening file [/data/320x240.h264] of 320 x 240 Codec: h264...
    1: Opening file [/data/320x240.h264] of 320 x 240 Codec: h264...
    2: Opening file [/data/320x240.h264] of 320 x 240 Codec: h264...
    3: Opening file [/data/320x240.h264] of 320 x 240 Codec: h264...
    4: Opening file [/data/320x240.h264] of 320 x 240 Codec: h264...
    5: Opening file [/data/320x240.h264] of 320 x 240 Codec: h264...
    6: Opening file [/data/320x240.h264] of 320 x 240 Codec: h264...
    7: Opening file [/data/320x240.h264] of 320 x 240 Codec: h264...
    gVdecVdis_config.numRes : 1 gVdecVdis_config.numChnlInRes[0] : 8
    File open ... DONE !!!


    Enable file write (YES - y / NO - n) :

    Enter the file write file!!!

    Enter file write path : /data

    Selected file write path [/data]


    Select File Write CH ID [0 .. 7] : 0

    Selected CH ID = 0

    ch[0], h264
    ch[1], h264
    ch[2], h264
    ch[3], h264
    ch[4], h264
    ch[5], h264
    ch[6], h264
    ch[7], h264
    0: SYSTEM: System Common Init in progress !!!
    0: SYSTEM: IPC init in progress !!!
    14: SYSTEM: CPU [DSP] syslink proc ID is [0] !!!
    14: SYSTEM: CPU [VIDEO-M3] syslink proc ID is [1] !!!
    14: SYSTEM: CPU [VPSS-M3] syslink proc ID is [2] !!!
    14: SYSTEM: CPU [HOST] syslink proc ID is [3] !!!
    14: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_3] ...
    16: SYSTEM: Creating MsgQ [HOST_MSGQ] ...
    Opened file [/data/VID_CH00.h264] for writing CH0
    18: SYSTEM: Creating MsgQ [HOST_ACK_MSGQ] ...
    21: SYSTEM: Opening MsgQ [DSP_MSGQ] ...
    21: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...
    22: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...
    23: SYSTEM: Notify register to [DSP] line 0, event 15 ...
    23: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ...
    24: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ...
    24: SYSTEM: IPC init DONE !!!
    26: SYSTEM: Creating ListMP [HOST_IPC_OUT_24] in region 0 ...
    28: SYSTEM: Creating ListMP [HOST_IPC_IN_24] in region 0 ...
    29: SYSTEM: ListElem Shared Addr = 0x41873d00
    31: SYSTEM: Creating ListMP [HOST_IPC_OUT_25] in region 0 ...
    33: SYSTEM: Creating ListMP [HOST_IPC_IN_25] in region 0 ...
    34: SYSTEM: ListElem Shared Addr = 0x41891800
    36: SYSTEM: Creating ListMP [HOST_IPC_OUT_19] in region 0 ...
    38: SYSTEM: Creating ListMP [HOST_IPC_IN_19] in region 0 ...
    39: SYSTEM: ListElem Shared Addr = 0x418af300
    41: SYSTEM: Creating ListMP [HOST_IPC_OUT_20] in region 0 ...
    43: SYSTEM: Creating ListMP [HOST_IPC_IN_20] in region 0 ...
    44: SYSTEM: ListElem Shared Addr = 0x418d2b80
    45: SYSTEM: Creating ListMP [HOST_IPC_OUT_21] in region 0 ...
    47: SYSTEM: Creating ListMP [HOST_IPC_IN_21] in region 0 ...
    50: SYSTEM: ListElem Shared Addr = 0x418f6400
    68: SYSTEM: System Common Init Done !!!
    Before create sys and realize the data path!!!
    Enter the usecase file!!!
    71: MCFW : CPU Revision [ES1.1] !!!
    71: MCFW : Detected [UNKNOWN] Board !!!
    71: MCFW : Base Board Revision [REV A] !!!
    Start to config Link Params!!!
    Config DecLink Params!!!
    Config DupLink Params!!!
    Config SWMSLink Params!!!
    Config MergeLink Params!!!
    Config NfsLink Params!!!
    Config EncLink Params!!!

    [host] 71: IPC_BITS_OUT : Create in progress !!!
    ###Bit buff of size from the SR # 1 : 460800

    [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:0,Size:0x70800
    [host] IPCBITSOUTLINK:Translated Addr Virt:0x4246f080 To Phy:0x90000080###Bit buff of size from the SR # 1 : 460800

    [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:1,Size:0x70800
    [host] IPCBITSOUTLINK:Translated Addr Virt:0x424df880 To Phy:0x90070880###Bit buff of size from the SR # 1 : 460800

    [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:2,Size:0x70800
    [host] IPCBITSOUTLINK:Translated Addr Virt:0x42550080 To Phy:0x900e1080###Bit buff of size from the SR # 1 : 460800

    [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:3,Size:0x70800
    [host] IPCBITSOUTLINK:Translated Addr Virt:0x425c0880 To Phy:0x90151880###Bit buff of size from the SR # 1 : 460800

    [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:4,Size:0x70800
    [host] IPCBITSOUTLINK:Translated Addr Virt:0x42631080 To Phy:0x901c2080###Bit buff of size from the SR # 1 : 460800

    [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:5,Size:0x70800
    [host] IPCBITSOUTLINK:Translated Addr Virt:0x426a1880 To Phy:0x90232880###Bit buff of size from the SR # 1 : 460800

    [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:6,Size:0x70800
    [host] IPCBITSOUTLINK:Translated Addr Virt:0x42712080 To Phy:0x902a3080###Bit buff of size from the SR # 1 : 460800

    [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:7,Size:0x70800
    [host] IPCBITSOUTLINK:Translated Addr Virt:0x42782880 To Phy:0x90313880
    [host] 73: IPC_BITS_OUT : Create Done !!!
    [m3video] 58262: IPC_BITS_IN : Create in progress !!!
    [m3video] 58262: SYSTEM: Opening ListMP [HOST_IPC_OUT_24] ...
    [m3video] 58262: SYSTEM: Opening ListMP [HOST_IPC_IN_24] ...
    [m3video] 58263: SYSTEM: Opening MsgQ [HOST_MSGQ] ...
    [m3video] 58265: IPC_BITS_IN : Create Done !!!
    [m3video] 58265: DECODE: Create in progress ... !!!
    [m3video] DECLINK_H264:HEAPID:0 USED:4264
    [m3video] DECLINK_H264:HEAPID:3 USED:1482752
    [m3video] 58282: DECODE: Creating CH0 of 320 x 240 [PROGRESSIVE] [NON-TILED ],target bitrate = 2000 Kbps ...
    [m3video] DECLINK_H264:HEAPID:0 USED:2368
    [m3video] DECLINK_H264:HEAPID:3 USED:1482752
    [m3video] 58297: DECODE: Creating CH1 of 320 x 240 [PROGRESSIVE] [NON-TILED ],target bitrate = 2000 Kbps ...
    [m3video] DECLINK_H264:HEAPID:0 USED:2368
    [m3video] DECLINK_H264:HEAPID:3 USED:1482752
    [m3video] 58313: DECODE: Creating CH2 of 320 x 240 [PROGRESSIVE] [NON-TILED ],target bitrate = 2000 Kbps ...
    [m3video] DECLINK_H264:HEAPID:0 USED:2368
    [m3video] DECLINK_H264:HEAPID:3 USED:1482752
    [m3video] 58328: DECODE: Creating CH3 of 320 x 240 [PROGRESSIVE] [NON-TILED ],target bitrate = 2000 Kbps ...
    [m3video] DECLINK_H264:HEAPID:0 USED:2368
    [m3video] DECLINK_H264:HEAPID:3 USED:1482752
    [m3video] 58343: DECODE: Creating CH4 of 320 x 240 [PROGRESSIVE] [NON-TILED ],target bitrate = 2000 Kbps ...
    [m3video] DECLINK_H264:HEAPID:0 USED:2368
    [m3vpss ] 58396: IPC_IN_M3 : Create in progress !!!
    [m3video] DECLINK_H264:HEAPID:3 USED:1482752
    [m3vpss ] 58396: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_0] ...
    [m3video] 58358: DECODE: Creating CH5 of 320 x 240 [PROGRESSIVE] [NON-TILED ],target bitrate = 2000 Kbps ...
    [m3vpss ] 58396: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_0] ...
    [m3vpss ] 58397: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...
    [m3vpss ] 58399: IPC_IN_M3 : Create Done !!!
    [m3video] DECLINK_H264:HEAPID:0 USED:2368
    [m3video] DECLINK_H264:HEAPID:3 USED:1482752
    [m3video] 58374: DECODE: Creating CH6 of 320 x 240 [PROGRESSIVE] [NON-TILED ],target bitrate = 2000 Kbps ...
    [m3vpss ] 58407: DUP : Create Done !!!
    [m3video] DECLINK_H264:HEAPID:0 USED:2368
    [m3vpss ] 58407: SWMS: Create in progress !!!
    [m3video] DECLINK_H264:HEAPID:3 USED:1482752
    [m3video] 58389: DECODE: Creating CH7 of 320 x 240 [PROGRESSIVE] [NON-TILED ],target bitrate = 2000 Kbps ...
    [m3video] 58391: DECODE: All CH Create ... DONE !!!
    [m3video] DECLINK:HEAPID:0 USED:20960
    [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 58 (58)
    [m3video] DECLINK:HEAPID:3 USED:21299200
    [m3vpss ] UTILS: DMA: 0 of 1: Allocated PaRAM = 58 (0x49004740)
    [m3video] 58394: DECODE: Create ... DONE !!!
    [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 59 (59)
    [m3video] 58394: IPC_OUT_M3 : Create in progress !!!
    [m3vpss ] UTILS: DMA: 0 of 4: Allocated PaRAM = 59 (0x49004760)
    [m3video] 58395: IPC_OUT_M3 : Create Done !!!
    [m3vpss ] UTILS: DMA: 1 of 4: Allocated PaRAM = 64 (0x49004800)
    [m3vpss ] UTILS: DMA: 2 of 4: Allocated PaRAM = 65 (0x49004820)
    [m3vpss ] UTILS: DMA: 3 of 4: Allocated PaRAM = 66 (0x49004840)
    [m3vpss ] SWMS: instance 0, sc id 5, start win 0 end win 17
    [m3vpss ] AVSYNC:WallTime IGNORE Unexpected Discontinuity.PrevTs[58431]/CurTs[212362]
    [m3vpss ] AVSYNC:WallTime IGNORE Unexpected Discontinuity.PrevTs[212362]/CurTs[366384]
    [m3vpss ] 366384: Assertion @ Line: 2329 in links_m3vpss/swMs/swMsLink_drv.c: pDrvObj->fvidHandle != NULL : failed !!!

  • Hi Badri,

    After correcting the above mistake, now the error message is changed. It failed when creating dma channels for the third swms instance. It seems some resource is not enough.

    [m3vpss ] 49576:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000031]:chId[59] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49576:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000031]:chId[60] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49577:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000031]:chId[61] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49577:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000031]:chId[62] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49577:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000031]:chId[63] Will Default to AVSYNC disabled
    [m3vpss ] 49578: SWMS : ******* Configuring clock 30 secs...
    [m3vpss ] 49578: SWMS1 : Loading Vertical Co-effs (UPSCALE)x ...
    [m3vpss ] 49578: SWMS1 : Loading Horizontal Co-effs (UPSCALE)x ...
    [m3vpss ] 49578: SWMS : Co-effs Loading ... DONE !!!
    [m3vpss ]
    [m3vpss ] *** [SWMS1] Mosaic Parameters ***
    [m3vpss ]
    [m3vpss ] Output FPS: 30
    [m3vpss ]
    [m3vpss ] Win | Ch | Input | Input | Input | Input | Output | Output | Output | Output | Low Cost | SWMS | Data | Blank |
    [m3vpss ] Num | Num | Start X, Y | Width x Height | Pitch Y / C | Memory Type | Start X, Y | Width x Height | Pitch Y / C | Memory Type | ON / OFF | Inst | Format| Frame |
    [m3vpss ] ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
    [m3vpss ] 0 | 0 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 0, 0 | 512 x 360 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 1 | 1 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 512, 0 | 512 x 360 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 2 | 2 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 0, 360 | 512 x 360 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 3 | 3 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 512, 360 | 512 x 360 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 4 | 4 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 1024, 0 | 256 x 180 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 5 | 5 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 1024, 180 | 256 x 180 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 6 | 6 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 1024, 360 | 256 x 180 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 7 | 7 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 1024, 540 | 256 x 180 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ]
    [m3vpss ] SWMS:HEAPID:0 USED:360
    [m3vpss ] SWMS:HEAPID:1 USED:43776
    [m3vpss ] SWMS:HEAPID:4 USED:7372800
    [m3vpss ] 49582: SWMS: Create Done !!!
    [m3vpss ] 49582: SWMS: Create in progress !!!
    [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 62 (62)
    [m3vpss ] UTILS: DMA: 0 of 1: Allocated PaRAM = 62 (0x490047C0)
    [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 63 (63)
    [m3vpss ] UTILS: DMA: 0 of 4: Allocated PaRAM = 63 (0x490047E0)
    [m3vpss ] UTILS: DMA: 1 of 4: Allocated PaRAM = 162 (0x49005440)
    [m3vpss ] UTILS: DMA: 2 of 4: Allocated PaRAM = 163 (0x49005460)
    [m3vpss ] UTILS: DMA: 3 of 4: Allocated PaRAM = 164 (0x49005480)
    [m3vpss ] SWMS: instance 0, sc id 5, start win 0 end win 17
    [m3vpss ] 49630: SWMS2 : Loading Vertical Co-effs (UPSCALE)x ...
    [m3vpss ] 49630: SWMS2 : Loading Horizontal Co-effs (UPSCALE)x ...
    [m3vpss ] 49630: SWMS : Co-effs Loading ... DONE !!!
    [m3vpss ]
    [m3vpss ] 49630:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[0] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49630:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[1] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49631:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[2] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49631:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[3] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49631:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[4] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49631:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[5] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49632:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[6] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49632:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[7] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49632:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[8] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49633:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[9] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49633:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[10] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49633:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[11] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49633:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[12] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49634:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[13] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49634:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[14] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49634:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[15] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49635:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[16] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49635:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[17] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49635:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[18] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49635:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[19] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49636:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[20] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49636:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[21] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49636:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[22] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49637:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[23] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49637:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[24] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49637:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[25] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49637:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[26] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49638:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[27] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49638:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[28] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49638:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[29] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49639:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[30] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49639:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[31] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49639:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[32] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49640:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[33] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49640:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[34] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49640:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[35] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49640:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[36] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49641:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[37] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49641:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[38] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49641:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[39] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49642:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[40] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49642:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[41] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49642:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[42] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49642:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[43] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49643:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[44] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49643:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[45] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49643:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[46] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49644:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[47] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49644:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[48] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49644:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[49] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49645:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[50] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49645:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[51] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49645:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[52] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49645:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[53] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49646:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[54] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49646:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[55] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49646:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[56] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49647:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[57] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49647:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[58] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49647:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[59] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49647:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[60] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49648:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[61] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49648:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[62] Will Default to AVSYNC disabled
    [m3vpss ]
    [m3vpss ] 49648:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000032]:chId[63] Will Default to AVSYNC disabled
    [m3vpss ] 49649: SWMS : ******* Configuring clock 30 secs...
    [m3vpss ] 49649: SWMS2 : Loading Vertical Co-effs (UPSCALE)x ...
    [m3vpss ] 49649: SWMS2 : Loading Horizontal Co-effs (UPSCALE)x ...
    [m3vpss ] 49649: SWMS : Co-effs Loading ... DONE !!!
    [m3vpss ] 0 | 0 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 0, 0 | 512 x 360 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 1 | 1 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 512, 0 | 512 x 360 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 2 | 2 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 0, 360 | 512 x 360 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 3 | 3 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 512, 360 | 512 x 360 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 4 | 4 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 1024, 0 | 256 x 180 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 5 | 5 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 1024, 180 | 256 x 180 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 6 | 6 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 1024, 360 | 256 x 180 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 7 | 7 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 1024, 540 | 256 x 180 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ]
    [m3vpss ] SWMS:HEAPID:0 USED:360
    [m3vpss ] SWMS:HEAPID:1 USED:43776
    [m3vpss ] SWMS:HEAPID:4 USED:7372800
    [m3vpss ] 49653: SWMS: Create Done !!!
    [m3vpss ] 49653: SWMS: Create in progress !!!
    [m3vpss ] 49694: Assertion @ Line: 148 in links_m3vpss/swMs/swMsLink_drv.c: status==FVID2_SOK : failed !!!

  • I set the swMsPrm[i].enableLayoutGridDraw = FALSE, and the error of creating DMA Channel for the third swms instance disappears. But another error happens when calling the function SwMsLink_drvCreateScDrv. The following is the new error message.

    [m3vpss ] 30975: SWMS : ******* Configuring clock 30 secs...
    [m3vpss ] 30975: SWMS2 : Loading Vertical Co-effs (UPSCALE)x ...
    [m3vpss ] 30975: SWMS2 : Loading Horizontal Co-effs (UPSCALE)x ...
    [m3vpss ] 30975: SWMS : Co-effs Loading ... DONE !!!
    [m3vpss ]
    [m3vpss ] *** [SWMS2] Mosaic Parameters ***
    [m3vpss ]
    [m3vpss ] Output FPS: 30
    [m3vpss ]
    [m3vpss ] Win | Ch | Input | Input | Input | Input | Output | Output | Output | Output | Low Cost | SWMS | Data | Blank |
    [m3vpss ] Num | Num | Start X, Y | Width x Height | Pitch Y / C | Memory Type | Start X, Y | Width x Height | Pitch Y / C | Memory Type | ON / OFF | Inst | Format| Frame |
    [m3vpss ] ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
    [m3vpss ] 0 | 0 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 0, 0 | 512 x 360 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 1 | 1 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 512, 0 | 512 x 360 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 2 | 2 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 0, 360 | 512 x 360 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 3 | 3 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 512, 360 | 512 x 360 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 4 | 4 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 1024, 0 | 256 x 180 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 5 | 5 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 1024, 180 | 256 x 180 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 6 | 6 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 1024, 360 | 256 x 180 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 7 | 7 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 1024, 540 | 256 x 180 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ]
    [m3vpss ] SWMS:HEAPID:0 USED:224
    [m3vpss ] SWMS:HEAPID:1 USED:43776
    [m3vpss ] SWMS:HEAPID:4 USED:7372800
    [m3vpss ] 30979: SWMS: Create Done !!!
    [m3vpss ] 30979: SWMS: Create in progress !!!
    [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 61 (61)
    [m3vpss ] UTILS: DMA: 0 of 1: Allocated PaRAM = 61 (0x490047A0)
    [m3vpss ] SWMS: instance 0, sc id 5, start win 0 end win 17
    [m3vpss ] 31024: Assertion @ Line: 2329 in links_m3vpss/swMs/swMsLink_drv.c: pDrvObj->fvidHandle != NULL : failed !!!

  • You are using SC 5 for all the scalers. You have to use additional scaler instances as there is a limit to number of channels that can be opened with a single scaler resource.Pls refer multich_vdec_vdis.c for example of multiple scaler usage in swms. Assign different scaler instances to different swms

  • Thanks for your kindly reply! I find 8 different scalar instances:

     #define SYSTEM_SW_MS_SC_INST_DEIHQ_SC (1)
     #define SYSTEM_SW_MS_SC_INST_DEI_SC (2)
     #define SYSTEM_SW_MS_SC_INST_VIP0_SC (3)
     #define SYSTEM_SW_MS_SC_INST_VIP1_SC (4)
     #define SYSTEM_SW_MS_SC_INST_SC5 (5)
     #define SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI (6)
     #define SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI (7)
    I find that the SYSTEM_SW_MS_SC_INST_SC5 could be set for two swms instance. Could I use the 3-6? 
  • Now the error happens when creating the 4th swms instance. I think there is still lack of some resources.

    [m3vpss ] SWMS:HEAPID:0 USED:224
    [m3vpss ] SWMS:HEAPID:1 USED:15840
    [m3vpss ] SWMS:HEAPID:4 USED:7372800
    [m3vpss ] 48789: SWMS: Create Done !!!
    [m3vpss ] 48789: SWMS: Create in progress !!!
    [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 62 (62)
    [m3vpss ] UTILS: DMA: 0 of 1: Allocated PaRAM = 62 (0x490047C0)
    [m3vpss ] SWMS: instance 0, sc id 3, start win 0 end win 17
    [m3vpss ] 48837: Assertion @ Line: 2329 in links_m3vpss/swMs/swMsLink_drv.c: pDrvObj->fvidHandle != NULL : failed !!!

  • You cannot use VIP0_SC if you use SC5 due to HDVPSS resource conflict.

    Pls use the following scalers

    SYSTEM_SW_MS_SC_INST_SC5

    SYSTEM_SW_MS_SC_INST_VIP1_SC

    SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI

    Make sure you set correct values for start win and endWin for each scaler instance

  • Hi Badri,

    I use

    SYSTEM_SW_MS_SC_INST_SC5, 

    SYSTEM_SW_MS_SC_INST_VIP1_SC, 

    SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI,

    SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI

    as the swms scaler instance. Now the error appears at the function Utils_dmaCreateCh(). The error message shows that the DMA channel Id is upto 63 already. And I find in file \DVRRDK_03.50.00.05\dvr_rdk\mcfw\src_bios6\utils\src\utils_dma_common_cfg.c that the "Total number of DMA Channels supported by the EDMA3 Controller" is 64. So, I wonder if the limitation of number of DMA channels lead to this fail when calling  Utils_dmaCreateCh(). The following is part of the log, and you could see the DMA channel number.

    [m3vpss ] SWMS:HEAPID:0 USED:224
    [m3vpss ] SWMS:HEAPID:1 USED:19360
    [m3vpss ] SWMS:HEAPID:4 USED:7372800
    [m3vpss ] 34907: SWMS: Create Done !!!
    [m3vpss ] 34908: SWMS: Create in progress !!!
    [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 63 (63)
    [m3vpss ] UTILS: DMA: 0 of 1: Allocated PaRAM = 63 (0x490047E0)
    [m3vpss ] SWMS: instance 0, sc id 4, start win 0 end win 17
    [m3vpss ] 34956: SWMS5 : Loading Vertical Co-effs (UPSCALE)x ...
    [m3vpss ] 34956: SWMS5 : Loading Horizontal Co-effs (UPSCALE)x ...
    [m3vpss ] 34956: SWMS : Co-effs Loading ... DONE !!!
    [m3vpss ]
    [m3vpss ] 34956:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000035]:chId[0] Will Default to AVSYNC disabled

    ...

    [m3vpss ] 34974:ERR::linkID:2000003a::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1227::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
    [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000035]:chId[63] Will Default to AVSYNC disabled
    [m3vpss ] 34975: SWMS : ******* Configuring clock 30 secs...
    [m3vpss ] 34975: SWMS5 : Loading Vertical Co-effs (UPSCALE)x ...
    [m3vpss ] 34975: SWMS5 : Loading Horizontal Co-effs (UPSCALE)x ...
    [m3vpss ] 34975: SWMS : Co-effs Loading ... DONE !!!
    [m3vpss ]
    [m3vpss ] *** [SWMS5] Mosaic Parameters ***
    [m3vpss ]
    [m3vpss ] Output FPS: 30
    [m3vpss ]
    [m3vpss ] Win | Ch | Input | Input | Input | Input | Output | Output | Output | Output | Low Cost | SWMS | Data | Blank |
    [m3vpss ] Num | Num | Start X, Y | Width x Height | Pitch Y / C | Memory Type | Start X, Y | Width x Height | Pitch Y / C | Memory Type | ON / OFF | Inst | Format| Frame |
    [m3vpss ] ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
    [m3vpss ] 0 | 0 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 0, 0 | 512 x 360 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 1 | 1 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 512, 0 | 512 x 360 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 2 | 2 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 0, 360 | 512 x 360 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 3 | 3 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 512, 360 | 512 x 360 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 4 | 4 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 1024, 0 | 256 x 180 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 5 | 5 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 1024, 180 | 256 x 180 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 6 | 6 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 1024, 360 | 256 x 180 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ] 7 | 7 | 0, 0 | 320 x 240 | 512 / 512 | NON-TILED | 1024, 540 | 256 x 180 | 2560 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
    [m3vpss ]
    [m3vpss ] SWMS:HEAPID:0 USED:224
    [m3vpss ] SWMS:HEAPID:1 USED:43776
    [m3vpss ] SWMS:HEAPID:4 USED:7372800
    [m3vpss ] 34979: SWMS: Create Done !!!
    [m3vpss ] 34979: SWMS: Create in progress !!!
    [m3vpss ] 35020: Assertion @ Line: 148 in links_m3vpss/swMs/swMsLink_drv.c: status==FVID2_SOK : failed !!!

  • Pls try commenting out call to SwMsLink_drvDmaCreate & SwMsLink_drvDmaDelete. make sure createArgs.enableLayoutGridDraw for swmsPrms. Also disable the code in swms to do outBufCopy.

    To disable outBufCopy modify SwmsLink_drv.c .

    after check for isInputReceived force isInputReceived = TRUE.

  • Sorry, I don't quite understand. There are two variables named copyInBuf2OutBuf and copyOutBuf2OutBuf. Should I set both of them to FALSE? And "isInputReceived" appears many times in the file  SwmsLink_drv.c.Should I set all of them to FALSE?

  • Ok looks like you are using RDK 3.5. You just have to set swmsPrm.outBufModified = TRUE in your usecase file

  • Then what I should do is below:

    1. comment the  SwMsLink_drvDmaCreate & SwMsLink_drvDmaDelete in SwmsLink_drv.c

    2. set swmsPrm.outBufModified = TRUE

    Is that right?

  • Hi Badri,

    It still fails when creating the 6th swms instance. I do some test, and it seems that SYSTEM_SW_MS_SC_INST_DEIHQ_SC, SYSTEM_SW_MS_SC_INST_DEI_SC and  SYSTEM_SW_MS_SC_INST_VIP0_SC could not be used to set swMsPrm.swMsInstId[0]. SYSTEM_SW_MS_SC_INST_SC5 and SYSTEM_SW_MS_SC_INST_VIP1_SC each could be used to set for 2 swms instances. The other two each could be set for 1 swms instance. So, the scalar instances is not enough.

    Then how to  solve problem?

  • Can you change SYSTEM_SW_MS_MAX_WIN_PER_SC to 8 in swmsLink_priv.h and try as you require only max 8 windows

  • Hi Badri,

    I set SYSTEM_SW_MS_MAX_WIN_PER_SC to 8 but nothing changed. And I found that for the first 6 swms instances, all these 7 scalar instances could be set as swmsPrm.swMsInstId[0]. But for the 7th swms instances all of them will get the same error when creating fvidHandle. 

    I just don't know how to resolve this issue. So, I really need your help to carry on.

    Thanks so much!

  • You can use only 3 scalers:

    SYSTEM_SW_MS_SC_INST_SC5

    SYSTEM_SW_MS_SC_INST_VIP1_SC

    SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI

    Make the change to set swms max win as 8 and assign the scalers as 3 SwMs instance ,3 SwMs instance ,2 SwMs instance.

    Pls share the  console logs, your app changes and your changes to swms after doing the mentioned changes.

  • Ok, I will have a try and tell you the result.

  • Hi Badri,

    Sorry to tell you that nothing changes.

    Now I set swms max win to 8 and use the above three scalars as you said. But the same error happens when creating the 7th swms instance. I attach the log file in the end. And if you need I could offer the demo file and usecase file too.

    2818.M3log.txt

  • We have tried with 4 scalers and it has worked.

        SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI

        SYSTEM_SW_MS_SC_INST_VIP1_SC

        SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI

        SYSTEM_SW_MS_SC_INST_VIP0_SC

    NOt sure why you are facing the issue.Anyhow you can use 2 scaler instances with 4 swms inst each.

  • Do you mean I can use two of them and each could be set to 4 swms instances?

  • I tried to use SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI and SYSTEM_SW_MS_SC_INST_VIP1_SC, set each of them to 4 swms instances as scalar instance. It does not work. 

    Do I misunderstand what you mean?

  • For the swms link, I just modified the following 3 places in the swMsLink.h and swMsLink_priv.h:

    #define SW_MS_LINK_OBJ_MAX              (8) //4

    #define SYSTEM_SW_MS_MAX_INST                (8)//4

    #define SYSTEM_SW_MS_MAX_WIN_PER_SC      (8)//18

  • Hi Badri,

    I forget something. In addition to the above three changes, I also comment the SwMsLink_drvDmaCreate() and SwMsLink_drvDmaDelete() functions in swMsLink_drv.c. And set the swms.outputBufModified = TRUE followed your advice.

    In addition, I try to just use 6 swms instances(use 6 input files) to test the whole data flow. The app runs with no error, but the output h264 file has no data. It seems the enc instance does not receive any input data.

    Sorry to trouble you so much, but I  really need your help. Thanks so much!