Browse Source

sync latest jack2_android branch

tags/v1.9.10
KimJeongYeon 11 years ago
parent
commit
5ae1bfd301
2 changed files with 29 additions and 0 deletions
  1. +17
    -0
      android/Android.mk
  2. +12
    -0
      android/JackAndroidThread.cpp

+ 17
- 0
android/Android.mk View File

@@ -238,6 +238,11 @@ audioadapter_libsource := \
../common/JackAudioAdapterFactory.cpp \
../linux/alsa/JackAlsaAdapter.cpp

ifeq ($(SUPPORT_ANDROID_REALTIME_SCHED), true)
sched_c_include := bionic/libc/bionic \
frameworks/av/services/audioflinger
endif

# ========================================================
# libjackserver.so
# ========================================================
@@ -251,6 +256,12 @@ LOCAL_C_INCLUDES := $(common_c_includes)
LOCAL_SHARED_LIBRARIES := libc libdl libcutils libutils libjackshm
LOCAL_MODULE_TAGS := eng optional
LOCAL_MODULE := libjackserver
ifeq ($(SUPPORT_ANDROID_REALTIME_SCHED), true)
LOCAL_CFLAGS += -DJACK_ANDROID_REALTIME_SCHED
LOCAL_C_INCLUDES += $(sched_c_include)
LOCAL_SHARED_LIBRARIES += libbinder
LOCAL_STATIC_LIBRARIES := libscheduling_policy
endif

include $(BUILD_SHARED_LIBRARY)

@@ -283,6 +294,12 @@ LOCAL_C_INCLUDES := $(common_c_includes)
LOCAL_SHARED_LIBRARIES := libc libdl libcutils libutils libjackshm
LOCAL_MODULE_TAGS := eng optional
LOCAL_MODULE := libjack
ifeq ($(SUPPORT_ANDROID_REALTIME_SCHED), true)
LOCAL_CFLAGS += -DJACK_ANDROID_REALTIME_SCHED
LOCAL_C_INCLUDES += $(sched_c_include)
LOCAL_SHARED_LIBRARIES += libbinder
LOCAL_STATIC_LIBRARIES := libscheduling_policy
endif

include $(BUILD_SHARED_LIBRARY)



+ 12
- 0
android/JackAndroidThread.cpp View File

@@ -27,6 +27,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <unistd.h> // for _POSIX_PRIORITY_SCHEDULING check
#include <signal.h>

#ifdef JACK_ANDROID_REALTIME_SCHED
#include "SchedulingPolicyService.h"
#endif

//#define JACK_SCHED_POLICY SCHED_RR
#define JACK_SCHED_POLICY SCHED_FIFO

@@ -241,12 +245,20 @@ int JackAndroidThread::AcquireRealTimeImp(jack_native_thread_t thread, int prior

jack_log("JackAndroidThread::AcquireRealTimeImp priority = %d", priority);

#ifndef JACK_ANDROID_REALTIME_SCHED
if ((res = pthread_setschedparam(thread, JACK_SCHED_POLICY, &rtparam)) != 0) {
jack_error("Cannot use real-time scheduling (RR/%d)"
"(%d: %s)", rtparam.sched_priority, res,
strerror(res));
return -1;
}
#else
if ((res = android::requestPriority(getpid(), gettid(), priority)) != 0) {
jack_log("Failed to get SCHED_FIFO priority pid %d tid %d; error %d",
getpid(), gettid(), res);
return -1;
}
#endif
return 0;
}



Loading…
Cancel
Save