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.

DVR RDK - suitability of a use case



Hi,

We are designing an application for the DM8168 (using the DVR RDK 3.00).

The documentation seems a little sparse around certain details, and as a consequence, I am posting this here for comments from those who know the system well.  (Likely TI employees)

Below is a use case that I would like to implement:

           +----------------------+
           | External Interface   |
           |       (A8)           |
           +----------v-----------+
     (4 CH)           |
           +----------v-----------+
           |   IPCBits Out (A8)   |
           |                      |
           |   4 CH D1 60fps      |
           |   H.264 1920 x 1080  |
           +----------v-----------+
     (4 CH)           |  IPCBits In (M3)
           +----------v-----------+
           |       DecLink        |
           +----------v-----------+
     (4 CH)           |
                +-----v------+
                |  DUP LINK  |
                |            |
                +---v----v---+
     (4 CH)         |    |   (4 CH)
             +------+    +----------+   
             |                      |   
     +-------v-------+              |  
     |  Scalar (sic) |              |  
     +-------v-------+              |  
             |                      |
     (4 CH)  |                      |
             |                +-----v------+
             |                |    SWMS    |
             |                |            |
             |                +-----v------+
             |              (1 CH)  |  1920 x 1080 60 fps
             |                +-----v------+
             |                |    NSF     |
             |                |            |
             |                +-----v------+
             |                      |
             |   +------------------+      
             |   |      
        +----v---v----+
        |    Merge    |
        +------v------+
               |  (5 CH)
        +------v-------+
        |              |
        | H.264 Encode |             
        |              |
        +------v-------+     
               |  (5 CH)
               |  IPCBits Out (M3)
    +----------v----------------+
    |   IPCBits In (A8)         |
    |                           |
    |   5 CH D1 60fps           |
    |   H.264 1920 x 1080 (Max) |
    +-------------v-------------+
     (5 CH)       |
       +----------v-----------+
       | External Interface   |
       |       (A8)           |
       +----------------------+

Summary:

Given up to 4 feeds of H.264 video bitstreams at D1 at up to 1920 x 1080p60 resolution/frame rates:

I wish to be able to resize any (or all) given streams (hence the scalar)?

(Aside): Why does everything have the incorrect term "scalar" instead of "scaler"?  Documentation, code, everything!   Quite confusing to someone with education in mathematics and engineering.  (just a little rant to get off my chest :)

I also wish to be able to compose a mosaic with a possible variety of layouts and channels from these streams and generate another stream that contains the combination of streams.

I wish the result to be available (at the back end) as 5 channels of H.264 bitstreams.

I have not been able to find a number of things that I would like to check out before committing to this diagram.

a. What formats (and resolutions, etc.,) does the SWMS link handle and output?

b. What is the resolution that I can maintain through this chain - ideally, 1920x1080p60?

c. Can I use the SWMS without "connecting" it to a display?

d. Have I missed any important details regarding necessary links?

e. Would there be any processing issue in this setup (i.e. can the resources available handle the bandwidth required?)

In summary, could some expert check this out and tell me if this is feasible?  What things will I have to cut back?  (Can I get 1920 x 1080p60 through this entire chain?)  Will I have to add some processing blocks for format conversion?  (I added the block between the SWMS and the Merge based on reading some other posts that say that this format will have to be converted from 422I to 420SP).  Can I use the SWMS without the association to a display (there are hints in the help documentation that I may not be able to do this),

I would have researched this information myself instead of asking it here if I had found appropriate documentation.

(And reading 7 layers deep into the code is not really "finding appropriate documentation"!)

These things are not covered in the doxygen files, nor in any other documentation (at least not that I could find)

