Skip to content
Snippets Groups Projects
Commit c4128dcf authored by Boris Grozev's avatar Boris Grozev
Browse files

Small changes to the opus JNI API

parent 37547c66
No related branches found
No related tags found
No related merge requests found
......@@ -14,7 +14,7 @@ JNIEXPORT jint JNICALL
Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_decode
(JNIEnv *env, jclass clazz, jlong decoder, jbyteArray input,
jint inputOffset, jint inputLength, jbyteArray output,
/* jint outputOffset, */ jint outputFrameSize, jint decodeFEC)
jint outputOffset, jint outputFrameSize, jint decodeFEC)
{
int ret;
......@@ -44,7 +44,7 @@ Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_decode
(unsigned char *)
(input_ ? (input_ + inputOffset) : NULL),
inputLength,
(opus_int16 *) (output_ /* + outputOffset */),
(opus_int16 *) (output_ + outputOffset),
outputFrameSize,
decodeFEC);
(*env)->ReleasePrimitiveArrayCritical(env, output, output_, 0);
......@@ -124,7 +124,7 @@ JNIEXPORT jint JNICALL
Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encode
(JNIEnv *env, jclass clazz, jlong encoder, jbyteArray input,
jint inputOffset, jint inputFrameSize, jbyteArray output,
/* jint outputOffset, */ jint outputLength)
jint outputOffset, jint outputLength)
{
int ret;
......@@ -143,7 +143,7 @@ Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encode
(OpusEncoder *) (intptr_t) encoder,
(opus_int16 *) (input_ + inputOffset),
inputFrameSize,
(unsigned char *) (output_ /* + outputOffset */),
(unsigned char *) (output_ + outputOffset),
outputLength);
(*env)->ReleasePrimitiveArrayCritical(env, output, output_, 0);
}
......@@ -253,6 +253,19 @@ Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1get_1vbr_1constraint
return (OPUS_OK == ret) ? x : ret;
}
JNIEXPORT jint JNICALL
Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1get_1inband_1fec
(JNIEnv *env, jclass clazz, jlong encoder)
{
opus_int32 x;
int ret
= opus_encoder_ctl(
(OpusEncoder *) (intptr_t) encoder,
OPUS_GET_INBAD_FEC(&x));
return (OPUS_OK == ret) ? x : ret;
}
JNIEXPORT jint JNICALL
Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encoder_1set_1bandwidth
(JNIEnv *env, jclass clazz, jlong encoder, jint bandwidth)
......
......@@ -10,10 +10,10 @@ extern "C" {
/*
* Class: org_jitsi_impl_neomedia_codec_audio_opus_Opus
* Method: decode
* Signature: (J[BII[BII)I
* Signature: (J[BII[BIII)I
*/
JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_decode
(JNIEnv *, jclass, jlong, jbyteArray, jint, jint, jbyteArray, jint, jint);
(JNIEnv *, jclass, jlong, jbyteArray, jint, jint, jbyteArray, jint, jint, jint);
/*
* Class: org_jitsi_impl_neomedia_codec_audio_opus_Opus
......@@ -50,10 +50,10 @@ JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_decode
/*
* Class: org_jitsi_impl_neomedia_codec_audio_opus_Opus
* Method: encode
* Signature: (J[BII[BI)I
*/
JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encode
(JNIEnv *, jclass, jlong, jbyteArray, jint, jint, jbyteArray, jint);
* Signature: (J[BII[BII)I
*/
JNIEXPORT jint JNICALL Java_org_jitsi_impl_neomedia_codec_audio_opus_Opus_encode
(JNIEnv *, jclass, jlong, jbyteArray, jint, jint, jbyteArray, jint, jint);
/*
* Class: org_jitsi_impl_neomedia_codec_audio_opus_Opus
......
......@@ -123,7 +123,7 @@ public JNIDecoder()
}
/**
* @see AbstractCodecExt#doClose()
* @see AbstractCodec2#doClose()
*/
@Override
protected void doClose()
......@@ -144,7 +144,7 @@ protected void doClose()
*
* @throws ResourceUnavailableException if any of the resources that this
* <tt>Codec</tt> needs to operate cannot be acquired
* @see AbstractCodecExt#doOpen()
* @see AbstractCodec2#doOpen()
*/
@Override
protected void doOpen()
......@@ -168,7 +168,7 @@ protected void doOpen()
* @param outBuffer output <tt>Buffer</tt>
* @return <tt>BUFFER_PROCESSED_OK</tt> if <tt>inBuffer</tt> has been
* successfully processed
* @see AbstractCodecExt#doProcess(Buffer, Buffer)
* @see AbstractCodec2#doProcess(Buffer, Buffer)
*/
@Override
protected int doProcess(Buffer inBuffer, Buffer outBuffer)
......@@ -229,7 +229,7 @@ protected int doProcess(Buffer inBuffer, Buffer outBuffer)
= Opus.decode(
decoder,
in, inOffset, inLength,
out, /* outOffset, */ lastFrameSizeInSamplesPerChannel,
out, outOffset, lastFrameSizeInSamplesPerChannel,
/* decodeFEC */ 1);
if (frameSizeInSamplesPerChannel > 0)
......@@ -267,7 +267,7 @@ protected int doProcess(Buffer inBuffer, Buffer outBuffer)
= Opus.decode(
decoder,
in, inOffset, inLength,
out, /* outOffset, */ frameSizeInSamplesPerChannel,
out, outOffset, frameSizeInSamplesPerChannel,
/* decodeFEC */ 0);
if (frameSizeInSamplesPerChannel > 0)
{
......
......@@ -210,7 +210,7 @@ public JNIEncoder()
/**
* {@inheritDoc}
*
* @see AbstractCodecExt#doClose()
* @see AbstractCodec2#doClose()
*/
@Override
protected void doClose()
......@@ -231,7 +231,7 @@ protected void doClose()
*
* @throws ResourceUnavailableException if any of the resources that this
* <tt>Codec</tt> needs to operate cannot be acquired
* @see AbstractCodecExt#doOpen()
* @see AbstractCodec2#doOpen()
*/
@Override
protected void doOpen()
......@@ -309,7 +309,7 @@ else if("nb".equals(str))
* be written
* @return <tt>BUFFER_PROCESSED_OK</tt> if the specified <tt>inBuffer</tt>
* has been processed successfully
* @see AbstractCodecExt#doProcess(Buffer, Buffer)
* @see AbstractCodec2#doProcess(Buffer, Buffer)
*/
@Override
protected int doProcess(Buffer inBuffer, Buffer outBuffer)
......@@ -401,7 +401,7 @@ else if (inLength < frameSizeInBytes)
= Opus.encode(
encoder,
in, inOffset, frameSizeInSamplesPerChannel,
out, /* 0, */ out.length);
out, 0, out.length);
if (outLength < 0) // error from opus_encode
return BUFFER_PROCESSED_FAILED;
......
......@@ -109,7 +109,7 @@ public static void assertOpusIsFunctional()
public static native int decode(
long decoder,
byte[] input, int inputOffset, int inputLength,
byte[] output, /* int outputOffset, */ int outputFrameSize,
byte[] output, int outputOffset, int outputFrameSize,
int decodeFEC);
/**
......@@ -170,7 +170,7 @@ public static native int decoder_get_nb_samples(
public static native int encode(
long encoder,
byte[] input, int inputOffset, int inputFrameSize,
byte[] output, /* int outputOffset, */ int outputLength);
byte[] output, int outputOffset, int outputLength);
/**
* Creates an OpusEncoder structure, returns a pointer to it casted to long.
......@@ -250,6 +250,16 @@ public static native int encode(
*/
public static native int encoder_get_vbr_constraint(long encoder);
/**
* Wrapper around the native <tt>opus_encoder_ctl</tt> function. Returns
* the current inband FEC encoder setting.
*
* @param encoder The encoder to use
*
* @return the current inband FEC encoder setting.
*/
public static native int encoder_get_inband_fec(long encoder);
/**
* Wrapper around the native <tt>opus_encoder_ctl</tt> function. Sets the
* encoder audio bandwidth.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment