From 8897354c61071dfa1ae35427909866ffb2aedfaf Mon Sep 17 00:00:00 2001 From: "Arun Kumar K.R" Date: Wed, 16 Mar 2011 13:23:20 -0700 Subject: [PATCH] gralloc: Avoid multiple signals from videoOverlayStarted Signal hdmi_ui_loop from fb_videoOverlayStarted only if there is a state change CRs-fixed: 279095 Change-Id: I43bc87b4d78fae139bcfc0318ad8b271a6a325c7 --- framebuffer.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/framebuffer.cpp b/framebuffer.cpp index 8900282..2a7d289 100644 --- a/framebuffer.cpp +++ b/framebuffer.cpp @@ -347,14 +347,16 @@ static int fb_videoOverlayStarted(struct framebuffer_device_t* dev, int started) dev->common.module); pthread_mutex_lock(&m->overlayLock); Overlay* pTemp = m->pobjOverlay; - if (started && pTemp) { - pTemp->closeChannel(); - m->videoOverlay = true; - pthread_cond_signal(&(m->overlayPost)); - } - else { - m->videoOverlay = false; - pthread_cond_signal(&(m->overlayPost)); + if(started != m->videoOverlay) { + if (started && pTemp) { + pTemp->closeChannel(); + m->videoOverlay = true; + pthread_cond_signal(&(m->overlayPost)); + } + else { + m->videoOverlay = false; + pthread_cond_signal(&(m->overlayPost)); + } } pthread_mutex_unlock(&m->overlayLock); return 0;