mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-28 04:31:06 +00:00
event: remove the sticky event index
We don't use the sticky event index anymore, ordering of the events are how they were sent initially. Add some more padding between the event numbers so that we can insert new events later.
This commit is contained in:
parent
ca697b61f3
commit
dc4d96d54c
3 changed files with 26 additions and 32 deletions
|
@ -199,7 +199,7 @@ gst_event_type_get_flags (GstEventType type)
|
||||||
{
|
{
|
||||||
GstEventTypeFlags ret;
|
GstEventTypeFlags ret;
|
||||||
|
|
||||||
ret = type & ((1 << GST_EVENT_STICKY_SHIFT) - 1);
|
ret = type & ((1 << GST_EVENT_NUM_SHIFT) - 1);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,9 +57,7 @@ typedef enum {
|
||||||
#define GST_EVENT_TYPE_BOTH \
|
#define GST_EVENT_TYPE_BOTH \
|
||||||
(GST_EVENT_TYPE_UPSTREAM | GST_EVENT_TYPE_DOWNSTREAM)
|
(GST_EVENT_TYPE_UPSTREAM | GST_EVENT_TYPE_DOWNSTREAM)
|
||||||
|
|
||||||
#define GST_EVENT_MAX_STICKY 16
|
#define GST_EVENT_NUM_SHIFT (8)
|
||||||
#define GST_EVENT_STICKY_SHIFT 8
|
|
||||||
#define GST_EVENT_NUM_SHIFT (GST_EVENT_STICKY_SHIFT + 4)
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GST_EVENT_MAKE_TYPE:
|
* GST_EVENT_MAKE_TYPE:
|
||||||
|
@ -70,14 +68,11 @@ typedef enum {
|
||||||
* when making custom event types, use this macro with the num and
|
* when making custom event types, use this macro with the num and
|
||||||
* the given flags
|
* the given flags
|
||||||
*/
|
*/
|
||||||
#define GST_EVENT_MAKE_TYPE(num,idx,flags) \
|
#define GST_EVENT_MAKE_TYPE(num,flags) \
|
||||||
(((num) << GST_EVENT_NUM_SHIFT) | ((idx) << GST_EVENT_STICKY_SHIFT) | (flags))
|
(((num) << GST_EVENT_NUM_SHIFT) | (flags))
|
||||||
|
|
||||||
#define FLAG(name) GST_EVENT_TYPE_##name
|
#define FLAG(name) GST_EVENT_TYPE_##name
|
||||||
|
|
||||||
#define GST_EVENT_STICKY_IDX_TYPE(type) (((type) >> GST_EVENT_STICKY_SHIFT) & 0xf)
|
|
||||||
#define GST_EVENT_STICKY_IDX(ev) GST_EVENT_STICKY_IDX_TYPE(GST_EVENT_TYPE(ev))
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GstEventType:
|
* GstEventType:
|
||||||
* @GST_EVENT_UNKNOWN: unknown event.
|
* @GST_EVENT_UNKNOWN: unknown event.
|
||||||
|
@ -132,33 +127,33 @@ typedef enum {
|
||||||
*/
|
*/
|
||||||
/* NOTE: keep in sync with quark registration in gstevent.c */
|
/* NOTE: keep in sync with quark registration in gstevent.c */
|
||||||
typedef enum {
|
typedef enum {
|
||||||
GST_EVENT_UNKNOWN = GST_EVENT_MAKE_TYPE (0, 0, 0),
|
GST_EVENT_UNKNOWN = GST_EVENT_MAKE_TYPE (0, 0),
|
||||||
/* bidirectional events */
|
/* bidirectional events */
|
||||||
GST_EVENT_FLUSH_START = GST_EVENT_MAKE_TYPE (1, 0, FLAG(BOTH)),
|
GST_EVENT_FLUSH_START = GST_EVENT_MAKE_TYPE (10, FLAG(BOTH)),
|
||||||
GST_EVENT_FLUSH_STOP = GST_EVENT_MAKE_TYPE (2, 0, FLAG(BOTH) | FLAG(SERIALIZED)),
|
GST_EVENT_FLUSH_STOP = GST_EVENT_MAKE_TYPE (20, FLAG(BOTH) | FLAG(SERIALIZED)),
|
||||||
/* downstream serialized events */
|
/* downstream serialized events */
|
||||||
GST_EVENT_CAPS = GST_EVENT_MAKE_TYPE (5, 1, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
|
GST_EVENT_CAPS = GST_EVENT_MAKE_TYPE (40, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
|
||||||
GST_EVENT_SEGMENT = GST_EVENT_MAKE_TYPE (6, 2, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
|
GST_EVENT_SEGMENT = GST_EVENT_MAKE_TYPE (50, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
|
||||||
GST_EVENT_TAG = GST_EVENT_MAKE_TYPE (7, 3, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
|
GST_EVENT_TAG = GST_EVENT_MAKE_TYPE (60, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
|
||||||
GST_EVENT_BUFFERSIZE = GST_EVENT_MAKE_TYPE (8, 4, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
|
GST_EVENT_BUFFERSIZE = GST_EVENT_MAKE_TYPE (70, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
|
||||||
GST_EVENT_SINK_MESSAGE = GST_EVENT_MAKE_TYPE (9, 5, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
|
GST_EVENT_SINK_MESSAGE = GST_EVENT_MAKE_TYPE (80, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
|
||||||
GST_EVENT_EOS = GST_EVENT_MAKE_TYPE (10, 6, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
|
GST_EVENT_EOS = GST_EVENT_MAKE_TYPE (90, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
|
||||||
|
|
||||||
/* upstream events */
|
/* upstream events */
|
||||||
GST_EVENT_QOS = GST_EVENT_MAKE_TYPE (15, 0, FLAG(UPSTREAM)),
|
GST_EVENT_QOS = GST_EVENT_MAKE_TYPE (120, FLAG(UPSTREAM)),
|
||||||
GST_EVENT_SEEK = GST_EVENT_MAKE_TYPE (16, 0, FLAG(UPSTREAM)),
|
GST_EVENT_SEEK = GST_EVENT_MAKE_TYPE (130, FLAG(UPSTREAM)),
|
||||||
GST_EVENT_NAVIGATION = GST_EVENT_MAKE_TYPE (17, 0, FLAG(UPSTREAM)),
|
GST_EVENT_NAVIGATION = GST_EVENT_MAKE_TYPE (140, FLAG(UPSTREAM)),
|
||||||
GST_EVENT_LATENCY = GST_EVENT_MAKE_TYPE (18, 0, FLAG(UPSTREAM)),
|
GST_EVENT_LATENCY = GST_EVENT_MAKE_TYPE (150, FLAG(UPSTREAM)),
|
||||||
GST_EVENT_STEP = GST_EVENT_MAKE_TYPE (19, 0, FLAG(UPSTREAM)),
|
GST_EVENT_STEP = GST_EVENT_MAKE_TYPE (160, FLAG(UPSTREAM)),
|
||||||
GST_EVENT_RECONFIGURE = GST_EVENT_MAKE_TYPE (20, 0, FLAG(UPSTREAM)),
|
GST_EVENT_RECONFIGURE = GST_EVENT_MAKE_TYPE (170, FLAG(UPSTREAM)),
|
||||||
|
|
||||||
/* custom events start here */
|
/* custom events start here */
|
||||||
GST_EVENT_CUSTOM_UPSTREAM = GST_EVENT_MAKE_TYPE (32, 0, FLAG(UPSTREAM)),
|
GST_EVENT_CUSTOM_UPSTREAM = GST_EVENT_MAKE_TYPE (220, FLAG(UPSTREAM)),
|
||||||
GST_EVENT_CUSTOM_DOWNSTREAM = GST_EVENT_MAKE_TYPE (32, 0, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
|
GST_EVENT_CUSTOM_DOWNSTREAM = GST_EVENT_MAKE_TYPE (220, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
|
||||||
GST_EVENT_CUSTOM_DOWNSTREAM_OOB = GST_EVENT_MAKE_TYPE (32, 0, FLAG(DOWNSTREAM)),
|
GST_EVENT_CUSTOM_DOWNSTREAM_OOB = GST_EVENT_MAKE_TYPE (220, FLAG(DOWNSTREAM)),
|
||||||
GST_EVENT_CUSTOM_DOWNSTREAM_STICKY = GST_EVENT_MAKE_TYPE (32, 0, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
|
GST_EVENT_CUSTOM_DOWNSTREAM_STICKY = GST_EVENT_MAKE_TYPE (220, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
|
||||||
GST_EVENT_CUSTOM_BOTH = GST_EVENT_MAKE_TYPE (32, 0, FLAG(BOTH) | FLAG(SERIALIZED)),
|
GST_EVENT_CUSTOM_BOTH = GST_EVENT_MAKE_TYPE (220, FLAG(BOTH) | FLAG(SERIALIZED)),
|
||||||
GST_EVENT_CUSTOM_BOTH_OOB = GST_EVENT_MAKE_TYPE (32, 0, FLAG(BOTH))
|
GST_EVENT_CUSTOM_BOTH_OOB = GST_EVENT_MAKE_TYPE (220, FLAG(BOTH))
|
||||||
} GstEventType;
|
} GstEventType;
|
||||||
#undef FLAG
|
#undef FLAG
|
||||||
|
|
||||||
|
|
|
@ -328,8 +328,7 @@ gst_pad_init (GstPad * pad)
|
||||||
|
|
||||||
g_hook_list_init (&pad->probes, sizeof (GstProbe));
|
g_hook_list_init (&pad->probes, sizeof (GstProbe));
|
||||||
|
|
||||||
pad->priv->events = g_array_sized_new (FALSE, TRUE,
|
pad->priv->events = g_array_sized_new (FALSE, TRUE, sizeof (PadEvent), 16);
|
||||||
sizeof (PadEvent), GST_EVENT_MAX_STICKY);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* called when setting the pad inactive. It removes all sticky events from
|
/* called when setting the pad inactive. It removes all sticky events from
|
||||||
|
|
Loading…
Reference in a new issue