diff options
author | 2011-06-14 10:35:34 -0700 | |
---|---|---|
committer | 2011-06-14 10:41:50 -0700 | |
commit | 1d24aaa4b47ac005c0a673a06c373f85b1e43caf (patch) | |
tree | 689f5a8057751eaaabfcb21e74f788e2427e4106 | |
parent | 622d5441975fa16636d3304d42d27659af14cb49 (diff) |
Bug 4608375
Update priority and policy together for audio threads
Change-Id: Ib3b07b32586c222c4aacbf23414ae8b05db502be
-rw-r--r-- | libs/utils/Threads.cpp | 11 | ||||
-rw-r--r-- | media/libstagefright/MPEG4Writer.cpp | 2 | ||||
-rw-r--r-- | media/libstagefright/TimedEventQueue.cpp | 3 | ||||
-rw-r--r-- | media/libstagefright/omx/OMX.cpp | 2 |
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 (;;) { |