Lines Matching defs:env

61 static void process_media_retriever_call(JNIEnv *env, status_t opStatus, const char* exception, const char *message)
64 jniThrowException(env, "java/lang/IllegalStateException", NULL);
68 jniThrowException( env, exception, message);
73 jniThrowException( env, exception, msg);
78 static sp<MediaMetadataRetriever> getRetriever(JNIEnv* env, jobject thiz)
81 MediaMetadataRetriever* retriever = (MediaMetadataRetriever*) env->GetLongField(thiz, fields.context);
85 static void setRetriever(JNIEnv* env, jobject thiz, const sp<MediaMetadataRetriever> &retriever)
92 sp<MediaMetadataRetriever> old = getRetriever(env, thiz);
97 env->SetLongField(thiz, fields.context, (jlong) retriever.get());
102 JNIEnv *env, jobject thiz, jobject httpServiceBinderObj, jstring path,
106 sp<MediaMetadataRetriever> retriever = getRetriever(env, thiz);
109 env,
117 env, "java/lang/IllegalArgumentException", "Null pointer");
122 const char *tmp = env->GetStringUTFChars(path, NULL);
128 env->ReleaseStringUTFChars(path, tmp);
134 env, "java/lang/IllegalArgumentException", "Invalid pathname");
141 env, keys, values, &headersVector)) {
147 sp<IBinder> binder = ibinderForJavaObject(env, httpServiceBinderObj);
152 env,
162 static void android_media_MediaMetadataRetriever_setDataSourceFD(JNIEnv *env, jobject thiz, jobject fileDescriptor, jlong offset, jlong length)
165 sp<MediaMetadataRetriever> retriever = getRetriever(env, thiz);
167 jniThrowException(env, "java/lang/IllegalStateException", "No retriever available");
171 jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
174 int fd = jniGetFDFromFileDescriptor(env, fileDescriptor);
185 jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
188 process_media_retriever_call(env, retriever->setDataSource(fd, offset, length), "java/lang/RuntimeException", "setDataSource failed");
191 static void android_media_MediaMetadataRetriever_setDataSourceCallback(JNIEnv *env, jobject thiz, jobject dataSource)
194 sp<MediaMetadataRetriever> retriever = getRetriever(env, thiz);
196 jniThrowException(env, "java/lang/IllegalStateException", "No retriever available");
200 jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
204 sp<IDataSource> callbackDataSource = new JMediaDataSource(env, dataSource);
205 process_media_retriever_call(env, retriever->setDataSource(callbackDataSource), "java/lang/RuntimeException", "setDataSourceCallback failed");
264 JNIEnv *env, VideoFrame *videoFrame, jint dst_width, jint dst_height,
273 ScopedLocalRef<jobject> config(env,
274 env->CallStaticObjectMethod(
294 jobject jBitmap = env->CallStaticObjectMethod(
301 if (env->ExceptionCheck()) {
302 env->ExceptionClear();
309 GraphicsJNI::getSkBitmap(env, jBitmap, &bitmap);
338 jobject scaledBitmap = env->CallStaticObjectMethod(fields.bitmapClazz,
345 env->DeleteLocalRef(jBitmap);
352 static int getColorFormat(JNIEnv *env, jobject options) {
357 ScopedLocalRef<jobject> inConfig(env, env->GetObjectField(options, fields.inPreferredConfig));
358 SkColorType prefColorType = GraphicsJNI::getNativeBitmapColorType(env, inConfig.get());
366 static SkColorType setOutColorType(JNIEnv *env, int colorFormat, jobject options) {
373 ScopedLocalRef<jobject> config(env,
374 env->CallStaticObjectMethod(
379 env->SetObjectField(options, fields.outActualConfig, config.get());
385 JNIEnv *env, jobject thiz, jlong timeUs, jint option, jint dst_width, jint dst_height)
389 sp<MediaMetadataRetriever> retriever = getRetriever(env, thiz);
391 jniThrowException(env, "java/lang/IllegalStateException", "No retriever available");
406 return getBitmapFromVideoFrame(env, videoFrame, dst_width, dst_height, kRGB_565_SkColorType);
410 JNIEnv *env, jobject thiz, jint index, jobject params)
413 sp<MediaMetadataRetriever> retriever = getRetriever(env, thiz);
415 jniThrowException(env, "java/lang/IllegalStateException", "No retriever available");
419 int colorFormat = getColorFormat(env, params);
432 SkColorType outColorType = setOutColorType(env, colorFormat, params);
434 return getBitmapFromVideoFrame(env, videoFrame, -1, -1, outColorType);
438 JNIEnv *env, jobject thiz, jint index, jobject params, jint targetSize, jint maxPixels)
442 sp<MediaMetadataRetriever> retriever = getRetriever(env, thiz);
444 jniThrowException(env, "java/lang/IllegalStateException", "No retriever available");
448 int colorFormat = getColorFormat(env, params);
487 SkColorType outColorType = setOutColorType(env, colorFormat, params);
489 return getBitmapFromVideoFrame(env, videoFrame, dst_width, dst_height, outColorType);
493 JNIEnv *env, jobject thiz, jint frameIndex, jint numFrames, jobject params)
496 sp<MediaMetadataRetriever> retriever = getRetriever(env, thiz);
498 jniThrowException(env,
503 int colorFormat = getColorFormat(env, params);
508 jniThrowException(env,
512 jobject arrayList = env->NewObject(fields.arrayListClazz, fields.arrayListInit);
514 jniThrowException(env,
519 SkColorType outColorType = setOutColorType(env, colorFormat, params);
527 jobject bitmapObj = getBitmapFromVideoFrame(env, videoFrame, -1, -1, outColorType);
528 env->CallBooleanMethod(arrayList, fields.arrayListAdd, bitmapObj);
529 env->DeleteLocalRef(bitmapObj);
535 JNIEnv *env, jobject thiz, jint pictureType)
538 sp<MediaMetadataRetriever> retriever = getRetriever(env, thiz);
540 jniThrowException(env, "java/lang/IllegalStateException", "No retriever available");
557 jbyteArray array = env->NewByteArray(mediaAlbumArt->size());
563 env->SetByteArrayRegion(array, 0, mediaAlbumArt->size(), data);
570 static jobject android_media_MediaMetadataRetriever_extractMetadata(JNIEnv *env, jobject thiz, jint keyCode)
573 sp<MediaMetadataRetriever> retriever = getRetriever(env, thiz);
575 jniThrowException(env, "java/lang/IllegalStateException", "No retriever available");
584 return env->NewStringUTF(value);
587 static void android_media_MediaMetadataRetriever_release(JNIEnv *env, jobject thiz)
591 setRetriever(env, thiz, NULL);
594 static void android_media_MediaMetadataRetriever_native_finalize(JNIEnv *env, jobject thiz)
598 android_media_MediaMetadataRetriever_release(env, thiz);
604 static void android_media_MediaMetadataRetriever_native_init(JNIEnv *env)
606 ScopedLocalRef<jclass> clazz(env, env->FindClass(kClassPathName));
611 fields.context = env->GetFieldID(clazz.get(), "mNativeContext", "J");
616 clazz.reset(env->FindClass("android/graphics/Bitmap"));
620 fields.bitmapClazz = (jclass) env->NewGlobalRef(clazz.get());
625 env->GetStaticMethodID(fields.bitmapClazz, "createBitmap",
632 env->GetStaticMethodID(fields.bitmapClazz, "createScaledBitmap",
639 clazz.reset(env->FindClass("android/graphics/Bitmap$Config"));
643 fields.configClazz = (jclass) env->NewGlobalRef(clazz.get());
648 env->GetStaticMethodID(fields.configClazz, "nativeToConfig",
654 clazz.reset(env->FindClass("android/media/MediaMetadataRetriever$BitmapParams"));
658 fields.bitmapParamsClazz = (jclass) env->NewGlobalRef(clazz.get());
662 fields.inPreferredConfig = env->GetFieldID(fields.bitmapParamsClazz,
667 fields.outActualConfig = env->GetFieldID(fields.bitmapParamsClazz,
673 clazz.reset(env->FindClass("java/util/ArrayList"));
677 fields.arrayListClazz = (jclass) env->NewGlobalRef(clazz.get());
681 fields.arrayListInit = env->GetMethodID(clazz.get(), "<init>", "()V");
685 fields.arrayListAdd = env->GetMethodID(clazz.get(), "add", "(Ljava/lang/Object;)Z");
691 static void android_media_MediaMetadataRetriever_native_setup(JNIEnv *env, jobject thiz)
696 jniThrowException(env, "java/lang/RuntimeException", "Out of memory");
699 setRetriever(env, thiz, retriever);
750 int register_android_media_MediaMetadataRetriever(JNIEnv *env)
753 (env, kClassPathName, nativeMethods, NELEM(nativeMethods));