diff options
author | Mansoor Aftab <maftab@codeaurora.org> | 2013-10-14 23:04:46 -0700 |
---|---|---|
committer | Vineeta Srivastava <vsrivastava@google.com> | 2013-10-16 06:45:35 +0000 |
commit | 1e661b89f8becf65469a34c6da75782747500529 (patch) | |
tree | bfc3dabd8002057cc9d6d916c8d1545cb78854c7 | |
parent | 5bcf77c61c8a65d468f98e842cbe6010f2e38a06 (diff) | |
download | power-1e661b89f8becf65469a34c6da75782747500529.tar.gz |
Support encoder boostandroid-cts-4.4_r4android-cts-4.4_r1android-4.4_r1.2.0.1android-4.4_r1.2android-4.4_r1.1.0.1android-4.4_r1.1android-4.4_r1.0.1android-4.4_r1android-4.4_r0.9kitkat-releasekitkat-cts-releasekitkat-cts-dev
Bug: 11011342
Bug: 11201229
Change-Id: I1d6967e95670aab5cfae4467fc529fe09856b9fc
-rw-r--r-- | power.c | 37 |
1 files changed, 35 insertions, 2 deletions
@@ -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; } - } |