Lines Matching refs:env
300 #define JNI_GET_ENV_OR_RETURN(env, log_ctx, ret) do { \
301 (env) = ff_jni_get_env(log_ctx); \
302 if (!(env)) { \
307 #define JNI_GET_ENV_OR_RETURN_VOID(env, log_ctx) do { \
308 (env) = ff_jni_get_env(log_ctx); \
309 if (!(env)) { \
318 JNIEnv *env = NULL;
322 JNI_GET_ENV_OR_RETURN(env, avctx, -1);
324 if (ff_jni_init_jfields(env, &jfields, jni_amediacodeclist_mapping, 0, avctx) < 0) {
370 ret = (*env)->GetStaticIntField(env, jfields.codec_profile_level_class, field_id);
371 if (ff_jni_exception_check(env, 1, avctx) < 0) {
378 ff_jni_reset_jfields(env, &jfields, jni_amediacodeclist_mapping, 0, avctx);
392 JNIEnv *env = NULL;
406 JNI_GET_ENV_OR_RETURN(env, log_ctx, NULL);
408 if ((ret = ff_jni_init_jfields(env, &jfields, jni_amediacodeclist_mapping, 0, log_ctx)) < 0) {
412 if ((ret = ff_jni_init_jfields(env, &mediaformat_jfields, jni_amediaformat_mapping, 0, log_ctx)) < 0) {
416 codec_count = (*env)->CallStaticIntMethod(env, jfields.mediacodec_list_class, jfields.get_codec_count_id);
417 if (ff_jni_exception_check(env, 1, log_ctx) < 0) {
426 info = (*env)->CallStaticObjectMethod(env, jfields.mediacodec_list_class, jfields.get_codec_info_at_id, i);
427 if (ff_jni_exception_check(env, 1, log_ctx) < 0) {
431 types = (*env)->CallObjectMethod(env, info, jfields.get_supported_types_id);
432 if (ff_jni_exception_check(env, 1, log_ctx) < 0) {
436 is_encoder = (*env)->CallBooleanMethod(env, info, jfields.is_encoder_id);
437 if (ff_jni_exception_check(env, 1, log_ctx) < 0) {
446 int is_software_only = (*env)->CallBooleanMethod(env, info, jfields.is_software_only_id);
447 if (ff_jni_exception_check(env, 1, log_ctx) < 0) {
456 codec_name = (*env)->CallObjectMethod(env, info, jfields.get_name_id);
457 if (ff_jni_exception_check(env, 1, log_ctx) < 0) {
461 name = ff_jni_jstring_to_utf_chars(env, codec_name, log_ctx);
467 (*env)->DeleteLocalRef(env, codec_name);
480 type_count = (*env)->GetArrayLength(env, types);
485 type = (*env)->GetObjectArrayElement(env, types, j);
486 if (ff_jni_exception_check(env, 1, log_ctx) < 0) {
490 supported_type = ff_jni_jstring_to_utf_chars(env, type, log_ctx);
499 capabilities = (*env)->CallObjectMethod(env, info, jfields.get_codec_capabilities_id, type);
500 if (ff_jni_exception_check(env, 1, log_ctx) < 0) {
504 profile_levels = (*env)->GetObjectField(env, capabilities, jfields.profile_levels_id);
505 if (ff_jni_exception_check(env, 1, log_ctx) < 0) {
509 profile_count = (*env)->GetArrayLength(env, profile_levels);
521 profile_level = (*env)->GetObjectArrayElement(env, profile_levels, k);
522 if (ff_jni_exception_check(env, 1, log_ctx) < 0) {
526 supported_profile = (*env)->GetIntField(env, profile_level, jfields.profile_id);
527 if (ff_jni_exception_check(env, 1, log_ctx) < 0) {
534 (*env)->DeleteLocalRef(env, profile_level);
545 (*env)->DeleteLocalRef(env, profile_levels);
550 (*env)->DeleteLocalRef(env, capabilities);
555 (*env)->DeleteLocalRef(env, type);
568 (*env)->DeleteLocalRef(env, info);
573 (*env)->DeleteLocalRef(env, types);
586 (*env)->DeleteLocalRef(env, codec_name);
590 (*env)->DeleteLocalRef(env, info);
594 (*env)->DeleteLocalRef(env, type);
598 (*env)->DeleteLocalRef(env, types);
602 (*env)->DeleteLocalRef(env, capabilities);
606 (*env)->DeleteLocalRef(env, profile_level);
610 (*env)->DeleteLocalRef(env, profile_levels);
615 ff_jni_reset_jfields(env, &jfields, jni_amediacodeclist_mapping, 0, log_ctx);
616 ff_jni_reset_jfields(env, &mediaformat_jfields, jni_amediaformat_mapping, 0, log_ctx);
627 JNIEnv *env = NULL;
637 env = ff_jni_get_env(format);
638 if (!env) {
643 if (ff_jni_init_jfields(env, &format->jfields, jni_amediaformat_mapping, 1, format) < 0) {
647 object = (*env)->NewObject(env, format->jfields.mediaformat_class, format->jfields.init_id);
652 format->object = (*env)->NewGlobalRef(env, object);
659 (*env)->DeleteLocalRef(env, object);
663 ff_jni_reset_jfields(env, &format->jfields, jni_amediaformat_mapping, 1, format);
672 JNIEnv *env = NULL;
681 env = ff_jni_get_env(format);
682 if (!env) {
687 if (ff_jni_init_jfields(env, &format->jfields, jni_amediaformat_mapping, 1, format) < 0) {
691 format->object = (*env)->NewGlobalRef(env, object);
698 ff_jni_reset_jfields(env, &format->jfields, jni_amediaformat_mapping, 1, format);
709 JNIEnv *env = NULL;
715 JNI_GET_ENV_OR_RETURN(env, format, AVERROR_EXTERNAL);
717 (*env)->DeleteGlobalRef(env, format->object);
720 ff_jni_reset_jfields(env, &format->jfields, jni_amediaformat_mapping, 1, format);
731 JNIEnv *env = NULL;
736 JNI_GET_ENV_OR_RETURN(env, format, NULL);
738 description = (*env)->CallObjectMethod(env, format->object, format->jfields.to_string_id);
739 if (ff_jni_exception_check(env, 1, NULL) < 0) {
743 ret = ff_jni_jstring_to_utf_chars(env, description, format);
746 (*env)->DeleteLocalRef(env, description);
756 JNIEnv *env = NULL;
762 JNI_GET_ENV_OR_RETURN(env, format, 0);
764 key = ff_jni_utf_chars_to_jstring(env, name, format);
770 contains_key = (*env)->CallBooleanMethod(env, format->object, format->jfields.contains_key_id, key);
771 if (!contains_key || (ret = ff_jni_exception_check(env, 1, format)) < 0) {
776 *out = (*env)->CallIntMethod(env, format->object, format->jfields.get_integer_id, key);
777 if ((ret = ff_jni_exception_check(env, 1, format)) < 0) {
785 (*env)->DeleteLocalRef(env, key);
795 JNIEnv *env = NULL;
801 JNI_GET_ENV_OR_RETURN(env, format, 0);
803 key = ff_jni_utf_chars_to_jstring(env, name, format);
809 contains_key = (*env)->CallBooleanMethod(env, format->object, format->jfields.contains_key_id, key);
810 if (!contains_key || (ret = ff_jni_exception_check(env, 1, format)) < 0) {
815 *out = (*env)->CallLongMethod(env, format->object, format->jfields.get_long_id, key);
816 if ((ret = ff_jni_exception_check(env, 1, format)) < 0) {
824 (*env)->DeleteLocalRef(env, key);
834 JNIEnv *env = NULL;
840 JNI_GET_ENV_OR_RETURN(env, format, 0);
842 key = ff_jni_utf_chars_to_jstring(env, name, format);
848 contains_key = (*env)->CallBooleanMethod(env, format->object, format->jfields.contains_key_id, key);
849 if (!contains_key || (ret = ff_jni_exception_check(env, 1, format)) < 0) {
854 *out = (*env)->CallFloatMethod(env, format->object, format->jfields.get_float_id, key);
855 if ((ret = ff_jni_exception_check(env, 1, format)) < 0) {
863 (*env)->DeleteLocalRef(env, key);
873 JNIEnv *env = NULL;
880 JNI_GET_ENV_OR_RETURN(env, format, 0);
882 key = ff_jni_utf_chars_to_jstring(env, name, format);
888 contains_key = (*env)->CallBooleanMethod(env, format->object, format->jfields.contains_key_id, key);
889 if (!contains_key || (ret = ff_jni_exception_check(env, 1, format)) < 0) {
894 result = (*env)->CallObjectMethod(env, format->object, format->jfields.get_bytebuffer_id, key);
895 if ((ret = ff_jni_exception_check(env, 1, format)) < 0) {
900 *data = (*env)->GetDirectBufferAddress(env, result);
901 *size = (*env)->GetDirectBufferCapacity(env, result);
917 (*env)->DeleteLocalRef(env, key);
921 (*env)->DeleteLocalRef(env, result);
931 JNIEnv *env = NULL;
938 JNI_GET_ENV_OR_RETURN(env, format, 0);
940 key = ff_jni_utf_chars_to_jstring(env, name, format);
946 contains_key = (*env)->CallBooleanMethod(env, format->object, format->jfields.contains_key_id, key);
947 if (!contains_key || (ret = ff_jni_exception_check(env, 1, format)) < 0) {
952 result = (*env)->CallObjectMethod(env, format->object, format->jfields.get_string_id, key);
953 if ((ret = ff_jni_exception_check(env, 1, format)) < 0) {
958 *out = ff_jni_jstring_to_utf_chars(env, result, format);
967 (*env)->DeleteLocalRef(env, key);
971 (*env)->DeleteLocalRef(env, result);
979 JNIEnv *env = NULL;
984 JNI_GET_ENV_OR_RETURN_VOID(env, format);
986 key = ff_jni_utf_chars_to_jstring(env, name, format);
991 (*env)->CallVoidMethod(env, format->object, format->jfields.set_integer_id, key, value);
992 if (ff_jni_exception_check(env, 1, format) < 0) {
998 (*env)->DeleteLocalRef(env, key);
1004 JNIEnv *env = NULL;
1009 JNI_GET_ENV_OR_RETURN_VOID(env, format);
1011 key = ff_jni_utf_chars_to_jstring(env, name, format);
1016 (*env)->CallVoidMethod(env, format->object, format->jfields.set_long_id, key, value);
1017 if (ff_jni_exception_check(env, 1, format) < 0) {
1023 (*env)->DeleteLocalRef(env, key);
1029 JNIEnv *env = NULL;
1034 JNI_GET_ENV_OR_RETURN_VOID(env, format);
1036 key = ff_jni_utf_chars_to_jstring(env, name, format);
1041 (*env)->CallVoidMethod(env, format->object, format->jfields.set_float_id, key, value);
1042 if (ff_jni_exception_check(env, 1, format) < 0) {
1048 (*env)->DeleteLocalRef(env, key);
1054 JNIEnv *env = NULL;
1060 JNI_GET_ENV_OR_RETURN_VOID(env, format);
1062 key = ff_jni_utf_chars_to_jstring(env, name, format);
1067 string = ff_jni_utf_chars_to_jstring(env, value, format);
1072 (*env)->CallVoidMethod(env, format->object, format->jfields.set_string_id, key, string);
1073 if (ff_jni_exception_check(env, 1, format) < 0) {
1079 (*env)->DeleteLocalRef(env, key);
1083 (*env)->DeleteLocalRef(env, string);
1089 JNIEnv *env = NULL;
1096 JNI_GET_ENV_OR_RETURN_VOID(env, format);
1098 key = ff_jni_utf_chars_to_jstring(env, name, format);
1114 buffer = (*env)->NewDirectByteBuffer(env, buffer_data, size);
1119 (*env)->CallVoidMethod(env, format->object, format->jfields.set_bytebuffer_id, key, buffer);
1120 if (ff_jni_exception_check(env, 1, format) < 0) {
1126 (*env)->DeleteLocalRef(env, key);
1130 (*env)->DeleteLocalRef(env, buffer);
1137 JNIEnv *env = NULL;
1139 JNI_GET_ENV_OR_RETURN(env, codec, AVERROR_EXTERNAL);
1141 codec->INFO_TRY_AGAIN_LATER = (*env)->GetStaticIntField(env, codec->jfields.mediacodec_class, codec->jfields.info_try_again_later_id);
1142 if ((ret = ff_jni_exception_check(env, 1, codec)) < 0) {
1146 codec->BUFFER_FLAG_CODEC_CONFIG = (*env)->GetStaticIntField(env, codec->jfields.mediacodec_class, codec->jfields.buffer_flag_codec_config_id);
1147 if ((ret = ff_jni_exception_check(env, 1, codec)) < 0) {
1151 codec->BUFFER_FLAG_END_OF_STREAM = (*env)->GetStaticIntField(env, codec->jfields.mediacodec_class, codec->jfields.buffer_flag_end_of_stream_id);
1152 if ((ret = ff_jni_exception_check(env, 1, codec)) < 0) {
1157 codec->BUFFER_FLAG_KEY_FRAME = (*env)->GetStaticIntField(env, codec->jfields.mediacodec_class, codec->jfields.buffer_flag_key_frame_id);
1158 if ((ret = ff_jni_exception_check(env, 1, codec)) < 0) {
1163 codec->CONFIGURE_FLAG_ENCODE = (*env)->GetStaticIntField(env, codec->jfields.mediacodec_class, codec->jfields.configure_flag_encode_id);
1164 if ((ret = ff_jni_exception_check(env, 1, codec)) < 0) {
1168 codec->INFO_TRY_AGAIN_LATER = (*env)->GetStaticIntField(env, codec->jfields.mediacodec_class, codec->jfields.info_try_again_later_id);
1169 if ((ret = ff_jni_exception_check(env, 1, codec)) < 0) {
1173 codec->INFO_OUTPUT_BUFFERS_CHANGED = (*env)->GetStaticIntField(env, codec->jfields.mediacodec_class, codec->jfields.info_output_buffers_changed_id);
1174 if ((ret = ff_jni_exception_check(env, 1, codec)) < 0) {
1178 codec->INFO_OUTPUT_FORMAT_CHANGED = (*env)->GetStaticIntField(env, codec->jfields.mediacodec_class, codec->jfields.info_output_format_changed_id);
1179 if ((ret = ff_jni_exception_check(env, 1, codec)) < 0) {
1195 JNIEnv *env = NULL;
1208 env = ff_jni_get_env(codec);
1209 if (!env) {
1214 if (ff_jni_init_jfields(env, &codec->jfields, jni_amediacodec_mapping, 1, codec) < 0) {
1218 jarg = ff_jni_utf_chars_to_jstring(env, arg, codec);
1231 object = (*env)->CallStaticObjectMethod(env,
1235 if (ff_jni_exception_check(env, 1, codec) < 0) {
1239 codec->object = (*env)->NewGlobalRef(env, object);
1252 buffer_info = (*env)->NewObject(env, codec->jfields.mediainfo_class, codec->jfields.init_id);
1253 if (ff_jni_exception_check(env, 1, codec) < 0) {
1257 codec->buffer_info = (*env)->NewGlobalRef(env, buffer_info);
1265 (*env)->DeleteLocalRef(env, jarg);
1269 (*env)->DeleteLocalRef(env, object);
1273 (*env)->DeleteLocalRef(env, buffer_info);
1278 (*env)->DeleteGlobalRef(env, codec->object);
1282 (*env)->DeleteGlobalRef(env, codec->buffer_info);
1285 ff_jni_reset_jfields(env, &codec->jfields, jni_amediacodec_mapping, 1, codec);
1306 JNIEnv *env = NULL;
1312 JNI_GET_ENV_OR_RETURN(env, codec, AVERROR_EXTERNAL);
1314 (*env)->CallVoidMethod(env, codec->object, codec->jfields.release_id);
1315 if (ff_jni_exception_check(env, 1, codec) < 0) {
1319 (*env)->DeleteGlobalRef(env, codec->input_buffers);
1322 (*env)->DeleteGlobalRef(env, codec->output_buffers);
1325 (*env)->DeleteGlobalRef(env, codec->object);
1328 (*env)->DeleteGlobalRef(env, codec->buffer_info);
1331 ff_jni_reset_jfields(env, &codec->jfields, jni_amediacodec_mapping, 1, codec);
1341 JNIEnv *env = NULL;
1344 JNI_GET_ENV_OR_RETURN(env, codec, NULL);
1346 name = (*env)->CallObjectMethod(env, codec->object, codec->jfields.get_name_id);
1347 if (ff_jni_exception_check(env, 1, codec) < 0) {
1351 ret = ff_jni_jstring_to_utf_chars(env, name, codec);
1355 (*env)->DeleteLocalRef(env, name);
1364 JNIEnv *env = NULL;
1366 JNI_GET_ENV_OR_RETURN(env, codec, AVERROR_EXTERNAL);
1368 (*env)->CallVoidMethod(env, codec->object, codec->jfields.configure_id, format->object, surface, NULL, flags);
1369 if (ff_jni_exception_check(env, 1, codec) < 0) {
1381 JNIEnv *env = NULL;
1383 JNI_GET_ENV_OR_RETURN(env, codec, AVERROR_EXTERNAL);
1385 (*env)->CallVoidMethod(env, codec->object, codec->jfields.start_id);
1386 if (ff_jni_exception_check(env, 1, codec) < 0) {
1398 JNIEnv *env = NULL;
1400 JNI_GET_ENV_OR_RETURN(env, codec, AVERROR_EXTERNAL);
1402 (*env)->CallVoidMethod(env, codec->object, codec->jfields.stop_id);
1403 if (ff_jni_exception_check(env, 1, codec) < 0) {
1415 JNIEnv *env = NULL;
1417 JNI_GET_ENV_OR_RETURN(env, codec, AVERROR_EXTERNAL);
1419 (*env)->CallVoidMethod(env, codec->object, codec->jfields.flush_id);
1420 if (ff_jni_exception_check(env, 1, codec) < 0) {
1432 JNIEnv *env = NULL;
1434 JNI_GET_ENV_OR_RETURN(env, codec, AVERROR_EXTERNAL);
1436 (*env)->CallVoidMethod(env, codec->object, codec->jfields.release_output_buffer_id, (jint)idx, (jboolean)render);
1437 if (ff_jni_exception_check(env, 1, codec) < 0) {
1449 JNIEnv *env = NULL;
1451 JNI_GET_ENV_OR_RETURN(env, codec, AVERROR_EXTERNAL);
1453 (*env)->CallVoidMethod(env, codec->object, codec->jfields.release_output_buffer_at_time_id, (jint)idx, (jlong)timestampNs);
1454 if (ff_jni_exception_check(env, 1, codec) < 0) {
1466 JNIEnv *env = NULL;
1468 JNI_GET_ENV_OR_RETURN(env, codec, AVERROR_EXTERNAL);
1470 ret = (*env)->CallIntMethod(env, codec->object, codec->jfields.dequeue_input_buffer_id, timeoutUs);
1471 if (ff_jni_exception_check(env, 1, codec) < 0) {
1483 JNIEnv *env = NULL;
1485 JNI_GET_ENV_OR_RETURN(env, codec, AVERROR_EXTERNAL);
1487 (*env)->CallVoidMethod(env, codec->object, codec->jfields.queue_input_buffer_id, (jint)idx, (jint)offset, (jint)size, time, flags);
1488 if ((ret = ff_jni_exception_check(env, 1, codec)) < 0) {
1500 JNIEnv *env = NULL;
1502 JNI_GET_ENV_OR_RETURN(env, codec, AVERROR_EXTERNAL);
1504 ret = (*env)->CallIntMethod(env, codec->object, codec->jfields.dequeue_output_buffer_id, codec->buffer_info, timeoutUs);
1505 if (ff_jni_exception_check(env, 1, codec) < 0) {
1509 info->flags = (*env)->GetIntField(env, codec->buffer_info, codec->jfields.flags_id);
1510 if (ff_jni_exception_check(env, 1, codec) < 0) {
1514 info->offset = (*env)->GetIntField(env, codec->buffer_info, codec->jfields.offset_id);
1515 if (ff_jni_exception_check(env, 1, codec) < 0) {
1519 info->presentationTimeUs = (*env)->GetLongField(env, codec->buffer_info, codec->jfields.presentation_time_us_id);
1520 if (ff_jni_exception_check(env, 1, codec) < 0) {
1524 info->size = (*env)->GetIntField(env, codec->buffer_info, codec->jfields.size_id);
1525 if (ff_jni_exception_check(env, 1, codec) < 0) {
1535 JNIEnv *env = NULL;
1540 JNI_GET_ENV_OR_RETURN(env, codec, NULL);
1543 buffer = (*env)->CallObjectMethod(env, codec->object, codec->jfields.get_input_buffer_id, (jint)idx);
1544 if (ff_jni_exception_check(env, 1, codec) < 0) {
1549 input_buffers = (*env)->CallObjectMethod(env, codec->object, codec->jfields.get_input_buffers_id);
1550 if (ff_jni_exception_check(env, 1, codec) < 0) {
1554 codec->input_buffers = (*env)->NewGlobalRef(env, input_buffers);
1555 if (ff_jni_exception_check(env, 1, codec) < 0) {
1560 buffer = (*env)->GetObjectArrayElement(env, codec->input_buffers, idx);
1561 if (ff_jni_exception_check(env, 1, codec) < 0) {
1566 ret = (*env)->GetDirectBufferAddress(env, buffer);
1567 *out_size = (*env)->GetDirectBufferCapacity(env, buffer);
1570 (*env)->DeleteLocalRef(env, buffer);
1574 (*env)->DeleteLocalRef(env, input_buffers);
1583 JNIEnv *env = NULL;
1588 JNI_GET_ENV_OR_RETURN(env, codec, NULL);
1591 buffer = (*env)->CallObjectMethod(env, codec->object, codec->jfields.get_output_buffer_id, (jint)idx);
1592 if (ff_jni_exception_check(env, 1, codec) < 0) {
1597 output_buffers = (*env)->CallObjectMethod(env, codec->object, codec->jfields.get_output_buffers_id);
1598 if (ff_jni_exception_check(env, 1, codec) < 0) {
1602 codec->output_buffers = (*env)->NewGlobalRef(env, output_buffers);
1603 if (ff_jni_exception_check(env, 1, codec) < 0) {
1608 buffer = (*env)->GetObjectArrayElement(env, codec->output_buffers, idx);
1609 if (ff_jni_exception_check(env, 1, codec) < 0) {
1614 ret = (*env)->GetDirectBufferAddress(env, buffer);
1615 *out_size = (*env)->GetDirectBufferCapacity(env, buffer);
1618 (*env)->DeleteLocalRef(env, buffer);
1622 (*env)->DeleteLocalRef(env, output_buffers);
1631 JNIEnv *env = NULL;
1635 JNI_GET_ENV_OR_RETURN(env, codec, NULL);
1637 mediaformat = (*env)->CallObjectMethod(env, codec->object, codec->jfields.get_output_format_id);
1638 if (ff_jni_exception_check(env, 1, codec) < 0) {
1645 (*env)->DeleteLocalRef(env, mediaformat);
1692 JNIEnv *env = NULL;
1694 env = ff_jni_get_env(codec);
1695 if (!env) {
1700 (*env)->DeleteGlobalRef(env, codec->output_buffers);
1712 JNIEnv *env = NULL;
1715 JNI_GET_ENV_OR_RETURN(env, avctx, -1);
1717 versionClass = (*env)->FindClass(env, "android/os/Build$VERSION");
1718 sdkIntFieldID = (*env)->GetStaticFieldID(env, versionClass, "SDK_INT", "I");
1719 ret = (*env)->GetStaticIntField(env, versionClass, sdkIntFieldID);
1720 (*env)->DeleteLocalRef(env, versionClass);