I found that there may be memory leaks when creating/destroying multiple H.264 encoder instances.
The version of DVSDK is 4.0 and the H.264 encoder is 02_10_00_06.
I attached the /proc/cmem log file.
cmem_step0_nothing.txt : Application started. No encoder is created
cmem_step1_D1_created.txt: After A D1 H.264 encoder is created.
cmem_step2_D1_destroyed.txt: After the D1 H.264 encoder is destroyed. Comparing step0/step2, we can see no memory leaks for single instance.
cmem_step3_D1_CIF_created.txt: First a CIF H.264 encoder, then a D1 H.264 encoder created.
cmem_step4_D1_CIF_destroyed.txt: First the D1 H.264 encoder , then the CIF H.264 encoder is destroyed. Comparing step0/step4, we can see many pools in cmem is NOT freed for multiple instances.
After several times for creating/destorying multiple encoders, at last we got failure to create encoder with error message:
CMEM Error: getPool: Failed to get a pool fitting a size 56
The h.264 encoder is created by calling DMAI function Engine_open/Venc1_create, and destroyed by calling Venc1_detele/Engine_close.
Regards.
lcj