diff --git a/src/native/ffmpeg/net_java_sip_communicator_impl_media_codec_video_FFMPEG.c b/src/native/ffmpeg/net_java_sip_communicator_impl_media_codec_video_FFMPEG.c new file mode 100644 index 000000000..a8f16f249 --- /dev/null +++ b/src/native/ffmpeg/net_java_sip_communicator_impl_media_codec_video_FFMPEG.c @@ -0,0 +1,395 @@ +/* + * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +#include "net_java_sip_communicator_impl_media_codec_video_FFMPEG.h" + +#include + +#include +#include +#include + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_av_1free ( + JNIEnv *jniEnv, jclass clazz, jlong ptr) { + av_free ((void *) ptr); +} + +JNIEXPORT jlong JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_av_1malloc ( + JNIEnv *jniEnv, jclass clazz, jint size) { + return (jlong) av_malloc ((unsigned int) size); +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_av_1register_1all ( + JNIEnv *jniEnv, jclass clazz) { + av_register_all (); +} + +JNIEXPORT jlong JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1alloc_1context ( + JNIEnv *jniEnv, jclass clazz) { + return (jlong) avcodec_alloc_context (); +} + +JNIEXPORT jlong JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1alloc_1frame ( + JNIEnv *jniEnv, jclass clazz) { + return (jlong) avcodec_alloc_frame (); +} + +JNIEXPORT jint JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1close ( + JNIEnv *jniEnv, jclass clazz, jlong avctx) { + return (jint) avcodec_close ((AVCodecContext *) avctx); +} + +JNIEXPORT jint JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1decode_1video ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jlong frame, + jbooleanArray got_picture, jbyteArray buf, jint buf_size) { + jint ret; + int n_got_picture; + + if (buf) { + jbyte *buf_ptr = (*jniEnv)->GetByteArrayElements (jniEnv, buf, NULL); + + if (buf_ptr) { + ret = (jint) + avcodec_decode_video ((AVCodecContext *) avctx, + (AVFrame *) frame, &n_got_picture, + (const uint8_t *) buf_ptr, (int) buf_size); + (*jniEnv)->ReleaseByteArrayElements (jniEnv, buf, buf_ptr, 0); + + if (got_picture) { + jboolean j_got_picture = n_got_picture ? JNI_TRUE : JNI_FALSE; + + (*jniEnv)->SetBooleanArrayRegion (jniEnv, got_picture, 0, 1, + &j_got_picture); + } + } else + ret = -1; + } else + ret = -1; + return ret; +} + +JNIEXPORT jint JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1encode_1video ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jbyteArray buf, + jint buf_size, jlong frame) { + jint ret; + + if (buf) { + jbyte *buf_ptr = (*jniEnv)->GetByteArrayElements (jniEnv, buf, NULL); + + if (buf_ptr) { + ret = (jint) + avcodec_encode_video ((AVCodecContext *) avctx, + (uint8_t *) buf_ptr, (int) buf_size, + (const AVFrame *) frame); + (*jniEnv)->ReleaseByteArrayElements (jniEnv, buf, buf_ptr, 0); + } else + ret = -1; + } else + ret = -1; + return ret; +} + +JNIEXPORT jlong JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1find_1decoder ( + JNIEnv *jniEnv, jclass clazz, jint id) { + return (jlong) avcodec_find_decoder ((enum CodecID) id); +} + +JNIEXPORT jlong JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1find_1encoder ( + JNIEnv *jniEnv, jclass clazz, jint id) { + return (jlong) avcodec_find_encoder ((enum CodecID) id); +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1init ( + JNIEnv *jniEnv, jclass clazz) { + avcodec_init (); +} + +JNIEXPORT jint JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1open ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jlong codec) { + return (jint) avcodec_open ((AVCodecContext *) avctx, (AVCodec *) codec); +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1add_1flags ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint flags) { + ((AVCodecContext *) avctx)->flags |= (int) flags; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1add_1partitions ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint partitions) { + ((AVCodecContext *) avctx)->partitions |= (int) partitions; +} + +JNIEXPORT jint JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1get_1height ( + JNIEnv *jniEnv, jclass clazz, jlong avctx) { + return (jint) (((AVCodecContext *) avctx)->height); +} + +JNIEXPORT jint JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1get_1pix_1fmt ( + JNIEnv *jniEnv, jclass clazz, jlong avctx) { + return (jint) (((AVCodecContext *) avctx)->pix_fmt); +} + +JNIEXPORT jint JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1get_1width ( + JNIEnv *jniEnv, jclass clazz, jlong avctx) { + return (jint) (((AVCodecContext *) avctx)->width); +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1bit_1rate ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint bit_rate) { + ((AVCodecContext *) avctx)->bit_rate = (int) bit_rate; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1bit_1rate_1tolerance ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint bit_rate_tolerance) { + ((AVCodecContext *) avctx)->bit_rate_tolerance = (int) bit_rate_tolerance; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1crf ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jfloat crf) { + ((AVCodecContext *) avctx)->crf = (float) crf; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1gop_1size ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint gop_size) { + ((AVCodecContext *) avctx)->gop_size = (int) gop_size; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1i_1quant_1factor ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jfloat i_quant_factor) { + ((AVCodecContext *) avctx)->i_quant_factor = (float) i_quant_factor; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1mb_1decision ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint mb_decision) { + ((AVCodecContext *) avctx)->mb_decision = (int) mb_decision; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1me_1cmp ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint me_cmp) { + ((AVCodecContext *) avctx)->me_cmp = (int) me_cmp; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1me_1method ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint me_method) { + ((AVCodecContext *) avctx)->me_method = (int) me_method; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1me_1range ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint me_range) { + ((AVCodecContext *) avctx)->me_range = (int) me_range; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1me_1subpel_1quality ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint me_subpel_quality) { + ((AVCodecContext *) avctx)->me_subpel_quality = (int) me_subpel_quality; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1pix_1fmt ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint pix_fmt) { + ((AVCodecContext *) avctx)->pix_fmt = (int) pix_fmt; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1qcompress ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jfloat qcompress) { + ((AVCodecContext *) avctx)->qcompress = (float) qcompress; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1quantizer ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint qmin, jint qmax, + jint max_qdiff) { + AVCodecContext *n_avctx = (AVCodecContext *) avctx; + + n_avctx->qmin = (int) qmin; + n_avctx->qmax = (int) qmax; + n_avctx->max_qdiff = (int) max_qdiff; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1rc_1buffer_1size ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint rc_buffer_size) { + ((AVCodecContext *) avctx)->rc_buffer_size = (int) rc_buffer_size; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1rc_1eq ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jstring rc_eq) { + char *n_rc_eq; + + if (rc_eq) { + const char * j_rc_eq = + (*jniEnv)->GetStringUTFChars (jniEnv, rc_eq, NULL); + + if (j_rc_eq) { + n_rc_eq = strdup (j_rc_eq); + (*jniEnv)->ReleaseStringUTFChars (jniEnv, rc_eq, j_rc_eq); + } else + n_rc_eq = NULL; + } else + n_rc_eq = NULL; + ((AVCodecContext *) avctx)->rc_eq = n_rc_eq; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1rc_1max_1rate ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint rc_max_rate) { + ((AVCodecContext *) avctx)->rc_max_rate = (int) rc_max_rate; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1sample_1aspect_1ratio ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint num, jint den) { + AVRational *sample_aspect_ratio = + &(((AVCodecContext *) avctx)->sample_aspect_ratio); + + sample_aspect_ratio->num = (int) num; + sample_aspect_ratio->den = (int) den; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1scenechange_1threshold ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint scenechange_threshold) { + ((AVCodecContext *) avctx)->scenechange_threshold = + (int) scenechange_threshold; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1size ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint width, jint height) { + AVCodecContext *n_avctx = (AVCodecContext *) avctx; + + n_avctx->width = (int) width; + n_avctx->height = (int) height; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1thread_1count ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint thread_count) { + ((AVCodecContext *) avctx)->thread_count = (int) thread_count; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1time_1base ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint num, jint den) { + AVRational *time_base = &(((AVCodecContext *) avctx)->time_base); + + time_base->num = (int) num; + time_base->den = (int) den; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1workaround_1bugs ( + JNIEnv *jniEnv, jclass clazz, jlong avctx, jint workaround_bugs) { + ((AVCodecContext *) avctx)->workaround_bugs = (int) workaround_bugs; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avframe_1set_1data ( + JNIEnv *jniEnv, jclass clazz, jlong frame, jlong data0, jlong offset1, + jlong offset2) { + AVFrame *n_frame = (AVFrame *) frame; + + n_frame->data[0] = (uint8_t *) data0; + n_frame->data[1] = n_frame->data[0] + offset1; + n_frame->data[2] = n_frame->data[1] + offset2; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avframe_1set_1key_1frame ( + JNIEnv *jniEnv, jclass clazz, jlong frame, jboolean key_frame) { + ((AVFrame *) frame)->key_frame = (JNI_TRUE == key_frame) ? 1 : 0; +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avframe_1set_1linesize ( + JNIEnv *jniEnv, jclass clazz, jlong frame, jint linesize0, + jint linesize1, jint linesize2) { + AVFrame *n_frame = (AVFrame *) frame; + + n_frame->linesize[0] = (int) linesize0; + n_frame->linesize[1] = (int) linesize1; + n_frame->linesize[2] = (int) linesize2; +} + +JNIEXPORT jint JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avpicture_1fill ( + JNIEnv *jniEnv, jclass clazz, jlong picture, jlong ptr, jint pix_fmt, + jint width, jint height) { + return (jint) + avpicture_fill ((AVPicture *) picture, (uint8_t *) ptr, (int) pix_fmt, + (int) width, (int) height); +} + +JNIEXPORT jlong JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avpicture_1get_1data0 ( + JNIEnv *jniEnv, jclass clazz, jlong picture) { + return (jlong) (((AVPicture *) picture)->data[0]); +} + +JNIEXPORT jint JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avpicture_1get_1size ( + JNIEnv *jniEnv, jclass clazz, jint pix_fmt, jint width, jint height) { + return (jint) avpicture_get_size ((int) pix_fmt, (int) width, (int) height); +} + +JNIEXPORT jint JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_img_1convert ( + JNIEnv *jniEnv, jclass clazz, jlong dst, jint dst_pix_fmt, jlong src, + jint pix_fmt, jint width, jint height) { + return (jint) + img_convert ((AVPicture *) dst, (int) dst_pix_fmt, + (const AVPicture *) src, (int) pix_fmt, (int) width, (int) height); +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_memcpy___3IIIJ ( + JNIEnv *jniEnv, jclass clazz, jintArray dst, jint dst_offset, + jint dst_length, jlong src) { + jint *dst_ptr = (*jniEnv)->GetIntArrayElements (jniEnv, dst, NULL); + + if (dst_ptr) { + memcpy (dst_ptr + dst_offset, (const void *) src, + dst_length * sizeof (jint)); + (*jniEnv)->ReleaseIntArrayElements (jniEnv, dst, dst_ptr, 0); + } +} + +JNIEXPORT void JNICALL +Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_memcpy__J_3BII ( + JNIEnv *jniEnv, jclass clazz, jlong dst, jbyteArray src, + jint src_offset, jint src_length) { + (*jniEnv)->GetByteArrayRegion (jniEnv, src, src_offset, src_length, + (jbyte *) dst); +} diff --git a/src/native/ffmpeg/net_java_sip_communicator_impl_media_codec_video_FFMPEG.h b/src/native/ffmpeg/net_java_sip_communicator_impl_media_codec_video_FFMPEG.h new file mode 100644 index 000000000..eae3a4cdb --- /dev/null +++ b/src/native/ffmpeg/net_java_sip_communicator_impl_media_codec_video_FFMPEG.h @@ -0,0 +1,397 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* Header for class net_java_sip_communicator_impl_media_codec_video_FFMPEG */ + +#ifndef _Included_net_java_sip_communicator_impl_media_codec_video_FFMPEG +#define _Included_net_java_sip_communicator_impl_media_codec_video_FFMPEG +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: av_free + * Signature: (J)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_av_1free + (JNIEnv *, jclass, jlong); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: av_malloc + * Signature: (I)J + */ +JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_av_1malloc + (JNIEnv *, jclass, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: av_register_all + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_av_1register_1all + (JNIEnv *, jclass); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodec_alloc_context + * Signature: ()J + */ +JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1alloc_1context + (JNIEnv *, jclass); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodec_alloc_frame + * Signature: ()J + */ +JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1alloc_1frame + (JNIEnv *, jclass); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodec_close + * Signature: (J)I + */ +JNIEXPORT jint JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1close + (JNIEnv *, jclass, jlong); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodec_decode_video + * Signature: (JJ[Z[BI)I + */ +JNIEXPORT jint JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1decode_1video + (JNIEnv *, jclass, jlong, jlong, jbooleanArray, jbyteArray, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodec_encode_video + * Signature: (J[BIJ)I + */ +JNIEXPORT jint JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1encode_1video + (JNIEnv *, jclass, jlong, jbyteArray, jint, jlong); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodec_find_decoder + * Signature: (I)J + */ +JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1find_1decoder + (JNIEnv *, jclass, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodec_find_encoder + * Signature: (I)J + */ +JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1find_1encoder + (JNIEnv *, jclass, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodec_init + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1init + (JNIEnv *, jclass); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodec_open + * Signature: (JJ)I + */ +JNIEXPORT jint JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodec_1open + (JNIEnv *, jclass, jlong, jlong); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_add_flags + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1add_1flags + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_add_partitions + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1add_1partitions + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_get_height + * Signature: (J)I + */ +JNIEXPORT jint JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1get_1height + (JNIEnv *, jclass, jlong); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_get_pix_fmt + * Signature: (J)I + */ +JNIEXPORT jint JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1get_1pix_1fmt + (JNIEnv *, jclass, jlong); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_get_width + * Signature: (J)I + */ +JNIEXPORT jint JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1get_1width + (JNIEnv *, jclass, jlong); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_bit_rate + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1bit_1rate + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_bit_rate_tolerance + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1bit_1rate_1tolerance + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_crf + * Signature: (JF)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1crf + (JNIEnv *, jclass, jlong, jfloat); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_gop_size + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1gop_1size + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_i_quant_factor + * Signature: (JF)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1i_1quant_1factor + (JNIEnv *, jclass, jlong, jfloat); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_mb_decision + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1mb_1decision + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_me_cmp + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1me_1cmp + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_me_method + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1me_1method + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_me_range + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1me_1range + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_me_subpel_quality + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1me_1subpel_1quality + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_pix_fmt + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1pix_1fmt + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_qcompress + * Signature: (JF)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1qcompress + (JNIEnv *, jclass, jlong, jfloat); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_quantizer + * Signature: (JIII)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1quantizer + (JNIEnv *, jclass, jlong, jint, jint, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_rc_buffer_size + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1rc_1buffer_1size + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_rc_eq + * Signature: (JLjava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1rc_1eq + (JNIEnv *, jclass, jlong, jstring); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_rc_max_rate + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1rc_1max_1rate + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_sample_aspect_ratio + * Signature: (JII)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1sample_1aspect_1ratio + (JNIEnv *, jclass, jlong, jint, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_scenechange_threshold + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1scenechange_1threshold + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_size + * Signature: (JII)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1size + (JNIEnv *, jclass, jlong, jint, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_thread_count + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1thread_1count + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_time_base + * Signature: (JII)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1time_1base + (JNIEnv *, jclass, jlong, jint, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avcodeccontext_set_workaround_bugs + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avcodeccontext_1set_1workaround_1bugs + (JNIEnv *, jclass, jlong, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avframe_set_data + * Signature: (JJJJ)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avframe_1set_1data + (JNIEnv *, jclass, jlong, jlong, jlong, jlong); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avframe_set_key_frame + * Signature: (JZ)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avframe_1set_1key_1frame + (JNIEnv *, jclass, jlong, jboolean); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avframe_set_linesize + * Signature: (JIII)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avframe_1set_1linesize + (JNIEnv *, jclass, jlong, jint, jint, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avpicture_fill + * Signature: (JJIII)I + */ +JNIEXPORT jint JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avpicture_1fill + (JNIEnv *, jclass, jlong, jlong, jint, jint, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avpicture_get_data0 + * Signature: (J)J + */ +JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avpicture_1get_1data0 + (JNIEnv *, jclass, jlong); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: avpicture_get_size + * Signature: (III)I + */ +JNIEXPORT jint JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_avpicture_1get_1size + (JNIEnv *, jclass, jint, jint, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: img_convert + * Signature: (JIJIII)I + */ +JNIEXPORT jint JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_img_1convert + (JNIEnv *, jclass, jlong, jint, jlong, jint, jint, jint); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: memcpy + * Signature: ([IIIJ)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_memcpy___3IIIJ + (JNIEnv *, jclass, jintArray, jint, jint, jlong); + +/* + * Class: net_java_sip_communicator_impl_media_codec_video_FFMPEG + * Method: memcpy + * Signature: (J[BII)V + */ +JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_media_codec_video_FFMPEG_memcpy__J_3BII + (JNIEnv *, jclass, jlong, jbyteArray, jint, jint); + +#ifdef __cplusplus +} +#endif +#endif