From: Benjamin O. <co...@us...> - 2003-07-16 19:25:24
|
CVS Root: /cvsroot/gstreamer Module: gstreamer Changes by: company Date: Wed Jul 16 2003 12:25:24 PDT Log message: add valist function for gst_event_new_discontinuous original patch from Brett Kosinski fixes #117348 Modified files: gst : gstevent.c gstevent.h Links: http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstevent.c.diff?r1=1.33&r2=1.34 http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstevent.h.diff?r1=1.31&r2=1.32 ====Begin Diffs==== Index: gstevent.c =================================================================== RCS file: /cvsroot/gstreamer/gstreamer/gst/gstevent.c,v retrieving revision 1.33 retrieving revision 1.34 diff -u -d -r1.33 -r1.34 --- gstevent.c 29 Jun 2003 14:05:42 -0000 1.33 +++ gstevent.c 16 Jul 2003 19:25:11 -0000 1.34 @@ -184,10 +184,10 @@ } /** - * gst_event_new_discontinuous: + * gst_event_new_discontinuousv: * @new_media: A flag indicating a new media type starts * @format1: The format of the discont value - * @...: more discont values and formats + * @var_args: more discont values and formats * * Allocate a new discontinuous event with the given format/value pairs. Note * that the values are of type gint64 - you may not use simple integers such @@ -197,17 +197,14 @@ * Returns: A new discontinuous event. */ GstEvent* -gst_event_new_discontinuous (gboolean new_media, GstFormat format1, ...) +gst_event_new_discontinuousv (gboolean new_media, GstFormat format1, va_list var_args) { - va_list var_args; GstEvent *event; gint count = 0; event = gst_event_new (GST_EVENT_DISCONTINUOUS); GST_EVENT_DISCONT_NEW_MEDIA (event) = new_media; - va_start (var_args, format1); - while (format1 != GST_FORMAT_UNDEFINED && count < 8) { GST_EVENT_DISCONT_OFFSET (event, count).format = format1 & GST_SEEK_FORMAT_MASK; @@ -217,10 +214,37 @@ count++; } - va_end (var_args); GST_EVENT_DISCONT_OFFSET_LEN (event) = count; + return event; +} + +/** + * gst_event_new_discontinuous: + * @new_media: A flag indicating a new media type starts + * @format1: The format of the discont value + * @...: more discont values and formats + * + * Allocate a new discontinuous event with the given format/value pairs. Note + * that the values are of type gint64 - you may not use simple integers such + * as "0" when calling this function, always cast them like "(gint64) 0". + * Terminate the list with #GST_FORMAT_UNDEFINED. + * + * Returns: A new discontinuous event. + */ +GstEvent* +gst_event_new_discontinuous (gboolean new_media, GstFormat format1, ...) +{ + va_list var_args; + GstEvent *event; + + va_start (var_args, format1); + + event = gst_event_new_discontinuousv (new_media, format1, var_args); + + va_end (var_args); + return event; } Index: gstevent.h =================================================================== RCS file: /cvsroot/gstreamer/gstreamer/gst/gstevent.h,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- gstevent.h 7 Jun 2003 00:15:18 -0000 1.31 +++ gstevent.h 16 Jul 2003 19:25:11 -0000 1.32 @@ -207,6 +207,9 @@ /* discontinous event */ GstEvent* gst_event_new_discontinuous (gboolean new_media, GstFormat format1, ...); +GstEvent* gst_event_new_discontinuousv (gboolean new_media, + GstFormat format1, + va_list var_args); gboolean gst_event_discont_get_value (GstEvent *event, GstFormat format, gint64 *value); #define gst_event_new_filler() gst_event_new(GST_EVENT_FILLER) |