xvimagesink: Post unhandled navigation events on the bus

https://bugzilla.gnome.org/show_bug.cgi?id=747245
This commit is contained in:
Edward Hervey 2015-04-02 16:10:32 +02:00 committed by Edward Hervey
parent 01e2a2152d
commit c90a3ac468

View file

@ -1127,9 +1127,10 @@ gst_xvimagesink_navigation_send_event (GstNavigation * navigation,
{ {
GstXvImageSink *xvimagesink = GST_XVIMAGESINK (navigation); GstXvImageSink *xvimagesink = GST_XVIMAGESINK (navigation);
GstPad *peer; GstPad *peer;
gboolean handled = FALSE;
GstEvent *event = NULL;
if ((peer = gst_pad_get_peer (GST_VIDEO_SINK_PAD (xvimagesink)))) { if ((peer = gst_pad_get_peer (GST_VIDEO_SINK_PAD (xvimagesink)))) {
GstEvent *event;
GstVideoRectangle src = { 0, }; GstVideoRectangle src = { 0, };
GstVideoRectangle dst = { 0, }; GstVideoRectangle dst = { 0, };
GstVideoRectangle result; GstVideoRectangle result;
@ -1182,9 +1183,17 @@ gst_xvimagesink_navigation_send_event (GstNavigation * navigation,
(gdouble) y * yscale, NULL); (gdouble) y * yscale, NULL);
} }
gst_pad_send_event (peer, event); gst_event_ref (event);
handled = gst_pad_send_event (peer, event);
if (handled)
gst_event_unref (event);
gst_object_unref (peer); gst_object_unref (peer);
} }
if (!handled && event) {
gst_element_post_message ((GstElement *) xvimagesink,
gst_navigation_message_new_event ((GstObject *) xvimagesink, event));
}
} }
static void static void