Thanks,

  • TL;DR: It requires atleast two weeks  of effort for requirement analysis to determine if your usecase is achievable (and the compromises required) and safest approach is to prototype the usecase and measure on actual target

    First answers to your questions:

     

    Stephen Munnings said:
    a. What formats (and resolutions, etc.,) does the SWMS link handle and output?

     SwMs supports 420SP and 422I output format in DVR RDK 3.5 and above releases.

    Stephen Munnings said:
    c. Can I use the SWMS without "connecting" it to a display?

     Yes you can use SwMs without connecting it to  a display.

    Stephen Munnings said:
    d. Have I missed any important details regarding necessary links?

    Your data flow is correct and the usecase you have listed is functionally possible. As in the dvr rdk links can be used to implement your usecase but the question as you have mentioned is performance.

    First I would recommend you migrate to DVR RDK 4.0 because following features are not supported in RDK 3.0

    Stephen Munnings said:
    a. What formats (and resolutions, etc.,) does the SWMS link handle and output?

      - SwMs supports 420SP and 422I format in DVR RDK 3.5 and above.

    Stephen Munnings said:
    c. Can I use the SWMS without "connecting" it to a display?

     - There is a usecase in DVR RDK 4.0 where SwMs is not connected to display and this configuration works fine.

    Second pls have a look at this post:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/254283/890213.aspx#890213 - A multichannel transcode usecase is discussed (Video Conferencing MCU)

    Below posts discuss issues encountered in implementing the usecase:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/255805/904752.aspx#904752

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/254761/892426.aspx#892426

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/259617/908542.aspx#908542

     

    Below attachment is patch on top of RDK 4.0 to implement the usecase:

    http://e2e.ti.com/cfs-file.ashx/__key/communityserver-discussions-components-files/717/4452.mcu.zip

    Third use the patch and info in above posts to implement your complete usecase and check functionality.

    My guess is it would take about a week to get your usecase functionally up at your end.

    Finally regarding performance:

     

    Below are the components which could limit your usecase performance:

    1. Cortex A8 load due to n/w traffic. We have seen cortext A8 load of 56% for 80 mbps network traffic usecase in a real NVR system .What is the max network throughput expected in your application and what is the additional n/w stack layers .Load can be measured using mpstat/top

    2. HDVICP : As you are aware there are 3 HDVICP in 8167/8168 and one HDVICP can do 1 channel 1080P60 encode OR decode. So if you want to do 4 CH decode and 5 channel encode you will have to reduce the fps or resolution . Load can be measured using DVR RDK performance logs

    3. HDVPSS Scaler IP: There are 5 scaler in HDVPSS and each scaler is capable of processing 274 Mega pixels / sec (Theoretical). Assuming 80% practical performance (accounting for DDR stalls and s/w overhead) you can process 220 Mega pixels / sec. This means one scaler can do 1 channel 1080P60 (but cannot do 2 channel 1080P60). If you are going to downscale below D1 resolution there is an option of skipping alternate lines at the input of the scaler (reducing quality ofcourse).

    Note that only 4 scalers can be used simultaneously if scalers are used in m2m mode.You can use 5 scalers if you use one of the scalers in displayWB mode. ie.HDMI output is written back to memory.

    Performance can be measured using dvr rdk performance logs

    4. Cortex M3 load: The loading of cortexM3 scaled with number of frames processed (not resolution) and your usecase is not heavy in terms of cortex M3 loading so this will not be a bottleneck and you can ignore this factor.

    Exact load is printed in dvr rdk performance logs.

     

    5. DDR b/w: Theoretical DDR throughput is 12 GBps with DDR3 @ 796 Mhz.. We have seen max DDR b/w of 6 GBps in real system after which DDR stalls start affecting realtime performance of HDVICP and HDVPSS.

    One channel H264 decode takes approx. 1 GBps ddr b/w .Similarly I channel H264 encoder takes approx. 1 GBps. So you will definitely not be able to do 9 channel enc+dec @ 1080P60. Additional B/w consuming components are HDVPSS M2M components.

    NSF 1080P60 : 435 MBps (1920 x 1080 x 2 x 60 (RD) + 1920 x 1080 x 1.5 x 60 (WR))

    Scaler 1080P60: Input is 420SP and output is 420SP (only some scalers supports 420SP input and 420SP output) : 373 MBps (1920 x 1080 x 1.5 x 60 * 2 (WR/RD))

     

    If you have an XDS560v2 JTAG you can measure the actual DDR b/w on your target including bandwidth per initiator like HDVICP/HDVPSS etc

    So exact measurement is possible once you have usecase implemented and I would suggest that as the preferred approach.

    Finally

    Stephen Munnings said:
    (Aside): Why does everything have the incorrect term "scalar" instead of "scaler"?  Documentation, code, everything!   Quite confusing to someone with education in mathematics and engineering.  (just a little rant to get off my chest :)

     Once upon a time a component that scaled was caller a scaler. Then some "usability" expert (obviously no education in mathematics or engineering required)  opened the HDVPSS document in word and found all occurrences of scaler underlined by red squiggly lines by the spell checker ; decided spell check suggestion of scalar  must be correct and decided that henceforth component that scales shall be called scalar .Personally I am glad the other spell check suggestion of scalper was not adopted.

     

     

     

  • Hi Badri,

    Thanks for your VERY informative reply.  Thanks also for the humor - much appreciated.

    I have looked at the posts referred to, and they look like they could be very useful too.

    I have some followup questions:

    1.  I have modified my usecase in two respects:

          a.  The input is 1080p30 (not 60fps)

          b.  The intermediate and output resolution is 480p30 (I hope)  (720x480 progressive 30 fps)

               +----------------------+
               | External Interface   |
               |       (A8)           |
               +----------v-----------+
         (4 CH)           |
               +----------v-----------+
               |   IPCBits Out (A8)   |
               |                      |
               |   4 CH D1 30fps      |
               |   H.264 1920 x 1080  |
               +----------v-----------+
         (4 CH)           |  IPCBits In (M3)
               +----------v-----------+
               |       DecLink        |
               +----------v-----------+
         (4 CH)           |
                    +-----v------+
                    |  DUP LINK  |
                    |            |
                    +---v----v---+
         (4 CH)         |    |   (4 CH)
                 +------+    +----------+   
                 |                      |   
         +-------v-------+              |  
         |  Scalar (sic) |              |  
         +-------v-------+              |  
                 |                      | 
         (4 CH)  |                      | 
     (720x480p)  |                +-----v------+
       (30fps)   |                |    SWMS    |
                 |                |            |
                 |                +-----v------+
                 |              (1 CH)  |  720 x 480 30 fps
                 |                +-----v------+
                 |                |    NSF     |
                 |                |            |
                 |                +-----v------+
                 |                      |
                 |   +------------------+      
                 |   |      
            +----v---v----+
            |    Merge    |
            +------v------+ 
                   |  (5 CH) 
            +------v-------+
            |              |
            | H.264 Encode |             
            |              |
            +------v-------+     
                   |  (5 CH)
                   |  IPCBits Out (M3)
        +----------v----------------+
        |   IPCBits In (A8)         |
        |                           |
        |   5 CH  30fps             |
        |   H.264 720 x 480         |
        +-------------v-------------+
         (5 CH)       |
           +----------v-----------+
           | External Interface   |
           |       (A8)           |
           +----------------------+
    

    Can I use 480p30, or do I have to use either 480p60 or 480i60?

    Does this appear to overcome the performance issues?  (Both HDVICP and memory bandwidth)

    (We are using DDR3 @ 796.5Mhz in our design)

    Does it raise other (new) issues?

    Yes, we will be creating this usecase and checking the performance - I just wanted to get  a "back of the envelope" initial estimate.

    And your comments show just why I should have done this!  Thanks.

    Can we implement this with RDK 3.0?

    We have already done the work of moving our project forward from RDK 2.x to 3.0 and am not looking forward to repeating the experience. (We had made a lot of kernel changes for our HW, and quite a few code changes for our application that had to be "moved forward" to the new versions.)

    I am hoping that we can accomplish the design within the RDK 3.0 framework.

    If we have to "hook a display" to the swms, then this is still feasible I think: We are not actually using any displays on this board, so connecting mosaic to HDCOMP or HDMI display (which won't actually show up anywhere) should work as long as we can have the Dup queue send video forward to nsf and encoder.

    It is my understanding that with RDK 3.5 or later, I would not need the NSF link to convert the video format, but that it is necessary under RDK 3.0.  Is that correct?

    Thanks again for your invaluable assistance.

  • With the modified usecase (input 1080p30 and output 480p30) DDR and HDVICP load are within reasonable limits and performance should be real time.

    The main remaining issue is scaler IP performance.

    As I mentioned 1 scaler can do 3 channel 1080P30.

    Assume we use SC_5 in scaler link for 3 channel 1080P30.

    We have 1 full resolution channel for encoding and 4 full resolution channel for composition in swms.

    In SwMs you can use 2 scalers (SC1 and SC2 (DEI_SC scaler with DEI in bypass mode) with each processing 2 channels. This will take care of 4 channels of composition.

    We are left with 1  full resolution channel for encoding .You could either skip lines at input of ScalerLink and do 4 channels using SC5 link or you will have to use a DEI link with DEI in bypass mode to handle the additional 1080P30 channel.

    The main problem is in 816x silicon revision 2.0 and above there is a performance issue with DEI in bypass mode which requires a fix in HDVPSS driver.

    This fix is available only in RDK 3.5 and above so you can develop your usecase on RDK 3.0 but to get full performance you will have to eventually migrate to RDK 4.0.

    Answers to other questions:

    SwMs will wotk without connection to display even in RDK 3.0.Ensure swmsCreateParams.enableProcessTieWithDisplay and swmsCreateParams.enableOuputDup are set to FALSE.

    You need NSF to do format conversion after scaler link and swms link before feeding to encoder

     

     

     

  • Hi Badri,

    We have moved forward with this scenario, and have been having quite a bit of success.

    However, we are now in a puzzling situation.

    When we run the application, we take 4 input files (h.264@1920x1080) - actually the same file, read four times.

    We get what appears to be absolutely correct mosaic output, but the scaled and encoded channels seem to get "stuck" - all while the mosiac output seems to be correct.

    In fact, the output from the scaler->encoder only seems to be received from the encoder while in the process of shutting down the system.

    I have attached the usecase file, the console output, and the program output.

    If you would need the application program, I could supply that also.

    I suspect there is an issue with scaler instance conflict, or the like, but am stumped on where to go from here.

    As a more minor issue (I think) - is there some way to dispense with the warning messages we get about the avsync invalid parameter (we are not even trying to use the avsync in this usecase)  If there is something we can set up in the usecase that would prevent those warnings, I would appreciate knowing what it could be.

    Thanks for all your help so far,

    /*  ========================= G4AV_DVR usecase ==============================
               +----------------------+
               | External Interface   |
               |       (A8)           |
               +----------v-----------+
         (4 CH)           |
               +----------v-----------+
               |   IPCBits Out (A8)   |
               |                      |
               |   4 CH D1 30fps      |
               |   H.264 1920 x 1080  |
               +----------v-----------+
         (4 CH)           |  IPCBits In (Video)
               +----------v-----------+
               |       DecLink        |
               +----------v-----------+
         (4 CH)           |   1920x1080p30 (YUV420SP)
                          |   IPC_OUT (Video)
                          |   IPC_IN (VPSS)
                    +-----v------+
                    |    DUP     |
                    |            |
                    +--v------v--+
                       |      |
                +------+      +------+
                |                    |
          +-----v------+         +---v----+
          |    SWMS    |         | Scaler | 
          |            |         |        |
          +-----v------+         +---v----+
                |                    |
                +------+      +------+
                       |      |
                    +--v------v--+
                    |    Merge   |
                    |            |
                    +-----v------+
                          |
                  (1 CH)  |  1920 x 1080 30 fps
                  (4 CH)  |  720 x 480 30 fps
                    +-----v------+
                    |    NSF     |
                    |            |
                    +-----v------+
                          |
                          |  (5 CH) 
                          |   IPC_OUT (VPSS)
                          |   IPC_IN (Video)
                   +------v-------+
                   |              |
                   | H.264 Encode |             
                   |              |
                   +------v-------+     
                          |  (5 CH)
                          |  IPCBits Out (Video)
               +----------v----------------+
               |   IPCBits In (A8)         |
               |                           |
               |   5 CH  30fps             |
               |   4 x H.264 720 x 480     |
               |   1 x H.264 1920 x 1080   |
               +-------------v-------------+
                (5 CH)       |
                  +----------v-----------+
                  | External Interface   |
                  |       (A8)           |
                  +----------------------+
                   
    */            
    
    #include "multich_common.h"
    #include "mcfw/interfaces/link_api/system_tiler.h"
    
    /* =============================================================================
     * Globals
     * =============================================================================
     */
    extern VSCALAR_MODULE_CONTEXT_S gVscalarModuleContext;
    
    #define G4AV_IPCBITS_DEFAULT_WIDTH             		(1920)
    #define G4AV_IPCBITS_DEFAULT_HEIGHT                 (1080)
    #define G4AV_MOSAIC_WIDTH							(1920)
    #define G4AV_MOSAIC_HEIGHT			                (1080)
    
    #define G4AV_MAX_DEC_OUT_FRAMES_PER_CH              (5)
    
    #define G4AV_NUM_CHANNELS_IN                        (4)
    #define G4AV_NUM_CHANNELS_OUT                       (G4AV_NUM_CHANNELS_IN + 1)
    
    #define G4AV_NUM_DUP_QUEUES							(2)
    #define G4AV_DUP_QUEUE_SCALER						(0)
    #define G4AV_DUP_QUEUE_MOSAIC						(1)
    
    #define G4AV_NUM_SWMS_MAX_BUFFERS					(7)
    
    /* Five encode channels, four decode channels */
    static SystemVideo_Ivahd2ChMap_Tbl systemVid_G4AVIvaChMapTbl =
    {
        .isPopulated = 1,
        .ivaMap[0] =
        {
            .EncNumCh  = G4AV_NUM_CHANNELS_IN,
            .EncChList = {0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
    
            .DecNumCh  = (G4AV_NUM_CHANNELS_OUT - 1),
            .DecChList = {0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        },
        .ivaMap[1] =
        {
            .EncNumCh  = 1,
            .EncChList = {4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
    
            .DecNumCh  = 0,
            .DecChList = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        },
        .ivaMap[2] =  {  .EncNumCh  = 0,  .DecNumCh  = 0,  },
    };
    
    typedef struct {
    
        UInt32 			dupId;
    	UInt32			sclrId;
    	UInt32			swmsId;
        UInt32 			nsfId;
        UInt32 			mergeId;
        UInt32			ipcToEncId;
    //    UInt32			avsyncId;				// We do not use this, but configure it to remove warning messages
    } MultiCh_g4av_dvrObj;
    
    MultiCh_g4av_dvrObj gMultiCh_g4av_dvrObj;
    
    
    static Int32 MultiCh_g4av_dvr_dup_create( UInt32 prevLinkId, Uint32 prevLinkQueue, UInt32 outLinks, Uint32 links[] )
    {
    	DupLink_CreateParams        		dupPrm;
    
    	Int32								i;
    	
        dupPrm.inQueParams.prevLinkId			= prevLinkId;
        dupPrm.inQueParams.prevLinkQueId		= prevLinkQueue;
        dupPrm.numOutQue                      	= outLinks;
    	for ( i = 0; i < outLinks; i++ )
    	{
    		dupPrm.outQueParams[ i ].nextLink   = links[ i ];
    	}
        dupPrm.notifyNextLink                 	= TRUE;
    
        System_linkCreate( gMultiCh_g4av_dvrObj.dupId, &dupPrm, sizeof( dupPrm) );
    
        return 0;
    }
    
    static Int32 MultiCh_g4av_dvr_merge_create( UInt32 inLinks, UInt32 prevLinkId[], Uint32 prevLinkQueue[],  Uint32 outLink )
    {
    	MergeLink_CreateParams        		mergePrm;
    	
    
    	Int32								i;
    	
        mergePrm.numInQue                      		= inLinks;
    	for ( i = 0; i < inLinks; i++ )
    	{
    		mergePrm.inQueParams[ i ].prevLinkId	= prevLinkId[ i ];
    		mergePrm.inQueParams[ i ].prevLinkQueId	= prevLinkQueue[ i ];
    	}
    	mergePrm.outQueParams.nextLink   			= outLink;
        mergePrm.notifyNextLink                 	= TRUE;
    
        System_linkCreate( gMultiCh_g4av_dvrObj.mergeId, &mergePrm, sizeof( mergePrm) );
    
        return 0;
    }
    
    static Int32 MultiCh_g4av_dvr_scaler_create( Uint32 prevLinkId, UInt32 prevQueId, Uint32 nextLinkId )
    {
        SclrLink_CreateParams             sclrPrm;
    
        MULTICH_INIT_STRUCT(SclrLink_CreateParams, sclrPrm);
    
        SclrLink_CreateParams_Init( &sclrPrm );
        sclrPrm.inQueParams.prevLinkId                       = prevLinkId;
        sclrPrm.inQueParams.prevLinkQueId                    = prevQueId;
        sclrPrm.outQueParams.nextLink                        = nextLinkId;
        sclrPrm.tilerEnable                                  = gVscalarModuleContext.vScalarConfig.scalarParams.tilerEnable;
        sclrPrm.enableLineSkipSc                             = gVscalarModuleContext.vScalarConfig.scalarParams.enableLineSkipSc;
        sclrPrm.inputFrameRate                               = gVscalarModuleContext.vScalarConfig.scalarParams.inputFrameRate;
        sclrPrm.outputFrameRate                              = gVscalarModuleContext.vScalarConfig.scalarParams.outputFrameRate;
        sclrPrm.scaleMode                                    = gVscalarModuleContext.vScalarConfig.scalarParams.scaleMode;
        sclrPrm.outScaleFactor.ratio.widthRatio.numerator    = gVscalarModuleContext.vScalarConfig.scalarParams.widthNumerator;
        sclrPrm.outScaleFactor.ratio.widthRatio.denominator  = gVscalarModuleContext.vScalarConfig.scalarParams.widthDenominator;
        sclrPrm.outScaleFactor.ratio.heightRatio.numerator   = gVscalarModuleContext.vScalarConfig.scalarParams.heightNumerator;
        sclrPrm.outScaleFactor.ratio.heightRatio.denominator = gVscalarModuleContext.vScalarConfig.scalarParams.heightDenominator;
    
        System_linkCreate( gMultiCh_g4av_dvrObj.sclrId, &sclrPrm, sizeof(sclrPrm) );
    
        return 0;
    }
    
    static Int32 MultiCh_g4av_dvr_nsf_create( Uint32 prevLinkId, UInt32 prevQueId, Uint32 nextLinkId )
    {
        NsfLink_CreateParams              nsfPrm;
    
        MULTICH_INIT_STRUCT(NsfLink_CreateParams, nsfPrm);
    
        NsfLink_CreateParams_Init(&nsfPrm);
        nsfPrm.bypassNsf                 = gVscalarModuleContext.vScalarConfig.nsfParams.bypassNsf;
        nsfPrm.inputFrameRate            = gVscalarModuleContext.vScalarConfig.nsfParams.inputFrameRate;
        nsfPrm.outputFrameRate           = gVscalarModuleContext.vScalarConfig.nsfParams.outputFrameRate;
        nsfPrm.tilerEnable               = gVscalarModuleContext.vScalarConfig.nsfParams.tilerEnable;
        nsfPrm.inQueParams.prevLinkId    = prevLinkId;
        nsfPrm.inQueParams.prevLinkQueId = prevQueId;
        nsfPrm.numOutQue                 = 1;
        nsfPrm.outQueParams[0].nextLink  = nextLinkId;
        nsfPrm.numBufsPerCh              = gVscalarModuleContext.vScalarConfig.nsfParams.numBufsPerCh;
    
        System_linkCreate( gMultiCh_g4av_dvrObj.nsfId, &nsfPrm, sizeof(nsfPrm) );
    
        return 0;
    }
    
    static Int32 MultiCh_g4av_dvr_swms_create( Uint32 prevLinkId, UInt32 prevQueId, Uint32 nextLinkId )
    {
        SwMsLink_CreateParams      		swMsPrm;
    
        MULTICH_INIT_STRUCT( SwMsLink_CreateParams ,swMsPrm );
    
    //    swMsPrm.numSwMsInst          = 2;
        swMsPrm.numSwMsInst          = 1;
    
        swMsPrm.swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_VIP1_SC;
    //    swMsPrm.swMsInstId[1]        = SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI;
    
        swMsPrm.swMsInstStartWin[0]  = 0;
    
        swMsPrm.inQueParams.prevLinkId     = prevLinkId;
        swMsPrm.inQueParams.prevLinkQueId  = prevQueId;
    	swMsPrm.outQueParams.nextLink      = nextLinkId;
    	
    	/* Setup the Mosaic windows parameters */
    	swMsPrm.layoutPrm.onlyCh2WinMapChanged = FALSE;
    	swMsPrm.layoutPrm.numWin = G4AV_NUM_CHANNELS_IN;
    
    	swMsPrm.layoutPrm.winInfo[ 0 ].channelNum = 0;
    	swMsPrm.layoutPrm.winInfo[ 0 ].startX = 0;
    	swMsPrm.layoutPrm.winInfo[ 0 ].startY = 0;
    	swMsPrm.layoutPrm.winInfo[ 0 ].width = G4AV_MOSAIC_WIDTH >> 1;
    	swMsPrm.layoutPrm.winInfo[ 0 ].height = G4AV_MOSAIC_HEIGHT >> 1;
    	swMsPrm.layoutPrm.winInfo[ 0 ].bypass = TRUE;
    	swMsPrm.layoutPrm.winInfo[ 1 ].channelNum = 1;
    	swMsPrm.layoutPrm.winInfo[ 1 ].startX = G4AV_MOSAIC_WIDTH >> 1;
    	swMsPrm.layoutPrm.winInfo[ 1 ].startY = 0;
    	swMsPrm.layoutPrm.winInfo[ 1 ].width = G4AV_MOSAIC_WIDTH >> 1;
    	swMsPrm.layoutPrm.winInfo[ 1 ].height = G4AV_MOSAIC_HEIGHT >> 1;
    	swMsPrm.layoutPrm.winInfo[ 1 ].bypass = TRUE;
    	swMsPrm.layoutPrm.winInfo[ 2 ].channelNum = 2;
    	swMsPrm.layoutPrm.winInfo[ 2 ].startX = 0;
    	swMsPrm.layoutPrm.winInfo[ 2 ].startY = G4AV_MOSAIC_HEIGHT >> 1;
    	swMsPrm.layoutPrm.winInfo[ 2 ].width = G4AV_MOSAIC_WIDTH >> 1;
    	swMsPrm.layoutPrm.winInfo[ 2 ].height = G4AV_MOSAIC_HEIGHT >> 1;
    	swMsPrm.layoutPrm.winInfo[ 2 ].bypass = TRUE;
    	swMsPrm.layoutPrm.winInfo[ 3 ].channelNum = 3;
    	swMsPrm.layoutPrm.winInfo[ 3 ].startX = G4AV_MOSAIC_WIDTH >> 1;
    	swMsPrm.layoutPrm.winInfo[ 3 ].startY = G4AV_MOSAIC_HEIGHT >> 1;
    	swMsPrm.layoutPrm.winInfo[ 3 ].width = G4AV_MOSAIC_WIDTH >> 1;
    	swMsPrm.layoutPrm.winInfo[ 3 ].height = G4AV_MOSAIC_HEIGHT >> 1;
    	swMsPrm.layoutPrm.winInfo[ 3 ].bypass = TRUE;
        
    	swMsPrm.layoutPrm.outputFPS = 30;
    
        swMsPrm.maxOutRes              		= VSYS_STD_1080P_60;
        swMsPrm.initOutRes             		= VSYS_STD_1080P_30;
    
        /* low cost line skip mode of scaling can be used, when tiler is off */
        swMsPrm.lineSkipMode           		= TRUE;
    
    //    swMsPrm.enableLayoutGridDraw 		= FALSE;
        swMsPrm.enableLayoutGridDraw 		= TRUE;
    
    
        /* Disable inQue drop at SwMs as input may arrive very fast in VDEC->VDIS use case */
        swMsPrm.maxInputQueLen             	= SYSTEM_SW_MS_INVALID_INPUT_QUE_LEN;
        swMsPrm.numOutBuf                 	= G4AV_NUM_SWMS_MAX_BUFFERS;
    
    	/** This combination did not work - although it may be something else */
    //    swMsPrm.enableOuputDup         		= TRUE;
    //    swMsPrm.enableProcessTieWithDisplay = TRUE;
    
        swMsPrm.enableOuputDup         		= FALSE;
        swMsPrm.enableProcessTieWithDisplay = FALSE;
    
        System_linkCreate( gMultiCh_g4av_dvrObj.swmsId , &swMsPrm, sizeof(swMsPrm) );
    
        return 0;
    }
    
    
    
    Void MultiCh_createG4AV_DVR()
    {
    	Int32								i;
    	
        /* Decode */
    	/** This is the input queue (output from the decoder) to be passed to the next stage as a parameter **/
        System_LinkInQueParams            	vdecOutQue;
    
        /* Duplicate */
        Uint32					           	outputIds[ G4AV_NUM_DUP_QUEUES ];
    
        /* Merge */
        Uint32					           	inputIds[ G4AV_NUM_DUP_QUEUES ];
        Uint32					           	inputQueIds[ G4AV_NUM_DUP_QUEUES ];
    
        /* Encode */
        System_LinkInQueParams            	vencInQue;
    
        /* Misc */
        Bool                              	tilerEnable;
    
        MultiCh_detectBoard();
    
        System_linkControl(
            SYSTEM_LINK_ID_M3VPSS,
            SYSTEM_M3VPSS_CMD_RESET_VIDEO_DEVICES,
            NULL,
            0,
            TRUE
            );
    
        System_linkControl(
            SYSTEM_LINK_ID_M3VIDEO,
            SYSTEM_COMMON_CMD_SET_CH2IVAHD_MAP_TBL,
            &systemVid_G4AVIvaChMapTbl,
            sizeof(SystemVideo_Ivahd2ChMap_Tbl),
            TRUE
        );
    
        /* Free memory that would be used for tiler */
        tilerEnable  = FALSE;
        SystemTiler_disableAllocator();
        
    	/** Set some ids for links **/
    	gMultiCh_g4av_dvrObj.dupId = SYSTEM_VPSS_LINK_ID_DUP_0;
    //	gMultiCh_g4av_dvrObj.sclrId = SYSTEM_LINK_ID_SCLR_INST_0;
    	gMultiCh_g4av_dvrObj.sclrId = SYSTEM_LINK_ID_SCLR_INST_1;
    //	gMultiCh_g4av_dvrObj.sclrId =  VPS_M2M_INST_SEC0_SC5_WB2;
    //	gMultiCh_g4av_dvrObj.sclrId = SYSTEM_LINK_ID_MP_SCLR_INST_0;   // Does not work as regular scaler!!!
    	gMultiCh_g4av_dvrObj.swmsId = SYSTEM_LINK_ID_SW_MS_MULTI_INST_0;
    	gMultiCh_g4av_dvrObj.mergeId = SYSTEM_VPSS_LINK_ID_MERGE_0;
    	gMultiCh_g4av_dvrObj.nsfId = SYSTEM_LINK_ID_NSF_0;
    	gMultiCh_g4av_dvrObj.ipcToEncId = SYSTEM_VPSS_LINK_ID_IPC_OUT_M3_0;
    //	gMultiCh_g4av_dvrObj.avsyncId = SYSTEM_LINK_ID_AVSYNC;
    	
    
        /* Setup decoder */
        System_LinkInQueParams_Init( &vdecOutQue );
        Vdec_create( &vdecOutQue, gMultiCh_g4av_dvrObj.dupId, tilerEnable, G4AV_MAX_DEC_OUT_FRAMES_PER_CH);		// This when going to the dup link
    //    printf ( "g4av_dvr Decoder created\n" );
    
    
        /* Setup Duplicator */
    	outputIds[ G4AV_DUP_QUEUE_MOSAIC ] = gMultiCh_g4av_dvrObj.swmsId;	// Output to mosaic stage
    	outputIds[ G4AV_DUP_QUEUE_SCALER ] = gMultiCh_g4av_dvrObj.sclrId;	// Also output to scaler stage
    	MultiCh_g4av_dvr_dup_create( gVdecModuleContext.ipcM3InId, 0, G4AV_NUM_DUP_QUEUES, outputIds );
    //    printf ( "g4av_dvr Dup created\n" );
    
        /* Setup scaler */
    	MultiCh_g4av_dvr_scaler_create( gMultiCh_g4av_dvrObj.dupId, G4AV_DUP_QUEUE_SCALER, gMultiCh_g4av_dvrObj.mergeId );
    //    printf ( "g4av_dvr Scaler created\n" );
    
        /* Setup Mosaic */
    	MultiCh_g4av_dvr_swms_create( gMultiCh_g4av_dvrObj.dupId, G4AV_DUP_QUEUE_MOSAIC, gMultiCh_g4av_dvrObj.mergeId );
    //    printf ( "g4av_dvr Mosaic created\n" );
    
        /* Setup Merge */
    	inputIds[ G4AV_DUP_QUEUE_MOSAIC ] = gMultiCh_g4av_dvrObj.swmsId;
    	inputQueIds[ G4AV_DUP_QUEUE_MOSAIC ] = 0;
    	inputIds[ G4AV_DUP_QUEUE_SCALER ] = gMultiCh_g4av_dvrObj.sclrId;
    	inputQueIds[ G4AV_DUP_QUEUE_SCALER ] = 0;
    
    	MultiCh_g4av_dvr_merge_create( G4AV_NUM_DUP_QUEUES, inputIds, inputQueIds, gMultiCh_g4av_dvrObj.nsfId );
    //    printf ( "g4av_dvr Merge created\n" );
    
        /* Setup NSF - For video format conversion only */
    	MultiCh_g4av_dvr_nsf_create( gMultiCh_g4av_dvrObj.mergeId, 0, gMultiCh_g4av_dvrObj.ipcToEncId );
    //    printf ( "g4av_dvr NSF created\n" );
    
        /* Setup encode links */
        System_LinkInQueParams_Init( &vencInQue );
        vencInQue.prevLinkId    = gMultiCh_g4av_dvrObj.nsfId;
        vencInQue.prevLinkQueId = 0;
        Venc_create(&vencInQue);
    //    printf ( "g4av_dvr Encoder created\n" );
    
    	/** Do some housekeeping so that normal Vscaler calls will work to start, stop, and delete both the scaler and the NSF */
    	/** This is because we have bypassed the normal initialization since we are not linking the scaler directly to the NSF
    	 *  and have a dup and merge in the path as well - so that we can get the mosaic video channel also get the video
    	 **/
        gVscalarModuleContext.sclrId = gMultiCh_g4av_dvrObj.sclrId;
        gVscalarModuleContext.nsfId  = gMultiCh_g4av_dvrObj.nsfId;
    
        MultiCh_memPrintHeapStatus();
        printf ( "g4av_dvr Use Case Create complete\n" );
        
       	/** Test to see if it does anything....   it does!! */
    	System_linkStart( gMultiCh_g4av_dvrObj.sclrId );
    	System_linkStart( gMultiCh_g4av_dvrObj.nsfId );
    	System_linkStart( gMultiCh_g4av_dvrObj.swmsId );
    
        printf ( "g4av_dvr started NSF and Mosaic\n" );
    }
    
    Void MultiCh_deleteG4AV_DVR()
    {
        /* Decode */
        Vdec_delete();
    
        /* Duplicator */
    	System_linkDelete( gMultiCh_g4av_dvrObj.dupId );
    
        /* Delete the scaler (and the NSF) */
        Vscalar_delete();
    
        /* Mosaic */
    	System_linkStop( gMultiCh_g4av_dvrObj.swmsId );				// Seeing if this helps
    	System_linkDelete( gMultiCh_g4av_dvrObj.swmsId );
    
        /* Merge */
    	System_linkDelete( gMultiCh_g4av_dvrObj.mergeId );
    
        /* Encode */
        Venc_delete();
    
        /* Print the HWI, SWI and all tasks load */
        /* Reset the accumulated timer ticks */
        MultiCh_prfLoadCalcEnable(FALSE, TRUE, FALSE);
    
        SystemTiler_enableAllocator();
    }
    
    

     0: SYSTEM: System Common Init in progress !!!
     0: SYSTEM: IPC init in progress !!!
     13: SYSTEM: Opening MsgQ Heap [IPC_MSGQ_MSG_HEAP] ...
     15: SYSTEM: Creating MsgQ [HOST_MSGQ] ...
     16: SYSTEM: Creating MsgQ [HOST_ACK_MSGQ] ...
     17: SYSTEM: Opening MsgQ [DSP_MSGQ] ...
     18: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...
     18: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...
     19: SYSTEM: Notify register to [DSP] line 0, event 15 ... 
     21: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... 
     21: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... 
     21: SYSTEM: IPC init DONE !!!
     23: SYSTEM: Creating ListMP [HOST_IPC_OUT_24] in region 0 ...
     25: SYSTEM: Creating ListMP [HOST_IPC_IN_24] in region 0 ...
     27: SYSTEM: ListElem Shared Addr = 0x40a16300
     28: SYSTEM: Creating ListMP [HOST_IPC_OUT_25] in region 0 ...
     30: SYSTEM: Creating ListMP [HOST_IPC_IN_25] in region 0 ...
     32: SYSTEM: ListElem Shared Addr = 0x40a33e00
     34: SYSTEM: Creating ListMP [HOST_IPC_OUT_19] in region 0 ...
     36: SYSTEM: Creating ListMP [HOST_IPC_IN_19] in region 0 ...
     37: SYSTEM: ListElem Shared Addr = 0x40a71080
     38: SYSTEM: Creating ListMP [HOST_IPC_OUT_20] in region 0 ...
     41: SYSTEM: Creating ListMP [HOST_IPC_IN_20] in region 0 ...
     43: SYSTEM: ListElem Shared Addr = 0x40a90a80
     44: SYSTEM: Creating ListMP [HOST_IPC_OUT_21] in region 0 ...
     46: SYSTEM: Creating ListMP [HOST_IPC_IN_21] in region 0 ...
     48: SYSTEM: ListElem Shared Addr = 0x40aaff00
     65: SYSTEM: System Common Init Done !!!
     *** 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
     0: Opening file [/opt/g4av/data/1080p.h264] of 1920 x 1080  Codec: h264... 
     0: WARNING: Either the displaydelay was not set or Default value was set as 0
     0: WARNING: Either the Num of output buffers not set or Default value was set as zero
     Input file [/opt/g4av/data/1080p.h264] opened successfully !!!
     Output file [/opt/g4av/data/1080p.hdr] opened successfully !!!
     1: Opening file [/opt/g4av/data/1080p.h264] of 1920 x 1080  Codec: h264... 
     1: WARNING: Either the displaydelay was not set or Default value was set as 0
     1: WARNING: Either the Num of output buffers not set or Default value was set as zero
     Input file [/opt/g4av/data/1080p.h264] opened successfully !!!
     Output file [/opt/g4av/data/1080p.hdr] opened successfully !!!
     2: Opening file [/opt/g4av/data/1080p.h264] of 1920 x 1080  Codec: h264... 
     2: WARNING: Either the displaydelay was not set or Default value was set as 0
     2: WARNING: Either the Num of output buffers not set or Default value was set as zero
     Input file [/opt/g4av/data/1080p.h264] opened successfully !!!
     Output file [/opt/g4av/data/1080p.hdr] opened successfully !!!
     3: Opening file [/opt/g4av/data/1080p.h264] of 1920 x 1080  Codec: h264... 
     3: WARNING: Either the displaydelay was not set or Default value was set as 0
     3: WARNING: Either the Num of output buffers not set or Default value was set as zero
     Input file [/opt/g4av/data/1080p.h264] opened successfully !!!
     Output file [/opt/g4av/data/1080p.hdr] opened successfully !!!
    fsState.config.numRes : 1 fsState.config.numChnlInRes[0] : 4
     File open ... DONE !!!
     
     [g4av_pool.c] Calling InitializePool [i=0, bufCount=0, bufSize=0]
     [g4av_pool.c] Initialized pool, queue [elementCount=0, count=0]
     [g4av_pool.c] Calling InitializePool [i=1, bufCount=5, bufSize=196608]
     [g4av_pool.c] Initialized pool, queue [elementCount=5, count=5]
     [g4av_pool.c] Calling InitializePool [i=2, bufCount=5, bufSize=196608]
     [g4av_pool.c] Initialized pool, queue [elementCount=5, count=5]
     [g4av_pool.c] Calling InitializePool [i=3, bufCount=0, bufSize=0]
     [g4av_pool.c] Initialized pool, queue [elementCount=0, count=0]
     [g4av_pool.c] Calling InitializePool [i=4, bufCount=0, bufSize=0]
     [g4av_pool.c] Initialized pool, queue [elementCount=0, count=0]
     [g4be.c] Registered VENC callback
     [g4be.c] InputThread entering task loop
     [g4be.c] OutputThread entering task loop
     [g4be.c] G4BE_Create completed
     [file_sink.c] Registered G4BE callback
     13796: MCFW  : CPU Revision [ES2.0] !!! 
     13796: MCFW  : Detected [(null)] Board !!! 
     13796: MCFW  : Base Board Revision [DVR] !!! 
     13796: MCFW  : Daughter Card Revision [DVR] !!! 
    
     [host]  13797: IPC_BITS_OUT   : Create in progress !!!
    ###Bit buff of size from the SR # 1 : 12441600
    
     [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:0,Size:0xBDD800
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x417ab080 To Phy:0x90000080###Bit buff of size from the SR # 1 : 12441600
    
     [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:1,Size:0xBDD800
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x42388880 To Phy:0x90bdd880###Bit buff of size from the SR # 1 : 12441600
    
     [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:2,Size:0xBDD800
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x42f66080 To Phy:0x917bb080###Bit buff of size from the SR # 1 : 12441600
    
     [host] IPC_BITSOUT:BitBuffer Alloc.PoolID:3,Size:0xBDD800
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x43b43880 To Phy:0x92398880
     [host]  13798: IPC_BITS_OUT   : Create Done !!!
     [file_sink.c] Opened file '/data/out/VID_CH11.h264' for writing channel 11
     [file_sink.c] Opened file '/data/out/VID_CH12.h264' for writing channel 12
     [file_sink.c] Opened file '/data/out/VID_CH13.h264' for writing channel 13
     [file_sink.c] Opened file '/data/out/VID_CH14.h264' for writing channel 14
     [file_sink.c] Opened file '/data/out/VID_CH15.h264' for writing channel 15
    
     [host] IpcBitsInLink_tskMain:Entered
     [host]  15513: IPC_BITS_IN   : Create in progress !!!
    
     [host]  15513: IPC_BITS_IN   : ListMPOpen start !!!
    
     [host]  15513: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_24] ...
     15516: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_24] ...
    
     [host]  15517: IPC_BITS_IN   : ListMPOpen done !!!
    
     [host]  15519: IPC_BITS_IN   : System_linkGetInfo done !!!
    
     [host]  15519: IPC_BITS_IN   : Create Done !!!
    g4av_dvr Use Case Create complete
    g4av_dvr started NSF and Mosaic
    GOT START OF FILE SOURCE!
    --------------- CHANNEL DETAILS-------------
    Enc Channels => Primary 5, Secondary 0
    Dec Channels => 4
    -------------------------------------------
    
     [host] MCFW_IPCBITS:G4AVFileSource_SendFxn:INFO: periodic print..
     [host] MCFW_IPCBITS:G4AVFileSource_SendFxn:INFO: periodic print..
     [host] MCFW_IPCBITS:G4AVFileSource_SendFxn:INFO: periodic print..
     [host] MCFW_IPCBITS:G4AVFileSource_SendFxn:INFO: periodic print..
     [host]  CH0: Reached the end of file, exiting !!!
     
     ...  We did a ctrl-c to shut down the application here ...
     
     ^C[defaultSignalHandler] Got signal num: 2
    [defaultSignalHandler] Current PID: 1197
    [defaultSignalHandler] Stopped source plugin
    [defaultSignalHandler] Stopped decoder
    [defaultSignalHandler] Stopped Mosaic composer
    [defaultSignalHandler] Stopped scaler
    [defaultSignalHandler] Stopped encoder
    [defaultSignalHandler] Stopped sink plugin
    [defaultSignalHandler] Deleted source plugin
    
     [host]  73957: IPC_BITS_OUT   : Delete in progress !!!
    
     [host] 
    73958: IPCBITSOUT:Link[30000018]:
     [host] RECV:5509	FREE:5485,DROPPED:0,AVGLATENCY:7017
     [host] IPC_BITSOUT:BitBuffer Free.PoolID:0,Size:0xBDD800
     [host] IPC_BITSOUT:BitBuffer Free.PoolID:1,Size:0xBDD800
     [host] IPC_BITSOUT:BitBuffer Free.PoolID:2,Size:0xBDD800
     [host] IPC_BITSOUT:BitBuffer Free.PoolID:3,Size:0xBDD800
     [host]  74006: IPC_BITS_OUT   : Delete Done !!!
    
     [host] 74019: IPCBITSIN:Link[3000001a]:
     [host] RECV:1064	FREE:1029,DROPPED:0,AVGLATENCY:0,AVG_APP_CB_TIME:0
     [host]  74019: IPC_BITS_IN   : Delete in progress !!!
    
     [host]  74020: IPC_BITS_IN   : Delete Done !!!
    [defaultSignalHandler] Deleted system
    
     
     ...  Then we used kill to drop a -SIGSEGV on the application here ...
     
    
    Error: signal 11:
    ../bin/g4av_dvr.out[0xa124]
    /lib/libc.so.6(__default_sa_restorer_v2+0x0)[0x4063d610]
    /lib/libpthread.so.0(__nanosleep+0x44)[0x4013c704]
    /lib/libdvr_rdk_osa.so(OSA_waitMsecs+0x44)[0x4004ad44]
    /opt/g4av/src_sink/libfile_sink.so(destroy+0x2c)[0x4011154c]
    ../bin/g4av_dvr.out[0xa060]
    /lib/libc.so.6(__default_sa_restorer_v2+0x0)[0x4063d610]
    /lib/libc.so.6(nanosleep+0x44)[0x406a2ea4]
    /lib/libc.so.6(usleep+0x44)[0x406ceb90]
    ../bin/g4av_dvr.out[0x9ed0]
    [defaultSignalHandler] Got signal num: 11
    [defaultSignalHandler] Current PID: 1197
    [defaultSignalHandler] Stopped source plugin
    [defaultSignalHandler] Stopped decoder
    [defaultSignalHandler] Stopped Mosaic composer
    [defaultSignalHandler] Stopped scaler
    
     [host] IpcBitsInLink_tskMain:Entered[defaultSignalHandler] Stopped encoder
    [defaultSignalHandler] Stopped sink plugin
    
     ...  Then we used kill to drop a -SIGKILL on the application here ...
     
    
    Killed
    root@g4_display:/opt/g4av/conf# ls -l /data/out/
    -rw-r--r--    1 root     root        15751 Jun 21  2013 VID_CH11.h264
    -rw-r--r--    1 root     root        15751 Jun 21  2013 VID_CH12.h264
    -rw-r--r--    1 root     root         9343 Jun 21  2013 VID_CH13.h264
    -rw-r--r--    1 root     root         9343 Jun 21  2013 VID_CH14.h264
    -rw-r--r--    1 root     root      8466168 Jun 21  2013 VID_CH15.h264
    

     [m3video]  1976046: IPC_BITS_IN   : Create in progress !!!
     [m3video]  1976046: SYSTEM: Opening ListMP [HOST_IPC_OUT_24] ...
     [m3video]  1976047: SYSTEM: Opening ListMP [HOST_IPC_IN_24] ...
     [m3video]  1976049: IPC_BITS_IN   : Create Done !!!
     [m3video]  1976050: DECODE: Create in progress ... !!!
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8933376
     [m3video]  1976176: DECODE: Creating CH0 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 2000 Kbps ...
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8933376
     [m3video]  1976300: DECODE: Creating CH1 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 2000 Kbps ...
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8933376
     [m3video]  1976425: DECODE: Creating CH2 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 2000 Kbps ...
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8933376
     [m3video]  1976550: DECODE: Creating CH3 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 2000 Kbps ...
     [m3video]  1976552: DECODE: All CH Create ... DONE !!!
     [m3vpss ]  1976556: IPC_IN_M3   : Create in progress !!!
     [m3vpss ]  1976557: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_0] ...
     [m3video] DECLINK:HEAPID:0     USED:9592
     [m3vpss ]  1976557: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_0] ...
     [m3video] DECLINK:HEAPID:3     USED:107986944
     [m3vpss ]  1976559: IPC_IN_M3   : Create Done !!!
     [m3video]  1976555: DECODE: Create ... DONE !!!
     [m3vpss ]  1976562: DUP   : Create Done !!!
     [m3video]  1976555: IPC_OUT_M3   : Create in progress !!!
     [m3vpss ]  1976562: SCLR: Create in progress !!!
     [m3video]  1976556: IPC_OUT_M3   : Create Done !!!
     [m3vpss ]  1976947: SCLR    : Loading Up-scaling Co-effs ...
     [m3vpss ]  1976948: SCLR    : Co-effs Loading ... DONE !!!
     [m3vpss ] SCLR:HEAPID:0        USED:64
     [m3vpss ] SCLR:HEAPID:1        USED:13248
     [m3vpss ] SCLR:HEAPID:4        USED:82944000
     [m3vpss ]  1976948: SCLR: Create Done !!!
     [m3vpss ]  1976948: SWMS: Create in progress !!!
     [m3vpss ]  UTILS: DMA: Allocated CH (TCC) = 58 (58)
     [m3vpss ]  UTILS: DMA: Allocated CH (TCC) = 59 (59)
     [m3vpss ] SWMS: instance 0, sc id 4, start win 0 end win 17
     [m3vpss ]  1977090: SWMS0    : Loading Vertical Co-effs (UPSCALE)x ...
     [m3vpss ]  1977090: SWMS0    : Loading Horizontal Co-effs (UPSCALE)x ...
     [m3vpss ]  1977090: SWMS    : Co-effs Loading ... DONE !!!
     [m3vpss ]
     [m3vpss ] 1977090:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[0] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977091:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[1] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977091:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[2] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977091:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[3] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977091:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[4] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977092:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[5] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977092:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[6] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977092:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[7] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977092:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[8] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977093:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video]  1977404: IPC_IN_M3   : Create in progress !!!
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[9] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977093:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video]  1977405: SYSTEM: Opening ListMP [VPSS-M3_IPC_OUT_0] ...
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[10] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977093:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video]  1977405: SYSTEM: Opening ListMP [VPSS-M3_IPC_IN_0] ...
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[11] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977094:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video]  1977407: IPC_IN_M3   : Create Done !!!
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[12] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977094:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video]  1977407: ENCODE: Create in progress ... !!!
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[13] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977094:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[14] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977094:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[15] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977095:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[16] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977095:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[17] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977095:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video]  1977576: ENCODE: Creating CH0 of 1920 x 1080, pitch = (1920, 1920) [PROGRESSIVE] [NON-TILED  ], bitrate = 2000 Kbps ...
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[18] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977095:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[19] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977096:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[20] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977096:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[21] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977096:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video] ENCLINK_H264:HEAPID:3        USED:7176192
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[22] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977096:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video]  1977610: ENCODE: Creating CH1 of 1920 x 1080, pitch = (1920, 1920) [PROGRESSIVE] [NON-TILED  ], bitrate = 2000 Kbps ...
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[23] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977097:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[24] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977097:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[25] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977097:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[26] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977097:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video] ENCLINK_H264:HEAPID:3        USED:98304
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[27] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977098:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video]  1977647: ENCODE: Creating CH2 of 1920 x 1080, pitch = (1920, 1920) [PROGRESSIVE] [NON-TILED  ], bitrate = 2000 Kbps ...
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[28] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977098:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[29] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977098:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[30] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977099:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[31] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977099:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video] ENCLINK_H264:HEAPID:3        USED:98304
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[32] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977099:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video]  1977684: ENCODE: Creating CH3 of 1920 x 1080, pitch = (1920, 1920) [PROGRESSIVE] [NON-TILED  ], bitrate = 2000 Kbps ...
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[33] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977099:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[34] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977100:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[35] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977100:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[36] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977100:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video] ENCLINK_H264:HEAPID:3        USED:98304
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[37] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977100:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video]  1977721: ENCODE: Creating CH4 of 1920 x 1080, pitch = (1920, 1920) [PROGRESSIVE] [NON-TILED  ], bitrate = 2000 Kbps ...
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[38] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977101:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[39] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977101:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[40] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977101:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[41] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977101:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video] ENCLINK_H264:HEAPID:3        USED:98304
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[42] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977102:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video]  1977757: ENCODE: All CH Create ... DONE !!!
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[43] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977102:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[44] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977102:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[45] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977103:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video] ENCLINK:HEAPID:0     USED:59680
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[46] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977103:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video] ENCLINK:HEAPID:2     USED:36288000
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[47] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977103:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video] ENCLINK:HEAPID:3     USED:7569408
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[48] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977103:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video]  1977759: ENCODE: Create ... DONE !!!
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[49] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977104:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video]  1977759: IPC_BITS_OUT   : Create in progress !!!
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[50] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977104:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[51] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977104:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[52] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977104:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3video]  1977761: IPC_BITS_OUT   : Create Done !!!
     [m3vpss ] AVSYNC:WARNING!!!.AVSYNC config invalid for linkID[20000030]:chId[53] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977105:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[54] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977105:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[55] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977105:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[56] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977105:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[57] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977106:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::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[20000030]:chId[58] Will Default to AVSYNC disabled
     [m3vpss ]
     [m3vpss ] 1977106:ERR::linkID:20000036::channelID:-1::errorCode:-3::FileName:links_m3vpss/avsync/avsync_m3vpss.c::linuNum:1223::errorCondition:((avsync_map_linkid2displayid(pObj,cp->syncLinkID) != AVSYNC_INVALID_DISPLAY_ID) || (cp->displayID != AVSYNC_INVALID_DISPLAY_ID))
     [m3vpss ]
     [m3vpss ] SWMS:HEAPID:0        USED:728
     [m3vpss ]  1977769: SWMS: Start in Progress !!!
     [m3vpss ]  1977769: SWMS: Start Done !!!
    
     ..... application was running here .....
      the following was output as a result of shutting down the app
    
     [m3video]  2036198: DECODE: Stop in progress !!!
     [m3vpss ]  2036199: SCLR    : Stop in progress, 0 requests pending !!!
     [m3video]  2036198: DECODE: Stop Done !!!
     [m3vpss ]  2036199: SCLR    : Stop Done !!!
     [m3vpss ]  2036201: IPC_IN_M3   : Delete in progress !!!
     [m3video]  2036200: ENCODE: CH-1:
     [m3video] Stop in progress !!!
     [m3vpss ]  2036201: IPC_IN_M3   : Delete Done !!!
     [m3vpss ]  2036254: DUP   : Delete Done !!!
     [m3video]  2036200: ENCODE: CH-1:
     [m3video] Stop done !!!
     [m3vpss ]  2036255: SCLR    : Stop in progress, 0 requests pending !!!
     [m3video]  2036201: IPC_OUT_M3   : Delete in progress !!!
     [m3vpss ]  2036255: SCLR    : Stop Done !!!
     [m3video]  2036201: IPC_OUT_M3   : Delete Done !!!
     [m3vpss ]  2036255: SCLR    : Fields = 5486 (fps = 125), FRAMES -> Total 1373, skipped 0, fps = 31!!!
     [m3video]  2036201: DECODE: Stop in progress !!!
     [m3video]  2036202: DECODE: Stop Done !!!
     [m3video]  2036202: DECODE: Delete in progress !!!
     [m3vpss ]  2036255: SCLR: Delete in progress !!!
     [m3video]
     [m3video] 2036204:ERR::linkID:10000022::channelID:-1::errorCode:-10::FileName:links_m3video/iva_dec/decLink_common.c::linuNum:158::errorCondition:(Utils_queIsFull(&pObj->dupObj.dupQue) == TRUE)
     [m3video]  2036205: DECODE: Delete Done !!!
     [m3video] 2036205: IPCBITSIN:Link[1000001a]:
     [m3video] RECV:5509    FREE:5502,DROPPED:0,AVGLATENCY:215
     [m3video]  2036205: IPC_BITS_IN   : Delete in progress !!!
     [m3vpss ]  2036256: SCLR: Delete Done !!!
     [m3video]  2036205: IPC_BITS_IN   : Delete Done !!!
     [m3vpss ]  2036256: NSF    : Fields = 1959 (fps = 103) !!!
     [m3video]  2036259: IPC_IN_M3   : Delete in progress !!!
     [m3vpss ]  2036256: NSF: Delete in progress !!!
     [m3video]  2036259: IPC_IN_M3   : Delete Done !!!
     [m3vpss ]  2036256: NSF: Delete Done !!!
     [m3vpss ]  2036257: SWMS: Stop in Progress !!!
     [m3video]  2036259: ENCODE: CH-1:
     [m3video] Stop in progress !!!
     [m3vpss ]  2036257: SWMS: Stop Done !!!
     [m3vpss ]  2036257: SWMS: Frames = 5502 (fps = 265) !!!
     [m3video]  2036260: ENCODE: CH-1:
     [m3video] Stop done !!!
     [m3vpss ]  2036257: SWMS: Delete in progress !!!
     [m3vpss ]  UTILS: DMA: Free'ed CH (TCC) = 58 (58)
     [m3video]  2036260: ENCODE: CH-1:
     [m3video]  ENC    : Delete in progress !!!
     [m3vpss ]  UTILS: DMA: Free'ed CH (TCC) = 59 (59)
     [m3vpss ]  2036258: SWMS: Delete Done !!!
     [m3vpss ]  2036258: MERGE   : Delete Done !!!
     [m3vpss ]  2036259: IPC_OUT_M3   : Delete in progress !!!
     [m3vpss ]  2036259: IPC_OUT_M3   : Delete Done !!!
     [c6xdsp ]
     [m3vpss ]
     [c6xdsp ]  2033898: LOAD: CPU: 0.2% HWI: 0.0%, SWI:0.0%
     [m3video]  2036266: ENCODE: CH-1:
     [m3video]  ENC    : Delete done !!!
     [m3vpss ]  2036269: LOAD: CPU: 9.7% HWI: 2.2%, SWI:1.2%
     [c6xdsp ]
     [m3video]  2036266: IPC_BITS_OUT   : Delete in progress !!!
     [m3vpss ]
     [m3vpss ]  2036271: DISPLAY: UNDERFLOW COUNT: HDMI(BP0) 0, HDDAC(BP0) 0, DVO2(BP1) 0, SDDAC(SEC1) 0
     [m3video] 2036266: IPCBITSOUT:Link[10000018]:
     [m3video] RECV:1064    FREE:1029,DROPPED:0,AVGLATENCY:16
     [m3video]  2036267: PRF : IPC_BITS_OUT0 : t: 23 ms, c: 1063, f: 1064, fps: 46260, fpc: 1
     [m3video]  2036267: IPC_BITS_OUT   : Delete Done !!!
     [m3video]
     [m3video]  2036269: LOAD: CPU: 9.2% HWI: 0.9%, SWI:1.1%
     [m3video]
    
      ......  The application did not shut down cleanly, and we had to try again  (with sigsegv) to stop it .....
    
     [m3video] 2122400:DECLINK::links_m3video/iva_dec/decLink_tsk.c:[33]::INTERNAL ERROR:-8
     [m3video] Link create should be first cmd.Received Cmd:2
    
      ......   Then we killed the task with sigkill  .........
      
    

  • I don't see any issues with your usecase. Scaler conflict will result in create failure which you are not seeing so it is not scaler conflict issue.You HDVICP channel map assignment is wrong. It should be as below to evenly balance the load:

    static SystemVideo_Ivahd2ChMap_Tbl systemVid_G4AVIvaChMapTbl =
    {
        .isPopulated = 1,
        .ivaMap[0] =
        {
            .EncNumCh  = 0,
            .EncChList = {0},

            .DecNumCh  = 2,
            .DecChList = {0, 3, 0,},
        },
        .ivaMap[1] =
        {
            .EncNumCh  = 3,
            .EncChList = {0, 1, 2, 0,},

            .DecNumCh  = 0,
            .DecChList = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        },
        .ivaMap[2] =  { 
          .EncNumCh  = 2, 
       .EncChList = {3, 4, 0,},
          .DecNumCh  = 0, 
          .DecChList = {2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}},
    };

     

    It is not clear from your description as to what the issue is .Pls share the logs of Vsys_printDetailedStatistics and Vsys_printBufferStatistics when you see the issue.

    As you are not populating all the gVcapModuleContext and gVdisModuleContext linkIDs the printStats will not print stats for all links. You can check the implementation of these APIs in ti_vsys.c and invoke the same cmds passing the correct linkIDs for your usecase.

     

     

     

     

     

     

  • Hi Badri,

    Thanks for the response.  I will do as you suggest and get back to you.  (Along with a more detailed explanation of the issue)

    In the meantime, should the code above not be:

    static SystemVideo_Ivahd2ChMap_Tbl systemVid_G4AVIvaChMapTbl =
    {
        .isPopulated = 1,
        .ivaMap[0] =
        {
            .EncNumCh  = 0,
            .EncChList = {0},

            .DecNumCh  = 2,
            .DecChList = {0, 3, 0,},
        },
        .ivaMap[1] =
        {
            .EncNumCh  = 3,
            .EncChList = {0, 1, 2, 0,},

            .DecNumCh  = 1,
            .DecChList = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        },
        .ivaMap[2] =  { 
          .EncNumCh  = 2, 
       .EncChList = {3, 4, 0,},
          .DecNumCh  = 1
          .DecChList = {2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}},
    };

    Just checking to make sure..

  • Yes decNumCh should be 1.

  • Hi Badri,

    Thanks - all it took was to have those HDVICP channel maps corrected, and I got all the channels of encoded output as expected.