int __ms_pipeline_create(media_streamer_s *ms_streamer)
{
- GError *err = NULL;
int ret = MEDIA_STREAMER_ERROR_NONE;
int *argc = NULL;
char **argv = NULL;
+ GError *err = NULL;
gboolean gst_ret = 0;
+ int i = 0;
ms_debug_fenter();
return MEDIA_STREAMER_ERROR_INVALID_OPERATION;
}
+ /* get argc(number of command line option), argc is always one widthout option */
*argc = 1;
if (ms_streamer->ini.gst_args)
- (*argc) += g_strv_length(ms_streamer->ini.gst_args);
+ (*argc) += g_strv_length(ms_streamer->ini.gst_args); /* default is "--gst-debug = 2 */
argv = (char **)calloc(*argc, sizeof(char*));
if (!argv) {
argv[0] = g_strdup("MediaStreamer");
if (ms_streamer->ini.gst_args) {
- int i = 0;
for ( ; ms_streamer->ini.gst_args[i]; ++i) {
if (*argc <= i+1) {
ms_error("need to check, prevent overrun");
}
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;
- MS_SAFE_FREE(argv[0]);
+
+ for (i = 1; i < *argc; i++)
+ argv[i] = NULL;
+
+ MS_SAFE_GFREE(argv[0]);
MS_SAFE_FREE(argv);
MS_SAFE_FREE(argc);