Fix Svace issue 21/312521/3 accepted/tizen/unified/20240703.100113 accepted/tizen/unified/dev/20240704.065538 accepted/tizen/unified/x/20240704.022947
authorJeongmo Yang <jm80.yang@samsung.com>
Tue, 11 Jun 2024 05:22:57 +0000 (14:22 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Tue, 11 Jun 2024 06:29:09 +0000 (15:29 +0900)
- UNREACHABLE_CODE.RET
- SEC_MALLOC_ALIGNMENT

[Version] 1.0.1
[Issue Type] Svace

Change-Id: I84ecfceb7cd7cbded0018fe86b8a437f8ffc28ae
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
include/media_codec_private.h
packaging/capi-media-codec.spec
src/media_codec.c
src/media_codec_internal.c
src/media_codec_port.c
src/media_codec_port_gst.c

index bc196ece129194d2a942f451a133a0d1f5df90cd..08cfecc124b1b7490e70e545c54c80a3ac301c79 100644 (file)
@@ -117,8 +117,6 @@ typedef struct _mediacodec_s {
        void* eos_cb_userdata;
        mediacodec_buffer_status_cb buffer_status_cb;
        void* buffer_status_cb_userdata;
-       mediacodec_supported_codec_cb supported_codec_cb;
-       void* supported_codec_cb_userdata;
 } mediacodec_s;
 
 bool __mediacodec_state_validate(mediacodec_h mediacodec, mediacodec_state_e threshold);
index c55971c83e1ff8d8d2057015279b1243312440b3..e41e2a0c333d6a23ddc5c9fd728868877cdb7df9 100644 (file)
@@ -4,8 +4,8 @@
 
 Name:       capi-media-codec
 Summary:    A Media Codec library in Tizen Native API
-Version:    1.0.0
-Release:    1
+Version:    1.0.1
+Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
 Source0:    %{name}-%{version}.tar.gz
index 60eb677981e905278dfbb0183d3a03e4649133f2..0e094fd88c0759fe04a6b5b6a6348644cdd9e309 100644 (file)
@@ -610,19 +610,13 @@ int mediacodec_unset_buffer_status_cb(mediacodec_h mediacodec)
 
 int mediacodec_foreach_supported_codec(mediacodec_h mediacodec, mediacodec_supported_codec_cb callback, void *user_data)
 {
-       MEDIACODEC_INSTANCE_CHECK(mediacodec);
-       mediacodec_s *handle = (mediacodec_s *)mediacodec;
-
-       handle->supported_codec_cb = callback;
-       handle->supported_codec_cb_userdata = user_data;
+       int ret = MC_ERROR_NONE;
 
-       LOGD("set supported_codec_cb(%p)", callback);
-       int ret = _mediacodec_foreach_supported_codec(callback, handle);
+       LOGD("supported_codec_cb(%p)", callback);
 
-       if (ret != MEDIACODEC_ERROR_NONE)
+       ret = _mediacodec_foreach_supported_codec(callback, user_data);
+       if (ret != MC_ERROR_NONE)
                return __convert_error_code(ret, (char *)__FUNCTION__);
-       else
-               return MEDIACODEC_ERROR_NONE;
 
        return MEDIACODEC_ERROR_NONE;
 
index 66af04d2835a1f3f7979f8b93c25c45f9e64b67b..757a8475e162940464e29119c7abbc12cfc819d6 100644 (file)
@@ -86,28 +86,25 @@ int __convert_error_code_internal(int code, char *func_name)
 
 int mediacodec_foreach_supported_codec_static(mediacodec_supported_codec_cb callback, void *user_data)
 {
-       int ret;
+       int ret = MC_ERROR_NONE;
 
        if (!mc_ini.loaded) {
                ret = mc_ini_load(&mc_ini);
                if (ret != MC_ERROR_NONE)
-                       goto ERROR;
+                       return MEDIACODEC_ERROR_INVALID_PARAMETER;
 
                mc_ini.loaded = TRUE;
        }
 
        _mc_create_codec_map_from_ini_static(&mc_ini, spec_emul);
 
-       LOGD("set supported_codec_cb(%p)", callback);
-       ret = _mediacodec_foreach_supported_codec(callback, user_data);
+       LOGD("supported_codec_cb(%p)", callback);
 
-       if (ret != MEDIACODEC_ERROR_NONE)
+       ret = _mediacodec_foreach_supported_codec(callback, user_data);
+       if (ret != MC_ERROR_NONE)
                return __convert_error_code_internal(ret, (char *)__FUNCTION__);
-       else
-               return MEDIACODEC_ERROR_NONE;
 
-ERROR:
-       return MEDIACODEC_ERROR_INVALID_PARAMETER;
+       return MEDIACODEC_ERROR_NONE;
 }
 
 int mediacodec_enable_extra_video_converter(mediacodec_h mediacodec, gboolean enable, const char *converter_name, int crop_x, int crop_y, int crop_w, int crop_h)
index b73685308922d34443db2fdcaf64b96e9e155aed..58ec20ceff65cc9cb3a772ff221b854ebfdf074e 100644 (file)
@@ -838,6 +838,11 @@ int _mediacodec_foreach_supported_codec(mediacodec_supported_codec_cb callback,
 
        gboolean codec[CODEC_NR_ITEMS] = {0,};
 
+       if (!callback) {
+               LOGE("NULL callback");
+               return MC_INVALID_ARG;
+       }
+
        for (i = 0; i < mc_ini.num_supported_codecs; i++) {
                index = (int)codec_type_to_simple_enumeration(spec_emul[i].codec_id);
                codec[index] = TRUE;
@@ -855,7 +860,7 @@ int _mediacodec_foreach_supported_codec(mediacodec_supported_codec_cb callback,
 
        LOGD("done");
 
-       return MEDIACODEC_ERROR_NONE;
+       return MC_ERROR_NONE;
 }
 
 int mc_get_packet_pool(MMHandleType mediacodec, media_packet_pool_h *pool)
index e2954ecea50d12212d8bc75410f766d2da8524df..1fd149d2b4ad30c17eca3d9f71a6930fcff1a4bf 100644 (file)
@@ -855,14 +855,16 @@ int __mc_set_caps_streamheader(mc_gst_core_t *core, GstMCBuffer *mcbuffer, guint
 
 int __mc_set_caps_codecdata(mc_gst_core_t *core, GstMCBuffer *mcbuffer, guint fixed_size)
 {
-       gint ret = MC_ERROR_NONE;
        uint32_t codec_data_size = 0;
        GstMapInfo map;
        GstBuffer *codecdata_buffer;
        guint8 *data = NULL;
        void *codec_data = NULL;
 
-       media_packet_get_codec_data(mcbuffer->packet, &codec_data, &codec_data_size);
+       if (media_packet_get_codec_data(mcbuffer->packet, &codec_data, &codec_data_size) != MEDIA_PACKET_ERROR_NONE) {
+               LOGE("get codec data from packet failed");
+               return MC_INTERNAL_ERROR;
+       }
 
        if (codec_data != NULL) {               /* get the codec data from media_packet_get_codec_data() */
                data = g_malloc0(codec_data_size);
@@ -903,7 +905,8 @@ int __mc_set_caps_codecdata(mc_gst_core_t *core, GstMCBuffer *mcbuffer, guint fi
                        gst_buffer_unmap(mcbuffer->buffer, &map);
                }
        }
-       return ret;
+
+       return MC_ERROR_NONE;
 }
 
 int _mc_output_media_packet_new(mc_gst_core_t *core, bool video, bool encoder, media_format_mimetype_e out_mime)
@@ -2133,55 +2136,51 @@ static gboolean __mc_gst_init_gstreamer()
        gint arg_count = 0;
        static gboolean initialized = FALSE;
        static const int max_argc = 50;
-       gint *argc = NULL;
+       gint argc = 0;
        gchar **argv = NULL;
        gchar **argv2 = NULL;
        GError *err = NULL;
 
        if (initialized) {
-               LOGD("gstreamer already initialized.\n");
+               LOGD("gstreamer already initialized.");
                return TRUE;
        }
 
        /* alloc */
-       argc = malloc(sizeof(int));
        argv = malloc(sizeof(gchar *) *max_argc);
        argv2 = malloc(sizeof(gchar *) *max_argc);
 
-       if (!argc || !argv || !argv2)
+       if (!argv || !argv2)
                goto ERROR;
 
        memset(argv, 0, sizeof(gchar *) *max_argc);
        memset(argv2, 0, sizeof(gchar *) *max_argc);
 
        /* add initial */
-       *argc = 1;
+       argc = 1;
        argv[0] = g_strdup("media codec");
 
        /* we would not do fork for scanning plugins */
-       argv[*argc] = g_strdup("--gst-disable-registry-fork");
-       (*argc)++;
+       argv[argc++] = g_strdup("--gst-disable-registry-fork");
 
        /* check disable registry scan */
-       argv[*argc] = g_strdup("--gst-disable-registry-update");
-       (*argc)++;
+       argv[argc++] = g_strdup("--gst-disable-registry-update");
 
        /* check disable segtrap */
-       argv[*argc] = g_strdup("--gst-disable-segtrap");
-       (*argc)++;
+       argv[argc++] = g_strdup("--gst-disable-segtrap");
 
-       LOGD("initializing gstreamer with following parameter\n");
-       LOGD("argc : %d\n", *argc);
-       arg_count = *argc;
+       LOGD("initializing gstreamer with following parameter");
+       LOGD("argc : %d", argc);
+       arg_count = argc;
 
        for (i = 0; i < arg_count; i++) {
                argv2[i] = argv[i];
-               LOGD("argv[%d] : %s\n", i, argv2[i]);
+               LOGD("argv[%d] : %s", i, argv2[i]);
        }
 
        /* initializing gstreamer */
-       if (!gst_init_check(argc, &argv, &err)) {
-               LOGE("Could not initialize GStreamer: %s\n", err ? err->message : "unknown error occurred");
+       if (!gst_init_check(&argc, &argv, &err)) {
+               LOGE("Could not initialize GStreamer: %s", err ? err->message : "unknown error occurred");
                if (err)
                        g_error_free(err);
 
@@ -2194,7 +2193,6 @@ static gboolean __mc_gst_init_gstreamer()
 
        MC_FREEIF(argv);
        MC_FREEIF(argv2);
-       MC_FREEIF(argc);
 
        /* done */
        initialized = TRUE;
@@ -2205,13 +2203,12 @@ static gboolean __mc_gst_init_gstreamer()
 ERROR:
        /* release */
        for (i = 0; i < arg_count; i++) {
-               LOGD("free[%d] : %s\n", i, argv2[i]);
+               LOGD("free[%d] : %s", i, argv2[i]);
                MC_FREEIF(argv2[i]);
        }
 
        MC_FREEIF(argv);
        MC_FREEIF(argv2);
-       MC_FREEIF(argc);
 
        return FALSE;
 }