From 946aace685bef4ebcc2b05c82ba619a3925e3856 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 12 Dec 2001 13:04:05 +0000 Subject: [PATCH] Some code cleanups. Original commit message from CVS: Some code cleanups. --- gst/gstparse.c | 600 +++++++++++++++++++++++++------------------------ 1 file changed, 309 insertions(+), 291 deletions(-) diff --git a/gst/gstparse.c b/gst/gstparse.c index 8b6ece39a6..eb16f53232 100644 --- a/gst/gstparse.c +++ b/gst/gstparse.c @@ -35,7 +35,8 @@ #include "gstutils.h" typedef struct _gst_parse_priv gst_parse_priv; -struct _gst_parse_priv { +struct _gst_parse_priv +{ guint bincount; guint threadcount; gint binlevel; @@ -45,41 +46,24 @@ struct _gst_parse_priv { }; typedef struct _gst_parse_delayed_pad gst_parse_delayed_pad; -struct _gst_parse_delayed_pad { +struct _gst_parse_delayed_pad +{ gchar *name; GstPad *peer; }; -/* FIXME need to either revive this, or have pad->padtemplate connections in core -static void -gst_parse_newpad(GstElement *element,GstPad *pad,launch_delayed_pad *peer) +typedef struct { - gst_info("have NEW_PAD signal\n"); - // if it matches, connect it - if (!strcmp(GST_PAD_NAME(pad),peer->name)) { - gst_pad_connect(pad,peer->peer); - gst_info("delayed connect of '%s' to '%s'\n", - GST_PAD_NAME(pad),GST_PAD_NAME(peer->peer)); - } -} -*/ - -typedef struct { gchar *srcpadname; GstPad *target; GstElement *pipeline; -} dyn_connect; - -static void have_eos (void) -{ - DEBUG ("I have eos on the first element\n"); - exit (0); } +dyn_connect; static void -dynamic_connect (GstElement *element, GstPad *newpad, gpointer data) +dynamic_connect (GstElement * element, GstPad * newpad, gpointer data) { - dyn_connect *connect = (dyn_connect *)data; + dyn_connect *connect = (dyn_connect *) data; if (!strcmp (gst_pad_get_name (newpad), connect->srcpadname)) { gst_element_set_state (connect->pipeline, GST_STATE_PAUSED); @@ -89,23 +73,23 @@ dynamic_connect (GstElement *element, GstPad *newpad, gpointer data) } static gchar * -gst_parse_unique_name(gchar *type,gst_parse_priv *priv) +gst_parse_unique_name (gchar * type, gst_parse_priv * priv) { gpointer tmp; gint count; - tmp = g_hash_table_lookup (priv->elementcounts,type); + tmp = g_hash_table_lookup (priv->elementcounts, type); count = GPOINTER_TO_INT (tmp); count++; - g_hash_table_insert(priv->elementcounts,type,GINT_TO_POINTER(count)); + g_hash_table_insert (priv->elementcounts, type, GINT_TO_POINTER (count)); - return g_strdup_printf("%s%d",type,count-1); + return g_strdup_printf ("%s%d", type, count - 1); } static gint -gst_parse_launch_cmdline(int argc,char *argv[],GstBin *parent,gst_parse_priv *priv) +gst_parse_launch_cmdline (int argc, char *argv[], GstBin * parent, gst_parse_priv * priv) { gint i = 0, j = 0; gchar *arg; @@ -123,314 +107,348 @@ gst_parse_launch_cmdline(int argc,char *argv[],GstBin *parent,gst_parse_priv *pr priv->binlevel++; - if (GST_IS_PIPELINE(parent)) { closingchar = '\0';DEBUG("in pipeline "); } - else if (GST_IS_THREAD(parent)) { closingchar = '}';DEBUG("in thread "); } - else { closingchar = ')';DEBUG("in bin "); } - DEBUG_NOPREFIX("%s\n",GST_ELEMENT_NAME (GST_ELEMENT (parent))); + if (GST_IS_PIPELINE (parent)) { + closingchar = '\0'; + DEBUG ("in pipeline "); + } + else if (GST_IS_THREAD (parent)) { + closingchar = '}'; + DEBUG ("in thread "); + } + else { + closingchar = ')'; + DEBUG ("in bin "); + } + DEBUG_NOPREFIX ("%s\n", GST_ELEMENT_NAME (GST_ELEMENT (parent))); while (i < argc) { arg = argv[i]; // FIXME this is a lame solution for problems with the first parser - if (arg == NULL) { i++;continue; } - len = strlen(arg); + if (arg == NULL) { + i++; + continue; + } + len = strlen (arg); element = NULL; - DEBUG("** ARGUMENT is '%s'\n",arg); + DEBUG ("** ARGUMENT is '%s'\n", arg); // a null that slipped through the reconstruction if (len == 0) { - DEBUG("random arg, FIXME\n"); + DEBUG ("random arg, FIXME\n"); i++; continue; - // end of the container - } else if (arg[0] == closingchar) { + // end of the container + } + else if (arg[0] == closingchar) { // time to finish off this bin - DEBUG("exiting container %s\n",GST_ELEMENT_NAME (GST_ELEMENT (parent))); - retval = i+1; + DEBUG ("exiting container %s\n", GST_ELEMENT_NAME (GST_ELEMENT (parent))); + retval = i + 1; break; - // a pad connection - } else if ((ptr = strchr(arg,'!'))) { - DEBUG("attempting to connect pads together....\n"); + // a pad connection + } + else if ((ptr = strchr (arg, '!'))) { + DEBUG ("attempting to connect pads together....\n"); // if it starts with the ! if (arg[0] == '!') { - srcpadname = NULL; - // if there's a sinkpad... - if (len > 1) - sinkpadname = &arg[1]; - else - sinkpadname = NULL; - } else { - srcpadname = g_strndup(arg,(ptr-arg)); - // if there's a sinkpad - if (len > (ptr-arg)+1) - sinkpadname = &ptr[1]; - else - sinkpadname = NULL; + srcpadname = NULL; + // if there's a sinkpad... + if (len > 1) + sinkpadname = &arg[1]; + else + sinkpadname = NULL; + } + else { + srcpadname = g_strndup (arg, (ptr - arg)); + // if there's a sinkpad + if (len > (ptr - arg) + 1) + sinkpadname = &ptr[1]; + else + sinkpadname = NULL; } - GST_DEBUG(0,"have srcpad %s, sinkpad %s\n",srcpadname,sinkpadname); + GST_DEBUG (0, "have srcpad %s, sinkpad %s\n", srcpadname, sinkpadname); - g_slist_free(srcpads); + g_slist_free (srcpads); srcpads = NULL; - numsrcpads=0; - tempname=NULL; + numsrcpads = 0; + tempname = NULL; // find src pads if (srcpadname != NULL) { - while (1){ - // split name at commas - if ((ptr = strchr(srcpadname,','))){ - tempname = g_strndup(srcpadname,(ptr-srcpadname)); - srcpadname = &ptr[1]; - } else { - tempname = srcpadname; - } - - // look for pad with that name - if ((temppad = gst_element_get_pad(previous,tempname))){ - srcpads = g_slist_append(srcpads,temppad); - numsrcpads++; - } - - // try to create a pad using that padtemplate name - else if ((temppad = gst_element_request_pad_by_name(previous,tempname))) { - srcpads = g_slist_append(srcpads,temppad); - numsrcpads++; - } - if (!temppad) { - GST_DEBUG(0,"NO SUCH pad %s in element %s\n",tempname,GST_ELEMENT_NAME(previous)); - } else { - GST_DEBUG(0,"have src pad %s:%s\n",GST_DEBUG_PAD_NAME(temppad)); - } - - // if there is no more commas in srcpadname then we're done - if (tempname == srcpadname) break; - g_free(tempname); - } + while (1) { + // split name at commas + if ((ptr = strchr (srcpadname, ','))) { + tempname = g_strndup (srcpadname, (ptr - srcpadname)); + srcpadname = &ptr[1]; + } + else { + tempname = srcpadname; + } + + // look for pad with that name + if ((temppad = gst_element_get_pad (previous, tempname))) { + srcpads = g_slist_append (srcpads, temppad); + numsrcpads++; + } + + // try to create a pad using that padtemplate name + else if ((temppad = gst_element_request_pad_by_name (previous, tempname))) { + srcpads = g_slist_append (srcpads, temppad); + numsrcpads++; + } + if (!temppad) { + GST_DEBUG (0, "NO SUCH pad %s in element %s\n", tempname, GST_ELEMENT_NAME (previous)); + } + else { + GST_DEBUG (0, "have src pad %s:%s\n", GST_DEBUG_PAD_NAME (temppad)); + } + + // if there is no more commas in srcpadname then we're done + if (tempname == srcpadname) + break; + g_free (tempname); + } } else { - // check through the list to find the first sink pad - GST_DEBUG(0,"CHECKING through element %s for pad named %s\n",GST_ELEMENT_NAME(previous),srcpadname); - pads = gst_element_get_pad_list(previous); - while (pads) { - temppad = GST_PARSE_LISTPAD(pads); - GST_DEBUG(0,"have pad %s:%s\n",GST_DEBUG_PAD_NAME(temppad)); - if (GST_IS_GHOST_PAD(temppad)) GST_DEBUG(0,"it's a ghost pad\n"); - if (gst_pad_get_direction (temppad) == GST_PAD_SRC){ - srcpads = g_slist_append(srcpads,temppad); - numsrcpads++; - break; - } - pads = g_list_next (pads); - } - if (!srcpads) GST_DEBUG(0,"error, can't find a src pad!!!\n"); - else GST_DEBUG(0,"have src pad %s:%s\n",GST_DEBUG_PAD_NAME(GST_PARSE_LISTPAD(srcpads))); + // check through the list to find the first sink pad + GST_DEBUG (0, "CHECKING through element %s for pad named %s\n", GST_ELEMENT_NAME (previous), + srcpadname); + pads = gst_element_get_pad_list (previous); + while (pads) { + temppad = GST_PARSE_LISTPAD (pads); + GST_DEBUG (0, "have pad %s:%s\n", GST_DEBUG_PAD_NAME (temppad)); + if (GST_IS_GHOST_PAD (temppad)) + GST_DEBUG (0, "it's a ghost pad\n"); + if (gst_pad_get_direction (temppad) == GST_PAD_SRC) { + srcpads = g_slist_append (srcpads, temppad); + numsrcpads++; + break; + } + pads = g_list_next (pads); + } + if (!srcpads) + GST_DEBUG (0, "error, can't find a src pad!!!\n"); + else + GST_DEBUG (0, "have src pad %s:%s\n", GST_DEBUG_PAD_NAME (GST_PARSE_LISTPAD (srcpads))); } - // argument with = in it - } else if (strstr(arg, "=")) { - gchar * argname; - gchar * argval; - gchar * pos = strstr(arg, "="); + // argument with = in it + } + else if (strstr (arg, "=")) { + gchar *argname; + gchar *argval; + gchar *pos = strstr (arg, "="); + // we have an argument argname = arg; pos[0] = '\0'; - argval = pos+1; - - GST_DEBUG(0,"attempting to set argument '%s' to '%s' on element '%s'\n", - argname,argval,GST_ELEMENT_NAME(previous)); - gst_util_set_object_arg (G_OBJECT(previous), argname, argval); - g_free(argname); + argval = pos + 1; - // element or argument, or beginning of bin or thread - } else if (arg[0] == '[') { + GST_DEBUG (0, "attempting to set argument '%s' to '%s' on element '%s'\n", + argname, argval, GST_ELEMENT_NAME (previous)); + gst_util_set_object_arg (G_OBJECT (previous), argname, argval); + g_free (argname); + + // element or argument, or beginning of bin or thread + } + else if (arg[0] == '[') { // we have the start of a name of the preceding element. // rename previous element to next arg. if (arg[1] != '\0') { - fprintf(stderr,"error, unexpected junk after [\n"); - return GST_PARSE_ERROR_SYNTAX; + fprintf (stderr, "error, unexpected junk after [\n"); + return GST_PARSE_ERROR_SYNTAX; } i++; if (i < argc) { - gst_element_set_name(previous, argv[i]); - } else { - fprintf(stderr,"error, expected element name, found end of arguments\n"); - return GST_PARSE_ERROR_SYNTAX; + gst_element_set_name (previous, argv[i]); + } + else { + fprintf (stderr, "error, expected element name, found end of arguments\n"); + return GST_PARSE_ERROR_SYNTAX; } i++; if (i >= argc) { - fprintf(stderr,"error, expected ], found end of arguments\n"); - return GST_PARSE_ERROR_SYNTAX; - } else if (strcmp(argv[i], "]") != 0) { - fprintf(stderr,"error, expected ], found '%s'\n", argv[i]); - return GST_PARSE_ERROR_SYNTAX; + fprintf (stderr, "error, expected ], found end of arguments\n"); + return GST_PARSE_ERROR_SYNTAX; } - } else { - DEBUG("have element or bin/thread\n"); + else if (strcmp (argv[i], "]") != 0) { + fprintf (stderr, "error, expected ], found '%s'\n", argv[i]); + return GST_PARSE_ERROR_SYNTAX; + } + } + else { + DEBUG ("have element or bin/thread\n"); // if we have a bin or thread starting - if (strchr("({",arg[0])) { - if (arg[0] == '(') { - // create a bin and add it to the current parent - element = gst_bin_new(g_strdup_printf("bin%d",priv->bincount++)); - if (!element) { - fprintf(stderr,"Couldn't create a bin!\n"); - return GST_PARSE_ERROR_CREATING_ELEMENT; - } - GST_DEBUG(0,"CREATED bin %s\n",GST_ELEMENT_NAME(element)); - } else if (arg[0] == '{') { - // create a thread and add it to the current parent - element = gst_thread_new(g_strdup_printf("thread%d",priv->threadcount++)); - if (!element) { - fprintf(stderr,"Couldn't create a thread!\n"); - return GST_PARSE_ERROR_CREATING_ELEMENT; - } - GST_DEBUG(0,"CREATED thread %s\n",GST_ELEMENT_NAME(element)); - } else { - DEBUG("error in parser, unexpected symbol, FIXME\n"); + if (strchr ("({", arg[0])) { + if (arg[0] == '(') { + // create a bin and add it to the current parent + element = gst_bin_new (g_strdup_printf ("bin%d", priv->bincount++)); + if (!element) { + fprintf (stderr, "Couldn't create a bin!\n"); + return GST_PARSE_ERROR_CREATING_ELEMENT; + } + GST_DEBUG (0, "CREATED bin %s\n", GST_ELEMENT_NAME (element)); + } + else if (arg[0] == '{') { + // create a thread and add it to the current parent + element = gst_thread_new (g_strdup_printf ("thread%d", priv->threadcount++)); + if (!element) { + fprintf (stderr, "Couldn't create a thread!\n"); + return GST_PARSE_ERROR_CREATING_ELEMENT; + } + GST_DEBUG (0, "CREATED thread %s\n", GST_ELEMENT_NAME (element)); + } + else { + DEBUG ("error in parser, unexpected symbol, FIXME\n"); i++; continue; } - j = gst_parse_launch_cmdline(argc - i, argv + i + 1, GST_BIN (element), priv); - //check for parse error - if (j < 0) return j; - i += j; + j = gst_parse_launch_cmdline (argc - i, argv + i + 1, GST_BIN (element), priv); + //check for parse error + if (j < 0) + return j; + i += j; - } else { - // we have an element - DEBUG("attempting to create element '%s'\n",arg); - ptr = gst_parse_unique_name(arg,priv); - element = gst_elementfactory_make(arg,ptr); - g_free(ptr); - if (!element) { + } + else { + // we have an element + DEBUG ("attempting to create element '%s'\n", arg); + ptr = gst_parse_unique_name (arg, priv); + element = gst_elementfactory_make (arg, ptr); + g_free (ptr); + if (!element) { #ifndef GST_DISABLE_REGISTRY - fprintf(stderr,"Couldn't create a '%s', no such element or need to run gstreamer-register?\n",arg); + fprintf (stderr, + "Couldn't create a '%s', no such element or need to run gstreamer-register?\n", + arg); #else - fprintf(stderr,"Couldn't create a '%s', no such element or need to load pluginn?\n",arg); + fprintf (stderr, "Couldn't create a '%s', no such element or need to load pluginn?\n", + arg); #endif - return GST_PARSE_ERROR_NOSUCH_ELEMENT; - } - GST_DEBUG(0,"CREATED element %s\n",GST_ELEMENT_NAME(element)); + return GST_PARSE_ERROR_NOSUCH_ELEMENT; + } + GST_DEBUG (0, "CREATED element %s\n", GST_ELEMENT_NAME (element)); } gst_bin_add (GST_BIN (parent), element); elementcount++; - g_slist_free(sinkpads); + g_slist_free (sinkpads); sinkpads = NULL; - numsinkpads=0; - tempname=NULL; + numsinkpads = 0; + tempname = NULL; // find sink pads if (sinkpadname != NULL) { - while (1){ - // split name at commas - if ((ptr = strchr(sinkpadname,','))){ - tempname = g_strndup(sinkpadname,(ptr-sinkpadname)); - sinkpadname = &ptr[1]; - } else { - tempname = sinkpadname; - } - - // look for pad with that name - if ((temppad = gst_element_get_pad(element,tempname))){ - sinkpads = g_slist_append(sinkpads,temppad); - numsinkpads++; - } - - // try to create a pad using that padtemplate name - else if ((temppad = gst_element_request_pad_by_name(element,tempname))) { - sinkpads = g_slist_append(sinkpads,temppad); - numsinkpads++; - } - if (!temppad) { - GST_DEBUG(0,"NO SUCH pad %s in element %s\n",tempname,GST_ELEMENT_NAME(element)); - } else { - GST_DEBUG(0,"have sink pad %s:%s\n",GST_DEBUG_PAD_NAME(temppad)); - } - - // if there is no more commas in sinkpadname then we're done - if (tempname == sinkpadname) break; - g_free(tempname); - } + while (1) { + // split name at commas + if ((ptr = strchr (sinkpadname, ','))) { + tempname = g_strndup (sinkpadname, (ptr - sinkpadname)); + sinkpadname = &ptr[1]; + } + else { + tempname = sinkpadname; + } + + // look for pad with that name + if ((temppad = gst_element_get_pad (element, tempname))) { + sinkpads = g_slist_append (sinkpads, temppad); + numsinkpads++; + } + + // try to create a pad using that padtemplate name + else if ((temppad = gst_element_request_pad_by_name (element, tempname))) { + sinkpads = g_slist_append (sinkpads, temppad); + numsinkpads++; + } + if (!temppad) { + GST_DEBUG (0, "NO SUCH pad %s in element %s\n", tempname, GST_ELEMENT_NAME (element)); + } + else { + GST_DEBUG (0, "have sink pad %s:%s\n", GST_DEBUG_PAD_NAME (temppad)); + } + + // if there is no more commas in sinkpadname then we're done + if (tempname == sinkpadname) + break; + g_free (tempname); + } } else { - // check through the list to find the first sink pad - pads = gst_element_get_pad_list(element); - while (pads) { - temppad = GST_PAD(pads->data); - pads = g_list_next (pads); - if (gst_pad_get_direction (temppad) == GST_PAD_SINK){ - sinkpads = g_slist_append(sinkpads,temppad); - numsinkpads++; - break; - } - } + // check through the list to find the first sink pad + pads = gst_element_get_pad_list (element); + while (pads) { + temppad = GST_PAD (pads->data); + pads = g_list_next (pads); + if (gst_pad_get_direction (temppad) == GST_PAD_SINK) { + sinkpads = g_slist_append (sinkpads, temppad); + numsinkpads++; + break; + } + } } - if (!sinkpads) GST_DEBUG(0,"can't find a sink pad for element\n"); - else GST_DEBUG(0,"have sink pad %s:%s\n",GST_DEBUG_PAD_NAME(GST_PARSE_LISTPAD(sinkpads))); + if (!sinkpads) + GST_DEBUG (0, "can't find a sink pad for element\n"); + else + GST_DEBUG (0, "have sink pad %s:%s\n", GST_DEBUG_PAD_NAME (GST_PARSE_LISTPAD (sinkpads))); if (!srcpads && sinkpads && previous) { - dyn_connect *connect = g_malloc (sizeof (dyn_connect)); + dyn_connect *connect = g_malloc (sizeof (dyn_connect)); - connect->srcpadname = srcpadname; - connect->target = GST_PARSE_LISTPAD(sinkpads); - connect->pipeline = parent; + connect->srcpadname = srcpadname; + connect->target = GST_PARSE_LISTPAD (sinkpads); + connect->pipeline = GST_ELEMENT (parent); - GST_DEBUG(0,"SETTING UP dynamic connection %s:%s and %s:%s\n", - gst_element_get_name (previous), - srcpadname, - GST_DEBUG_PAD_NAME(GST_PARSE_LISTPAD(sinkpads))); + GST_DEBUG (0, "SETTING UP dynamic connection %s:%s and %s:%s\n", + gst_element_get_name (previous), + srcpadname, GST_DEBUG_PAD_NAME (GST_PARSE_LISTPAD (sinkpads))); - g_signal_connect (G_OBJECT (previous), "new_pad", - G_CALLBACK (dynamic_connect), connect); + g_signal_connect (G_OBJECT (previous), "new_pad", G_CALLBACK (dynamic_connect), connect); } else { - for (j=0; (jdata); - pads = g_list_next (pads); - if (!temppad) DEBUG("much oddness, pad doesn't seem to exist\n"); - else if (gst_pad_get_direction (temppad) == GST_PAD_SINK) { - gst_element_add_ghost_pad (GST_ELEMENT (parent), temppad, -g_strdup_printf("%s-ghost",GST_PAD_NAME(temppad))); - GST_DEBUG(0,"GHOSTED %s:%s to %s as %s-ghost\n", - GST_DEBUG_PAD_NAME(temppad),GST_ELEMENT_NAME(GST_ELEMENT(parent)),GST_PAD_NAME(temppad)); - } - } + DEBUG ("first element, ghosting all of %s's sink pads to parent %s\n", + GST_ELEMENT_NAME (element), GST_ELEMENT_NAME (GST_ELEMENT (parent))); + pads = gst_element_get_pad_list (element); + while (pads) { + temppad = GST_PAD (pads->data); + pads = g_list_next (pads); + if (!temppad) + DEBUG ("much oddness, pad doesn't seem to exist\n"); + else if (gst_pad_get_direction (temppad) == GST_PAD_SINK) { + gst_element_add_ghost_pad (GST_ELEMENT (parent), temppad, + g_strdup_printf ("%s-ghost", GST_PAD_NAME (temppad))); + GST_DEBUG (0, "GHOSTED %s:%s to %s as %s-ghost\n", + GST_DEBUG_PAD_NAME (temppad), GST_ELEMENT_NAME (GST_ELEMENT (parent)), + GST_PAD_NAME (temppad)); + } + } } previous = element; - if (!GST_IS_BIN(element)) prevelement = element; + if (!GST_IS_BIN (element)) + prevelement = element; } i++; @@ -438,31 +456,31 @@ g_strdup_printf("%s-ghost",GST_PAD_NAME(temppad))); // ghost all the src pads of the bin if (prevelement != NULL) { - DEBUG("last element, ghosting all of %s's src pads to parent %s\n", - GST_ELEMENT_NAME(prevelement),GST_ELEMENT_NAME(GST_ELEMENT(parent))); + DEBUG ("last element, ghosting all of %s's src pads to parent %s\n", + GST_ELEMENT_NAME (prevelement), GST_ELEMENT_NAME (GST_ELEMENT (parent))); pads = gst_element_get_pad_list (prevelement); while (pads) { temppad = GST_PAD (pads->data); pads = g_list_next (pads); - if (!temppad) DEBUG("much oddness, pad doesn't seem to exist\n"); + if (!temppad) + DEBUG ("much oddness, pad doesn't seem to exist\n"); else if (gst_pad_get_direction (temppad) == GST_PAD_SRC) { - gst_element_add_ghost_pad (GST_ELEMENT (parent), temppad, -g_strdup_printf("%s-ghost",GST_PAD_NAME(temppad))); - GST_DEBUG(0,"GHOSTED %s:%s to %s as %s-ghost\n", -GST_DEBUG_PAD_NAME(temppad),GST_ELEMENT_NAME (parent),GST_PAD_NAME(temppad)); + gst_element_add_ghost_pad (GST_ELEMENT (parent), temppad, + g_strdup_printf ("%s-ghost", GST_PAD_NAME (temppad))); + GST_DEBUG (0, "GHOSTED %s:%s to %s as %s-ghost\n", + GST_DEBUG_PAD_NAME (temppad), GST_ELEMENT_NAME (parent), GST_PAD_NAME (temppad)); } } } priv->binlevel--; - if (retval) return retval; + if (retval) + return retval; - DEBUG (closingchar != '\0'? - "returning IN THE WRONG PLACE\n" : - "ending pipeline\n"); + DEBUG (closingchar != '\0' ? "returning IN THE WRONG PLACE\n" : "ending pipeline\n"); - return i+1; + return i + 1; } /** @@ -475,7 +493,7 @@ GST_DEBUG_PAD_NAME(temppad),GST_ELEMENT_NAME (parent),GST_PAD_NAME(temppad)); * Returns: ? */ gint -gst_parse_launch(const gchar *cmdline,GstBin *parent) +gst_parse_launch (const gchar * cmdline, GstBin * parent) { gst_parse_priv priv; gchar **argvn; @@ -492,27 +510,27 @@ gst_parse_launch(const gchar *cmdline,GstBin *parent) priv.verbose = FALSE; priv.debug = FALSE; - end = cmdline + strlen(cmdline); + end = cmdline + strlen (cmdline); newargc = 0; temp = ""; // Extract the arguments to a gslist in reverse order - for (cp = cmdline; cp < end; ) { - i = strcspn(cp, "([{}]) \"\\"); + for (cp = cmdline; cp < end;) { + i = strcspn (cp, "([{}]) \"\\"); if (i > 0) { temp = g_strconcat (temp, g_strndup (cp, i), NULL); - + // see if we have an escape char if (cp[i] != '\\') { - // normal argument - copy and add to the list - string_list = g_slist_prepend(string_list, temp); - newargc++; + // normal argument - copy and add to the list + string_list = g_slist_prepend (string_list, temp); + newargc++; temp = ""; } else { - temp = g_strconcat (temp, g_strndup (&cp[++i], 1), NULL); + temp = g_strconcat (temp, g_strndup (&cp[++i], 1), NULL); } cp += i; } @@ -532,28 +550,29 @@ gst_parse_launch(const gchar *cmdline,GstBin *parent) // make sure we got it if (cp == end) { - g_warning("gst_parse_launch: Unbalanced quote in command line"); + g_warning ("gst_parse_launch: Unbalanced quote in command line"); // FIXME: The list leaks here return 0; } // copy the string sans quotes - string_list = g_slist_prepend(string_list, g_strndup(start, cp - start)); + string_list = g_slist_prepend (string_list, g_strndup (start, cp - start)); newargc++; - cp += 2; // skip the quote aswell + cp += 2; // skip the quote aswell } // brackets exist in a separate argument slot - if (*cp && strchr("([{}])", *cp)) { - string_list = g_slist_prepend(string_list, g_strndup(cp, 1)); + if (*cp && strchr ("([{}])", *cp)) { + string_list = g_slist_prepend (string_list, g_strndup (cp, 1)); newargc++; cp++; } } // now allocate the new argv array - argvn = g_new0(char *,newargc); - GST_DEBUG(0,"got %d args\n",newargc); + argvn = g_new0 (char *, newargc); + + GST_DEBUG (0, "got %d args\n", newargc); // reverse the list and put the strings in the new array i = newargc; @@ -561,22 +580,21 @@ gst_parse_launch(const gchar *cmdline,GstBin *parent) for (slist = string_list; slist; slist = slist->next) argvn[--i] = slist->data; - g_slist_free(string_list); + g_slist_free (string_list); // print them out - for (i=0;i