summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Glenn Kasten <gkasten@google.com> 2011-06-14 10:35:34 -0700
committer Glenn Kasten <gkasten@google.com> 2011-06-14 10:41:50 -0700
commit1d24aaa4b47ac005c0a673a06c373f85b1e43caf (patch)
tree689f5a8057751eaaabfcb21e74f788e2427e4106
parent622d5441975fa16636d3304d42d27659af14cb49 (diff)
Bug 4608375
Update priority and policy together for audio threads Change-Id: Ib3b07b32586c222c4aacbf23414ae8b05db502be
-rw-r--r--libs/utils/Threads.cpp11
-rw-r--r--media/libstagefright/MPEG4Writer.cpp2
-rw-r--r--media/libstagefright/TimedEventQueue.cpp3
-rw-r--r--media/libstagefright/omx/OMX.cpp2
4 files changed, 12 insertions, 6 deletions
diff --git a/libs/utils/Threads.cpp b/libs/utils/Threads.cpp
index 8b5da0e58014..df2fb1994d01 100644
--- a/libs/utils/Threads.cpp
+++ b/libs/utils/Threads.cpp
@@ -332,10 +332,17 @@ int androidSetThreadPriority(pid_t tid, int pri)
pthread_once(&gDoSchedulingGroupOnce, checkDoSchedulingGroup);
if (gDoSchedulingGroup) {
+ // set_sched_policy does not support tid == 0
+ int policy_tid;
+ if (tid == 0) {
+ policy_tid = androidGetTid();
+ } else {
+ policy_tid = tid;
+ }
if (pri >= ANDROID_PRIORITY_BACKGROUND) {
- rc = set_sched_policy(tid, SP_BACKGROUND);
+ rc = set_sched_policy(policy_tid, SP_BACKGROUND);
} else if (getpriority(PRIO_PROCESS, tid) >= ANDROID_PRIORITY_BACKGROUND) {
- rc = set_sched_policy(tid, SP_FOREGROUND);
+ rc = set_sched_policy(policy_tid, SP_FOREGROUND);
}
}
diff --git a/media/libstagefright/MPEG4Writer.cpp b/media/libstagefright/MPEG4Writer.cpp
index a953487eb4aa..5008b5f4719c 100644
--- a/media/libstagefright/MPEG4Writer.cpp
+++ b/media/libstagefright/MPEG4Writer.cpp
@@ -1946,7 +1946,7 @@ status_t MPEG4Writer::Track::threadEntry() {
} else {
prctl(PR_SET_NAME, (unsigned long)"VideoTrackEncoding", 0, 0, 0);
}
- setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_AUDIO);
+ androidSetThreadPriority(0, ANDROID_PRIORITY_AUDIO);
sp<MetaData> meta_data;
diff --git a/media/libstagefright/TimedEventQueue.cpp b/media/libstagefright/TimedEventQueue.cpp
index 5a453e96a499..a08eb7b371be 100644
--- a/media/libstagefright/TimedEventQueue.cpp
+++ b/media/libstagefright/TimedEventQueue.cpp
@@ -210,8 +210,7 @@ void *TimedEventQueue::ThreadWrapper(void *me) {
vm->AttachCurrentThread(&env, NULL);
#endif
- setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_FOREGROUND);
- set_sched_policy(androidGetTid(), SP_FOREGROUND);
+ androidSetThreadPriority(0, ANDROID_PRIORITY_FOREGROUND);
static_cast<TimedEventQueue *>(me)->threadEntry();
diff --git a/media/libstagefright/omx/OMX.cpp b/media/libstagefright/omx/OMX.cpp
index 4b1c3a7ed12f..14968e880549 100644
--- a/media/libstagefright/omx/OMX.cpp
+++ b/media/libstagefright/omx/OMX.cpp
@@ -116,7 +116,7 @@ void *OMX::CallbackDispatcher::ThreadWrapper(void *me) {
}
void OMX::CallbackDispatcher::threadEntry() {
- setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_AUDIO);
+ androidSetThreadPriority(0, ANDROID_PRIORITY_AUDIO);
prctl(PR_SET_NAME, (unsigned long)"OMXCallbackDisp", 0, 0, 0);
for (;;) {