event: don't access the event structure

the event structure is now hidden, so don't access it directly.
This commit is contained in:
Wim Taymans 2011-05-10 11:54:30 +02:00
parent bdb4676455
commit 5dbc49ccf7
2 changed files with 29 additions and 36 deletions

View file

@ -201,7 +201,7 @@ gst_stream_synchronizer_src_event (GstPad * pad, GstEvent * event)
goto skip_adjustments; goto skip_adjustments;
GST_LOG_OBJECT (pad, "Handling event %s: %" GST_PTR_FORMAT, GST_LOG_OBJECT (pad, "Handling event %s: %" GST_PTR_FORMAT,
GST_EVENT_TYPE_NAME (event), event->structure); GST_EVENT_TYPE_NAME (event), event);
switch (GST_EVENT_TYPE (event)) { switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_QOS:{ case GST_EVENT_QOS:{
@ -281,7 +281,7 @@ gst_stream_synchronizer_sink_event (GstPad * pad, GstEvent * event)
goto skip_adjustments; goto skip_adjustments;
GST_LOG_OBJECT (pad, "Handling event %s: %" GST_PTR_FORMAT, GST_LOG_OBJECT (pad, "Handling event %s: %" GST_PTR_FORMAT,
GST_EVENT_TYPE_NAME (event), event->structure); GST_EVENT_TYPE_NAME (event), event);
switch (GST_EVENT_TYPE (event)) { switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_SINK_MESSAGE:{ case GST_EVENT_SINK_MESSAGE:{

View file

@ -499,20 +499,23 @@ _generate_update_newsegment_event (GstSegment * segment, GstEvent ** event1,
GstEvent ** event2) GstEvent ** event2)
{ {
GstEvent *event; GstEvent *event;
GstStructure *structure;
*event1 = NULL; *event1 = NULL;
*event2 = NULL; *event2 = NULL;
event = gst_event_new_new_segment (FALSE, segment->rate, event = gst_event_new_new_segment (FALSE, segment->rate,
segment->applied_rate, segment->format, 0, segment->accum, 0); segment->applied_rate, segment->format, 0, segment->accum, 0);
gst_structure_id_set (event->structure, _subtitle_overlay_event_marker_id, structure = (GstStructure *) gst_event_get_structure (event);
gst_structure_id_set (structure, _subtitle_overlay_event_marker_id,
G_TYPE_BOOLEAN, TRUE, NULL); G_TYPE_BOOLEAN, TRUE, NULL);
*event1 = event; *event1 = event;
event = gst_event_new_new_segment (FALSE, segment->rate, event = gst_event_new_new_segment (FALSE, segment->rate,
segment->applied_rate, segment->format, segment->applied_rate, segment->format,
segment->start, segment->stop, segment->time); segment->start, segment->stop, segment->time);
gst_structure_id_set (event->structure, _subtitle_overlay_event_marker_id, structure = (GstStructure *) gst_event_get_structure (event);
gst_structure_id_set (structure, _subtitle_overlay_event_marker_id,
G_TYPE_BOOLEAN, TRUE, NULL); G_TYPE_BOOLEAN, TRUE, NULL);
*event2 = event; *event2 = event;
} }
@ -582,11 +585,9 @@ _setup_passthrough (GstSubtitleOverlay * self)
_generate_update_newsegment_event (&self->video_segment, &event1, &event2); _generate_update_newsegment_event (&self->video_segment, &event1, &event2);
GST_DEBUG_OBJECT (self, GST_DEBUG_OBJECT (self,
"Pushing video accumulate newsegment event: %" GST_PTR_FORMAT, "Pushing video accumulate newsegment event: %" GST_PTR_FORMAT, event1);
event1->structure);
GST_DEBUG_OBJECT (self, GST_DEBUG_OBJECT (self,
"Pushing video update newsegment event: %" GST_PTR_FORMAT, "Pushing video update newsegment event: %" GST_PTR_FORMAT, event2);
event2->structure);
gst_pad_send_event (sink, event1); gst_pad_send_event (sink, event1);
gst_pad_send_event (sink, event2); gst_pad_send_event (sink, event2);
} }
@ -1002,10 +1003,9 @@ _pad_blocked_cb (GstPad * pad, gboolean blocked, gpointer user_data)
&event2); &event2);
GST_DEBUG_OBJECT (self, GST_DEBUG_OBJECT (self,
"Pushing video accumulate newsegment event: %" GST_PTR_FORMAT, "Pushing video accumulate newsegment event: %" GST_PTR_FORMAT,
event1->structure); event1);
GST_DEBUG_OBJECT (self, GST_DEBUG_OBJECT (self,
"Pushing video update newsegment event: %" GST_PTR_FORMAT, "Pushing video update newsegment event: %" GST_PTR_FORMAT, event2);
event2->structure);
gst_pad_send_event (sink, event1); gst_pad_send_event (sink, event1);
gst_pad_send_event (sink, event2); gst_pad_send_event (sink, event2);
@ -1025,10 +1025,10 @@ _pad_blocked_cb (GstPad * pad, gboolean blocked, gpointer user_data)
&event2); &event2);
GST_DEBUG_OBJECT (self, GST_DEBUG_OBJECT (self,
"Pushing subtitle accumulate newsegment event: %" GST_PTR_FORMAT, "Pushing subtitle accumulate newsegment event: %" GST_PTR_FORMAT,
event1->structure); event1);
GST_DEBUG_OBJECT (self, GST_DEBUG_OBJECT (self,
"Pushing subtitle update newsegment event: %" GST_PTR_FORMAT, "Pushing subtitle update newsegment event: %" GST_PTR_FORMAT,
event2->structure); event2);
gst_pad_send_event (sink, event1); gst_pad_send_event (sink, event1);
gst_pad_send_event (sink, event2); gst_pad_send_event (sink, event2);
@ -1171,10 +1171,9 @@ _pad_blocked_cb (GstPad * pad, gboolean blocked, gpointer user_data)
&event2); &event2);
GST_DEBUG_OBJECT (self, GST_DEBUG_OBJECT (self,
"Pushing video accumulate newsegment event: %" GST_PTR_FORMAT, "Pushing video accumulate newsegment event: %" GST_PTR_FORMAT,
event1->structure); event1);
GST_DEBUG_OBJECT (self, GST_DEBUG_OBJECT (self,
"Pushing video update newsegment event: %" GST_PTR_FORMAT, "Pushing video update newsegment event: %" GST_PTR_FORMAT, event2);
event2->structure);
gst_pad_send_event (sink, event1); gst_pad_send_event (sink, event1);
gst_pad_send_event (sink, event2); gst_pad_send_event (sink, event2);
gst_object_unref (sink); gst_object_unref (sink);
@ -1193,10 +1192,10 @@ _pad_blocked_cb (GstPad * pad, gboolean blocked, gpointer user_data)
&event2); &event2);
GST_DEBUG_OBJECT (self, GST_DEBUG_OBJECT (self,
"Pushing subtitle accumulate newsegment event: %" GST_PTR_FORMAT, "Pushing subtitle accumulate newsegment event: %" GST_PTR_FORMAT,
event1->structure); event1);
GST_DEBUG_OBJECT (self, GST_DEBUG_OBJECT (self,
"Pushing subtitle update newsegment event: %" GST_PTR_FORMAT, "Pushing subtitle update newsegment event: %" GST_PTR_FORMAT,
event2->structure); event2);
gst_pad_send_event (sink, event1); gst_pad_send_event (sink, event1);
gst_pad_send_event (sink, event2); gst_pad_send_event (sink, event2);
gst_object_unref (sink); gst_object_unref (sink);
@ -1615,7 +1614,7 @@ gst_subtitle_overlay_src_proxy_event (GstPad * proxypad, GstEvent * event)
s = gst_event_get_structure (event); s = gst_event_get_structure (event);
if (s && gst_structure_id_has_field (s, _subtitle_overlay_event_marker_id)) { if (s && gst_structure_id_has_field (s, _subtitle_overlay_event_marker_id)) {
GST_DEBUG_OBJECT (ghostpad, "Dropping event with marker: %" GST_PTR_FORMAT, GST_DEBUG_OBJECT (ghostpad, "Dropping event with marker: %" GST_PTR_FORMAT,
event->structure); event);
gst_event_unref (event); gst_event_unref (event);
event = NULL; event = NULL;
ret = TRUE; ret = TRUE;
@ -1686,8 +1685,7 @@ gst_subtitle_overlay_video_sink_event (GstPad * pad, GstEvent * event)
GstFormat format; GstFormat format;
gint64 start, stop, position; gint64 start, stop, position;
GST_DEBUG_OBJECT (pad, "Newsegment event: %" GST_PTR_FORMAT, GST_DEBUG_OBJECT (pad, "Newsegment event: %" GST_PTR_FORMAT, event);
event->structure);
gst_event_parse_new_segment (event, &update, &rate, &applied_rate, gst_event_parse_new_segment (event, &update, &rate, &applied_rate,
&format, &start, &stop, &position); &format, &start, &stop, &position);
@ -1927,9 +1925,7 @@ gst_subtitle_overlay_subtitle_sink_event (GstPad * pad, GstEvent * event)
GstFormat format; GstFormat format;
if (GST_EVENT_TYPE (event) == GST_EVENT_CUSTOM_DOWNSTREAM_OOB && if (GST_EVENT_TYPE (event) == GST_EVENT_CUSTOM_DOWNSTREAM_OOB &&
event->structure gst_event_has_name (event, "subtitleoverlay-flush-subtitle")) {
&& strcmp (gst_structure_get_name (event->structure),
"subtitleoverlay-flush-subtitle") == 0) {
GST_DEBUG_OBJECT (pad, "Custom subtitle flush event"); GST_DEBUG_OBJECT (pad, "Custom subtitle flush event");
GST_SUBTITLE_OVERLAY_LOCK (self); GST_SUBTITLE_OVERLAY_LOCK (self);
self->subtitle_flush = TRUE; self->subtitle_flush = TRUE;
@ -1969,20 +1965,18 @@ gst_subtitle_overlay_subtitle_sink_event (GstPad * pad, GstEvent * event)
case GST_EVENT_FLUSH_START: case GST_EVENT_FLUSH_START:
case GST_EVENT_NEWSEGMENT: case GST_EVENT_NEWSEGMENT:
case GST_EVENT_EOS: case GST_EVENT_EOS:
{
GstStructure *structure;
/* Add our event marker to make sure no events from here go ever outside /* Add our event marker to make sure no events from here go ever outside
* the element, they're only interesting for our internal elements */ * the element, they're only interesting for our internal elements */
event = event = GST_EVENT_CAST (gst_event_make_writable (event));
GST_EVENT_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST structure = gst_event_writable_structure (event);
(event)));
if (!event->structure) { gst_structure_id_set (structure, _subtitle_overlay_event_marker_id,
event->structure =
gst_structure_id_empty_new (_subtitle_overlay_event_marker_id);
gst_structure_set_parent_refcount (event->structure,
&event->mini_object.refcount);
}
gst_structure_id_set (event->structure, _subtitle_overlay_event_marker_id,
G_TYPE_BOOLEAN, TRUE, NULL); G_TYPE_BOOLEAN, TRUE, NULL);
break; break;
}
default: default:
break; break;
} }
@ -1994,8 +1988,7 @@ gst_subtitle_overlay_subtitle_sink_event (GstPad * pad, GstEvent * event)
gdouble rate, applied_rate; gdouble rate, applied_rate;
gint64 start, stop, position; gint64 start, stop, position;
GST_DEBUG_OBJECT (pad, "Newsegment event: %" GST_PTR_FORMAT, GST_DEBUG_OBJECT (pad, "Newsegment event: %" GST_PTR_FORMAT, event);
event->structure);
gst_event_parse_new_segment (event, &update, &rate, &applied_rate, gst_event_parse_new_segment (event, &update, &rate, &applied_rate,
&format, &start, &stop, &position); &format, &start, &stop, &position);