vaapisink: keep handle_events flag except that if user want to set
authorHyunjun Ko <zzoon@igalia.com>
Fri, 12 May 2017 04:08:30 +0000 (13:08 +0900)
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Fri, 12 May 2017 14:23:49 +0000 (16:23 +0200)
When state of vaapisink is changed from PLAYING to NULL, the handle_events
flag is set to FALSE, and never recovered, and then event thread is never
going to run.

So we should allow to set the flag only when users try it.

https://bugzilla.gnome.org/show_bug.cgi?id=782543

gst/vaapi/gstvaapisink.c

index 013a469..d01c727 100644 (file)
@@ -588,6 +588,7 @@ gst_vaapisink_video_overlay_set_event_handling (GstVideoOverlay * overlay,
 {
   GstVaapiSink *const sink = GST_VAAPISINK (overlay);
 
+  sink->handle_events = handle_events;
   gst_vaapisink_set_event_handling (sink, handle_events);
 }
 
@@ -934,7 +935,6 @@ gst_vaapisink_set_event_handling (GstVaapiSink * sink, gboolean handle_events)
     return;
 
   GST_OBJECT_LOCK (sink);
-  sink->handle_events = handle_events;
   if (handle_events && !sink->event_thread) {
     /* Setup our event listening thread */
     GST_DEBUG ("starting xevent thread");