From 5a1179359c3555906e0c5c4055c91cae1e784d7a Mon Sep 17 00:00:00 2001 From: Sejun Park Date: Mon, 17 Apr 2017 16:39:13 +0900 Subject: [PATCH] fixed svace issues Change-Id: I4bbd1ea2063ff006b12e17e9e05e39d7c3ac789e --- src/media_codec_port_gst.c | 17 +++++++++-------- test/media_codec_test.c | 25 +++++++++++++++++++------ 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/src/media_codec_port_gst.c b/src/media_codec_port_gst.c index 71a3749..cb8f751 100755 --- a/src/media_codec_port_gst.c +++ b/src/media_codec_port_gst.c @@ -1810,7 +1810,6 @@ static gboolean __mc_gst_init_gstreamer() return TRUE; ERROR: - /* release */ for (i = 0; i < arg_count; i++) { LOGD("free[%d] : %s\n", i, argv2[i]); @@ -2738,21 +2737,19 @@ static void _mc_gst_set_flush_output(mc_gst_core_t *core) } #ifdef TIZEN_PROFILE_LITE -int __tbm_get_physical_addr_bo(tbm_bo_handle tbm_bo_handle_fd_t, int *phy_addr, int *phy_size) +int __tbm_get_physical_addr_bo(tbm_bo_handle handle_bo, int *phy_addr, int *phy_size) { - int tbm_bo_handle_fd; - int ret = 0; - - tbm_bo_handle_fd = tbm_bo_handle_fd_t.u32; - int open_flags = O_RDWR; int ion_fd = -1; struct ion_mmu_data mmu_data; struct ion_custom_data custom_data; - mmu_data.fd_buffer = tbm_bo_handle_fd; + memset(&mmu_data, 0x0, sizeof(ion_mmu_data)); + memset(&custom_data, 0x0, sizeof(ion_custom_data)); + + mmu_data.fd_buffer = handle_bo.u32; custom_data.cmd = 4; custom_data.arg = (unsigned long)&mmu_data; @@ -3199,6 +3196,7 @@ mc_ret_e mc_gst_get_packet_pool(mc_handle_t *mc_handle, media_packet_pool_h *pac if (media_format_create(&fmt_handle) != MEDIA_FORMAT_ERROR_NONE) { LOGE("media format create failed"); + media_packet_pool_destroy(pool); return MC_ERROR; } @@ -3232,6 +3230,7 @@ mc_ret_e mc_gst_get_packet_pool(mc_handle_t *mc_handle, media_packet_pool_h *pac ret = media_packet_pool_set_media_format(pool, fmt_handle); if (ret != MEDIA_PACKET_ERROR_NONE) { + media_packet_pool_destroy(pool); LOGE("media_packet_pool_set_media_format failed"); return MC_ERROR; } @@ -3242,12 +3241,14 @@ mc_ret_e mc_gst_get_packet_pool(mc_handle_t *mc_handle, media_packet_pool_h *pac min_size = max_size; ret = media_packet_pool_set_size(pool, min_size, max_size); if (ret != MEDIA_PACKET_ERROR_NONE) { + media_packet_pool_destroy(pool); LOGE("media_packet_pool_set_size failed"); return MC_ERROR; } ret = media_packet_pool_allocate(pool); if (ret != MEDIA_PACKET_ERROR_NONE) { + media_packet_pool_destroy(pool); LOGE("media_packet_pool_allocate failed"); return MC_OUT_OF_MEMORY; } diff --git a/test/media_codec_test.c b/test/media_codec_test.c index 2ace30b..c9dad16 100755 --- a/test/media_codec_test.c +++ b/test/media_codec_test.c @@ -416,7 +416,7 @@ void mpeg4_extractor(App * app, unsigned char **data, int *size, bool * have_fra goto DONE; } if (!bType) { - if (have_frame && val == 0xB0) + if (val == 0xB0) *have_frame = TRUE; } bType = val; @@ -608,17 +608,20 @@ void mp3dec_extractor(App *app, unsigned char **data, int *size, bool *have_fram if (header == 0) { g_print ("[ERROR] read header size is 0\n"); *have_frame = FALSE; + return; } /* if it's not a valid sync */ if ((header & 0xffe00000) != 0xffe00000) { g_print ("[ERROR] invalid sync\n"); *have_frame = FALSE; + return; } if (((header >> 19) & 3) == 0x1) { g_print ("[ERROR] invalid MPEG version: %d\n", (header >> 19) & 3); *have_frame = FALSE; + return; } else { if (header & (1 << 20)) { lsf = (header & (1 << 19)) ? 0 : 1; @@ -633,20 +636,28 @@ void mp3dec_extractor(App *app, unsigned char **data, int *size, bool *have_fram if (!((header >> 17) & 3)) { g_print("[ERROR] invalid layer: %d\n", (header >> 17) & 3); *have_frame = FALSE; + return; } else { layer = 4 - ((header >> 17) & 0x3); + + if (layer < 1) { + *have_frame = FALSE; + return; + } } /* if it's an invalid bitrate */ if (((header >> 12) & 0xf) == 0xf) { g_print ("[ERROR] invalid bitrate: %d\n", (header >> 12) & 0xf); *have_frame = FALSE; + return; } else { bitrate = (header >> 12) & 0xF; hdr_bitrate = mp3types_bitrates[lsf][layer - 1][bitrate] * 1000; /* The caller has ensured we have a valid header, so bitrate can't be zero here. */ if (hdr_bitrate == 0) *have_frame = FALSE; + return; } /* if it's an invalid samplerate */ @@ -1749,7 +1760,9 @@ static void interpret(char *cmd, App *app) case CURRENT_STATUS_PROCESS_INPUT: { app->frame = atoi(cmd); - _mediacodec_process_input(app); + + if (app->frame > 0) + _mediacodec_process_input(app); reset_menu_state(); } break; @@ -1871,11 +1884,11 @@ static void decoder_output_dump(App *app, media_packet_h pkt) void *temp; int i = 0; int stride_width, stride_height; - char filename[100] = {0}; + gchar filename[100] = {0}; FILE *fp = NULL; int ret = 0; - sprintf(filename, "/tmp/dec_output_dump_%d_%d.yuv", app->width, app->height); + g_snprintf(filename, MAX_STRING_LEN, "/tmp/dec_output_dump_%d_%d.yuv", app->width, app->height); fp = fopen(filename, "ab"); media_packet_get_video_plane_data_ptr(pkt, 0, &temp); @@ -1957,12 +1970,12 @@ static void output_dump(App *app, media_packet_h pkt) { void *temp; uint64_t buf_size; - char filename[100] = {0}; + gchar filename[100] = {0}; FILE *fp = NULL; int ret = 0; char adts[100] = {0, }; - sprintf(filename, "/tmp/dec_output_dump_%d.out", app->type); + g_snprintf(filename, MAX_STRING_LEN, "/tmp/dec_output_dump_%d.out", app->type); fp = fopen(filename, "ab"); media_packet_get_buffer_data_ptr(pkt, &temp); -- 2.7.4