diff options
-rw-r--r-- | media/utils/Android.mk | 2 | ||||
-rw-r--r-- | media/utils/ISchedulingPolicyService.cpp (renamed from services/audioflinger/ISchedulingPolicyService.cpp) | 0 | ||||
-rw-r--r-- | media/utils/ISchedulingPolicyService.h (renamed from services/audioflinger/ISchedulingPolicyService.h) | 0 | ||||
-rw-r--r-- | media/utils/SchedulingPolicyService.cpp (renamed from services/audioflinger/SchedulingPolicyService.cpp) | 2 | ||||
-rw-r--r-- | media/utils/include/mediautils/SchedulingPolicyService.h (renamed from services/audioflinger/SchedulingPolicyService.h) | 0 | ||||
-rw-r--r-- | services/audioflinger/Android.mk | 15 | ||||
-rw-r--r-- | services/audioflinger/Threads.cpp | 2 | ||||
-rw-r--r-- | services/camera/libcameraservice/Android.mk | 2 | ||||
-rw-r--r-- | services/camera/libcameraservice/device3/Camera3Device.cpp | 16 | ||||
-rw-r--r-- | services/camera/libcameraservice/device3/Camera3Device.h | 2 |
10 files changed, 25 insertions, 16 deletions
diff --git a/media/utils/Android.mk b/media/utils/Android.mk index dfadbc8..54d22b1 100644 --- a/media/utils/Android.mk +++ b/media/utils/Android.mk @@ -18,6 +18,8 @@ include $(CLEAR_VARS) LOCAL_SRC_FILES := \ BatteryNotifier.cpp \ + ISchedulingPolicyService.cpp \ + SchedulingPolicyService.cpp LOCAL_SHARED_LIBRARIES := \ libbinder \ diff --git a/services/audioflinger/ISchedulingPolicyService.cpp b/media/utils/ISchedulingPolicyService.cpp index f55bc02..f55bc02 100644 --- a/services/audioflinger/ISchedulingPolicyService.cpp +++ b/media/utils/ISchedulingPolicyService.cpp diff --git a/services/audioflinger/ISchedulingPolicyService.h b/media/utils/ISchedulingPolicyService.h index b94b191..b94b191 100644 --- a/services/audioflinger/ISchedulingPolicyService.h +++ b/media/utils/ISchedulingPolicyService.h diff --git a/services/audioflinger/SchedulingPolicyService.cpp b/media/utils/SchedulingPolicyService.cpp index 70a3f1a..17ee9bc 100644 --- a/services/audioflinger/SchedulingPolicyService.cpp +++ b/media/utils/SchedulingPolicyService.cpp @@ -20,7 +20,7 @@ #include <binder/IServiceManager.h> #include <utils/Mutex.h> #include "ISchedulingPolicyService.h" -#include "SchedulingPolicyService.h" +#include "mediautils/SchedulingPolicyService.h" namespace android { diff --git a/services/audioflinger/SchedulingPolicyService.h b/media/utils/include/mediautils/SchedulingPolicyService.h index a9870d4..a9870d4 100644 --- a/services/audioflinger/SchedulingPolicyService.h +++ b/media/utils/include/mediautils/SchedulingPolicyService.h diff --git a/services/audioflinger/Android.mk b/services/audioflinger/Android.mk index debcdf9..9b4ba79 100644 --- a/services/audioflinger/Android.mk +++ b/services/audioflinger/Android.mk @@ -3,17 +3,6 @@ LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES := \ - ISchedulingPolicyService.cpp \ - SchedulingPolicyService.cpp - -# FIXME Move this library to frameworks/native -LOCAL_MODULE := libscheduling_policy - -include $(BUILD_STATIC_LIBRARY) - -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := \ ServiceUtilities.cpp # FIXME Move this library to frameworks/native @@ -64,10 +53,10 @@ LOCAL_SHARED_LIBRARIES := \ libeffects \ libpowermanager \ libserviceutility \ - libsonic + libsonic \ + libmediautils LOCAL_STATIC_LIBRARIES := \ - libscheduling_policy \ libcpustats \ libmedia_helper diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp index 5bd9149..f586291 100644 --- a/services/audioflinger/Threads.cpp +++ b/services/audioflinger/Threads.cpp @@ -60,7 +60,7 @@ #include "FastMixer.h" #include "FastCapture.h" #include "ServiceUtilities.h" -#include "SchedulingPolicyService.h" +#include "mediautils/SchedulingPolicyService.h" #ifdef ADD_BATTERY_DATA #include <media/IMediaPlayerService.h> diff --git a/services/camera/libcameraservice/Android.mk b/services/camera/libcameraservice/Android.mk index e8ef24e..45900c4 100644 --- a/services/camera/libcameraservice/Android.mk +++ b/services/camera/libcameraservice/Android.mk @@ -53,7 +53,7 @@ LOCAL_SRC_FILES:= \ device3/StatusTracker.cpp \ gui/RingBufferConsumer.cpp \ utils/CameraTraces.cpp \ - utils/AutoConditionLock.cpp \ + utils/AutoConditionLock.cpp LOCAL_SHARED_LIBRARIES:= \ libui \ diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp index 433a745..1a3a770 100644 --- a/services/camera/libcameraservice/device3/Camera3Device.cpp +++ b/services/camera/libcameraservice/device3/Camera3Device.cpp @@ -44,6 +44,7 @@ #include <utils/Timers.h> #include "utils/CameraTraces.h" +#include "mediautils/SchedulingPolicyService.h" #include "device3/Camera3Device.h" #include "device3/Camera3OutputStream.h" #include "device3/Camera3InputStream.h" @@ -1766,6 +1767,21 @@ status_t Camera3Device::configureStreamsLocked() { // across configure_streams() calls mRequestThread->configurationComplete(); + // Boost priority of request thread for high speed recording to SCHED_FIFO + if (mIsConstrainedHighSpeedConfiguration) { + pid_t requestThreadTid = mRequestThread->getTid(); + res = requestPriority(getpid(), requestThreadTid, + kConstrainedHighSpeedThreadPriority, true); + if (res != OK) { + ALOGW("Can't set realtime priority for request processing thread: %s (%d)", + strerror(-res), res); + } else { + ALOGD("Set real time priority for request queue thread (tid %d)", requestThreadTid); + } + } else { + // TODO: Set/restore normal priority for normal use cases + } + // Update device state mNeedConfig = false; diff --git a/services/camera/libcameraservice/device3/Camera3Device.h b/services/camera/libcameraservice/device3/Camera3Device.h index 9d3c533..402cb1d 100644 --- a/services/camera/libcameraservice/device3/Camera3Device.h +++ b/services/camera/libcameraservice/device3/Camera3Device.h @@ -161,6 +161,8 @@ class Camera3Device : static const nsecs_t kActiveTimeout = 500000000; // 500 ms static const size_t kInFlightWarnLimit = 20; static const size_t kInFlightWarnLimitHighSpeed = 256; // batch size 32 * pipe depth 8 + // SCHED_FIFO priority for request submission thread in HFR mode + static const int kConstrainedHighSpeedThreadPriority = 3; struct RequestTrigger; // minimal jpeg buffer size: 256KB + blob header |