* commit '568cde557abfaaa5bf584cf7c3396f9efd990e6c': AArch64: Use long for pointers in AmrInputStream
This commit is contained in:
@ -41,7 +41,7 @@ public final class AmrInputStream extends InputStream
|
|||||||
private InputStream mInputStream;
|
private InputStream mInputStream;
|
||||||
|
|
||||||
// native handle
|
// native handle
|
||||||
private int mGae;
|
private long mGae;
|
||||||
|
|
||||||
// result amr stream
|
// result amr stream
|
||||||
private final byte[] mBuf = new byte[SAMPLES_PER_FRAME * 2];
|
private final byte[] mBuf = new byte[SAMPLES_PER_FRAME * 2];
|
||||||
@ -130,11 +130,11 @@ public final class AmrInputStream extends InputStream
|
|||||||
//
|
//
|
||||||
// AudioRecord JNI interface
|
// AudioRecord JNI interface
|
||||||
//
|
//
|
||||||
private static native int GsmAmrEncoderNew();
|
private static native long GsmAmrEncoderNew();
|
||||||
private static native void GsmAmrEncoderInitialize(int gae);
|
private static native void GsmAmrEncoderInitialize(long gae);
|
||||||
private static native int GsmAmrEncoderEncode(int gae,
|
private static native int GsmAmrEncoderEncode(long gae,
|
||||||
byte[] pcm, int pcmOffset, byte[] amr, int amrOffset) throws IOException;
|
byte[] pcm, int pcmOffset, byte[] amr, int amrOffset) throws IOException;
|
||||||
private static native void GsmAmrEncoderCleanup(int gae);
|
private static native void GsmAmrEncoderCleanup(long gae);
|
||||||
private static native void GsmAmrEncoderDelete(int gae);
|
private static native void GsmAmrEncoderDelete(long gae);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -49,17 +49,17 @@ struct GsmAmrEncoderState {
|
|||||||
int32_t mLastModeUsed;
|
int32_t mLastModeUsed;
|
||||||
};
|
};
|
||||||
|
|
||||||
static jint android_media_AmrInputStream_GsmAmrEncoderNew
|
static jlong android_media_AmrInputStream_GsmAmrEncoderNew
|
||||||
(JNIEnv *env, jclass clazz) {
|
(JNIEnv *env, jclass clazz) {
|
||||||
GsmAmrEncoderState* gae = new GsmAmrEncoderState();
|
GsmAmrEncoderState* gae = new GsmAmrEncoderState();
|
||||||
if (gae == NULL) {
|
if (gae == NULL) {
|
||||||
jniThrowRuntimeException(env, "Out of memory");
|
jniThrowRuntimeException(env, "Out of memory");
|
||||||
}
|
}
|
||||||
return (jint)gae;
|
return (jlong)gae;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void android_media_AmrInputStream_GsmAmrEncoderInitialize
|
static void android_media_AmrInputStream_GsmAmrEncoderInitialize
|
||||||
(JNIEnv *env, jclass clazz, jint gae) {
|
(JNIEnv *env, jclass clazz, jlong gae) {
|
||||||
GsmAmrEncoderState *state = (GsmAmrEncoderState *) gae;
|
GsmAmrEncoderState *state = (GsmAmrEncoderState *) gae;
|
||||||
int32_t nResult = AMREncodeInit(&state->mEncState, &state->mSidState, false);
|
int32_t nResult = AMREncodeInit(&state->mEncState, &state->mSidState, false);
|
||||||
if (nResult != OK) {
|
if (nResult != OK) {
|
||||||
@ -70,7 +70,7 @@ static void android_media_AmrInputStream_GsmAmrEncoderInitialize
|
|||||||
|
|
||||||
static jint android_media_AmrInputStream_GsmAmrEncoderEncode
|
static jint android_media_AmrInputStream_GsmAmrEncoderEncode
|
||||||
(JNIEnv *env, jclass clazz,
|
(JNIEnv *env, jclass clazz,
|
||||||
jint gae, jbyteArray pcm, jint pcmOffset, jbyteArray amr, jint amrOffset) {
|
jlong gae, jbyteArray pcm, jint pcmOffset, jbyteArray amr, jint amrOffset) {
|
||||||
|
|
||||||
jbyte inBuf[BYTES_PER_FRAME];
|
jbyte inBuf[BYTES_PER_FRAME];
|
||||||
jbyte outBuf[MAX_OUTPUT_BUFFER_SIZE];
|
jbyte outBuf[MAX_OUTPUT_BUFFER_SIZE];
|
||||||
@ -86,7 +86,7 @@ static jint android_media_AmrInputStream_GsmAmrEncoderEncode
|
|||||||
if (length < 0) {
|
if (length < 0) {
|
||||||
jniThrowExceptionFmt(env, "java/io/IOException",
|
jniThrowExceptionFmt(env, "java/io/IOException",
|
||||||
"Failed to encode a frame with error code: %d", length);
|
"Failed to encode a frame with error code: %d", length);
|
||||||
return -1;
|
return (jint)-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The 1st byte of PV AMR frames are WMF (Wireless Multimedia Forum)
|
// The 1st byte of PV AMR frames are WMF (Wireless Multimedia Forum)
|
||||||
@ -101,30 +101,30 @@ static jint android_media_AmrInputStream_GsmAmrEncoderEncode
|
|||||||
|
|
||||||
env->SetByteArrayRegion(amr, amrOffset, length, outBuf);
|
env->SetByteArrayRegion(amr, amrOffset, length, outBuf);
|
||||||
|
|
||||||
return length;
|
return (jint)length;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void android_media_AmrInputStream_GsmAmrEncoderCleanup
|
static void android_media_AmrInputStream_GsmAmrEncoderCleanup
|
||||||
(JNIEnv *env, jclass clazz, jint gae) {
|
(JNIEnv *env, jclass clazz, jlong gae) {
|
||||||
GsmAmrEncoderState *state = (GsmAmrEncoderState *)gae;
|
GsmAmrEncoderState *state = (GsmAmrEncoderState *) gae;
|
||||||
AMREncodeExit(&state->mEncState, &state->mSidState);
|
AMREncodeExit(&state->mEncState, &state->mSidState);
|
||||||
state->mEncState = NULL;
|
state->mEncState = NULL;
|
||||||
state->mSidState = NULL;
|
state->mSidState = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void android_media_AmrInputStream_GsmAmrEncoderDelete
|
static void android_media_AmrInputStream_GsmAmrEncoderDelete
|
||||||
(JNIEnv *env, jclass clazz, jint gae) {
|
(JNIEnv *env, jclass clazz, jlong gae) {
|
||||||
delete (GsmAmrEncoderState*)gae;
|
delete (GsmAmrEncoderState*)gae;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
static JNINativeMethod gMethods[] = {
|
static JNINativeMethod gMethods[] = {
|
||||||
{"GsmAmrEncoderNew", "()I", (void*)android_media_AmrInputStream_GsmAmrEncoderNew},
|
{"GsmAmrEncoderNew", "()J", (void*)android_media_AmrInputStream_GsmAmrEncoderNew},
|
||||||
{"GsmAmrEncoderInitialize", "(I)V", (void*)android_media_AmrInputStream_GsmAmrEncoderInitialize},
|
{"GsmAmrEncoderInitialize", "(J)V", (void*)android_media_AmrInputStream_GsmAmrEncoderInitialize},
|
||||||
{"GsmAmrEncoderEncode", "(I[BI[BI)I", (void*)android_media_AmrInputStream_GsmAmrEncoderEncode},
|
{"GsmAmrEncoderEncode", "(J[BI[BI)I", (void*)android_media_AmrInputStream_GsmAmrEncoderEncode},
|
||||||
{"GsmAmrEncoderCleanup", "(I)V", (void*)android_media_AmrInputStream_GsmAmrEncoderCleanup},
|
{"GsmAmrEncoderCleanup", "(J)V", (void*)android_media_AmrInputStream_GsmAmrEncoderCleanup},
|
||||||
{"GsmAmrEncoderDelete", "(I)V", (void*)android_media_AmrInputStream_GsmAmrEncoderDelete},
|
{"GsmAmrEncoderDelete", "(J)V", (void*)android_media_AmrInputStream_GsmAmrEncoderDelete},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user