diff options
author | Sunita Nadampalli | 2020-08-30 22:53:39 -0500 |
---|---|---|
committer | Sunita Nadampalli | 2020-08-30 22:53:39 -0500 |
commit | 4534e962d6c7bf92979ab975c88455f78768cd44 (patch) | |
tree | 56f942dc0472b0a21049f0771ec584fab88461f9 | |
parent | a1f745ddc852ef89ab65e99ff7163c2c732fc745 (diff) | |
download | ti-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.c | 15 |
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; |