Revise codes releasing ini setting 39/238739/6
authorSangchul Lee <sc11.lee@samsung.com>
Fri, 17 Jul 2020 02:33:50 +0000 (11:33 +0900)
committerSangchul Lee <sc11.lee@samsung.com>
Tue, 21 Jul 2020 03:43:33 +0000 (12:43 +0900)
[Version] 0.1.99
[Issue Type] Improvement

Change-Id: Ia38dde47223b954079563a6620b5553a37a0f738
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
include/media_streamer_util.h
packaging/capi-media-streamer.spec
src/media_streamer_gst.c
src/media_streamer_priv.c
src/media_streamer_util.c

index 97a0ee4..0eaa0f5 100644 (file)
@@ -280,6 +280,11 @@ gboolean ms_ini_get_boolean(const char *ini_path, gboolean default_value);
 void ms_ini_read_list(const char *key, gchar ***list);
 
 /**
+ * @brief Unloads media streamer settings from ini file.
+ */
+void ms_unload_ini_settings(media_streamer_ini_t *ini);
+
+/**
  * @brief Converts Media Format mime type into Caps media format string for audio.
  */
 const gchar *ms_convert_audio_mime_to_string_format(media_format_mimetype_e mime);
index dee0fc4..a8dee9b 100644 (file)
@@ -1,6 +1,6 @@
 Name:       capi-media-streamer
 Summary:    A Media Streamer API
-Version:    0.1.98
+Version:    0.1.99
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index 56a9a97..25a52dc 100644 (file)
@@ -2153,10 +2153,6 @@ static int __ms_gstreamer_init(media_streamer_s *ms_streamer)
 
        gst_ret = gst_init_check(argc, &argv, &err);
 
-       /* Clean memory of gstreamer arguments*/
-       g_strfreev(ms_streamer->ini.gst_args);
-       ms_streamer->ini.gst_args = NULL;
-
        for (i = 1; i < *argc; i++)
                argv[i] = NULL;
 
index 5340676..3ade6c9 100644 (file)
@@ -257,18 +257,6 @@ int ms_destroy(media_streamer_s *ms_streamer)
        g_mutex_lock(&ms_streamer->mutex_lock);
 
        ret = ms_set_state(ms_streamer, MEDIA_STREAMER_STATE_NONE);
-       MS_TABLE_SAFE_UNREF(ms_streamer->nodes_table);
-
-       MS_SAFE_UNREF(ms_streamer->bus);
-       MS_SAFE_UNREF(ms_streamer->pipeline);
-
-       /* Clean up exclude elements list */
-       if (ms_streamer->ini.exclude_elem_names)
-               g_strfreev(ms_streamer->ini.exclude_elem_names);
-
-       /* Clean up resource required elements list */
-       if (ms_streamer->ini.resource_required_elem_names)
-               g_strfreev(ms_streamer->ini.resource_required_elem_names);
 
        if (MM_RESOURCE_MANAGER_ERROR_NONE !=
                mm_resource_manager_destroy(ms_streamer->resource_manager)) {
@@ -277,6 +265,12 @@ int ms_destroy(media_streamer_s *ms_streamer)
                return MEDIA_STREAMER_ERROR_INVALID_OPERATION;
        }
 
+       MS_TABLE_SAFE_UNREF(ms_streamer->nodes_table);
+       MS_SAFE_UNREF(ms_streamer->bus);
+       MS_SAFE_UNREF(ms_streamer->pipeline);
+
+       ms_unload_ini_settings(&ms_streamer->ini);
+
        g_mutex_unlock(&ms_streamer->mutex_lock);
        g_mutex_clear(&ms_streamer->mutex_lock);
        MS_SAFE_FREE(ms_streamer);
index d59ab93..6c76fcd 100644 (file)
@@ -223,6 +223,25 @@ void ms_load_ini_settings(media_streamer_ini_t *ini)
 
 }
 
+void ms_unload_ini_settings(media_streamer_ini_t *ini)
+{
+       dictionary *dict;
+
+       ms_retm_if(!ini, "ini is null");
+
+       /* Clean up exclude elements list */
+       g_strfreev(ini->exclude_elem_names);
+
+       /* Clean up resource required elements list */
+       g_strfreev(ini->resource_required_elem_names);
+
+       /* Clean up gstreamer arguments list */
+       g_strfreev(ini->gst_args);
+
+       if ((dict = __ms_get_ini_instance()))
+               iniparser_freedict(dict);
+}
+
 static const gchar *__ms_find_item(const format_s table[], media_format_mimetype_e mime)
 {
        int index;