diff --git a/subprojects/gst-plugins-base/sys/xvimage/xvimagesink.c b/subprojects/gst-plugins-base/sys/xvimage/xvimagesink.c index e9fcb6cfc7..cde739376e 100644 --- a/subprojects/gst-plugins-base/sys/xvimage/xvimagesink.c +++ b/subprojects/gst-plugins-base/sys/xvimage/xvimagesink.c @@ -1348,9 +1348,12 @@ gst_xv_image_sink_navigation_send_event (GstNavigation * navigation, gst_event_ref (event); handled = gst_pad_push_event (GST_VIDEO_SINK_PAD (xvimagesink), event); - if (!handled) + if (!handled) { + /* If the event was not handled/used upstream, + * we post it as a message on the bus so that applications can handle it */ gst_element_post_message ((GstElement *) xvimagesink, gst_navigation_message_new_event ((GstObject *) xvimagesink, event)); + } gst_event_unref (event); } diff --git a/subprojects/gst-plugins-good/sys/osxvideo/osxvideosink.m b/subprojects/gst-plugins-good/sys/osxvideo/osxvideosink.m index 6e52e9c305..40f01a4ea6 100644 --- a/subprojects/gst-plugins-good/sys/osxvideo/osxvideosink.m +++ b/subprojects/gst-plugins-good/sys/osxvideo/osxvideosink.m @@ -507,6 +507,8 @@ gst_osx_video_sink_navigation_send_event (GstNavigation * navigation, gst_event_ref (event); if (!gst_pad_push_event (GST_VIDEO_SINK_PAD (osxvideosink), event)) { + /* If the event was not handled/used upstream, + * we post it as a message on the bus so that applications can handle it */ gst_element_post_message (GST_ELEMENT_CAST (osxvideosink), gst_navigation_message_new_event (GST_OBJECT_CAST (osxvideosink), event)); }