Lines Matching refs:env
215 JNIEnv *env, jobject thiz, in JMediaCodec() argument
219 jclass clazz = env->GetObjectClass(thiz); in JMediaCodec()
222 mClass = (jclass)env->NewGlobalRef(clazz); in JMediaCodec()
223 mObject = env->NewWeakGlobalRef(thiz); in JMediaCodec()
296 JNIEnv *env = AndroidRuntime::getJNIEnv(); in ~JMediaCodec() local
298 env->DeleteWeakGlobalRef(mObject); in ~JMediaCodec()
300 env->DeleteGlobalRef(mClass); in ~JMediaCodec()
463 JNIEnv *env, jobject bufferInfo, size_t *index, int64_t timeoutUs) { in dequeueOutputBuffer() argument
474 env->CallVoidMethod(bufferInfo, gBufferInfo.setId, (jint)offset, (jint)size, timeUs, flags); in dequeueOutputBuffer()
493 status_t JMediaCodec::getFormat(JNIEnv *env, bool input, jobject *format) const { in getFormat() argument
501 return ConvertMessageToMap(env, msg, format); in getFormat()
504 status_t JMediaCodec::getOutputFormat(JNIEnv *env, size_t index, jobject *format) const { in getOutputFormat() argument
511 return ConvertMessageToMap(env, msg, format); in getOutputFormat()
515 JNIEnv *env, bool input, jobjectArray *bufArray) const { in getBuffers() argument
527 *bufArray = (jobjectArray)env->NewObjectArray( in getBuffers()
538 env, !input /* readOnly */, true /* clearBuffer */, buffer, &byteBuffer); in getBuffers()
543 env->SetObjectArrayElement( in getBuffers()
546 env->DeleteLocalRef(byteBuffer); in getBuffers()
556 JNIEnv *env, T *base, size_t capacity, size_t offset, size_t size, in CreateByteBuffer() argument
559 env->NewDirectByteBuffer( in CreateByteBuffer()
563 jobject readOnlyBuffer = env->CallObjectMethod( in CreateByteBuffer()
565 env->DeleteLocalRef(byteBuffer); in CreateByteBuffer()
571 jobject me = env->CallObjectMethod( in CreateByteBuffer()
573 env->DeleteLocalRef(me); in CreateByteBuffer()
574 me = env->CallObjectMethod( in CreateByteBuffer()
577 env->DeleteLocalRef(me); in CreateByteBuffer()
578 me = env->CallObjectMethod( in CreateByteBuffer()
581 env->DeleteLocalRef(me); in CreateByteBuffer()
590 JNIEnv *env, bool readOnly, bool clearBuffer, const sp<T> &buffer, in createByteBufferFromABuffer() argument
606 env, buffer->base(), buffer->capacity(), buffer->offset(), buffer->size(), in createByteBufferFromABuffer()
614 JNIEnv *env, bool input, size_t index, jobject *buf) const { in getBuffer() argument
627 env, !input /* readOnly */, input /* clearBuffer */, buffer, buf); in getBuffer()
631 JNIEnv *env, bool input, size_t index, jobject *buf) const { in getImage() argument
663 env, !input /* readOnly */, input /* clearBuffer */, buffer, &byteBuffer); in getImage()
670 env, true /* readOnly */, true /* clearBuffer */, imageData, &infoBuffer); in getImage()
672 env->DeleteLocalRef(byteBuffer); in getImage()
681 env, env->FindClass("android/graphics/Rect")); in getImage()
684 jmethodID rectConstructID = env->GetMethodID( in getImage()
687 cropRect = env->NewObject( in getImage()
692 env, env->FindClass("android/media/MediaCodec$MediaImage")); in getImage()
695 jmethodID imageConstructID = env->GetMethodID(imageClazz.get(), "<init>", in getImage()
698 *buf = env->NewObject(imageClazz.get(), imageConstructID, in getImage()
705 if (env->ExceptionCheck()) { in getImage()
706 env->ExceptionDescribe(); in getImage()
707 env->ExceptionClear(); in getImage()
712 env->DeleteLocalRef(cropRect); in getImage()
716 env->DeleteLocalRef(byteBuffer); in getImage()
719 env->DeleteLocalRef(infoBuffer); in getImage()
726 JNIEnv *env, jobject frame, size_t index) const { in getOutputFrame() argument
742 ScopedLocalRef<jobject> linearBlock{env, env->NewObject( in getOutputFrame()
744 env->CallVoidMethod( in getOutputFrame()
749 env->SetObjectField(frame, gFields.outputFrameLinearBlockID, linearBlock.get()); in getOutputFrame()
764 env, in getOutputFrame()
766 env, AHardwareBuffer_from_GraphicBuffer(graphicBuffer))}; in getOutputFrame()
767 env->SetObjectField( in getOutputFrame()
782 ScopedLocalRef<jobject> linearBlock{env, env->NewObject( in getOutputFrame()
784 env->CallVoidMethod( in getOutputFrame()
789 env->SetObjectField(frame, gFields.outputFrameLinearBlockID, linearBlock.get()); in getOutputFrame()
797 err = getOutputFormat(env, index, &formatMap); in getOutputFrame()
801 ScopedLocalRef<jclass> mediaFormatClass{env, env->FindClass("android/media/MediaFormat")}; in getOutputFrame()
802 ScopedLocalRef<jobject> format{env, env->NewObject( in getOutputFrame()
804 env->GetMethodID(mediaFormatClass.get(), "<init>", "(Ljava/util/Map;)V"), in getOutputFrame()
806 env->SetObjectField(frame, gFields.outputFrameFormatID, format.get()); in getOutputFrame()
807 env->DeleteLocalRef(formatMap); in getOutputFrame()
814 ScopedLocalRef<jobject> changedKeysObj{env, env->GetObjectField( in getOutputFrame()
817 ScopedLocalRef<jstring> keyStr{env, env->NewStringUTF(key.c_str())}; in getOutputFrame()
818 (void)env->CallBooleanMethod(changedKeysObj.get(), gArrayListInfo.addId, keyStr.get()); in getOutputFrame()
824 status_t JMediaCodec::getName(JNIEnv *env, jstring *nameStr) const { in getName() argument
833 *nameStr = env->NewStringUTF(name.c_str()); in getName()
839 JNIEnv *env, const char *mime, bool isEncoder, in getCodecCapabilitiesObject() argument
852 if (ConvertMessageToMap(env, defaultFormat, &defaultFormatObj)) { in getCodecCapabilitiesObject()
855 ScopedLocalRef<jobject> defaultFormatRef(env, defaultFormatObj); in getCodecCapabilitiesObject()
858 if (ConvertMessageToMap(env, details, &detailsObj)) { in getCodecCapabilitiesObject()
861 ScopedLocalRef<jobject> detailsRef(env, detailsObj); in getCodecCapabilitiesObject()
863 ScopedLocalRef<jobjectArray> profileLevelArray(env, env->NewObjectArray( in getCodecCapabilitiesObject()
869 ScopedLocalRef<jobject> srcRef(env, env->AllocObject( in getCodecCapabilitiesObject()
872 env->SetIntField(srcRef.get(), gCodecInfo.profileField, src.mProfile); in getCodecCapabilitiesObject()
873 env->SetIntField(srcRef.get(), gCodecInfo.levelField, src.mLevel); in getCodecCapabilitiesObject()
875 env->SetObjectArrayElement(profileLevelArray.get(), i, srcRef.get()); in getCodecCapabilitiesObject()
879 env, env->NewIntArray(colorFormats.size())); in getCodecCapabilitiesObject()
882 env->SetIntArrayRegion(colorFormatsArray.get(), i, 1, &val); in getCodecCapabilitiesObject()
885 return env->NewObject( in getCodecCapabilitiesObject()
891 status_t JMediaCodec::getCodecInfo(JNIEnv *env, jobject *codecInfoObject) const { in getCodecInfo() argument
900 ScopedLocalRef<jstring> nameObject(env, in getCodecInfo()
901 env->NewStringUTF(mNameAtCreation.c_str())); in getCodecInfo()
903 ScopedLocalRef<jstring> canonicalNameObject(env, in getCodecInfo()
904 env->NewStringUTF(codecInfo->getCodecName())); in getCodecInfo()
912 ScopedLocalRef<jobjectArray> capsArrayObj(env, in getCodecInfo()
913 env->NewObjectArray(mediaTypes.size(), gCodecInfo.capsClazz, NULL)); in getCodecInfo()
919 ScopedLocalRef<jobject> capsObj(env, getCodecCapabilitiesObject( in getCodecInfo()
920 env, mediaTypes[i].c_str(), isEncoder, caps)); in getCodecInfo()
922 env->SetObjectArrayElement(capsArrayObj.get(), i, capsObj.get()); in getCodecInfo()
925 ScopedLocalRef<jclass> codecInfoClazz(env, in getCodecInfo()
926 env->FindClass("android/media/MediaCodecInfo")); in getCodecInfo()
929 jmethodID codecInfoCtorID = env->GetMethodID(codecInfoClazz.get(), "<init>", in getCodecInfo()
932 *codecInfoObject = env->NewObject(codecInfoClazz.get(), codecInfoCtorID, in getCodecInfo()
968 status_t JMediaCodec::querySupportedVendorParameters(JNIEnv *env, jobject *namesObj) { in querySupportedVendorParameters() argument
974 *namesObj = env->NewObject(gArrayListInfo.clazz, gArrayListInfo.ctorId); in querySupportedVendorParameters()
976 ScopedLocalRef<jstring> nameStr{env, env->NewStringUTF(name.c_str())}; in querySupportedVendorParameters()
977 (void)env->CallBooleanMethod(*namesObj, gArrayListInfo.addId, nameStr.get()); in querySupportedVendorParameters()
982 status_t JMediaCodec::describeParameter(JNIEnv *env, jstring name, jobject *descObj) { in describeParameter() argument
983 const char *tmp = env->GetStringUTFChars(name, nullptr); in describeParameter()
986 env->ReleaseStringUTFChars(name, tmp); in describeParameter()
1003 *descObj = env->NewObject(gDescriptorInfo.clazz, gDescriptorInfo.ctorId); in describeParameter()
1004 env->SetObjectField(*descObj, gDescriptorInfo.nameId, name); in describeParameter()
1005 env->SetIntField(*descObj, gDescriptorInfo.typeId, type); in describeParameter()
1009 static void BuildVectorFromList(JNIEnv *env, jobject list, std::vector<std::string> *vec) { in BuildVectorFromList() argument
1010 ScopedLocalRef<jclass> listClazz{env, env->FindClass("java/util/List")}; in BuildVectorFromList()
1011 ScopedLocalRef<jclass> iterClazz{env, env->FindClass("java/util/Iterator")}; in BuildVectorFromList()
1012 jmethodID hasNextID = env->GetMethodID(iterClazz.get(), "hasNext", "()Z"); in BuildVectorFromList()
1013 jmethodID nextID = env->GetMethodID(iterClazz.get(), "next", "()Ljava/lang/Object;"); in BuildVectorFromList()
1014 jobject it = env->CallObjectMethod( in BuildVectorFromList()
1015 list, env->GetMethodID(listClazz.get(), "iterator", "()Ljava/util/Iterator;")); in BuildVectorFromList()
1016 while (env->CallBooleanMethod(it, hasNextID)) { in BuildVectorFromList()
1017 jstring name = (jstring)env->CallObjectMethod(it, nextID); in BuildVectorFromList()
1018 const char *tmp = env->GetStringUTFChars(name, nullptr); in BuildVectorFromList()
1020 env->ReleaseStringUTFChars(name, tmp); in BuildVectorFromList()
1024 status_t JMediaCodec::subscribeToVendorParameters(JNIEnv *env, jobject namesObj) { in subscribeToVendorParameters() argument
1026 BuildVectorFromList(env, namesObj, &names); in subscribeToVendorParameters()
1030 status_t JMediaCodec::unsubscribeFromVendorParameters(JNIEnv *env, jobject namesObj) { in unsubscribeFromVendorParameters() argument
1032 BuildVectorFromList(env, namesObj, &names); in unsubscribeFromVendorParameters()
1037 JNIEnv *env, status_t err, int32_t actionCode, const char *msg = NULL) { in createCodecException() argument
1039 env, env->FindClass("android/media/MediaCodec$CodecException")); in createCodecException()
1042 const jmethodID ctor = env->GetMethodID(clazz.get(), "<init>", "(IILjava/lang/String;)V"); in createCodecException()
1046 env, env->NewStringUTF(msg != NULL ? msg : String8::format("Error %#x", err))); in createCodecException()
1073 return (jthrowable)env->NewObject(clazz.get(), ctor, err, actionCode, msgObj.get()); in createCodecException()
1076 static void AMessageToCryptoInfo(JNIEnv * env, const jobject & obj, in AMessageToCryptoInfo() argument
1097 ScopedLocalRef<jintArray> samplesOfEncryptedDataArr(env, env->NewIntArray(numSubSamples)); in AMessageToCryptoInfo()
1098 ScopedLocalRef<jintArray> samplesOfClearDataArr(env, env->NewIntArray(numSubSamples)); in AMessageToCryptoInfo()
1101 env->GetIntArrayElements(samplesOfEncryptedDataArr.get(), &isCopy); in AMessageToCryptoInfo()
1103 env->GetIntArrayElements(samplesOfClearDataArr.get(), &isCopy); in AMessageToCryptoInfo()
1112 env->ReleaseIntArrayElements(samplesOfEncryptedDataArr.get(), dstEncryptedSamples, 0); in AMessageToCryptoInfo()
1113 env->ReleaseIntArrayElements(samplesOfClearDataArr.get(), dstClearSamples, 0); in AMessageToCryptoInfo()
1118 keyArray = env->NewByteArray(keyBuffer->size()); in AMessageToCryptoInfo()
1119 jbyte * dstKey = env->GetByteArrayElements(keyArray, &isCopy); in AMessageToCryptoInfo()
1121 env->ReleaseByteArrayElements(keyArray,dstKey,0); in AMessageToCryptoInfo()
1124 ivArray = env->NewByteArray(ivBuffer->size()); in AMessageToCryptoInfo()
1125 jbyte *dstIv = env->GetByteArrayElements(ivArray, &isCopy); in AMessageToCryptoInfo()
1127 env->ReleaseByteArrayElements(ivArray, dstIv,0); in AMessageToCryptoInfo()
1130 env->CallVoidMethod( in AMessageToCryptoInfo()
1140 env->DeleteLocalRef(keyArray); in AMessageToCryptoInfo()
1143 env->DeleteLocalRef(ivArray); in AMessageToCryptoInfo()
1146 env->CallVoidMethod( in AMessageToCryptoInfo()
1197 static jthrowable createCryptoException(JNIEnv *env, status_t err, in createCryptoException() argument
1202 ScopedLocalRef<jobject> cryptoInfoObject(env); in createCryptoException()
1207 env, env->FindClass("android/media/MediaCodec$CryptoException")); in createCryptoException()
1211 constructID = env->GetMethodID(clazz.get(), "<init>", in createCryptoException()
1221 jstring msgObj = env->NewStringUTF(detailedMsg.c_str()); in createCryptoException()
1226 env, env->FindClass("android/media/MediaCodec$CryptoInfo")); in createCryptoException()
1231 env->GetMethodID(clazzCryptoInfo.get(), "<init>", "()V"); in createCryptoException()
1236 env->NewObject(clazzCryptoInfo.get(), constructCryptoInfo)); in createCryptoException()
1240 AMessageToCryptoInfo(env, cryptoInfoObject.get(), cryptoInfo); in createCryptoException()
1243 exception = (jthrowable)env->NewObject( in createCryptoException()
1254 JNIEnv *env = AndroidRuntime::getJNIEnv(); in handleCallback() local
1275 obj = env->NewObject(gBufferInfo.clazz, gBufferInfo.ctorId); in handleCallback()
1277 if (env->ExceptionCheck()) { in handleCallback()
1279 env->ExceptionClear(); in handleCallback()
1281 jniThrowException(env, "java/lang/IllegalStateException", in handleCallback()
1286 env->CallVoidMethod(obj, gBufferInfo.setId, (jint)offset, (jint)size, timeUs, flags); in handleCallback()
1297 obj = (jobject)createCryptoException(env, err, errorDetail.c_str(), NULL, msg); in handleCallback()
1308 obj = (jobject)createCodecException(env, err, actionCode); in handleCallback()
1311 if (env->ExceptionCheck()) { in handleCallback()
1313 env->ExceptionClear(); in handleCallback()
1315 jniThrowException(env, "java/lang/IllegalStateException", in handleCallback()
1328 if (OK != ConvertMessageToMap(env, format, &obj)) { in handleCallback()
1329 jniThrowException(env, "java/lang/IllegalStateException", in handleCallback()
1341 env->CallVoidMethod( in handleCallback()
1349 env->DeleteLocalRef(obj); in handleCallback()
1355 JNIEnv *env = AndroidRuntime::getJNIEnv(); in handleFirstTunnelFrameReadyNotification() local
1360 status_t err = ConvertMessageToMap(env, data, &obj); in handleFirstTunnelFrameReadyNotification()
1362 jniThrowException(env, "java/lang/IllegalStateException", in handleFirstTunnelFrameReadyNotification()
1367 env->CallVoidMethod( in handleFirstTunnelFrameReadyNotification()
1371 env->DeleteLocalRef(obj); in handleFirstTunnelFrameReadyNotification()
1377 JNIEnv *env = AndroidRuntime::getJNIEnv(); in handleFrameRenderedNotification() local
1382 status_t err = ConvertMessageToMap(env, data, &obj); in handleFrameRenderedNotification()
1384 jniThrowException(env, "java/lang/IllegalStateException", in handleFrameRenderedNotification()
1389 env->CallVoidMethod( in handleFrameRenderedNotification()
1393 env->DeleteLocalRef(obj); in handleFrameRenderedNotification()
1447 JNIEnv *env, jobject thiz, const sp<JMediaCodec> &codec, bool release = true) { in setMediaCodec() argument
1448 sp<JMediaCodec> old = (JMediaCodec *)env->CallLongMethod(thiz, gFields.lockAndGetContextID); in setMediaCodec()
1463 env->CallVoidMethod(thiz, gFields.setAndUnlockContextID, (jlong)codec.get()); in setMediaCodec()
1468 static sp<JMediaCodec> getMediaCodec(JNIEnv *env, jobject thiz) { in getMediaCodec() argument
1469 sp<JMediaCodec> codec = (JMediaCodec *)env->CallLongMethod(thiz, gFields.lockAndGetContextID); in getMediaCodec()
1470 env->CallVoidMethod(thiz, gFields.setAndUnlockContextID, (jlong)codec.get()); in getMediaCodec()
1474 static void android_media_MediaCodec_release(JNIEnv *env, jobject thiz) { in android_media_MediaCodec_release() argument
1476 sp<JMediaCodec> codec = setMediaCodec(env, thiz, nullptr, false /* release */); in android_media_MediaCodec_release()
1482 static void throwCodecException(JNIEnv *env, status_t err, int32_t actionCode, const char *msg) { in throwCodecException() argument
1483 jthrowable exception = createCodecException(env, err, actionCode, msg); in throwCodecException()
1484 env->Throw(exception); in throwCodecException()
1487 static void throwCryptoException(JNIEnv *env, status_t err, const char *msg, in throwCryptoException() argument
1490 env, err, msg, crypto, /* cryptoInfo */ NULL); in throwCryptoException()
1491 env->Throw(exception); in throwCryptoException()
1502 JNIEnv *env, status_t err, int32_t actionCode = ACTION_CODE_FATAL, in throwExceptionAsNecessary() argument
1520 env, "java/lang/IllegalStateException", in throwExceptionAsNecessary()
1526 env, "java/lang/IllegalArgumentException", in throwExceptionAsNecessary()
1533 env, err, in throwExceptionAsNecessary()
1539 env, err, actionCode, in throwExceptionAsNecessary()
1546 JNIEnv *env, status_t err, const sp<JMediaCodec> &codec, in throwExceptionAsNecessary() argument
1548 return throwExceptionAsNecessary(env, err, actionCode, NULL, NULL, codec); in throwExceptionAsNecessary()
1552 JNIEnv *env, in android_media_MediaCodec_native_enableOnFirstTunnelFrameReadyListener() argument
1555 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_native_enableOnFirstTunnelFrameReadyListener()
1558 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_native_enableOnFirstTunnelFrameReadyListener()
1564 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_native_enableOnFirstTunnelFrameReadyListener()
1568 JNIEnv *env, in android_media_MediaCodec_native_enableOnFrameRenderedListener() argument
1571 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_native_enableOnFrameRenderedListener()
1574 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_native_enableOnFrameRenderedListener()
1580 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_native_enableOnFrameRenderedListener()
1584 JNIEnv *env, in android_media_MediaCodec_native_setCallback() argument
1587 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_native_setCallback()
1590 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_native_setCallback()
1596 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_native_setCallback()
1600 JNIEnv *env, in android_media_MediaCodec_native_configure() argument
1607 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_native_configure()
1610 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_native_configure()
1615 status_t err = ConvertKeyValueArraysToMessage(env, keys, values, &format); in android_media_MediaCodec_native_configure()
1618 jniThrowException(env, "java/lang/IllegalArgumentException", NULL); in android_media_MediaCodec_native_configure()
1624 sp<Surface> surface(android_view_Surface_getSurface(env, jsurface)); in android_media_MediaCodec_native_configure()
1629 env, in android_media_MediaCodec_native_configure()
1638 crypto = JCrypto::GetCrypto(env, jcrypto); in android_media_MediaCodec_native_configure()
1643 descrambler = GetDescrambler(env, descramblerBinderObj); in android_media_MediaCodec_native_configure()
1648 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_native_configure()
1652 JNIEnv *env, in android_media_MediaCodec_native_setSurface() argument
1655 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_native_setSurface()
1658 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_native_setSurface()
1664 sp<Surface> surface(android_view_Surface_getSurface(env, jsurface)); in android_media_MediaCodec_native_setSurface()
1669 env, in android_media_MediaCodec_native_setSurface()
1677 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_native_setSurface()
1681 JNIEnv* env, jobject object) { in android_media_MediaCodec_getPersistentInputSurface() argument
1684 jobject lock = env->GetObjectField( in android_media_MediaCodec_getPersistentInputSurface()
1686 if (env->MonitorEnter(lock) == JNI_OK) { in android_media_MediaCodec_getPersistentInputSurface()
1688 env->GetLongField(object, in android_media_MediaCodec_getPersistentInputSurface()
1690 env->MonitorExit(lock); in android_media_MediaCodec_getPersistentInputSurface()
1692 env->DeleteLocalRef(lock); in android_media_MediaCodec_getPersistentInputSurface()
1698 JNIEnv* env, jclass /* clazz */) { in android_media_MediaCodec_createPersistentInputSurface() argument
1713 jobject object = env->NewObject( in android_media_MediaCodec_createPersistentInputSurface()
1718 if (env->ExceptionCheck()) { in android_media_MediaCodec_createPersistentInputSurface()
1720 env->ExceptionClear(); in android_media_MediaCodec_createPersistentInputSurface()
1725 jobject lock = env->GetObjectField( in android_media_MediaCodec_createPersistentInputSurface()
1727 if (env->MonitorEnter(lock) == JNI_OK) { in android_media_MediaCodec_createPersistentInputSurface()
1728 env->CallVoidMethod( in android_media_MediaCodec_createPersistentInputSurface()
1732 env->SetLongField( in android_media_MediaCodec_createPersistentInputSurface()
1736 env->MonitorExit(lock); in android_media_MediaCodec_createPersistentInputSurface()
1738 env->DeleteLocalRef(object); in android_media_MediaCodec_createPersistentInputSurface()
1741 env->DeleteLocalRef(lock); in android_media_MediaCodec_createPersistentInputSurface()
1752 JNIEnv* env, jclass /* clazz */, jobject object) { in android_media_MediaCodec_releasePersistentInputSurface() argument
1755 jobject lock = env->GetObjectField( in android_media_MediaCodec_releasePersistentInputSurface()
1757 if (env->MonitorEnter(lock) == JNI_OK) { in android_media_MediaCodec_releasePersistentInputSurface()
1759 env->GetLongField( in android_media_MediaCodec_releasePersistentInputSurface()
1761 env->SetLongField( in android_media_MediaCodec_releasePersistentInputSurface()
1765 env->MonitorExit(lock); in android_media_MediaCodec_releasePersistentInputSurface()
1767 env->DeleteLocalRef(lock); in android_media_MediaCodec_releasePersistentInputSurface()
1776 JNIEnv* env, jobject thiz, jobject object) { in android_media_MediaCodec_setInputSurface() argument
1779 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_setInputSurface()
1781 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_setInputSurface()
1786 android_media_MediaCodec_getPersistentInputSurface(env, object); in android_media_MediaCodec_setInputSurface()
1790 env, BAD_VALUE, ACTION_CODE_FATAL, "input surface not valid"); in android_media_MediaCodec_setInputSurface()
1795 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_setInputSurface()
1799 static jobject android_media_MediaCodec_createInputSurface(JNIEnv* env, in android_media_MediaCodec_createInputSurface() argument
1803 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_createInputSurface()
1805 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_createInputSurface()
1813 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_createInputSurface()
1818 return android_view_Surface_createFromIGraphicBufferProducer(env, in android_media_MediaCodec_createInputSurface()
1822 static void android_media_MediaCodec_start(JNIEnv *env, jobject thiz) { in android_media_MediaCodec_start() argument
1825 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_start()
1828 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_start()
1834 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_start()
1837 static void android_media_MediaCodec_stop(JNIEnv *env, jobject thiz) { in android_media_MediaCodec_stop() argument
1840 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_stop()
1843 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_stop()
1849 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_stop()
1852 static void android_media_MediaCodec_reset(JNIEnv *env, jobject thiz) { in android_media_MediaCodec_reset() argument
1855 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_reset()
1858 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_reset()
1871 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_reset()
1874 static void android_media_MediaCodec_flush(JNIEnv *env, jobject thiz) { in android_media_MediaCodec_flush() argument
1877 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_flush()
1880 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_flush()
1886 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_flush()
1890 JNIEnv *env, in android_media_MediaCodec_queueInputBuffer() argument
1899 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_queueInputBuffer()
1902 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_queueInputBuffer()
1912 env, err, ACTION_CODE_FATAL, in android_media_MediaCodec_queueInputBuffer()
1917 NativeCryptoInfo(JNIEnv *env, jobject cryptoInfoObj) in NativeCryptoInfo()
1918 : mEnv{env}, in NativeCryptoInfo()
1919 mIvObj{env, (jbyteArray)env->GetObjectField(cryptoInfoObj, gFields.cryptoInfoIVID)},
1920 mKeyObj{env, (jbyteArray)env->GetObjectField(cryptoInfoObj, gFields.cryptoInfoKeyID)} {
1921 mNumSubSamples = env->GetIntField(cryptoInfoObj, gFields.cryptoInfoNumSubSamplesID);
1923 ScopedLocalRef<jintArray> numBytesOfClearDataObj{env, (jintArray)env->GetObjectField(
1926 ScopedLocalRef<jintArray> numBytesOfEncryptedDataObj{env, (jintArray)env->GetObjectField(
1929 jint jmode = env->GetIntField(cryptoInfoObj, gFields.cryptoInfoModeID);
1938 env, INVALID_OPERATION, ACTION_CODE_FATAL,
1944 env, env->GetObjectField(cryptoInfoObj, gFields.cryptoInfoPatternID)};
1950 mPattern.mEncryptBlocks = env->GetIntField(
1952 mPattern.mSkipBlocks = env->GetIntField(
1963 && env->GetArrayLength(numBytesOfEncryptedDataObj.get()) < mNumSubSamples) {
1966 && env->GetArrayLength(numBytesOfClearDataObj.get()) < mNumSubSamples) {
1976 : env->GetIntArrayElements(numBytesOfClearDataObj.get(), nullptr);
1981 : env->GetIntArrayElements(numBytesOfEncryptedDataObj.get(), nullptr);
1994 env->ReleaseIntArrayElements(
2000 env->ReleaseIntArrayElements(
2007 if (env->GetArrayLength(mKeyObj.get()) != 16) {
2010 mKey = env->GetByteArrayElements(mKeyObj.get(), nullptr);
2015 if (env->GetArrayLength(mIvObj.get()) != 16) {
2018 mIv = env->GetByteArrayElements(mIvObj.get(), nullptr);
2063 JNIEnv *env, in android_media_MediaCodec_queueSecureInputBuffer() argument
2072 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_queueSecureInputBuffer()
2075 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_queueSecureInputBuffer()
2080 env->GetIntField(cryptoInfoObj, gFields.cryptoInfoNumSubSamplesID); in android_media_MediaCodec_queueSecureInputBuffer()
2083 (jintArray)env->GetObjectField( in android_media_MediaCodec_queueSecureInputBuffer()
2087 (jintArray)env->GetObjectField( in android_media_MediaCodec_queueSecureInputBuffer()
2091 (jbyteArray)env->GetObjectField(cryptoInfoObj, gFields.cryptoInfoKeyID); in android_media_MediaCodec_queueSecureInputBuffer()
2094 (jbyteArray)env->GetObjectField(cryptoInfoObj, gFields.cryptoInfoIVID); in android_media_MediaCodec_queueSecureInputBuffer()
2096 jint jmode = env->GetIntField(cryptoInfoObj, gFields.cryptoInfoModeID); in android_media_MediaCodec_queueSecureInputBuffer()
2106 env, INVALID_OPERATION, ACTION_CODE_FATAL, in android_media_MediaCodec_queueSecureInputBuffer()
2111 jobject patternObj = env->GetObjectField(cryptoInfoObj, gFields.cryptoInfoPatternID); in android_media_MediaCodec_queueSecureInputBuffer()
2118 pattern.mEncryptBlocks = env->GetIntField(patternObj, gFields.patternEncryptBlocksID); in android_media_MediaCodec_queueSecureInputBuffer()
2119 pattern.mSkipBlocks = env->GetIntField(patternObj, gFields.patternSkipBlocksID); in android_media_MediaCodec_queueSecureInputBuffer()
2134 && env->GetArrayLength(numBytesOfEncryptedDataObj) < numSubSamples) { in android_media_MediaCodec_queueSecureInputBuffer()
2137 && env->GetArrayLength(numBytesOfClearDataObj) < numSubSamples) { in android_media_MediaCodec_queueSecureInputBuffer()
2149 : env->GetIntArrayElements(numBytesOfClearDataObj, &isCopy); in android_media_MediaCodec_queueSecureInputBuffer()
2154 : env->GetIntArrayElements(numBytesOfEncryptedDataObj, &isCopy); in android_media_MediaCodec_queueSecureInputBuffer()
2168 env->ReleaseIntArrayElements( in android_media_MediaCodec_queueSecureInputBuffer()
2174 env->ReleaseIntArrayElements( in android_media_MediaCodec_queueSecureInputBuffer()
2181 if (env->GetArrayLength(keyObj) != 16) { in android_media_MediaCodec_queueSecureInputBuffer()
2185 key = env->GetByteArrayElements(keyObj, &isCopy); in android_media_MediaCodec_queueSecureInputBuffer()
2190 if (env->GetArrayLength(ivObj) != 16) { in android_media_MediaCodec_queueSecureInputBuffer()
2194 iv = env->GetByteArrayElements(ivObj, &isCopy); in android_media_MediaCodec_queueSecureInputBuffer()
2213 env->ReleaseByteArrayElements(ivObj, iv, 0); in android_media_MediaCodec_queueSecureInputBuffer()
2218 env->ReleaseByteArrayElements(keyObj, key, 0); in android_media_MediaCodec_queueSecureInputBuffer()
2226 env, err, ACTION_CODE_FATAL, in android_media_MediaCodec_queueSecureInputBuffer()
2230 static jobject android_media_MediaCodec_mapHardwareBuffer(JNIEnv *env, jclass, jobject bufferObj) { in android_media_MediaCodec_mapHardwareBuffer() argument
2233 env, bufferObj); in android_media_MediaCodec_mapHardwareBuffer()
2264 env, env->NewObjectArray(3, gByteBufferInfo.clazz, NULL)}; in android_media_MediaCodec_mapHardwareBuffer()
2265 ScopedLocalRef<jintArray> rowStridesArray{env, env->NewIntArray(3)}; in android_media_MediaCodec_mapHardwareBuffer()
2266 ScopedLocalRef<jintArray> pixelStridesArray{env, env->NewIntArray(3)}; in android_media_MediaCodec_mapHardwareBuffer()
2269 jint *rowStrides = env->GetIntArrayElements(rowStridesArray.get(), &isCopy); in android_media_MediaCodec_mapHardwareBuffer()
2270 jint *pixelStrides = env->GetIntArrayElements(rowStridesArray.get(), &isCopy); in android_media_MediaCodec_mapHardwareBuffer()
2281 ScopedLocalRef<jobject> byteBuffer{env, CreateByteBuffer( in android_media_MediaCodec_mapHardwareBuffer()
2282 env, in android_media_MediaCodec_mapHardwareBuffer()
2290 env->SetObjectArrayElement(buffersArray.get(), i, byteBuffer.get()); in android_media_MediaCodec_mapHardwareBuffer()
2298 env->ReleaseIntArrayElements(rowStridesArray.get(), rowStrides, 0); in android_media_MediaCodec_mapHardwareBuffer()
2299 env->ReleaseIntArrayElements(pixelStridesArray.get(), pixelStrides, 0); in android_media_MediaCodec_mapHardwareBuffer()
2303 env, env->FindClass("android/media/MediaCodec$MediaImage")); in android_media_MediaCodec_mapHardwareBuffer()
2306 jmethodID imageConstructID = env->GetMethodID(imageClazz.get(), "<init>", in android_media_MediaCodec_mapHardwareBuffer()
2309 jobject img = env->NewObject(imageClazz.get(), imageConstructID, in android_media_MediaCodec_mapHardwareBuffer()
2322 if (env->ExceptionCheck()) { in android_media_MediaCodec_mapHardwareBuffer()
2323 env->ExceptionDescribe(); in android_media_MediaCodec_mapHardwareBuffer()
2324 env->ExceptionClear(); in android_media_MediaCodec_mapHardwareBuffer()
2350 JNIEnv *env, jobject keys, jobject values, sp<AMessage> *msg) { in ConvertKeyValueListsToAMessage() argument
2352 explicit Fields(JNIEnv *env) { in ConvertKeyValueListsToAMessage()
2353 ScopedLocalRef<jclass> clazz{env, env->FindClass("java/lang/String")}; in ConvertKeyValueListsToAMessage()
2355 mStringClass = (jclass)env->NewGlobalRef(clazz.get()); in ConvertKeyValueListsToAMessage()
2357 clazz.reset(env->FindClass("java/lang/Integer")); in ConvertKeyValueListsToAMessage()
2359 mIntegerClass = (jclass)env->NewGlobalRef(clazz.get()); in ConvertKeyValueListsToAMessage()
2361 mIntegerValueId = env->GetMethodID(clazz.get(), "intValue", "()I"); in ConvertKeyValueListsToAMessage()
2364 clazz.reset(env->FindClass("java/lang/Long")); in ConvertKeyValueListsToAMessage()
2366 mLongClass = (jclass)env->NewGlobalRef(clazz.get()); in ConvertKeyValueListsToAMessage()
2368 mLongValueId = env->GetMethodID(clazz.get(), "longValue", "()J"); in ConvertKeyValueListsToAMessage()
2371 clazz.reset(env->FindClass("java/lang/Float")); in ConvertKeyValueListsToAMessage()
2373 mFloatClass = (jclass)env->NewGlobalRef(clazz.get()); in ConvertKeyValueListsToAMessage()
2375 mFloatValueId = env->GetMethodID(clazz.get(), "floatValue", "()F"); in ConvertKeyValueListsToAMessage()
2378 clazz.reset(env->FindClass("java/util/ArrayList")); in ConvertKeyValueListsToAMessage()
2381 mByteBufferArrayId = env->GetMethodID(gByteBufferInfo.clazz, "array", "()[B"); in ConvertKeyValueListsToAMessage()
2393 } sFields{env}; in ConvertKeyValueListsToAMessage()
2395 jint size = env->CallIntMethod(keys, gArrayListInfo.sizeId); in ConvertKeyValueListsToAMessage()
2396 if (size != env->CallIntMethod(values, gArrayListInfo.sizeId)) { in ConvertKeyValueListsToAMessage()
2403 env, (jstring)env->CallObjectMethod(keys, gArrayListInfo.getId, i)}; in ConvertKeyValueListsToAMessage()
2404 const char *tmp = env->GetStringUTFChars(jkey.get(), nullptr); in ConvertKeyValueListsToAMessage()
2409 env->ReleaseStringUTFChars(jkey.get(), tmp); in ConvertKeyValueListsToAMessage()
2415 env, env->CallObjectMethod(values, gArrayListInfo.getId, i)}; in ConvertKeyValueListsToAMessage()
2417 if (env->IsInstanceOf(jvalue.get(), sFields.mStringClass)) { in ConvertKeyValueListsToAMessage()
2418 const char *tmp = env->GetStringUTFChars((jstring)jvalue.get(), nullptr); in ConvertKeyValueListsToAMessage()
2424 env->ReleaseStringUTFChars((jstring)jvalue.get(), tmp); in ConvertKeyValueListsToAMessage()
2426 } else if (env->IsInstanceOf(jvalue.get(), sFields.mIntegerClass)) { in ConvertKeyValueListsToAMessage()
2427 jint value = env->CallIntMethod(jvalue.get(), sFields.mIntegerValueId); in ConvertKeyValueListsToAMessage()
2429 } else if (env->IsInstanceOf(jvalue.get(), sFields.mLongClass)) { in ConvertKeyValueListsToAMessage()
2430 jlong value = env->CallLongMethod(jvalue.get(), sFields.mLongValueId); in ConvertKeyValueListsToAMessage()
2432 } else if (env->IsInstanceOf(jvalue.get(), sFields.mFloatClass)) { in ConvertKeyValueListsToAMessage()
2433 jfloat value = env->CallFloatMethod(jvalue.get(), sFields.mFloatValueId); in ConvertKeyValueListsToAMessage()
2435 } else if (env->IsInstanceOf(jvalue.get(), gByteBufferInfo.clazz)) { in ConvertKeyValueListsToAMessage()
2436 jint position = env->CallIntMethod(jvalue.get(), gByteBufferInfo.getPositionId); in ConvertKeyValueListsToAMessage()
2437 jint limit = env->CallIntMethod(jvalue.get(), gByteBufferInfo.getLimitId); in ConvertKeyValueListsToAMessage()
2439 void *data = env->GetDirectBufferAddress(jvalue.get()); in ConvertKeyValueListsToAMessage()
2445 ScopedLocalRef<jbyteArray> byteArray{env, (jbyteArray)env->CallObjectMethod( in ConvertKeyValueListsToAMessage()
2447 env->GetByteArrayRegion(byteArray.get(), position, buffer->size(), in ConvertKeyValueListsToAMessage()
2561 JNIEnv *env, jobject thiz, jint index, jobject bufferObj, in android_media_MediaCodec_native_queueLinearBlock() argument
2566 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_native_queueLinearBlock()
2569 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_native_queueLinearBlock()
2574 status_t err = ConvertKeyValueListsToAMessage(env, keys, values, &tunings); in android_media_MediaCodec_native_queueLinearBlock()
2577 env, err, ACTION_CODE_FATAL, in android_media_MediaCodec_native_queueLinearBlock()
2584 ScopedLocalRef<jobject> lock{env, env->GetObjectField(bufferObj, gLinearBlockInfo.lockId)}; in android_media_MediaCodec_native_queueLinearBlock()
2585 if (env->MonitorEnter(lock.get()) == JNI_OK) { in android_media_MediaCodec_native_queueLinearBlock()
2586 if (env->GetBooleanField(bufferObj, gLinearBlockInfo.validId)) { in android_media_MediaCodec_native_queueLinearBlock()
2588 (JMediaCodecLinearBlock *)env->GetLongField(bufferObj, gLinearBlockInfo.contextId); in android_media_MediaCodec_native_queueLinearBlock()
2596 env->MonitorExit(lock.get()); in android_media_MediaCodec_native_queueLinearBlock()
2599 env, INVALID_OPERATION, ACTION_CODE_FATAL, in android_media_MediaCodec_native_queueLinearBlock()
2610 env, BAD_VALUE, ACTION_CODE_FATAL, in android_media_MediaCodec_native_queueLinearBlock()
2618 cryptoInfoObj ? NativeCryptoInfo{env, cryptoInfoObj} : NativeCryptoInfo{size}; in android_media_MediaCodec_native_queueLinearBlock()
2619 if (env->ExceptionCheck()) { in android_media_MediaCodec_native_queueLinearBlock()
2641 env, BAD_VALUE, ACTION_CODE_FATAL, in android_media_MediaCodec_native_queueLinearBlock()
2652 env, err, ACTION_CODE_FATAL, in android_media_MediaCodec_native_queueLinearBlock()
2657 JNIEnv *env, jobject thiz, jint index, jobject bufferObj, in android_media_MediaCodec_native_queueHardwareBuffer() argument
2661 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_native_queueHardwareBuffer()
2664 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_native_queueHardwareBuffer()
2669 status_t err = ConvertKeyValueListsToAMessage(env, keys, values, &tunings); in android_media_MediaCodec_native_queueHardwareBuffer()
2672 env, err, ACTION_CODE_FATAL, in android_media_MediaCodec_native_queueHardwareBuffer()
2678 env, bufferObj); in android_media_MediaCodec_native_queueHardwareBuffer()
2699 env, BAD_VALUE, ACTION_CODE_FATAL, in android_media_MediaCodec_native_queueHardwareBuffer()
2710 env, err, ACTION_CODE_FATAL, in android_media_MediaCodec_native_queueHardwareBuffer()
2715 JNIEnv *env, jobject thiz, jobject frame, jint index) { in android_media_MediaCodec_native_getOutputFrame() argument
2718 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_native_getOutputFrame()
2721 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_native_getOutputFrame()
2725 status_t err = codec->getOutputFrame(env, frame, index); in android_media_MediaCodec_native_getOutputFrame()
2727 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_native_getOutputFrame()
2732 JNIEnv *env, jobject thiz, jlong timeoutUs) { in android_media_MediaCodec_dequeueInputBuffer() argument
2735 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_dequeueInputBuffer()
2738 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_dequeueInputBuffer()
2749 return throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_dequeueInputBuffer()
2753 JNIEnv *env, jobject thiz, jobject bufferInfo, jlong timeoutUs) { in android_media_MediaCodec_dequeueOutputBuffer() argument
2756 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_dequeueOutputBuffer()
2759 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_dequeueOutputBuffer()
2765 env, bufferInfo, &index, timeoutUs); in android_media_MediaCodec_dequeueOutputBuffer()
2771 return throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_dequeueOutputBuffer()
2775 JNIEnv *env, jobject thiz, in android_media_MediaCodec_releaseOutputBuffer() argument
2779 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_releaseOutputBuffer()
2782 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_releaseOutputBuffer()
2788 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_releaseOutputBuffer()
2791 static void android_media_MediaCodec_signalEndOfInputStream(JNIEnv* env, in android_media_MediaCodec_signalEndOfInputStream() argument
2795 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_signalEndOfInputStream()
2797 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_signalEndOfInputStream()
2803 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_signalEndOfInputStream()
2807 JNIEnv *env, jobject thiz, jboolean input) { in android_media_MediaCodec_getFormatNative() argument
2810 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_getFormatNative()
2813 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_getFormatNative()
2818 status_t err = codec->getFormat(env, input, &format); in android_media_MediaCodec_getFormatNative()
2824 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_getFormatNative()
2830 JNIEnv *env, jobject thiz, jint index) { in android_media_MediaCodec_getOutputFormatForIndexNative() argument
2833 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_getOutputFormatForIndexNative()
2836 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_getOutputFormatForIndexNative()
2841 status_t err = codec->getOutputFormat(env, index, &format); in android_media_MediaCodec_getOutputFormatForIndexNative()
2847 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_getOutputFormatForIndexNative()
2853 JNIEnv *env, jobject thiz, jboolean input) { in android_media_MediaCodec_getBuffers() argument
2856 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_getBuffers()
2859 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_getBuffers()
2864 status_t err = codec->getBuffers(env, input, &buffers); in android_media_MediaCodec_getBuffers()
2872 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_getBuffers()
2879 JNIEnv *env, jobject thiz, jboolean input, jint index) { in android_media_MediaCodec_getBuffer() argument
2882 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_getBuffer()
2885 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_getBuffer()
2890 status_t err = codec->getBuffer(env, input, index, &buffer); in android_media_MediaCodec_getBuffer()
2898 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_getBuffer()
2905 JNIEnv *env, jobject thiz, jboolean input, jint index) { in android_media_MediaCodec_getImage() argument
2908 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_getImage()
2911 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_getImage()
2916 status_t err = codec->getImage(env, input, index, &image); in android_media_MediaCodec_getImage()
2924 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_getImage()
2931 JNIEnv *env, jobject thiz) { in android_media_MediaCodec_getName() argument
2934 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_getName()
2937 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_getName()
2942 status_t err = codec->getName(env, &name); in android_media_MediaCodec_getName()
2948 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_getName()
2954 JNIEnv *env, jobject thiz) { in android_media_MediaCodec_getOwnCodecInfo() argument
2957 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_getOwnCodecInfo()
2960 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_getOwnCodecInfo()
2965 status_t err = codec->getCodecInfo(env, &codecInfoObj); in android_media_MediaCodec_getOwnCodecInfo()
2971 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_getOwnCodecInfo()
2977 android_media_MediaCodec_native_getMetrics(JNIEnv *env, jobject thiz) in android_media_MediaCodec_native_getMetrics() argument
2981 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_native_getMetrics()
2983 jniThrowException(env, "java/lang/IllegalStateException", in android_media_MediaCodec_native_getMetrics()
2991 status_t err = codec->getMetrics(env, item); in android_media_MediaCodec_native_getMetrics()
2997 jobject mybundle = MediaMetricsJNI::writeMetricsToBundle(env, item, NULL); in android_media_MediaCodec_native_getMetrics()
3007 JNIEnv *env, jobject thiz, jobjectArray keys, jobjectArray vals) { in android_media_MediaCodec_setParameters() argument
3010 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_setParameters()
3013 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_setParameters()
3018 status_t err = ConvertKeyValueArraysToMessage(env, keys, vals, ¶ms); in android_media_MediaCodec_setParameters()
3024 throwExceptionAsNecessary(env, err, codec); in android_media_MediaCodec_setParameters()
3028 JNIEnv *env, jobject thiz, jint mode) { in android_media_MediaCodec_setVideoScalingMode() argument
3029 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_setVideoScalingMode()
3032 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_setVideoScalingMode()
3038 jniThrowException(env, "java/lang/IllegalArgumentException", in android_media_MediaCodec_setVideoScalingMode()
3047 JNIEnv *env, jobject thiz, jint presentationId, jint programId) { in android_media_MediaCodec_setAudioPresentation() argument
3048 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_setAudioPresentation()
3051 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_setAudioPresentation()
3059 JNIEnv *env, jobject thiz) { in android_media_MediaCodec_getSupportedVendorParameters() argument
3060 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_getSupportedVendorParameters()
3063 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_getSupportedVendorParameters()
3068 status_t status = codec->querySupportedVendorParameters(env, &ret); in android_media_MediaCodec_getSupportedVendorParameters()
3070 throwExceptionAsNecessary(env, status, codec); in android_media_MediaCodec_getSupportedVendorParameters()
3077 JNIEnv *env, jobject thiz, jstring name) { in android_media_MediaCodec_getParameterDescriptor() argument
3078 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_getParameterDescriptor()
3081 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_getParameterDescriptor()
3086 status_t status = codec->describeParameter(env, name, &ret); in android_media_MediaCodec_getParameterDescriptor()
3094 JNIEnv *env, jobject thiz, jobject names) { in android_media_MediaCodec_subscribeToVendorParameters() argument
3095 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_subscribeToVendorParameters()
3098 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_subscribeToVendorParameters()
3102 status_t status = codec->subscribeToVendorParameters(env, names); in android_media_MediaCodec_subscribeToVendorParameters()
3104 throwExceptionAsNecessary(env, status, codec); in android_media_MediaCodec_subscribeToVendorParameters()
3110 JNIEnv *env, jobject thiz, jobject names) { in android_media_MediaCodec_unsubscribeFromVendorParameters() argument
3111 sp<JMediaCodec> codec = getMediaCodec(env, thiz); in android_media_MediaCodec_unsubscribeFromVendorParameters()
3114 throwExceptionAsNecessary(env, INVALID_OPERATION, codec); in android_media_MediaCodec_unsubscribeFromVendorParameters()
3118 status_t status = codec->unsubscribeFromVendorParameters(env, names); in android_media_MediaCodec_unsubscribeFromVendorParameters()
3120 throwExceptionAsNecessary(env, status, codec); in android_media_MediaCodec_unsubscribeFromVendorParameters()
3125 static void android_media_MediaCodec_native_init(JNIEnv *env, jclass) { in android_media_MediaCodec_native_init() argument
3127 env, env->FindClass("android/media/MediaCodec")); in android_media_MediaCodec_native_init()
3131 env->GetMethodID( in android_media_MediaCodec_native_init()
3136 env->GetMethodID( in android_media_MediaCodec_native_init()
3141 env->GetMethodID( in android_media_MediaCodec_native_init()
3146 field = env->GetStaticFieldID(clazz.get(), "CRYPTO_MODE_UNENCRYPTED", "I"); in android_media_MediaCodec_native_init()
3149 env->GetStaticIntField(clazz.get(), field); in android_media_MediaCodec_native_init()
3151 field = env->GetStaticFieldID(clazz.get(), "CRYPTO_MODE_AES_CTR", "I"); in android_media_MediaCodec_native_init()
3154 env->GetStaticIntField(clazz.get(), field); in android_media_MediaCodec_native_init()
3156 field = env->GetStaticFieldID(clazz.get(), "CRYPTO_MODE_AES_CBC", "I"); in android_media_MediaCodec_native_init()
3159 env->GetStaticIntField(clazz.get(), field); in android_media_MediaCodec_native_init()
3161 clazz.reset(env->FindClass("android/media/MediaCodec$CryptoInfo")); in android_media_MediaCodec_native_init()
3164 gFields.cryptoInfoSetID = env->GetMethodID(clazz.get(), "set", "(I[I[I[B[BI)V"); in android_media_MediaCodec_native_init()
3167 gFields.cryptoInfoSetPatternID = env->GetMethodID(clazz.get(), "setPattern", "(II)V"); in android_media_MediaCodec_native_init()
3171 env->GetFieldID(clazz.get(), "numSubSamples", "I"); in android_media_MediaCodec_native_init()
3175 env->GetFieldID(clazz.get(), "numBytesOfClearData", "[I"); in android_media_MediaCodec_native_init()
3179 env->GetFieldID(clazz.get(), "numBytesOfEncryptedData", "[I"); in android_media_MediaCodec_native_init()
3182 gFields.cryptoInfoKeyID = env->GetFieldID(clazz.get(), "key", "[B"); in android_media_MediaCodec_native_init()
3185 gFields.cryptoInfoIVID = env->GetFieldID(clazz.get(), "iv", "[B"); in android_media_MediaCodec_native_init()
3188 gFields.cryptoInfoModeID = env->GetFieldID(clazz.get(), "mode", "I"); in android_media_MediaCodec_native_init()
3191 gFields.cryptoInfoPatternID = env->GetFieldID(clazz.get(), "mPattern", in android_media_MediaCodec_native_init()
3195 clazz.reset(env->FindClass("android/media/MediaCodec$CryptoInfo$Pattern")); in android_media_MediaCodec_native_init()
3198 gFields.patternEncryptBlocksID = env->GetFieldID(clazz.get(), "mEncryptBlocks", "I"); in android_media_MediaCodec_native_init()
3201 gFields.patternSkipBlocksID = env->GetFieldID(clazz.get(), "mSkipBlocks", "I"); in android_media_MediaCodec_native_init()
3204 clazz.reset(env->FindClass("android/media/MediaCodec$QueueRequest")); in android_media_MediaCodec_native_init()
3207 gFields.queueRequestIndexID = env->GetFieldID(clazz.get(), "mIndex", "I"); in android_media_MediaCodec_native_init()
3210 clazz.reset(env->FindClass("android/media/MediaCodec$OutputFrame")); in android_media_MediaCodec_native_init()
3214 env->GetFieldID(clazz.get(), "mLinearBlock", "Landroid/media/MediaCodec$LinearBlock;"); in android_media_MediaCodec_native_init()
3218 env->GetFieldID(clazz.get(), "mHardwareBuffer", "Landroid/hardware/HardwareBuffer;"); in android_media_MediaCodec_native_init()
3222 env->GetFieldID(clazz.get(), "mChangedKeys", "Ljava/util/ArrayList;"); in android_media_MediaCodec_native_init()
3226 env->GetFieldID(clazz.get(), "mFormat", "Landroid/media/MediaFormat;"); in android_media_MediaCodec_native_init()
3229 clazz.reset(env->FindClass("android/media/MediaCodec$CryptoException")); in android_media_MediaCodec_native_init()
3232 field = env->GetStaticFieldID(clazz.get(), "ERROR_NO_KEY", "I"); in android_media_MediaCodec_native_init()
3235 env->GetStaticIntField(clazz.get(), field); in android_media_MediaCodec_native_init()
3237 field = env->GetStaticFieldID(clazz.get(), "ERROR_KEY_EXPIRED", "I"); in android_media_MediaCodec_native_init()
3240 env->GetStaticIntField(clazz.get(), field); in android_media_MediaCodec_native_init()
3242 field = env->GetStaticFieldID(clazz.get(), "ERROR_RESOURCE_BUSY", "I"); in android_media_MediaCodec_native_init()
3245 env->GetStaticIntField(clazz.get(), field); in android_media_MediaCodec_native_init()
3247 field = env->GetStaticFieldID(clazz.get(), "ERROR_INSUFFICIENT_OUTPUT_PROTECTION", "I"); in android_media_MediaCodec_native_init()
3250 env->GetStaticIntField(clazz.get(), field); in android_media_MediaCodec_native_init()
3252 field = env->GetStaticFieldID(clazz.get(), "ERROR_SESSION_NOT_OPENED", "I"); in android_media_MediaCodec_native_init()
3255 env->GetStaticIntField(clazz.get(), field); in android_media_MediaCodec_native_init()
3257 field = env->GetStaticFieldID(clazz.get(), "ERROR_INSUFFICIENT_SECURITY", "I"); in android_media_MediaCodec_native_init()
3260 env->GetStaticIntField(clazz.get(), field); in android_media_MediaCodec_native_init()
3262 field = env->GetStaticFieldID(clazz.get(), "ERROR_UNSUPPORTED_OPERATION", "I"); in android_media_MediaCodec_native_init()
3265 env->GetStaticIntField(clazz.get(), field); in android_media_MediaCodec_native_init()
3267 field = env->GetStaticFieldID(clazz.get(), "ERROR_FRAME_TOO_LARGE", "I"); in android_media_MediaCodec_native_init()
3270 env->GetStaticIntField(clazz.get(), field); in android_media_MediaCodec_native_init()
3272 field = env->GetStaticFieldID(clazz.get(), "ERROR_LOST_STATE", "I"); in android_media_MediaCodec_native_init()
3275 env->GetStaticIntField(clazz.get(), field); in android_media_MediaCodec_native_init()
3277 clazz.reset(env->FindClass("android/media/MediaCodec$CodecException")); in android_media_MediaCodec_native_init()
3279 field = env->GetStaticFieldID(clazz.get(), "ACTION_TRANSIENT", "I"); in android_media_MediaCodec_native_init()
3282 env->GetStaticIntField(clazz.get(), field); in android_media_MediaCodec_native_init()
3284 field = env->GetStaticFieldID(clazz.get(), "ACTION_RECOVERABLE", "I"); in android_media_MediaCodec_native_init()
3287 env->GetStaticIntField(clazz.get(), field); in android_media_MediaCodec_native_init()
3289 field = env->GetStaticFieldID(clazz.get(), "ERROR_INSUFFICIENT_RESOURCE", "I"); in android_media_MediaCodec_native_init()
3292 env->GetStaticIntField(clazz.get(), field); in android_media_MediaCodec_native_init()
3294 field = env->GetStaticFieldID(clazz.get(), "ERROR_RECLAIMED", "I"); in android_media_MediaCodec_native_init()
3297 env->GetStaticIntField(clazz.get(), field); in android_media_MediaCodec_native_init()
3299 clazz.reset(env->FindClass("android/view/Surface")); in android_media_MediaCodec_native_init()
3302 field = env->GetFieldID(clazz.get(), "mLock", "Ljava/lang/Object;"); in android_media_MediaCodec_native_init()
3306 jmethodID method = env->GetMethodID(clazz.get(), "setNativeObjectLocked", "(J)V"); in android_media_MediaCodec_native_init()
3310 clazz.reset(env->FindClass("android/media/MediaCodec$PersistentSurface")); in android_media_MediaCodec_native_init()
3312 gPersistentSurfaceClassInfo.clazz = (jclass)env->NewGlobalRef(clazz.get()); in android_media_MediaCodec_native_init()
3314 method = env->GetMethodID(clazz.get(), "<init>", "()V"); in android_media_MediaCodec_native_init()
3318 field = env->GetFieldID(clazz.get(), "mPersistentObject", "J"); in android_media_MediaCodec_native_init()
3322 clazz.reset(env->FindClass("android/media/MediaCodecInfo$CodecCapabilities")); in android_media_MediaCodec_native_init()
3324 gCodecInfo.capsClazz = (jclass)env->NewGlobalRef(clazz.get()); in android_media_MediaCodec_native_init()
3326 method = env->GetMethodID(clazz.get(), "<init>", in android_media_MediaCodec_native_init()
3332 clazz.reset(env->FindClass("android/media/MediaCodecInfo$CodecProfileLevel")); in android_media_MediaCodec_native_init()
3334 gCodecInfo.profileLevelClazz = (jclass)env->NewGlobalRef(clazz.get()); in android_media_MediaCodec_native_init()
3336 field = env->GetFieldID(clazz.get(), "profile", "I"); in android_media_MediaCodec_native_init()
3340 field = env->GetFieldID(clazz.get(), "level", "I"); in android_media_MediaCodec_native_init()
3344 clazz.reset(env->FindClass("java/nio/ByteBuffer")); in android_media_MediaCodec_native_init()
3346 gByteBufferInfo.clazz = (jclass)env->NewGlobalRef(clazz.get()); in android_media_MediaCodec_native_init()
3349 env, env->FindClass("java/nio/ByteOrder")); in android_media_MediaCodec_native_init()
3352 jmethodID nativeOrderID = env->GetStaticMethodID( in android_media_MediaCodec_native_init()
3357 env, env->CallStaticObjectMethod(byteOrderClass.get(), nativeOrderID)}; in android_media_MediaCodec_native_init()
3358 gByteBufferInfo.nativeByteOrder = env->NewGlobalRef(nativeByteOrderObj.get()); in android_media_MediaCodec_native_init()
3362 gByteBufferInfo.orderId = env->GetMethodID( in android_media_MediaCodec_native_init()
3368 gByteBufferInfo.asReadOnlyBufferId = env->GetMethodID( in android_media_MediaCodec_native_init()
3372 gByteBufferInfo.positionId = env->GetMethodID( in android_media_MediaCodec_native_init()
3376 gByteBufferInfo.limitId = env->GetMethodID( in android_media_MediaCodec_native_init()
3380 gByteBufferInfo.getPositionId = env->GetMethodID( in android_media_MediaCodec_native_init()
3384 gByteBufferInfo.getLimitId = env->GetMethodID( in android_media_MediaCodec_native_init()
3388 clazz.reset(env->FindClass("java/util/ArrayList")); in android_media_MediaCodec_native_init()
3390 gArrayListInfo.clazz = (jclass)env->NewGlobalRef(clazz.get()); in android_media_MediaCodec_native_init()
3392 gArrayListInfo.ctorId = env->GetMethodID(clazz.get(), "<init>", "()V"); in android_media_MediaCodec_native_init()
3395 gArrayListInfo.sizeId = env->GetMethodID(clazz.get(), "size", "()I"); in android_media_MediaCodec_native_init()
3398 gArrayListInfo.getId = env->GetMethodID(clazz.get(), "get", "(I)Ljava/lang/Object;"); in android_media_MediaCodec_native_init()
3401 gArrayListInfo.addId = env->GetMethodID(clazz.get(), "add", "(Ljava/lang/Object;)Z"); in android_media_MediaCodec_native_init()
3404 clazz.reset(env->FindClass("android/media/MediaCodec$LinearBlock")); in android_media_MediaCodec_native_init()
3407 gLinearBlockInfo.clazz = (jclass)env->NewGlobalRef(clazz.get()); in android_media_MediaCodec_native_init()
3409 gLinearBlockInfo.ctorId = env->GetMethodID(clazz.get(), "<init>", "()V"); in android_media_MediaCodec_native_init()
3412 gLinearBlockInfo.setInternalStateId = env->GetMethodID( in android_media_MediaCodec_native_init()
3416 gLinearBlockInfo.contextId = env->GetFieldID(clazz.get(), "mNativeContext", "J"); in android_media_MediaCodec_native_init()
3419 gLinearBlockInfo.validId = env->GetFieldID(clazz.get(), "mValid", "Z"); in android_media_MediaCodec_native_init()
3422 gLinearBlockInfo.lockId = env->GetFieldID(clazz.get(), "mLock", "Ljava/lang/Object;"); in android_media_MediaCodec_native_init()
3425 clazz.reset(env->FindClass("android/media/MediaCodec$ParameterDescriptor")); in android_media_MediaCodec_native_init()
3427 gDescriptorInfo.clazz = (jclass)env->NewGlobalRef(clazz.get()); in android_media_MediaCodec_native_init()
3429 gDescriptorInfo.ctorId = env->GetMethodID(clazz.get(), "<init>", "()V"); in android_media_MediaCodec_native_init()
3432 gDescriptorInfo.nameId = env->GetFieldID(clazz.get(), "mName", "Ljava/lang/String;"); in android_media_MediaCodec_native_init()
3435 gDescriptorInfo.typeId = env->GetFieldID(clazz.get(), "mType", "I"); in android_media_MediaCodec_native_init()
3438 clazz.reset(env->FindClass("android/media/MediaCodec$BufferInfo")); in android_media_MediaCodec_native_init()
3440 gBufferInfo.clazz = (jclass)env->NewGlobalRef(clazz.get()); in android_media_MediaCodec_native_init()
3442 gBufferInfo.ctorId = env->GetMethodID(clazz.get(), "<init>", "()V"); in android_media_MediaCodec_native_init()
3445 gBufferInfo.setId = env->GetMethodID(clazz.get(), "set", "(IIJI)V"); in android_media_MediaCodec_native_init()
3450 JNIEnv *env, jobject thiz, in android_media_MediaCodec_native_setup() argument
3453 jniThrowException(env, "java/lang/NullPointerException", NULL); in android_media_MediaCodec_native_setup()
3457 const char *tmp = env->GetStringUTFChars(name, NULL); in android_media_MediaCodec_native_setup()
3463 sp<JMediaCodec> codec = new JMediaCodec(env, thiz, tmp, nameIsType, encoder, pid, uid); in android_media_MediaCodec_native_setup()
3468 jniThrowException(env, "java/lang/IllegalArgumentException", in android_media_MediaCodec_native_setup()
3470 env->ReleaseStringUTFChars(name, tmp); in android_media_MediaCodec_native_setup()
3474 throwCodecException(env, err, ACTION_CODE_TRANSIENT, in android_media_MediaCodec_native_setup()
3476 env->ReleaseStringUTFChars(name, tmp); in android_media_MediaCodec_native_setup()
3480 jniThrowException(env, "java/lang/SecurityException", in android_media_MediaCodec_native_setup()
3483 env->ReleaseStringUTFChars(name, tmp); in android_media_MediaCodec_native_setup()
3488 jniThrowException(env, "java/io/IOException", in android_media_MediaCodec_native_setup()
3490 env->ReleaseStringUTFChars(name, tmp); in android_media_MediaCodec_native_setup()
3494 env->ReleaseStringUTFChars(name, tmp); in android_media_MediaCodec_native_setup()
3498 setMediaCodec(env, thiz, codec); in android_media_MediaCodec_native_setup()
3502 JNIEnv *env, jobject thiz) { in android_media_MediaCodec_native_finalize() argument
3503 setMediaCodec(env, thiz, NULL); in android_media_MediaCodec_native_finalize()
3509 JNIEnv *env, jobject thiz) { in android_media_MediaCodec_LinearBlock_native_map() argument
3511 (JMediaCodecLinearBlock *)env->GetLongField(thiz, gLinearBlockInfo.contextId); in android_media_MediaCodec_LinearBlock_native_map()
3518 env, INVALID_OPERATION, ACTION_CODE_FATAL, in android_media_MediaCodec_LinearBlock_native_map()
3524 env, INVALID_OPERATION, ACTION_CODE_FATAL, in android_media_MediaCodec_LinearBlock_native_map()
3533 env, in android_media_MediaCodec_LinearBlock_native_map()
3547 env, in android_media_MediaCodec_LinearBlock_native_map()
3556 env, in android_media_MediaCodec_LinearBlock_native_map()
3565 env, in android_media_MediaCodec_LinearBlock_native_map()
3574 env, INVALID_OPERATION, ACTION_CODE_FATAL, in android_media_MediaCodec_LinearBlock_native_map()
3580 JNIEnv *env, jobject thiz) { in android_media_MediaCodec_LinearBlock_native_recycle() argument
3582 (JMediaCodecLinearBlock *)env->GetLongField(thiz, gLinearBlockInfo.contextId); in android_media_MediaCodec_LinearBlock_native_recycle()
3583 env->CallVoidMethod(thiz, gLinearBlockInfo.setInternalStateId, jlong(0), false); in android_media_MediaCodec_LinearBlock_native_recycle()
3588 JNIEnv *env, jobjectArray codecNames, std::vector<std::string> *names) { in PopulateNamesVector() argument
3589 jsize length = env->GetArrayLength(codecNames); in PopulateNamesVector()
3591 jstring jstr = static_cast<jstring>(env->GetObjectArrayElement(codecNames, i)); in PopulateNamesVector()
3596 const char *cstr = env->GetStringUTFChars(jstr, nullptr); in PopulateNamesVector()
3599 env, BAD_VALUE, ACTION_CODE_FATAL, in PopulateNamesVector()
3604 env->ReleaseStringUTFChars(jstr, cstr); in PopulateNamesVector()
3609 JNIEnv *env, jobject thiz, jint capacity, jobjectArray codecNames) { in android_media_MediaCodec_LinearBlock_native_obtain() argument
3612 PopulateNamesVector(env, codecNames, &names); in android_media_MediaCodec_LinearBlock_native_obtain()
3623 jniThrowException(env, "java/io/IOException", nullptr); in android_media_MediaCodec_LinearBlock_native_obtain()
3626 env->CallVoidMethod( in android_media_MediaCodec_LinearBlock_native_obtain()
3634 JNIEnv *env, jclass, jobjectArray codecNames) { in android_media_MediaCodec_LinearBlock_checkCompatible() argument
3636 PopulateNamesVector(env, codecNames, &names); in android_media_MediaCodec_LinearBlock_checkCompatible()
3653 throwExceptionAsNecessary(env, err); in android_media_MediaCodec_LinearBlock_checkCompatible()
3808 int register_android_media_MediaCodec(JNIEnv *env) { in register_android_media_MediaCodec() argument
3809 int result = AndroidRuntime::registerNativeMethods(env, in register_android_media_MediaCodec()
3814 result = AndroidRuntime::registerNativeMethods(env, in register_android_media_MediaCodec()