mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-07 04:11:26 +00:00
xvimagesink: refactor to use gst_pad_push_event
Right now navigation events are being sent via gst_pad_send_event after getting the peer pad of the sinkpad. But the same functionality can be done using gst_pad_push_event without need of getting peer pad in xvimagesink. https://bugzilla.gnome.org/show_bug.cgi?id=752059
This commit is contained in:
parent
a1f8fb32cb
commit
efdb0fc281
1 changed files with 51 additions and 56 deletions
|
@ -1112,11 +1112,9 @@ gst_xv_image_sink_navigation_send_event (GstNavigation * navigation,
|
|||
GstStructure * structure)
|
||||
{
|
||||
GstXvImageSink *xvimagesink = GST_XV_IMAGE_SINK (navigation);
|
||||
GstPad *peer;
|
||||
gboolean handled = FALSE;
|
||||
GstEvent *event = NULL;
|
||||
|
||||
if ((peer = gst_pad_get_peer (GST_VIDEO_SINK_PAD (xvimagesink)))) {
|
||||
GstVideoRectangle src = { 0, };
|
||||
GstVideoRectangle dst = { 0, };
|
||||
GstVideoRectangle result;
|
||||
|
@ -1128,7 +1126,6 @@ gst_xv_image_sink_navigation_send_event (GstNavigation * navigation,
|
|||
|
||||
if (!(xwindow = xvimagesink->xwindow)) {
|
||||
g_mutex_unlock (&xvimagesink->flow_lock);
|
||||
gst_object_unref (peer);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1169,18 +1166,16 @@ gst_xv_image_sink_navigation_send_event (GstNavigation * navigation,
|
|||
}
|
||||
|
||||
event = gst_event_new_navigation (structure);
|
||||
if (event) {
|
||||
gst_event_ref (event);
|
||||
handled = gst_pad_send_event (peer, event);
|
||||
gst_object_unref (peer);
|
||||
}
|
||||
handled = gst_pad_push_event (GST_VIDEO_SINK_PAD (xvimagesink), event);
|
||||
|
||||
if (!handled && event) {
|
||||
if (!handled)
|
||||
gst_element_post_message ((GstElement *) xvimagesink,
|
||||
gst_navigation_message_new_event ((GstObject *) xvimagesink, event));
|
||||
}
|
||||
|
||||
if (event)
|
||||
gst_event_unref (event);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Reference in a new issue