summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSunita Nadampalli2020-08-30 22:53:39 -0500
committerSunita Nadampalli2020-08-30 22:53:39 -0500
commit4534e962d6c7bf92979ab975c88455f78768cd44 (patch)
tree56f942dc0472b0a21049f0771ec584fab88461f9
parenta1f745ddc852ef89ab65e99ff7163c2c732fc745 (diff)
downloadti-img-encode-decode-4534e962d6c7bf92979ab975c88455f78768cd44.tar.gz
ti-img-encode-decode-4534e962d6c7bf92979ab975c88455f78768cd44.tar.xz
ti-img-encode-decode-4534e962d6c7bf92979ab975c88455f78768cd44.zip
encoder: fix mmu leak for encoder input and output buffers
This patch fixes mmu leak for input and output buffers by calling mmau unmap call for all the registered buffers. Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
-rw-r--r--timmlib/encoder/mm_enc_create.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/timmlib/encoder/mm_enc_create.c b/timmlib/encoder/mm_enc_create.c
index f6659e2..1dd0d41 100644
--- a/timmlib/encoder/mm_enc_create.c
+++ b/timmlib/encoder/mm_enc_create.c
@@ -903,16 +903,21 @@ int32_t MM_ENC_Destroy(uint32_t chId)
903 osa_free(ctx->above_mb_params_sgt[0].sgl); 903 osa_free(ctx->above_mb_params_sgt[0].sgl);
904 osa_free(ctx->above_mb_params_sgt[1].sgl); 904 osa_free(ctx->above_mb_params_sgt[1].sgl);
905 905
906 /* unmap all i/o buffers */
907 for(i = 0; i <= mm_buf->vxe_buf_index; i++)
908 {
909 if(mm_buf->vxe_buf[i])
910 {
911 topaz_stream_unmap_buf_sg(ctx->topaz_str_context, &mm_buf->vxe_buf[i]->buf_info);
912 osa_free(mm_buf->vxe_buf[i]);
913 }
914 }
915
906 if (ctx->s_fmt_flags & S_FMT_FLAG_STREAM_CREATED) 916 if (ctx->s_fmt_flags & S_FMT_FLAG_STREAM_CREATED)
907 topaz_stream_destroy(ctx->topaz_str_context); 917 topaz_stream_destroy(ctx->topaz_str_context);
908 918
909 ctx->topaz_str_context = NULL; 919 ctx->topaz_str_context = NULL;
910 920
911
912 for(i=0; i < mm_buf->vxe_buf_index; i++)
913 {
914 osa_free(mm_buf->vxe_buf[i]);
915 }
916 mm_buf->vxe_buf_index = 0; 921 mm_buf->vxe_buf_index = 0;
917 g_MM_ENC_Inst.ch_obj[chId].ch_id = 0x7FFFFFFFU; 922 g_MM_ENC_Inst.ch_obj[chId].ch_id = 0x7FFFFFFFU;
918 g_MM_ENC_Inst.ch_obj[chId].is_used = 0U; 923 g_MM_ENC_Inst.ch_obj[chId].is_used = 0U;