am 2d5f41e4: Merge "Better handling of 0-length format conversions in convertAudioPortFromNative()." into mnc-dev
* commit '2d5f41e4c1733ff3e606390a433a6a52be6e862a': Better handling of 0-length format conversions in convertAudioPortFromNative().
This commit is contained in:
@@ -856,7 +856,8 @@ static jint convertAudioPortFromNative(JNIEnv *env,
|
|||||||
bool useInMask;
|
bool useInMask;
|
||||||
size_t numPositionMasks = 0;
|
size_t numPositionMasks = 0;
|
||||||
size_t numIndexMasks = 0;
|
size_t numIndexMasks = 0;
|
||||||
size_t numUniqueFormats;
|
size_t numUniqueFormats = 0;
|
||||||
|
|
||||||
ALOGV("convertAudioPortFromNative id %d role %d type %d name %s",
|
ALOGV("convertAudioPortFromNative id %d role %d type %d name %s",
|
||||||
nAudioPort->id, nAudioPort->role, nAudioPort->type, nAudioPort->name);
|
nAudioPort->id, nAudioPort->role, nAudioPort->type, nAudioPort->name);
|
||||||
|
|
||||||
@@ -907,12 +908,13 @@ static jint convertAudioPortFromNative(JNIEnv *env,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// formats
|
// formats
|
||||||
cFormats = new int[nAudioPort->num_formats];
|
if (nAudioPort->num_formats != 0) {
|
||||||
numUniqueFormats = 0;
|
cFormats = new int[nAudioPort->num_formats];
|
||||||
for (size_t index = 0; index < nAudioPort->num_formats; index++) {
|
for (size_t index = 0; index < nAudioPort->num_formats; index++) {
|
||||||
int format = audioFormatFromNative(nAudioPort->formats[index]);
|
int format = audioFormatFromNative(nAudioPort->formats[index]);
|
||||||
if (!hasFormat(cFormats, numUniqueFormats, format)) {
|
if (!hasFormat(cFormats, numUniqueFormats, format)) {
|
||||||
cFormats[numUniqueFormats++] = format;
|
cFormats[numUniqueFormats++] = format;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
jFormats = env->NewIntArray(numUniqueFormats);
|
jFormats = env->NewIntArray(numUniqueFormats);
|
||||||
@@ -920,7 +922,9 @@ static jint convertAudioPortFromNative(JNIEnv *env,
|
|||||||
jStatus = (jint)AUDIO_JAVA_ERROR;
|
jStatus = (jint)AUDIO_JAVA_ERROR;
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
env->SetIntArrayRegion(jFormats, 0, numUniqueFormats, cFormats);
|
if (numUniqueFormats != 0) {
|
||||||
|
env->SetIntArrayRegion(jFormats, 0, numUniqueFormats, cFormats);
|
||||||
|
}
|
||||||
|
|
||||||
// gains
|
// gains
|
||||||
jGains = env->NewObjectArray(nAudioPort->num_gains,
|
jGains = env->NewObjectArray(nAudioPort->num_gains,
|
||||||
|
|||||||
Reference in New Issue
Block a user