fixed svace issues 87/125387/5
authorSejun Park <sejun79.park@samsung.com>
Mon, 17 Apr 2017 07:39:13 +0000 (16:39 +0900)
committerSejun Park <sejun79.park@samsung.com>
Wed, 19 Apr 2017 05:16:02 +0000 (14:16 +0900)
Change-Id: I4bbd1ea2063ff006b12e17e9e05e39d7c3ac789e

src/media_codec_port_gst.c
test/media_codec_test.c

index 71a3749..cb8f751 100755 (executable)
@@ -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;
        }
index 2ace30b..c9dad16 100755 (executable)
@@ -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);