[MmApi] MemoryLeak - L4T 28.2.1

Hi,
we are using the L4T version 28.2.1 on our TX2 system.
We are having the following problem:
With the original L4T there is a Memory leak, so we found a version of the libtegrav4l2.so file here in the forum.
This fixes the memory leak, but does not work anymore for interlaced videos.
Is there a version available which fixes the memory leak and also works for interlaced videos?

This one here is used at the moment:

Unfortunately we are unable to update the L4T and everything so easily on our system.
So it would be good if there is just an update for this lib available.

Thanks!

Best Regards,
Simon

Hi,
Please share how to reproduce the issue of decoding interlaced video. Not sure what the issue is.

Hi Dane,
i think it looks like the decoder does not detect the interlaced correct.
I tried it with different interlaced videos in different solutions.
The problem always looks the same.
Here is the output of the video_decoder sample with an interlaced video:
~ # video_decode H264 --disable-rendering -o test.out f0.mpeg
Set governor to performance before enabling profiler
Failed to query video capabilities: Inappropriate ioctl for device
NvMMLiteOpen : Block : BlockType = 261
TVMR: NvMMLiteTVMRDecBlockOpen: 7647: NvMMLiteBlockOpen
NvMMLiteBlockCreate : Block : BlockType = 261
Starting decoder capture loop thread
TVMR: cbBeginSequence: 1179: BeginSequence 720x480, bVPR = 0
TVMR: LowCorner Frequency = 0
TVMR: cbBeginSequence: 1529: DecodeBuffers = 7, pnvsi->eCodec = 4, codec = 0
TVMR: cbBeginSequence: 1600: Display Resolution : (720x480)
TVMR: cbBeginSequence: 1601:[ 77.914651] arm-smmu 12000000.iommu: Unhandled context fault: iova=0x15a900000, fsynr=0x11, cb=9, sid=56(0x38 - (null)), pgd=0, pud=0, pmd=0, pte=0
Display Aspect Ratio : (654x480[ 77.931130] unknown mcerr fault, int_status=0x00001040, ch_int_status=0x00000200, hubc_int_status=0x00000000
)
TVMR: cbBeginSequence: 1669:[ 77.943644] unknown mcerr fault, int_status=0x00001040, ch_int_status=0x00000200, hubc_int_status=0x00000000
ColorFormat : 5
TVMR:[ 77.956210] unknown mcerr fault, int_status=0x00001040, ch_int_status=0x00000200, hubc_int_status=0x00000000
cbBeginSequence:1683 ColorSpace[ 77.968182] unknown mcerr fault, int_status=0x00001040, ch_int_status=0x00000200, hubc_int_status=0x00000000
= NvColorSpace_[ 77.980669] mc-err: Too many MC errors; throttling prints
YCbCr601
TVMR: cbBeginSequence: 1809: SurfaceLayout = 3
TVMR: cbBeginSequence: 1902: NumOfSurfaces = 14, InteraceStream = 1, InterlaceEnabled = 0, bSecure = 0, MVC = 0 Semiplanar = 1, bReinit = 1, BitDepthForSurface = 8 LumaBitDepth = 8, ChromaBitDepth = 8, ChromaFormat = 5
TVMR: cbBeginSequence: 1904: BeginSequence ColorPrimaries = 2, TransferCharacteristics = 2, MatrixCoefficients = 2
Video Resolution: 720x480
Format: 720x480
Query and set capture successful
Input file read complete
TVMR: NvMMLiteTVMRDecDoWork: 6531: NVMMLITE_TVMR: EOS detected
^C
~ # [ 88.017181] host1x 13e10000.host1x: cdma_handle_timeout: timeout: 6 (15480000.nvdec_video_decode_0) clientid 12, HW thresh 4, done 6
[ 88.029167] ---- mlocks ----
[ 88.032093] 19: locked by channel 0
[ 88.035618]
[ 88.037148] ---- syncpts ----
[ 88.040149] id 6 (15480000.nvdec_video_decode_0) min 4 max 10 refs 4 (previous client : 15340000.vic_video_decode_0)
[ 88.051489]
[ 88.052993] ---- channels ----
[ 88.056094]
[ 88.056094] channel 0 - 15480000.nvdec
[ 88.056094]
[ 88.062843] NvHost basic channel registers:
[ 88.067060] CMDFIFO_STAT_0: 00004000
[ 88.070753] CMDFIFO_RDATA_0: 00000041
[ 88.074451] CMDP_OFFSET_0: 00000050
[ 88.078144] CMDP_CLASS_0: 00000001
[ 88.081839] CHANNELSTAT_0: 00000000
[ 88.085545]
[ 88.085545] ffffffc1ca663000: JOB, syncpt_id=6, syncpt_val=6, first_get=000000a0, timeout=10000, num_slots=10
[ 88.096985] GATHER at 5a5f0000+0478, 144 words
[ 88.101791] 10100002 00000080 00000003 10100002 00000100 00000053 10100002 00000101 005a5170 10100002 00000140 005a50a0 10100002 00000102 005ab000 10100002 00000104 005a51a0 10100002 00000103 00000002 10100002 00000109 005a51e0 10100002 00000105 005a8000 10100002 00000106 005a5f00 10100002 00000108 005a50e0 10100002 0000010c 005a9000 10100002 0000011d 005a9600 10100002 0000010d 005ac000 10100002 0000011e 005ac600 10100002 0000010e 005a9000 10100002 0000011f 005a9600 10100002 0000010f 005a9000 10100002 00000120 005a9600 10100002 00000110 005a9000 10100002 00000121 005a9600 10100002 00000111 005a9000 10100002 00000122 005a9600 10100002 00000112 005a9000 10100002 00000123 005a9600 10100002 00000113 005a9000 10100002 00000124 005a9600 10100002 00000114 005a9000 10100002 00000125 005a9600 10100002 00000115 005a9000 10100002 00000126 005a9600 10100002 00000116 005a9000 10100002 00000127 005a9600 10100002 00000117 005a9000 10100002 00000128 005a9600 10100002 00000118 005a9000 10100002 00000129 005a9600 10100002 00000119 005a9000 10100002 0000012a 005a9600 10100002 0000011a 005a9000 10100002 0000012b 005a9600 10100002 0000011b 005a9000 10100002 0000012c 005a9600 10100002 0000011c 005a9000 10100002 0000012d 005a9600 10100002 0000010a 005a9000 10100002 0000010b 005a9600 10100002 000000c0 00000100
[ 88.217962] GATHER at 5a5f0000+06b8, 2 words
[ 88.222588] 20000001 00000406
[ 88.225676]
[ 88.227179]
[ 88.227179] channel 1 - 15820000.se
[ 88.227179]
[ 88.233631] NvHost basic channel registers:
[ 88.237823] CMDFIFO_STAT_0: 00002040
[ 88.241493] CMDFIFO_RDATA_0: 8501ae36
[ 88.245166] CMDP_OFFSET_0: 00000000
[ 88.248826] CMDP_CLASS_0: 00000000
[ 88.252494] CHANNELSTAT_0: 00000000
[ 88.256165] The CDMA sync queue is empty.
[ 88.260178]
[ 88.261685]
[ 88.261685] channel 2 - 15830000.se
[ 88.261685]
[ 88.268133] NvHost basic channel registers:
[ 88.272322] CMDFIFO_STAT_0: 00002040
[ 88.275997] CMDFIFO_RDATA_0: 04808b00
[ 88.279672] CMDP_OFFSET_0: 00000000
[ 88.283343] CMDP_CLASS_0: 00000000
[ 88.287012] CHANNELSTAT_0: 00000000
[ 88.290683] The CDMA sync queue is empty.
[ 88.294699]
[ 88.296195]
[ 88.296195] channel 3 - 15840000.se
[ 88.296195]
[ 88.302643] NvHost basic channel registers:
[ 88.306835] CMDFIFO_STAT_0: 00002040
[ 88.310505] CMDFIFO_RDATA_0: 1e61c06c
[ 88.314178] CMDP_OFFSET_0: 00000000
[ 88.317848] CMDP_CLASS_0: 00000000
[ 88.321517] CHANNELSTAT_0: 00000000
[ 88.325186] The CDMA sync queue is empty.
[ 88.329201]
[ 88.330700]
[ 88.330700] ---- host general irq ----
[ 88.330700]
[ 88.337413] sync_intc0mask = 0x00000001
[ 88.341258] sync_intmask = 0x50000003
[ 88.344918]
[ 88.344918] ---- host syncpt irq mask ----
[ 88.344918]
[ 88.351974]
[ 88.351974] ---- host syncpt irq status ----
[ 88.351974]
[ 88.359207] syncpt_thresh_cpu0_int_status(0) = 0x00000000
[ 88.364611] syncpt_thresh_cpu0_int_status(1) = 0x00000000
[ 88.370019] syncpt_thresh_cpu0_int_status(2) = 0x00000000
[ 88.375424] syncpt_thresh_cpu0_int_status(3) = 0x00000000
[ 88.380829] syncpt_thresh_cpu0_int_status(4) = 0x00000000
[ 88.386235] syncpt_thresh_cpu0_int_status(5) = 0x00000000
[ 88.391639] syncpt_thresh_cpu0_int_status(6) = 0x00000000
[ 88.397043] syncpt_thresh_cpu0_int_status(7) = 0x00000000
[ 88.402445] syncpt_thresh_cpu0_int_status(8) = 0x00000000
[ 88.407850] syncpt_thresh_cpu0_int_status(9) = 0x00000000
[ 88.413246] syncpt_thresh_cpu0_int_status(10) = 0x00000000
[ 88.418725] syncpt_thresh_cpu0_int_status(11) = 0x00000000
[ 88.424204] syncpt_thresh_cpu0_int_status(12) = 0x00000000
[ 88.429682] syncpt_thresh_cpu0_int_status(13) = 0x00000000
[ 88.435161] syncpt_thresh_cpu0_int_status(14) = 0x00000000
[ 88.440640] syncpt_thresh_cpu0_int_status(15) = 0x00000000
[ 88.446120] syncpt_thresh_cpu0_int_status(16) = 0x00000000
[ 88.451599] syncpt_thresh_cpu0_int_status(17) = 0x00000000
[ 88.477521] nvdec 15480000.nvdec: SYNCPT_ID 6
[ 88.482395] nvdec 15480000.nvdec: SYNCPT_VAL 6
[ 88.487267] nvdec 15480000.nvdec: FIRST_GET 0xa0
[ 88.492399] nvdec 15480000.nvdec: TIMEOUT 10000
[ 88.497617] nvdec 15480000.nvdec: NUM_SLOTS 10
[ 88.502576] nvdec 15480000.nvdec: NUM_HANDLES 11
[ 88.507539] nvdec 15480000.nvdec: SYNCPT_ID 6
[ 88.512410] nvdec 15480000.nvdec: SYNCPT_VAL 8
[ 88.517282] nvdec 15480000.nvdec: FIRST_GET 0xf0
[ 88.522415] nvdec 15480000.nvdec: TIMEOUT 10000
[ 88.527634] nvdec 15480000.nvdec: NUM_SLOTS 10
[ 88.532595] nvdec 15480000.nvdec: NUM_HANDLES 11
[ 88.537559] nvdec 15480000.nvdec: SYNCPT_ID 6
[ 88.542432] nvdec 15480000.nvdec: SYNCPT_VAL 10
[ 88.547391] nvdec 15480000.nvdec: FIRST_GET 0x140
[ 88.552609] nvdec 15480000.nvdec: TIMEOUT 10000
[ 88.557830] nvdec 15480000.nvdec: NUM_SLOTS 10
[ 88.562788] nvdec 15480000.nvdec: NUM_HANDLES 12

Any idea how to solve it?

Best regards,
Simon

Hi,
We will try to reproduce it. Would be great if you can share a test file.

Hi Dane,

thanks for your help.
Here you can find a testfile:

Best Regards,
Simon

Hi,
Please consider to upgrade to r28.3. This is known on r28.2.1:
Interlace decoding on Tegra X2 - #5 by DaneLLL