identity: Use g_cond_signal() instead of g_cond_broadcast()
authorSebastian Dröge <sebastian@centricular.com>
Mon, 9 Mar 2020 19:31:48 +0000 (21:31 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Mon, 9 Mar 2020 19:31:48 +0000 (21:31 +0200)
There can only be a single waiter: on the streaming thread.

plugins/elements/gstidentity.c

index 0c5f468..b7ada33 100644 (file)
@@ -463,7 +463,7 @@ gst_identity_sink_event (GstBaseTransform * trans, GstEvent * event)
     if (GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_START) {
       GST_OBJECT_LOCK (identity);
       identity->flushing = TRUE;
-      g_cond_broadcast (&identity->blocked_cond);
+      g_cond_signal (&identity->blocked_cond);
       if (identity->clock_id) {
         GST_DEBUG_OBJECT (identity, "unlock clock wait");
         gst_clock_id_unschedule (identity->clock_id);
@@ -1011,7 +1011,7 @@ gst_identity_change_state (GstElement * element, GstStateChange transition)
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
       GST_OBJECT_LOCK (identity);
       identity->blocked = FALSE;
-      g_cond_broadcast (&identity->blocked_cond);
+      g_cond_signal (&identity->blocked_cond);
       GST_OBJECT_UNLOCK (identity);
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
@@ -1022,7 +1022,7 @@ gst_identity_change_state (GstElement * element, GstStateChange transition)
         gst_clock_id_unschedule (identity->clock_id);
       }
       identity->blocked = FALSE;
-      g_cond_broadcast (&identity->blocked_cond);
+      g_cond_signal (&identity->blocked_cond);
       GST_OBJECT_UNLOCK (identity);
       break;
     default: