diff options
| author | Eric Laurent <elaurent@google.com> | 2013-09-12 00:15:30 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-09-12 00:15:31 +0000 |
| commit | 95a181397dad3113b96e3cc7392a5b0f5d742f39 (patch) | |
| tree | f1d61c6532945eb79d2ccc59c335041c093a9f52 /core/jni | |
| parent | ede3eeb72c9708df023bdfb369905ededd1ebb06 (diff) | |
| parent | 357263da0ec2bc2be9d48c1becc3d94288c2f3ed (diff) | |
| download | frameworks_base-95a181397dad3113b96e3cc7392a5b0f5d742f39.zip frameworks_base-95a181397dad3113b96e3cc7392a5b0f5d742f39.tar.gz frameworks_base-95a181397dad3113b96e3cc7392a5b0f5d742f39.tar.bz2 | |
Merge "Add HOTWORD as an AudioSource" into klp-dev
Diffstat (limited to 'core/jni')
| -rw-r--r-- | core/jni/android_media_AudioRecord.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/core/jni/android_media_AudioRecord.cpp b/core/jni/android_media_AudioRecord.cpp index 0cd6f4a..1c43cc5 100644 --- a/core/jni/android_media_AudioRecord.cpp +++ b/core/jni/android_media_AudioRecord.cpp @@ -190,7 +190,7 @@ android_media_AudioRecord_setup(JNIEnv *env, jobject thiz, jobject weak_this, int frameSize = nbChannels * bytesPerSample; size_t frameCount = buffSizeInBytes / frameSize; - if (uint32_t(source) >= AUDIO_SOURCE_CNT) { + if ((uint32_t(source) >= AUDIO_SOURCE_CNT) && (uint32_t(source) != AUDIO_SOURCE_HOTWORD)) { ALOGE("Error creating AudioRecord: unknown source."); return AUDIORECORD_ERROR_SETUP_INVALIDSOURCE; } @@ -387,6 +387,9 @@ static jint android_media_AudioRecord_readInByteArray(JNIEnv *env, jobject thiz (jint)recorderBuffSize : sizeInBytes ); env->ReleaseByteArrayElements(javaAudioData, recordBuff, 0); + if (readSize < 0) { + readSize = AUDIORECORD_ERROR_INVALID_OPERATION; + } return (jint) readSize; } @@ -427,8 +430,12 @@ static jint android_media_AudioRecord_readInDirectBuffer(JNIEnv *env, jobject t } // read new data from the recorder - return (jint) lpRecorder->read(nativeFromJavaBuf, + ssize_t readSize = lpRecorder->read(nativeFromJavaBuf, capacity < sizeInBytes ? capacity : sizeInBytes); + if (readSize < 0) { + readSize = AUDIORECORD_ERROR_INVALID_OPERATION; + } + return (jint)readSize; } |
