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 4.0 encode Interlaced input chroma issues

We are having an issue encoding two interlaced inputs of differing resolutions on RDK 4.0 with the DM8168/9.  If VIP0 has a 16-bit 480i30 input and VIP1 has a 16-bit 1080i30 input there are noticeable chroma errors in the encoder output:

However, if both inputs are switched to be 1080i30 the encoder output is OK:

The pass-through of the inputs looks OK so it appears that the error is happening in the encoder itself or is only in the bottom field of the capture.  Any suggestions on what could be going wrong here?

Here is the description of our current usecase:

Capture 2CH
|        |
|        |
|        |
|--------+
MERGE0
|
|

NSF

IPC OUT(M3)
|
IPC IN(M3)
|
Encode (2CH)
|
IPC Bits OUT (M3)
|
IPC Bits IN (A8)

  • Can you try disabling processMulti by changing the following code:

    /dvr_rdk/mcfw/interfaces/link_api/system_debug.h

     

    change

    //#define SYSTEM_DEBUG_DISABLE_PROCESS_MULTI

    to

    #define SYSTEM_DEBUG_DISABLE_PROCESS_MULTI //Uncomment the define

     

    After this change do clean and rebuild firmwares.

    Also pls ensure you have set fieldMergeEncode is set to FALSE in encLink create params.

    Also if you are enabling tiler at nsf output try disabling tiled output and check if there is any change in behaviour

  • Hey Badri,

    Thank you for your suggestions.  I tried disabling PROCESS_MULTI and the behavior is still the same.  fieldMergedEncode is set to false and the tiler was not turned on for the NSF link.  However, to be sure the NSF link was not the problem I hooked the merge from the capture directly to the encoder so it is no longer in the pipeline.

    After these changes the behavior is still the same.  2 1080i30 inputs work great, but 1 480i30 and 1 1080i30 show the chroma errors. 

    Any other ideas?

  • Pls share the logs from link create onwards and also output of Vsys_printDetailedStatistics.Collect logs with PROCESS_MULTI  disabled, tiler disabled, fieldMergedEncode  disabled.Also is it possible to feed a solid color to as capture input. I want to check the corruption with known input.

  • Would color bars be acceptable?

  • I have some more images with both color bars and solid color inputs.  The images are taken with your suggested settings above.  The first image is with a 480i 100% yellow image (left) and a 1080i 100% blue image (right)

    The second image is with 75% color bars on both the 480i input (left) and the 1080i input (right).

    The log from the encoder is pasted below with the print detailed statistics output:

    [m3vpss ] 20051: Starting DisplayCtrlInit: configExtVideoEncoder is 0 and resolution is d
    [m3vpss ] Setting Config
    [m3vpss ] done with display ctrl init
    [m3vpss ] 20056: CAPTURE: Create in progress !!!
    [m3vpss ] 1920x1080 detected
    [m3vpss ] 20083: CAPTURE: VIP0 PortA capture mode is [16-bit, Non-mux Embedded Sync] scanFormat 1 !!!
    [m3vpss ] 20084: CAPTURE: VIP0 PortA capture mode is [16-bit, Non-mux Embedded Sync] !!!
    [m3vpss ] capture handle create handle != NULL is 1
    [m3vpss ] 1920x1080 detected
    [m3vpss ] 20221: CAPTURE: VIP1 PortA capture mode is [16-bit, Non-mux Embedded Sync] scanFormat 1 !!!
    [m3vpss ] 20221: CAPTURE: VIP1 PortA capture mode is [16-bit, Non-mux Embedded Sync] !!!
    [m3vpss ] capture handle create handle != NULL is 1
    [m3video] 20361: IPC_IN_M3 : Create in progress !!!
    [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 58 (58)
    [m3video] 20361: SYSTEM: Opening ListMP [VPSS-M3_IPC_OUT_0] ...
    [m3vpss ] UTILS: DMA: 0 of 4: Allocated PaRAM = 58 (0x49004740)
    [m3video] 20361: SYSTEM: Opening ListMP [VPSS-M3_IPC_IN_0] ...
    [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)
    [m3video] 20363: IPC_IN_M3 : Create Done !!!
    [m3video] 20364: ENCODE: Create in progress ... !!!
    [m3vpss ] CAPTURE::HEAPID:0 USED:520
    [m3vpss ] CAPTURE::HEAPID:4 USED:72576000
    [m3vpss ] 20359: CAPTURE: Create Done !!!
    [m3vpss ] 20360: MERGE : Create Done !!!
    [m3vpss ] 20360: IPC_OUT_M3 : Create in progress !!!
    [m3vpss ] 20361: IPC_OUT_M3 : Create Done !!!
    [m3video] 20415: ENCODE: Creating CH0 of 1920 x 1080, pitch = (1920, 1920) [PROGRESSIVE] [NON-TILED
    [m3video] 20415: ENCODE: Creating ChObj
    [m3video] 20415: ENCODE: Creating EncObj
    [m3video] channel 0 height: 1920 width: 1080
    [m3video] input content type detected is 0
    [m3video] mvDataSize set to 0
    [m3video] setting videoMaxDelayMs to 2000
    [m3video] creating h264 alg
    [m3video] setting HRDBufferSize to 4000000 using maxdelay of 2000
    [m3video] setting static HRDBufferSize to 4000000 using maxdelay of 2000
    [m3video] calling enc_link_h264_create
    [m3video] calling ForceDisableTileAlloc
    [m3video] calling assignResources
    [m3video] done calling assignResources ret 0
    [m3video] calling h264_control
    [m3video] calling h264_control setdefault
    [m3video] calling h264_control setparams
    [m3video] calling h264_control getstatus
    [m3video] calling h264_control getbufinfo
    [m3video] in set_algObject
    [m3video] minNum out bufs: 1
    [m3video] using PROGRESSIVE Height
    [m3video] ENCLINK_H264:HEAPID:0 USED:13808
    [m3video] ENCLINK_H264:HEAPID:3 USED:7176192
    [m3video] done creating h264 alg
    [m3video] 20446: ENCODE: on to next channel
    [m3video] 20446: ENCODE: Creating CH1 of 1920 x 1080, pitch = (1920, 1920) [PROGRESSIVE] [NON-TILED
    [m3video] 20446: ENCODE: Creating ChObj
    [m3video] 20446: ENCODE: Creating EncObj
    [m3video] channel 1 height: 1920 width: 1080
    [m3video] input content type detected is 0
    [m3video] mvDataSize set to 0
    [m3video] setting videoMaxDelayMs to 2000
    [m3video] creating h264 alg
    [m3video] setting HRDBufferSize to 4000000 using maxdelay of 2000
    [m3video] setting static HRDBufferSize to 4000000 using maxdelay of 2000
    [m3video] calling enc_link_h264_create
    [m3video] calling ForceDisableTileAlloc
    [m3video] calling assignResources
    [m3video] done calling assignResources ret 0
    [m3video] calling h264_control
    [m3video] calling h264_control setdefault
    [m3video] calling h264_control setparams
    [m3video] calling h264_control getstatus
    [m3video] calling h264_control getbufinfo
    [m3video] in set_algObject
    [m3video] minNum out bufs: 1
    [m3video] using PROGRESSIVE Height
    [m3video] ENCLINK_H264:HEAPID:0 USED:11912
    [m3video] ENCLINK_H264:HEAPID:3 USED:7176192
    [m3video] done creating h264 alg
    [m3video] 20476: ENCODE: on to next channel
    [m3video] 20476: ENCODE: All CH Create ... DONE !!!
    [m3video] ENCLINK:HEAPID:0 USED:25840
    [m3video] ENCLINK:HEAPID:2 USED:12441600
    [m3video] ENCLINK:HEAPID:3 USED:14352384
    [m3video] 20478: ENCODE: Create ... DONE !!!
    [m3video] 20478: IPC_BITS_OUT : Create in progress !!!
    [m3video] 20480: IPC_BITS_OUT : Create Done !!!
    [m3vpss ] 21047: CAPTURE: Start in progress !!!
    [m3vpss ] 21146: CAPTURE: Enabled Time Stamping !!!
    [m3vpss ] 21147: CAPTURE: Enabled Time Stamping !!!
    [m3vpss ] 21148: CAPTURE: Start Done !!!
    [m3video] ENC: ch 1 rtChInfoUpdate is TRUE! scan format is 0
    [m3vpss ] Capt ch:1 1920x536 (1920) 0
    [m3video] ENC: new height 536
    [m3video] ENC: new scan format 0
    [m3video] ENC interlaced detected
    [m3video] H.264 level 40 mbPerFrame 8040 mbPerSecond 241200 currDPB 3015.000000
    [m3video] rtUpdate new create setting needed for 1920x536 on channel 1 restarting alg...
    [m3video] setting HRDBufferSize to 4000000 using maxdelay of 2000
    [m3video] setting static HRDBufferSize to 4000000 using maxdelay of 2000
    [m3video] calling enc_link_h264_create
    [m3video] calling ForceDisableTileAlloc
    [m3video] calling assignResources
    [m3video] done calling assignResources ret 0
    [m3video] calling h264_control
    [m3video] calling h264_control setdefault
    [m3video] calling h264_control setparams
    [m3video] calling h264_control getstatus
    [m3video] calling h264_control getbufinfo
    [m3video] in set_algObject
    [m3video] minNum out bufs: 1
    [m3video] using INTERLACED Height
    [m3video] ENCLINK_H264:HEAPID:0 USED:11912
    [m3video] ENCLINK_H264:HEAPID:3 USED:14323712
    [m3video] Enc: 1920x536 (1920)
    [m3video] H.264 level 40 mbPerFrame 8040 mbPerSecond 241200 currDPB 3015.000000
    [m3video] Skipping field 3d565b1c
    [m3video] Freeing frames from skipped ReqObj 3d565b1c
    [m3video] ENC: ch 0 rtChInfoUpdate is TRUE! scan format is 0
    [m3vpss ] Capt ch:0 720x240 (1920) 0
    [m3video] ENC: new height 240
    [m3video] ENC: new scan format 0
    [m3video] ENC interlaced detected
    [m3video] H.264 level 30 mbPerFrame 1350 mbPerSecond 40500 currDPB 506.250000
    [m3video] rtUpdate new create setting needed for 720x240 on channel 0 restarting alg...
    [m3video] MemoryLeak:STAGE:0 HEAPNUM:0 ALLOC=13808 FREED=11912
    [m3video] setting HRDBufferSize to 4000000 using maxdelay of 2000
    [m3video] setting static HRDBufferSize to 4000000 using maxdelay of 2000
    [m3video] calling enc_link_h264_create
    [m3video] calling ForceDisableTileAlloc
    [m3video] calling assignResources
    [m3video] done calling assignResources ret 0
    [m3video] calling h264_control
    [m3video] calling h264_control setdefault
    [m3video] calling h264_control setparams
    [m3video] calling h264_control getstatus
    [m3video] calling h264_control getbufinfo
    [m3video] in set_algObject
    [m3video] minNum out bufs: 1
    [m3video] using INTERLACED Height
    [m3video] ENCLINK_H264:HEAPID:0 USED:11912
    [m3video] ENCLINK_H264:HEAPID:3 USED:14323712
    [m3video] Enc: 720x240 (1920)
    [m3video] H.264 level 30 mbPerFrame 1350 mbPerSecond 40500 currDPB 506.250000
    [m3video] Skipping field 3d583fe0
    [m3video] Freeing frames from skipped ReqObj 3d583fe0
    [m3video] H.264 level 31 mbPerFrame 1350 mbPerSecond 40500 currDPB 506.250000
    [m3video] batch new level setting of 31 needed restarting alg for channel 0...
    [m3video] setting HRDBufferSize to 16000000 using maxdelay of 2000
    [m3video] setting static HRDBufferSize to 16000000 using maxdelay of 2000
    [m3video] calling enc_link_h264_create
    [m3video] calling ForceDisableTileAlloc
    [m3video] calling assignResources
    [m3video] done calling assignResources ret 0
    [m3video] calling h264_control
    [m3video] calling h264_control setdefault
    [m3video] calling h264_control setparams
    [m3video] calling h264_control getstatus
    [m3video] calling h264_control getbufinfo
    [m3video] in set_algObject
    [m3video] minNum out bufs: 1
    [m3video] using INTERLACED Height
    [m3video] ENCLINK_H264:HEAPID:0 USED:11912
    [m3video] ENCLINK_H264:HEAPID:3 USED:14323712
    [m3video] setting interframe interval to 1
    [m3video] H.264 level 40 mbPerFrame 8040 mbPerSecond 241200 currDPB 3015.000000
    [m3video] Skipping field 3d565d64
    [m3video] Freeing frames from skipped ReqObj 3d565d64
    [m3video] H.264 level 40 mbPerFrame 8040 mbPerSecond 241200 currDPB 3015.000000
    [m3video] setting interframe interval to 1
    [m3video] ENC: ch 1 rtChInfoUpdate is TRUE! scan format is 0
    [m3vpss ] Capt ch:1 1920x536 (1920) 0
    [m3video] ENC interlaced detected
    [m3video] H.264 level 40 mbPerFrame 8040 mbPerSecond 241200 currDPB 3015.000000
    [m3video] setting HRDBufferSize to 7200000 using maxdelay of 1200
    [m3video] in set_algObject
    [m3video] minNum out bufs: 1
    [m3video] using INTERLACED Height
    [m3video] Enc: 1920x536 (1920)
    [m3video]
    [m3video] --------- CH 1 : H264 ENC : Dynamic Params -------
    [m3video]
    [m3video] videnc2DynamicParams -> inputHeight : 536
    [m3video] videnc2DynamicParams -> inputWidth : 1920
    [m3video] videnc2DynamicParams -> refFrameRate : 30000
    [m3video] videnc2DynamicParams -> targetFrameRate : 30000
    [m3video] videnc2DynamicParams -> targetBitRate : 6000000
    [m3video] videnc2DynamicParams -> intraFrameInterval : 120
    [m3video] videnc2DynamicParams -> generateHeader : 0
    [m3video] videnc2DynamicParams -> captureWidth : 1920
    [m3video] videnc2DynamicParams -> forceFrame : -1
    [m3video] videnc2DynamicParams -> interFrameInterval : 1
    [m3video] videnc2DynamicParams -> mvAccuracy : 2
    [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1
    [m3video] videnc2DynamicParams -> sampleAspectRatioWidth : 1
    [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag : 1
    [m3video] videnc2DynamicParams -> lateAcquireArg : -1
    [m3video]
    [m3video] rateControlParams -> rateControlParamsPreset : 1
    [m3video] rateControlParams -> scalingMatrixPreset : 0
    [m3video] rateControlParams -> rcAlgo : 0
    [m3video] rateControlParams -> qpI : -1
    [m3video] rateControlParams -> qpMaxI : 40
    [m3video] rateControlParams -> qpMinI : 10
    [m3video] rateControlParams -> qpP : -1
    [m3video] rateControlParams -> qpMaxP : 40
    [m3video] rateControlParams -> qpMinP : 10
    [m3video] rateControlParams -> qpOffsetB : 4
    [m3video] rateControlParams -> qpMaxB : 44
    [m3video] rateControlParams -> qpMinB : 10
    [m3video] rateControlParams -> allowFrameSkip : 0
    [m3video] rateControlParams -> removeExpensiveCoeff : 0
    [m3video] rateControlParams -> chromaQPIndexOffset : 0
    [m3video] rateControlParams -> IPQualityFactor : 0
    [m3video] rateControlParams -> initialBufferLevel : 7200000
    [m3video] rateControlParams -> HRDBufferSize : 7200000
    [m3video] rateControlParams -> minPicSizeRatioI : 0
    [m3video] rateControlParams -> maxPicSizeRatioI : 640
    [m3video] rateControlParams -> minPicSizeRatioP : 0
    [m3video] rateControlParams -> maxPicSizeRatioP : 0
    [m3video] rateControlParams -> minPicSizeRatioB : 0
    [m3video] rateControlParams -> maxPicSizeRatioB : 0
    [m3video] rateControlParams -> enablePRC : 1
    [m3video] rateControlParams -> enablePartialFrameSkip : 0
    [m3video] rateControlParams -> discardSavedBits : 1
    [m3video] rateControlParams -> VBRDuration : 8
    [m3video] rateControlParams -> VBRsensitivity : 0
    [m3video] rateControlParams -> skipDistributionWindowLength : 5
    [m3video] rateControlParams -> numSkipInDistributionWindow : 2
    [m3video] rateControlParams -> enableHRDComplianceMode : 1
    [m3video] rateControlParams -> frameSkipThMulQ5 : 0
    [m3video] rateControlParams -> vbvUseLevelThQ5 : 0
    [m3video]
    [m3video] interCodingParams -> interCodingPreset : 0
    [m3video] interCodingParams -> searchRangeHorP : 144
    [m3video] interCodingParams -> searchRangeVerP : 32
    [m3video] interCodingParams -> searchRangeHorB : 144
    [m3video] interCodingParams -> searchRangeVerB : 16
    [m3video] interCodingParams -> interCodingBias : 1
    [m3video] interCodingParams -> skipMVCodingBias : 1
    [m3video] interCodingParams -> minBlockSizeP : 0
    [m3video] interCodingParams -> minBlockSizeB : 0
    [m3video] interCodingParams -> meAlgoMode : 0
    [m3video]
    [m3video] intraCodingParams -> intraCodingPreset : 0
    [m3video] intraCodingParams -> lumaIntra4x4Enable : 31
    [m3video] intraCodingParams -> lumaIntra8x8Enable : 31
    [m3video] intraCodingParams -> lumaIntra16x16Enable : 15
    [m3video] intraCodingParams -> chromaIntra8x8Enable : 15
    [m3video] intraCodingParams -> chromaComponentEnable : 1
    [m3video] intraCodingParams -> intraRefreshMethod : 0
    [m3video] intraCodingParams -> intraRefreshRate : 0
    [m3video] intraCodingParams -> gdrOverlapRowsBtwFrames : 0
    [m3video] intraCodingParams -> constrainedIntraPredEnable : 0
    [m3video] intraCodingParams -> intraCodingBias : 0
    [m3video]
    [m3video] sliceCodingParams -> sliceCodingPreset : 1
    [m3video] sliceCodingParams -> sliceMode : 8608
    [m3video] sliceCodingParams -> sliceUnitSize : 8672
    [m3video] sliceCodingParams -> sliceStartOffset : [2 33 2]
    [m3video] sliceCodingParams -> streamFormat : 0
    [m3video]
    [m3video] sliceGroupChangeCycle : 3072
    [m3video] searchCenter : 0
    [m3video] enableStaticMBCount : 0
    [m3video] enableROI : 262400
    [m3video]
    [m3video]
    [m3video]
    [m3video] --------- CH 0 : H264 ENC : Dynamic Params -------
    [m3video]
    [m3video] videnc2DynamicParams -> inputHeight : 240
    [m3video] videnc2DynamicParams -> inputWidth : 720
    [m3video] videnc2DynamicParams -> refFrameRate : 30000
    [m3video] videnc2DynamicParams -> targetFrameRate : 30000
    [m3video] videnc2DynamicParams -> targetBitRate : 8000000
    [m3video] videnc2DynamicParams -> intraFrameInterval : 60
    [m3video] videnc2DynamicParams -> generateHeader : 0
    [m3video] videnc2DynamicParams -> captureWidth : 1920
    [m3video] videnc2DynamicParams -> forceFrame : -1
    [m3video] videnc2DynamicParams -> interFrameInterval : 1
    [m3video] videnc2DynamicParams -> mvAccuracy : 2
    [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1
    [m3video] videnc2DynamicParams -> sampleAspectRatioWidth : 1
    [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag : 1
    [m3video] videnc2DynamicParams -> lateAcquireArg : -1
    [m3video]
    [m3video] rateControlParams -> rateControlParamsPreset : 1
    [m3video] rateControlParams -> scalingMatrixPreset : 0
    [m3video] rateControlParams -> rcAlgo : 0
    [m3video] rateControlParams -> qpI : -1
    [m3video] rateControlParams -> qpMaxI : 40
    [m3video] rateControlParams -> qpMinI : 10
    [m3video] rateControlParams -> qpP : -1
    [m3video] rateControlParams -> qpMaxP : 40
    [m3video] rateControlParams -> qpMinP : 10
    [m3video] rateControlParams -> qpOffsetB : 4
    [m3video] rateControlParams -> qpMaxB : 44
    [m3video] rateControlParams -> qpMinB : 10
    [m3video] rateControlParams -> allowFrameSkip : 0
    [m3video] rateControlParams -> removeExpensiveCoeff : 0
    [m3video] rateControlParams -> chromaQPIndexOffset : 0
    [m3video] rateControlParams -> IPQualityFactor : 0
    [m3video] rateControlParams -> initialBufferLevel : 16000000
    [m3video] rateControlParams -> HRDBufferSize : 16000000
    [m3video] rateControlParams -> minPicSizeRatioI : 0
    [m3video] rateControlParams -> maxPicSizeRatioI : 640
    [m3video] rateControlParams -> minPicSizeRatioP : 0
    [m3video] rateControlParams -> maxPicSizeRatioP : 0
    [m3video] rateControlParams -> minPicSizeRatioB : 0
    [m3video] rateControlParams -> maxPicSizeRatioB : 0
    [m3video] rateControlParams -> enablePRC : 1
    [m3video] rateControlParams -> enablePartialFrameSkip : 0
    [m3video] rateControlParams -> discardSavedBits : 1
    [m3video] rateControlParams -> VBRDuration : 8
    [m3video] rateControlParams -> VBRsensitivity : 0
    [m3video] rateControlParams -> skipDistributionWindowLength : 5
    [m3video] rateControlParams -> numSkipInDistributionWindow : 2
    [m3video] rateControlParams -> enableHRDComplianceMode : 1
    [m3video] rateControlParams -> frameSkipThMulQ5 : 0
    [m3video] rateControlParams -> vbvUseLevelThQ5 : 0
    [m3video]
    [m3video] interCodingParams -> interCodingPreset : 0
    [m3video] interCodingParams -> searchRangeHorP : 144
    [m3video] interCodingParams -> searchRangeVerP : 32
    [m3video] interCodingParams -> searchRangeHorB : 144
    [m3video] interCodingParams -> searchRangeVerB : 16
    [m3video] interCodingParams -> interCodingBias : 1
    [m3video] interCodingParams -> skipMVCodingBias : 1
    [m3video] interCodingParams -> minBlockSizeP : 0
    [m3video] interCodingParams -> minBlockSizeB : 0
    [m3video] interCodingParams -> meAlgoMode : 0
    [m3video]
    [m3video] intraCodingParams -> intraCodingPreset : 0
    [m3video] intraCodingParams -> lumaIntra4x4Enable : 31
    [m3video] intraCodingParams -> lumaIntra8x8Enable : 31
    [m3video] intraCodingParams -> lumaIntra16x16Enable : 15
    [m3video] intraCodingParams -> chromaIntra8x8Enable : 15
    [m3video] intraCodingParams -> chromaComponentEnable : 1
    [m3video] intraCodingParams -> intraRefreshMethod : 0
    [m3video] intraCodingParams -> intraRefreshRate : 0
    [m3video] intraCodingParams -> gdrOverlapRowsBtwFrames : 0
    [m3video] intraCodingParams -> constrainedIntraPredEnable : 0
    [m3video] intraCodingParams -> intraCodingBias : 0
    [m3video]
    [m3video] sliceCodingParams -> sliceCodingPreset : 1
    [m3video] sliceCodingParams -> sliceMode : 8608
    [m3video] sliceCodingParams -> sliceUnitSize : 8672
    [m3video] sliceCodingParams -> sliceStartOffset : [2 33 2]
    [m3video] sliceCodingParams -> streamFormat : 0
    [m3video]
    [m3video] sliceGroupChangeCycle : 3072
    [m3video] searchCenter : 0
    [m3video] enableStaticMBCount : 0
    [m3video] enableROI : 262400
    [m3video]
    [m3video]
    [m3vpss ]
    [m3vpss ] *** Capture Driver Advanced Statistics ***
    [m3vpss ]
    [m3vpss ] VIP Parser Reset Count : 0
    [m3vpss ]
    [m3vpss ] | Total Even Odd Total Even Odd Min / Max Min / Max Dropped Fid RepeatC
    [m3vpss ] CH | Fields Fields Fields FPS FPS FPS Width Height Fields Count)
    [m3vpss ] --------------------------------------------------------------------------------------------
    [m3vpss ] 000 | 36066 18034 18032 58 29 29 720 / 720 240 / 240 1 0)
    [m3vpss ] 200 | 36175 18099 18076 59 29 29 130 / 1920 2 / 540 1 0)
    [m3vpss ]
    [m3vpss ] VIP Capture Port 0 | DescMissMatch1 = 14, DescMissMatch2 = 0 , DescMissMatch3 = 0
    [m3vpss ] VIP Capture Port 2 | DescMissMatch1 = 12, DescMissMatch2 = 0 , DescMissMatch3 = 0
    [m3vpss ]
    [m3vpss ] *** Capture List Manager Advanced Statistics ***
    [m3vpss ]
    [m3vpss ] List Post Count : 612616
    [m3vpss ] List Stall Count : 0
    [m3vpss ] List Post Time (ms) : Max = 0, Min = 0, Avg = 0, Total = 0
    [m3vpss ] INTC Timeout Count : (0, 0) (Min timeout value = 987, 1000)
    [m3vpss ] Descriptor miss found count : 0
    [m3vpss ]
    [m3vpss ]
    [m3vpss ] VIP and VPDMA registers,
    [m3vpss ] VIP0 : FIQ_STATUS : 0x4810551c = 0x00000000
    [m3vpss ] VIP1 : FIQ_STATUS : 0x48105a1c = 0x00000000
    [m3vpss ] VPDMA: LIST_BUSY : 0x4810d00c = 0x00000000
    [m3vpss ] VPDMA: PERF_MON34 = 0x4305ffff, PERF_MON35 = 0x4305ffff, PERF_MON38 = 0x4305ffff, PERF_MON3
    [m3vpss ]
    [m3vpss ]
    [m3vpss ] 633763: CAPTURE: Fields = 72239 (fps = 117, CPU Load = 0)
    [m3vpss ] 633764: CAPTURE: Num Resets = 0 (Avg 0 ms per reset)
    [m3vpss ] 633764: SYSTEM : FREE SPACE : System Heap = 67888 B, Mbx = 10238 msgs)
    [m3vpss ] 633764: SYSTEM : FREE SPACE : SR0 Heap = 8431616 B (8 MB)
    [m3vpss ] 633764: SYSTEM : FREE SPACE : Frame Buffer = 173125504 B (165 MB)
    [m3vpss ] 633764: SYSTEM : FREE SPACE : Bitstream Buffer = 198217600 B (189 MB)
    [m3vpss ] TILER_STATS: CNT :8BIT
    [m3vpss ] TILER_STATS: CNT RESOLUTION: 16384 x 8192
    [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 16384 x 8188
    [m3vpss ] TILER_STATS: NUM FREE BUCKETS: 1
    [m3vpss ] TILER_STATS: NUM USED BUCKETS: 0
    [m3vpss ] TILER_STATS: TOTAL FREE AREA: 134152192 (99 %)
    [m3vpss ] TILER_STATS: TOTAL USED AREA: 0 (0 %)
    [m3vpss ] TILER_STATS: CNT :16BIT
    [m3vpss ] TILER_STATS: CNT RESOLUTION: 32768 x 3072
    [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 32768 x 3072
    [m3vpss ] TILER_STATS: NUM FREE BUCKETS: 1
    [m3vpss ] TILER_STATS: NUM USED BUCKETS: 0
    [m3vpss ] TILER_STATS: TOTAL FREE AREA: 100663296 (100 %)
    [m3vpss ] TILER_STATS: TOTAL USED AREA: 0 (0 %)
    [m3vpss ] 633765: SYSTEM : FREE SPACE : Tiler 8-bit = 134152192 B (127 MB) - TILER ON
    [m3vpss ] 633765: SYSTEM : FREE SPACE : Tiler 16-bit = 100663296 B (96 MB) - TILER ON
    [m3video] 639767: HDVICP-ID:0
    [m3video] All percentage figures are based off totalElapsedTime
    [m3video] totalAcquire2wait :0 %
    [m3video] totalWait2Isr :6 %
    [m3video] totalIsr2Done :0 %
    [m3video] totalWait2Done :6 %
    [m3video] totalDone2Release :0 %
    [m3video] totalAcquire2Release :6 %
    [m3video] totalAcq2acqDelay :93 %
    [m3video] totalElapsedTime in msec : 607447
    [m3video] numAccessCnt: 36417
    [m3video] IVA-FPS : 59
    [m3video] Average time spent per frame in microsec: 1000
    [m3video] 639768: HDVICP-ID:1
    [m3video] All percentage figures are based off totalElapsedTime
    [m3video] totalAcquire2wait :0 %
    [m3video] totalWait2Isr :35 %
    [m3video] totalIsr2Done :0 %
    [m3video] totalWait2Done :35 %
    [m3video] totalDone2Release :0 %
    [m3video] totalAcquire2Release :35 %
    [m3video] totalAcq2acqDelay :64 %
    [m3video] totalElapsedTime in msec : 603651
    [m3video] numAccessCnt: 35618
    [m3video] IVA-FPS : 59
    [m3video] Average time spent per frame in microsec: 5931
    [m3video] 639768: HDVICP-ID:2
    [m3video] All percentage figures are based off totalElapsedTime
    [m3video] totalAcquire2wait :0 %
    [m3video] totalWait2Isr :0 %
    [m3video] totalIsr2Done :0 %
    [m3video] totalWait2Done :0 %
    [m3video] totalDone2Release :0 %
    [m3video] totalAcquire2Release :0 %
    [m3video] totalAcq2acqDelay :0 %
    [m3video] totalElapsedTime in msec : 0
    [m3video] numAccessCnt: 0
    [m3video] IVA-FPS : 0
    [m3video] Average time spent per frame in microsec: 0
    [m3video]
    [m3video] *** ENCODE Statistics ***
    [m3video]
    [m3video] Elasped Time : 603 secs
    [m3video]
    [m3video]
    [m3video] CH | In Recv In Skip In User Out Latency
    [m3video] Num | FPS FPS Skip FPS FPS Min / Max
    [m3video] --------------------------------------------
    [m3video] 0 | 60 0 0 60 255 / 20017
    [m3video] 1 | 59 0 0 59 255 / 20022
    [m3video]
    [m3video] *** ENCODER I/O stats ***
    [m3video] CH: 0 In Process: 36416 Out Process: 36416
    [m3video] CH: 1 In Process: 35618 Out Process: 35617
    [m3video]
    [m3video] ENC: Get Frames: 72960 Put Frames: 72960
    [m3video]
    [m3video] Multi Channel Encode Average Submit Batch Size
    [m3video] Max Submit Batch Size : 1
    [m3video] IVAHD_0 Average Batch Size : 1
    [m3video] IVAHD_0 Max achieved Batch Size : 1
    [m3video] IVAHD_1 Average Batch Size : 1
    [m3video] IVAHD_1 Max achieved Batch Size : 1
    [m3video] IVAHD_2 Average Batch Size : 0
    [m3video] IVAHD_2 Max achieved Batch Size : 0
    [m3video]
    [m3video] Multi Channel Encode Batch break Stats
    [m3video] Total Number of Batches created: 36182
    [m3video] All numbers are based off total number of Batches created
    [m3video] Batch breaks due to batch sizeexceeding limit: 100 %
    [m3video] Batch breaks due to ReqObj Que being empty: 0 %
    [m3video] Batch breaks due to changed resolution class: 0 %
    [m3video] Batch breaks due to interlace and progressivecontent mix: 0 %
    [m3video] Batch breaks due to channel repeat: 0 %
    [m3video] Batch breaks due to different codec: 0 %
    [m3video] Total Number of Batches created: 35614
    [m3video] All numbers are based off total number of Batches created
    [m3video] Batch breaks due to batch sizeexceeding limit: 100 %
    [m3video] Batch breaks due to ReqObj Que being empty: 0 %
    [m3video] Batch breaks due to changed resolution class: 0 %
    [m3video] Batch breaks due to interlace and progressivecontent mix: 0 %
    [m3video] Batch breaks due to channel repeat: 0 %
    [m3video] Batch breaks due to different codec: 0 %
    [m3video] Total Number of Batches created: 0
    [m3video] All numbers are based off total number of Batches created
    [m3video] Batch breaks due to batch sizeexceeding limit: 0 %
    [m3video] Batch breaks due to ReqObj Que being empty: 0 %
    [m3video] Batch breaks due to changed resolution class: 0 %
    [m3video] Batch breaks due to interlace and progressivecontent mix: 0 %
    [m3video] Batch breaks due to channel repeat: 0 %
    [m3video] Batch breaks due to different codec: 0 %
    [m3vpss ]
    [m3vpss ] 641772: LOAD: CPU: 9.5% HWI: 1.1%, SWI:1.5%
    [m3vpss ]
    [m3vpss ] 641772: LOAD: TSK: IPC_OUT_M30 : 1.1%
    [m3vpss ] 641772: LOAD: TSK: CAPTURE : 1.2%
    [m3vpss ] 641772: LOAD: TSK: MERGE0 : 0.2%
    [m3vpss ] 641772: LOAD: TSK: MISC : 4.4%
    [m3vpss ]
    [m3video]
    [m3video] 642273: LOAD: CPU: 6.9% HWI: 0.9%, SWI:0.7%
    [m3video]
    [m3video] 642273: LOAD: TSK: IPC_IN_M30 : 0.4%
    [m3video] 642273: LOAD: TSK: IPC_BITS_OUT0 : 0.8%
    [m3video] 642273: LOAD: TSK: ENC0 : 1.0%
    [m3video] 642273: LOAD: TSK: ENC_PROCESS_TSK_0 : 1.4%
    [m3video] 642273: LOAD: TSK: ENC_PROCESS_TSK_1 : 1.3%
    [m3video] 642273: LOAD: TSK: MISC : 0.4%
    [m3video]
    [c6xdsp ]
    [c6xdsp ] 642441: LOAD: CPU: 3.8% HWI: 0.2%, SWI:0.2%
    [c6xdsp ]
    [c6xdsp ] 642441: LOAD: TSK: MISC : 3.4%
    [c6xdsp ]

  • Log shows encoder is created for progressive encode. I thought you said you are doing interlaced encode

  • We detect the Interlaced or Progressive video on the fly and recreate the H264_alg when a switch is detected.  This happens here in the log:

    [m3video] ENC interlaced detected
    [m3video] H.264 level 30 mbPerFrame 1350 mbPerSecond 40500 currDPB 506.250000
    [m3video] rtUpdate new create setting needed for 720x240 on channel 0 restarting alg...
    [m3video] MemoryLeak:STAGE:0 HEAPNUM:0 ALLOC=13808 FREED=11912
    [m3video] setting HRDBufferSize to 4000000 using maxdelay of 2000
    [m3video] setting static HRDBufferSize to 4000000 using maxdelay of 2000
    [m3video] calling enc_link_h264_create
    [m3video] calling ForceDisableTileAlloc
    [m3video] calling assignResources
    [m3video] done calling assignResources ret 0
    [m3video] calling h264_control
    [m3video] calling h264_control setdefault
    [m3video] calling h264_control setparams
    [m3video] calling h264_control getstatus
    [m3video] calling h264_control getbufinfo
    [m3video] in set_algObject
    [m3video] minNum out bufs: 1
    [m3video] using INTERLACED Height
    [m3video] ENCLINK_H264:HEAPID:0 USED:11912
    [m3video] ENCLINK_H264:HEAPID:3 USED:14323712
    [m3video] Enc: 720x240 (1920)

  • It looks like you are initially creating for progressive and switching to interlaced based on rtCHannelInfo. This appear to be changes on top of standard RDK release. Can you start of with creating encoder for interlaced input instead. Also encLink supports a feature to switch from interlaced to progressive by dynamically deleting and creating the encoder algorithm.Are you using this ENC_LINK_ALG_SWITCH API ?

  • I don't see any references to ENC_LINK_ALG_SWITCH in the src_bios6 code.  We wrote our own switch function in the the enclink_common.c code we have been using it since RDK 3.0 to dynamically set the H264 level.  I can start the link in INTERLACED MODE and see if that changes things. 

  • Refer the usecase ti816x/multich_hd_sdi_dvr.c for example usage of ENC_LINK_CMD_SWITCH .CHeck the function multich_hd_sd_dvr_select_all_interlaced() function in this file.

  • I set things up to start the encode link in interlaced mode and turned off our code that deletes the alg and creates a new one when the h264 level changes so there are no alg restarts.  We still see the chroma issue I describe before.  See the screenshot 480i (left) 1080i (right) and the log below.

    We have also found that if we remove one of the inputs while the system is running the chroma problem goes away, but when we add it back the issue returns as well.

    [m3vpss ] Setting Config
    [m3vpss ] done with display ctrl init
    [m3vpss ] 40319: CAPTURE: Create in progress !!!
    [m3vpss ] 1920x1080 detected
    [m3vpss ] 40346: CAPTURE: VIP0 PortA capture mode is [16-bit, Non-mux Embedded Sync] scanFormat 0 !!!
    [m3vpss ] 40347: CAPTURE: VIP0 PortA capture mode is [16-bit, Non-mux Embedded Sync] !!!
    [m3vpss ] capture handle create handle != NULL is 1
    [m3vpss ] 1920x1080 detected
    [m3vpss ] 40484: CAPTURE: VIP1 PortA capture mode is [16-bit, Non-mux Embedded Sync] scanFormat 0 !!!
    [m3vpss ] 40484: CAPTURE: VIP1 PortA capture mode is [16-bit, Non-mux Embedded Sync] !!!
    [m3vpss ] capture handle create handle != NULL is 1
    [m3vpss ] UTILS: DMA: Allocated CH (TCC) = 58 (58)
    [m3vpss ] UTILS: DMA: 0 of 4: Allocated PaRAM = 58 (0x49004740)
    [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)
    [m3video] 40624: IPC_IN_M3 : Create in progress !!!
    [m3video] 40624: SYSTEM: Opening ListMP [VPSS-M3_IPC_OUT_0] ...
    [m3vpss ] CAPTURE::HEAPID:0 USED:520
    [m3video] 40624: SYSTEM: Opening ListMP [VPSS-M3_IPC_IN_0] ...
    [m3vpss ] CAPTURE::HEAPID:4 USED:72576000
    [m3video] 40626: IPC_IN_M3 : Create Done !!!
    [m3vpss ] 40622: CAPTURE: Create Done !!!
    [m3video] 40626: ENCODE: Create in progress ... !!!
    [m3vpss ] 40623: MERGE : Create Done !!!
    [m3vpss ] 40623: IPC_OUT_M3 : Create in progress !!!
    [m3vpss ] 40624: IPC_OUT_M3 : Create Done !!!
    [m3video] 40678: ENCODE: Creating CH0 of 1920 x 1080, pitch = (1920, 1920) [INTERLACED ] [NON-TILED ], bitrate = 2000 Kbps ...
    [m3video] 40678: ENCODE: Creating ChObj
    [m3video] 40678: ENCODE: Creating EncObj
    [m3video] channel 0 height: 1920 width: 1080
    [m3video] input content type detected is 1
    [m3video] mvDataSize set to 0
    [m3video] setting videoMaxDelayMs to 2000
    [m3video] creating h264 alg
    [m3video] setting HRDBufferSize to 4000000 using maxdelay of 2000
    [m3video] setting static HRDBufferSize to 4000000 using maxdelay of 2000
    [m3video] calling enc_link_h264_create
    [m3video] calling ForceDisableTileAlloc
    [m3video] calling assignResources
    [m3video] done calling assignResources ret 0
    [m3video] calling h264_control
    [m3video] calling h264_control setdefault
    [m3video] calling h264_control setparams
    [m3video] calling h264_control getstatus
    [m3video] calling h264_control getbufinfo
    [m3video] in set_algObject
    [m3video] minNum out bufs: 1
    [m3video] using INTERLACED Height
    [m3video] ENCLINK_H264:HEAPID:0 USED:13808
    [m3video] ENCLINK_H264:HEAPID:3 USED:14323712
    [m3video] done creating h264 alg
    [m3video] 40737: ENCODE: on to next channel
    [m3video] 40737: ENCODE: Creating CH1 of 1920 x 1080, pitch = (1920, 1920) [INTERLACED ] [NON-TILED ], bitrate = 2000 Kbps ...
    [m3video] 40737: ENCODE: Creating ChObj
    [m3video] 40737: ENCODE: Creating EncObj
    [m3video] channel 1 height: 1920 width: 1080
    [m3video] input content type detected is 1
    [m3video] mvDataSize set to 0
    [m3video] setting videoMaxDelayMs to 2000
    [m3video] creating h264 alg
    [m3video] setting HRDBufferSize to 4000000 using maxdelay of 2000
    [m3video] setting static HRDBufferSize to 4000000 using maxdelay of 2000
    [m3video] calling enc_link_h264_create
    [m3video] calling ForceDisableTileAlloc
    [m3video] calling assignResources
    [m3video] done calling assignResources ret 0
    [m3video] calling h264_control
    [m3video] calling h264_control setdefault
    [m3video] calling h264_control setparams
    [m3video] calling h264_control getstatus
    [m3video] calling h264_control getbufinfo
    [m3video] in set_algObject
    [m3video] minNum out bufs: 1
    [m3video] using INTERLACED Height
    [m3video] ENCLINK_H264:HEAPID:0 USED:11912
    [m3video] ENCLINK_H264:HEAPID:3 USED:14323712
    [m3video] done creating h264 alg
    [m3video] 40795: ENCODE: on to next channel
    [m3video] 40795: ENCODE: All CH Create ... DONE !!!
    [m3video] ENCLINK:HEAPID:0 USED:25840
    [m3video] ENCLINK:HEAPID:2 USED:12441600
    [m3video] ENCLINK:HEAPID:3 USED:28647424
    [m3video] 40797: ENCODE: Create ... DONE !!!
    [m3video] 40797: IPC_BITS_OUT : Create in progress !!!
    [m3video] 40799: IPC_BITS_OUT : Create Done !!!
    [m3vpss ] 41310: CAPTURE: Start in progress !!!
    [m3vpss ] 41409: CAPTURE: Enabled Time Stamping !!!
    [m3vpss ] 41410: CAPTURE: Enabled Time Stamping !!!
    [m3vpss ] 41411: CAPTURE: Start Done !!!
    [m3video] ENC: ch 1 rtChInfoUpdate is TRUE! scan format is 0
    [m3vpss ] Capt ch:1 1920x536 (1920) 0
    [m3video] ENC: new height 536
    [m3video] ENC interlaced detected
    [m3video] H.264 level 40 mbPerFrame 8040 mbPerSecond 120600 currDPB 3015.000000
    [m3video] restart alg disabled just changing dynamic params!
    [m3video] setting HRDBufferSize to 4000000 using maxdelay of 2000
    [m3video] in set_algObject
    [m3video] minNum out bufs: 1
    [m3video] using INTERLACED Height
    [m3video] Enc: 1920x536 (1920)
    [m3video] H.264 level 40 mbPerFrame 8040 mbPerSecond 120600 currDPB 3015.000000
    [m3video] restart alg disabled!
    [m3video] Skipping field 3d565d64
    [m3video] Freeing frames from skipped ReqObj 3d565d64
    [m3video] ENC: ch 0 rtChInfoUpdate is TRUE! scan format is 0
    [m3vpss ] Capt ch:0 720x240 (1920) 0
    [m3video] ENC: new height 240
    [m3video] ENC interlaced detected
    [m3video] H.264 level 22 mbPerFrame 1350 mbPerSecond 20250 currDPB 506.250000
    [m3video] restart alg disabled just changing dynamic params!
    [m3video] setting HRDBufferSize to 4000000 using maxdelay of 2000
    [m3video] in set_algObject
    [m3video] minNum out bufs: 1
    [m3video] using INTERLACED Height
    [m3video] Enc: 720x240 (1920)
    [m3video] H.264 level 22 mbPerFrame 1350 mbPerSecond 20250 currDPB 506.250000
    [m3video] restart alg disabled!
    [m3video] Skipping field 3d5742a8
    [m3video] Freeing frames from skipped ReqObj 3d5742a8
    [m3video] H.264 level 31 mbPerFrame 1350 mbPerSecond 40500 currDPB 506.250000
    [m3video] restart alg disabled!
    [m3video] H.264 level 31 mbPerFrame 1350 mbPerSecond 40500 currDPB 506.250000
    [m3video] restart alg disabled!
    [m3video] setting interframe interval to 1
    [m3video] H.264 level 40 mbPerFrame 8040 mbPerSecond 241200 currDPB 3015.000000
    [m3video] restart alg disabled!
    [m3video] H.264 level 40 mbPerFrame 8040 mbPerSecond 241200 currDPB 3015.000000
    [m3video] restart alg disabled!
    [m3video] setting interframe interval to 1
    [m3video] ENC: ch 1 rtChInfoUpdate is TRUE! scan format is 0
    [m3vpss ] Capt ch:1 1920x536 (1920) 0
    [m3video] ENC interlaced detected
    [m3video] H.264 level 40 mbPerFrame 8040 mbPerSecond 241200 currDPB 3015.000000
    [m3video] restart alg disabled just changing dynamic params!
    [m3video] setting HRDBufferSize to 7200000 using maxdelay of 1200
    [m3video] in set_algObject
    [m3video] minNum out bufs: 1
    [m3video] using INTERLACED Height
    [m3video] Enc: 1920x536 (1920)
    [m3video] ENC: ch 1 rtChInfoUpdate is TRUE! scan format is 0
    [m3vpss ] Capt ch:1 1920x536 (1920) 0
    [m3video] ENC interlaced detected
    [m3video] H.264 level 40 mbPerFrame 8040 mbPerSecond 241200 currDPB 3015.000000
    [m3video] restart alg disabled just changing dynamic params!
    [m3video] setting HRDBufferSize to 7200000 using maxdelay of 1200
    [m3video] in set_algObject
    [m3video] minNum out bufs: 1
    [m3video] using INTERLACED Height
    [m3video] Enc: 1920x536 (1920)

  • -- For the 480i channel also is the encoder created for 1080 resolution or do you create only for 480i resolution ?

    -- Why is the height 536 (1920 x 536) ? It should be created for 1920 x 544

    This looks like reference buffer corruption.ENabling tiler should change the behaviour as tiled allocation is not linear. Did you see any difference when enabling tiler at NSF output ? Continue to use the modification of create time encoder configuration for futher testing and avoid use of dynamically switching when debugging this issue

  • The encoder is created with a 1080 resolution to ensure enough space is allocated to allow changes in standard on the input up to 1080p resolutions.  Is this incorrect?

    The height being used is what is returned by the capture driver as the height.  So I have tried several things based on your comments.

    I tried simply forcing the height of the 1080i frames to 544 this did not fix the problem but the output was the correct height after that.  I also tried setting the first encoder instance to 720x240 however this resulted in a scrambled output.

    So I reverted my changes back to the state they were in for my last post and enabled the tiler on the NSF link and added it back to the pipeline.  This did fix the chroma issue.  However, this will not be a viable option for us going forward since when I input a lower resolution after the encoder has started I get the following assertion:

    [m3vpss ]  81325: Assertion @ Line: 72 in utils/src/tile_alg_binpack.c: (TilerAlloc_ResolutionClassInfo[i].width > prevResWidth) && (TilerAlloc_ResolutionClassInfo[i].height > prevResHeight) : failed !!!

    It seems the tiler does not support reallocation for a lower resolution, and we need to be able to change resolutions on the fly using the rtUpdateParams.

    So is the miss reported height from the capture the root of the problem?  If we fix this would we be able to avoid using the Tiler?

  • The code in /dvr_rdk/mcfw/src_bios6/utils/src/tile_alg_binpack.c should be

    UTILS_assert((TilerAlloc_ResolutionClassInfo[i].width >= prevResWidth)
                         &&
                         (TilerAlloc_ResolutionClassInfo[i].height >= prevResHeight));

    This would resolve the assert issue but the fact that you are getting this issue indicates encoder is being created with wrong width and height. Can you attach your encLink folder.I want to compare with base DVR RDK 4.0 version and review the modifications.

    Also add a print in

    /dvr_rdk/mcfw/src_bios6/links_m3video/iva_enc/encLink_h264.c

     

    static Int enclink_h264_set_static_params(IH264ENC_Params * staticParams,
                                              EncLink_AlgCreateParams *
                                              algCreateParams)

        /* Both width & height needs to be align with 2 bytes */
        staticParams->videnc2Params.maxHeight =
                      VpsUtils_align(algCreateParams->maxHeight, 2);

        staticParams->videnc2Params.maxWidth =
                      VpsUtils_align(algCreateParams->maxWidth, 16);

      Vps_printf("ENCLINK_H264:Codec Width:%d,Height:%d",

                       staticParams->videnc2Params.maxWidth ,

                       staticParams->videnc2Params.maxHeight );

     

     

    For 1080i interlaced content static params height  should be 540 but looks like encoder getting created for 1080 height instead

  • Setting the maxHeight to 540 instead of 1080 in interlaced mode fixes this problem for us.  Thank you for your support.