change gst_pad_select() to gst_pad_selectv(), and add/fix gst_pad_select() and gst_pad_select_valist()

Original commit message from CVS:
change gst_pad_select() to gst_pad_selectv(), and add/fix gst_pad_select()
and gst_pad_select_valist()
This commit is contained in:
David Schleef 2003-12-02 04:39:00 +00:00
parent b061d65ecc
commit 71454fa19c
4 changed files with 36 additions and 12 deletions

View file

@ -334,7 +334,7 @@ gst_aggregator_loop (GstElement *element)
debug = "loop_select"; debug = "loop_select";
pad = gst_pad_select (aggregator->sinkpads); pad = gst_pad_selectv (aggregator->sinkpads);
buf = GST_BUFFER (gst_pad_pull (pad)); buf = GST_BUFFER (gst_pad_pull (pad));
gst_aggregator_push (aggregator, pad, buf, debug); gst_aggregator_push (aggregator, pad, buf, debug);

View file

@ -2422,7 +2422,7 @@ restart:
} }
/** /**
* gst_pad_select: * gst_pad_selectv:
* @padlist: a #GList of pads. * @padlist: a #GList of pads.
* *
* Waits for a buffer on any of the list of pads. * Waits for a buffer on any of the list of pads.
@ -2431,7 +2431,7 @@ restart:
* Use #gst_pad_pull() to get the buffer. * Use #gst_pad_pull() to get the buffer.
*/ */
GstPad* GstPad*
gst_pad_select (GList *padlist) gst_pad_selectv (GList *padlist)
{ {
GstPad *pad; GstPad *pad;
@ -2441,7 +2441,7 @@ gst_pad_select (GList *padlist)
} }
/** /**
* gst_pad_selectv: * gst_pad_select:
* @pad: a first #GstPad to perform the select on. * @pad: a first #GstPad to perform the select on.
* @...: A NULL-terminated list of more pads to select on. * @...: A NULL-terminated list of more pads to select on.
* *
@ -2451,10 +2451,9 @@ gst_pad_select (GList *padlist)
* Use #gst_pad_pull() to get the buffer. * Use #gst_pad_pull() to get the buffer.
*/ */
GstPad* GstPad*
gst_pad_selectv (GstPad *pad, ...) gst_pad_select (GstPad *pad, ...)
{ {
GstPad *result; GstPad *result;
GList *padlist = NULL;
va_list var_args; va_list var_args;
if (pad == NULL) if (pad == NULL)
@ -2462,15 +2461,39 @@ gst_pad_selectv (GstPad *pad, ...)
va_start (var_args, pad); va_start (var_args, pad);
result = gst_pad_select_valist (pad, var_args);
va_end (var_args);
return result;
}
/**
* gst_pad_select_valist:
* @pad: a first #GstPad to perform the select on.
* @varargs: A va_list of more pads to select on.
*
* Waits for a buffer on the given set of pads.
*
* Returns: the #GstPad that has a buffer available.
* Use #gst_pad_pull() to get the buffer.
*/
GstPad*
gst_pad_select_valist (GstPad *pad, va_list var_args)
{
GstPad *result;
GList *padlist = NULL;
if (pad == NULL)
return NULL;
while (pad) { while (pad) {
padlist = g_list_prepend (padlist, pad); padlist = g_list_prepend (padlist, pad);
pad = va_arg (var_args, GstPad *); pad = va_arg (var_args, GstPad *);
} }
result = gst_pad_select (padlist); result = gst_pad_selectv (padlist);
g_list_free (padlist); g_list_free (padlist);
va_end (var_args);
return result; return result;
} }

View file

@ -476,8 +476,9 @@ void gst_pad_push (GstPad *pad, GstData *data);
GstData* gst_pad_pull (GstPad *pad); GstData* gst_pad_pull (GstPad *pad);
gboolean gst_pad_send_event (GstPad *pad, GstEvent *event); gboolean gst_pad_send_event (GstPad *pad, GstEvent *event);
gboolean gst_pad_event_default (GstPad *pad, GstEvent *event); gboolean gst_pad_event_default (GstPad *pad, GstEvent *event);
GstPad* gst_pad_select (GList *padlist); GstPad* gst_pad_selectv (GList *padlist);
GstPad* gst_pad_selectv (GstPad *pad, ...); GstPad* gst_pad_select (GstPad *pad, ...);
GstPad* gst_pad_select_valist (GstPad *pad, va_list varargs);
/* convert/query/format functions */ /* convert/query/format functions */

View file

@ -334,7 +334,7 @@ gst_aggregator_loop (GstElement *element)
debug = "loop_select"; debug = "loop_select";
pad = gst_pad_select (aggregator->sinkpads); pad = gst_pad_selectv (aggregator->sinkpads);
buf = GST_BUFFER (gst_pad_pull (pad)); buf = GST_BUFFER (gst_pad_pull (pad));
gst_aggregator_push (aggregator, pad, buf, debug); gst_aggregator_push (aggregator, pad, buf, debug);