summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMansoor Aftab <maftab@codeaurora.org>2013-10-14 23:04:46 -0700
committerVineeta Srivastava <vsrivastava@google.com>2013-10-16 06:45:35 +0000
commit1e661b89f8becf65469a34c6da75782747500529 (patch)
treebfc3dabd8002057cc9d6d916c8d1545cb78854c7
parent5bcf77c61c8a65d468f98e842cbe6010f2e38a06 (diff)
downloadpower-1e661b89f8becf65469a34c6da75782747500529.tar.gz
Bug: 11011342 Bug: 11201229 Change-Id: I1d6967e95670aab5cfae4467fc529fe09856b9fc
-rw-r--r--power.c37
1 files changed, 35 insertions, 2 deletions
diff --git a/power.c b/power.c
index 7225788..8d3c7fa 100644
--- a/power.c
+++ b/power.c
@@ -30,6 +30,8 @@
#define STATE_ON "state=1"
#define STATE_OFF "state=0"
+#define STATE_HDR_ON "state=2"
+#define STATE_HDR_OFF "state=3"
#define MAX_LENGTH 50
#define BOOST_SOCKET "/dev/socket/pb"
@@ -84,6 +86,32 @@ static void sync_thread(int off)
}
}
+static void enc_boost(int off)
+{
+ int rc;
+ pid_t client;
+ char data[MAX_LENGTH];
+
+ if (client_sockfd < 0) {
+ ALOGE("%s: boost socket not created", __func__);
+ return;
+ }
+
+ client = getpid();
+
+ if (!off) {
+ snprintf(data, MAX_LENGTH, "5:%d", client);
+ rc = sendto(client_sockfd, data, strlen(data), 0, (const struct sockaddr *)&client_addr, sizeof(struct sockaddr_un));
+ } else {
+ snprintf(data, MAX_LENGTH, "6:%d", client);
+ rc = sendto(client_sockfd, data, strlen(data), 0, (const struct sockaddr *)&client_addr, sizeof(struct sockaddr_un));
+ }
+
+ if (rc < 0) {
+ ALOGE("%s: failed to send: %s", __func__, strerror(errno));
+ }
+}
+
static void process_video_encode_hint(void *metadata)
{
@@ -101,12 +129,17 @@ static void process_video_encode_hint(void *metadata)
} else if (!strncmp(metadata, STATE_OFF, sizeof(STATE_OFF))) {
/* Video encode stopped */
sync_thread(0);
- } else
+ } else if (!strncmp(metadata, STATE_HDR_ON, sizeof(STATE_HDR_ON))) {
+ /* HDR usecase started */
+ enc_boost(1);
+ } else if (!strncmp(metadata, STATE_HDR_OFF, sizeof(STATE_HDR_OFF))) {
+ /* HDR usecase stopped */
+ enc_boost(0);
+ }else
return;
} else {
return;
}
-
}