mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-30 07:42:32 +00:00
add valist function for gst_event_new_discontinuous original patch from Brett Kosinski fixes #117348
Original commit message from CVS: add valist function for gst_event_new_discontinuous original patch from Brett Kosinski fixes #117348
This commit is contained in:
parent
73f2d45295
commit
8461453b10
2 changed files with 41 additions and 14 deletions
|
@ -183,6 +183,43 @@ gst_event_new_seek (GstSeekType type, gint64 offset)
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gst_event_new_discontinuousv:
|
||||||
|
* @new_media: A flag indicating a new media type starts
|
||||||
|
* @format1: The format of the discont value
|
||||||
|
* @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
|
||||||
|
* 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_discontinuousv (gboolean new_media, GstFormat format1, va_list var_args)
|
||||||
|
{
|
||||||
|
GstEvent *event;
|
||||||
|
gint count = 0;
|
||||||
|
|
||||||
|
event = gst_event_new (GST_EVENT_DISCONTINUOUS);
|
||||||
|
GST_EVENT_DISCONT_NEW_MEDIA (event) = new_media;
|
||||||
|
|
||||||
|
while (format1 != GST_FORMAT_UNDEFINED && count < 8) {
|
||||||
|
|
||||||
|
GST_EVENT_DISCONT_OFFSET (event, count).format = format1 & GST_SEEK_FORMAT_MASK;
|
||||||
|
GST_EVENT_DISCONT_OFFSET (event, count).value = va_arg (var_args, gint64);
|
||||||
|
|
||||||
|
format1 = va_arg (var_args, GstFormat);
|
||||||
|
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_EVENT_DISCONT_OFFSET_LEN (event) = count;
|
||||||
|
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_event_new_discontinuous:
|
* gst_event_new_discontinuous:
|
||||||
* @new_media: A flag indicating a new media type starts
|
* @new_media: A flag indicating a new media type starts
|
||||||
|
@ -201,26 +238,13 @@ gst_event_new_discontinuous (gboolean new_media, GstFormat format1, ...)
|
||||||
{
|
{
|
||||||
va_list var_args;
|
va_list var_args;
|
||||||
GstEvent *event;
|
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);
|
va_start (var_args, format1);
|
||||||
|
|
||||||
while (format1 != GST_FORMAT_UNDEFINED && count < 8) {
|
event = gst_event_new_discontinuousv (new_media, format1, var_args);
|
||||||
|
|
||||||
GST_EVENT_DISCONT_OFFSET (event, count).format = format1 & GST_SEEK_FORMAT_MASK;
|
|
||||||
GST_EVENT_DISCONT_OFFSET (event, count).value = va_arg (var_args, gint64);
|
|
||||||
|
|
||||||
format1 = va_arg (var_args, GstFormat);
|
|
||||||
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
va_end (var_args);
|
va_end (var_args);
|
||||||
|
|
||||||
GST_EVENT_DISCONT_OFFSET_LEN (event) = count;
|
|
||||||
|
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -207,6 +207,9 @@ GstEvent* gst_event_new_size (GstFormat format, gint64 value);
|
||||||
/* discontinous event */
|
/* discontinous event */
|
||||||
GstEvent* gst_event_new_discontinuous (gboolean new_media,
|
GstEvent* gst_event_new_discontinuous (gboolean new_media,
|
||||||
GstFormat format1, ...);
|
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);
|
gboolean gst_event_discont_get_value (GstEvent *event, GstFormat format, gint64 *value);
|
||||||
|
|
||||||
#define gst_event_new_filler() gst_event_new(GST_EVENT_FILLER)
|
#define gst_event_new_filler() gst_event_new(GST_EVENT_FILLER)
|
||||||
|
|
Loading…
Reference in a new issue