Chromium Code Reviews| Index: media/base/android/MediaCodec_jni.h |
| diff --git a/media/base/android/MediaCodec_jni.h b/media/base/android/MediaCodec_jni.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a1e1bbf90251531812bd9381d8cc826d1f60a9e4 |
| --- /dev/null |
| +++ b/media/base/android/MediaCodec_jni.h |
| @@ -0,0 +1,523 @@ |
| +// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +// This file is autogenerated by |
|
Ami GONE FROM CHROMIUM
2013/01/23 01:32:32
Is this in fact an unmodified copy of that generat
dwkang1
2013/01/28 14:54:30
You shouldn't. =)
|
| +// base/android/jni_generator/jni_generator.py |
| +// For |
| +// android/media/MediaCodec |
|
Ami GONE FROM CHROMIUM
2013/01/23 01:32:32
You plan to solve the autogen problem before landi
dwkang1
2013/01/28 14:54:30
Fixed the bug in jni_generator.
https://codereview
|
| + |
| +#ifndef android_media_MediaCodec_JNI |
| +#define android_media_MediaCodec_JNI |
| + |
| +#include <jni.h> |
| + |
| +#include "base/android/jni_android.h" |
| +#include "base/android/scoped_java_ref.h" |
| +#include "base/basictypes.h" |
| +#include "base/logging.h" |
| + |
| +using base::android::ScopedJavaLocalRef; |
| + |
| +// Step 1: forward declarations. |
| +namespace { |
| +const char kMediaCodecClassPath[] = "android/media/MediaCodec"; |
| +// Leaking this jclass as we cannot use LazyInstance from some threads. |
| +jclass g_MediaCodec_clazz = NULL; |
| +} // namespace |
| + |
| +namespace JNI_MediaCodec { |
| + |
| +// Step 2: method stubs. |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_createDecoderByType = 0; |
| +static ScopedJavaLocalRef<jobject> Java_MediaCodec_createDecoderByType(JNIEnv* |
| + env, jstring p0) __attribute__ ((unused)); |
| +static ScopedJavaLocalRef<jobject> Java_MediaCodec_createDecoderByType(JNIEnv* |
| + env, jstring p0) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_STATIC>( |
| + env, g_MediaCodec_clazz, |
| + "createDecoderByType", |
| + |
| +"(" |
| +"Ljava/lang/String;" |
| +")" |
| +"Landroid/media/MediaCodec;", |
| + &g_MediaCodec_createDecoderByType); |
| + |
| + jobject ret = |
| + env->CallStaticObjectMethod(g_MediaCodec_clazz, |
| + method_id, p0); |
| + base::android::CheckException(env); |
| + return ScopedJavaLocalRef<jobject>(env, ret); |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_createEncoderByType = 0; |
| +static ScopedJavaLocalRef<jobject> Java_MediaCodec_createEncoderByType(JNIEnv* |
| + env, jstring p0) __attribute__ ((unused)); |
| +static ScopedJavaLocalRef<jobject> Java_MediaCodec_createEncoderByType(JNIEnv* |
| + env, jstring p0) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_STATIC>( |
| + env, g_MediaCodec_clazz, |
| + "createEncoderByType", |
| + |
| +"(" |
| +"Ljava/lang/String;" |
| +")" |
| +"Landroid/media/MediaCodec;", |
| + &g_MediaCodec_createEncoderByType); |
| + |
| + jobject ret = |
| + env->CallStaticObjectMethod(g_MediaCodec_clazz, |
| + method_id, p0); |
| + base::android::CheckException(env); |
| + return ScopedJavaLocalRef<jobject>(env, ret); |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_createByCodecName = 0; |
| +static ScopedJavaLocalRef<jobject> Java_MediaCodec_createByCodecName(JNIEnv* |
| + env, jstring p0) __attribute__ ((unused)); |
| +static ScopedJavaLocalRef<jobject> Java_MediaCodec_createByCodecName(JNIEnv* |
| + env, jstring p0) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_STATIC>( |
| + env, g_MediaCodec_clazz, |
| + "createByCodecName", |
| + |
| +"(" |
| +"Ljava/lang/String;" |
| +")" |
| +"Landroid/media/MediaCodec;", |
| + &g_MediaCodec_createByCodecName); |
| + |
| + jobject ret = |
| + env->CallStaticObjectMethod(g_MediaCodec_clazz, |
| + method_id, p0); |
| + base::android::CheckException(env); |
| + return ScopedJavaLocalRef<jobject>(env, ret); |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_finalize = 0; |
| +static void Java_MediaCodec_finalize(JNIEnv* env, jobject obj) __attribute__ |
| + ((unused)); |
| +static void Java_MediaCodec_finalize(JNIEnv* env, jobject obj) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_INSTANCE>( |
| + env, g_MediaCodec_clazz, |
| + "finalize", |
| + |
| +"(" |
| +")" |
| +"V", |
| + &g_MediaCodec_finalize); |
| + |
| + env->CallVoidMethod(obj, |
| + method_id); |
| + base::android::CheckException(env); |
| + |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_release = 0; |
| +static void Java_MediaCodec_release(JNIEnv* env, jobject obj) __attribute__ |
| + ((unused)); |
| +static void Java_MediaCodec_release(JNIEnv* env, jobject obj) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_INSTANCE>( |
| + env, g_MediaCodec_clazz, |
| + "release", |
| + |
| +"(" |
| +")" |
| +"V", |
| + &g_MediaCodec_release); |
| + |
| + env->CallVoidMethod(obj, |
| + method_id); |
| + base::android::CheckException(env); |
| + |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_configure = 0; |
| +static void Java_MediaCodec_configure(JNIEnv* env, jobject obj, jobject p0, |
| + jobject p1, |
| + jobject p2, |
| + jint p3) __attribute__ ((unused)); |
| +static void Java_MediaCodec_configure(JNIEnv* env, jobject obj, jobject p0, |
| + jobject p1, |
| + jobject p2, |
| + jint p3) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_INSTANCE>( |
| + env, g_MediaCodec_clazz, |
| + "configure", |
| + |
| +"(" |
| +"Landroid/media/MediaFormat;" |
| +"Landroid/view/Surface;" |
| +"Landroid/media/MediaCrypto;" |
| +"I" |
| +")" |
| +"V", |
| + &g_MediaCodec_configure); |
| + |
| + env->CallVoidMethod(obj, |
| + method_id, p0, p1, p2, p3); |
| + base::android::CheckException(env); |
| + |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_start = 0; |
| +static void Java_MediaCodec_start(JNIEnv* env, jobject obj) __attribute__ |
| + ((unused)); |
| +static void Java_MediaCodec_start(JNIEnv* env, jobject obj) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_INSTANCE>( |
| + env, g_MediaCodec_clazz, |
| + "start", |
| + |
| +"(" |
| +")" |
| +"V", |
| + &g_MediaCodec_start); |
| + |
| + env->CallVoidMethod(obj, |
| + method_id); |
| + base::android::CheckException(env); |
| + |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_stop = 0; |
| +static void Java_MediaCodec_stop(JNIEnv* env, jobject obj) __attribute__ |
| + ((unused)); |
| +static void Java_MediaCodec_stop(JNIEnv* env, jobject obj) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_INSTANCE>( |
| + env, g_MediaCodec_clazz, |
| + "stop", |
| + |
| +"(" |
| +")" |
| +"V", |
| + &g_MediaCodec_stop); |
| + |
| + env->CallVoidMethod(obj, |
| + method_id); |
| + base::android::CheckException(env); |
| + |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_flush = 0; |
| +static void Java_MediaCodec_flush(JNIEnv* env, jobject obj) __attribute__ |
| + ((unused)); |
| +static void Java_MediaCodec_flush(JNIEnv* env, jobject obj) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_INSTANCE>( |
| + env, g_MediaCodec_clazz, |
| + "flush", |
| + |
| +"(" |
| +")" |
| +"V", |
| + &g_MediaCodec_flush); |
| + |
| + env->CallVoidMethod(obj, |
| + method_id); |
| + base::android::CheckException(env); |
| + |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_queueInputBuffer = 0; |
| +static void Java_MediaCodec_queueInputBuffer(JNIEnv* env, jobject obj, jint p0, |
| + jint p1, |
| + jint p2, |
| + jlong p3, |
| + jint p4) __attribute__ ((unused)); |
| +static void Java_MediaCodec_queueInputBuffer(JNIEnv* env, jobject obj, jint p0, |
| + jint p1, |
| + jint p2, |
| + jlong p3, |
| + jint p4) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_INSTANCE>( |
| + env, g_MediaCodec_clazz, |
| + "queueInputBuffer", |
| + |
| +"(" |
| +"I" |
| +"I" |
| +"I" |
| +"J" |
| +"I" |
| +")" |
| +"V", |
| + &g_MediaCodec_queueInputBuffer); |
| + |
| + env->CallVoidMethod(obj, |
| + method_id, p0, p1, p2, p3, p4); |
| + base::android::CheckException(env); |
| + |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_queueSecureInputBuffer = 0; |
| +static void Java_MediaCodec_queueSecureInputBuffer(JNIEnv* env, jobject obj, |
| + jint p0, |
| + jint p1, |
| + jobject p2, |
| + jlong p3, |
| + jint p4) __attribute__ ((unused)); |
| +static void Java_MediaCodec_queueSecureInputBuffer(JNIEnv* env, jobject obj, |
| + jint p0, |
| + jint p1, |
| + jobject p2, |
| + jlong p3, |
| + jint p4) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_INSTANCE>( |
| + env, g_MediaCodec_clazz, |
| + "queueSecureInputBuffer", |
| + |
| +"(" |
| +"I" |
| +"I" |
| +"Landroid/media/MediaCodec$CryptoInfo;" |
| +"J" |
| +"I" |
| +")" |
| +"V", |
| + &g_MediaCodec_queueSecureInputBuffer); |
| + |
| + env->CallVoidMethod(obj, |
| + method_id, p0, p1, p2, p3, p4); |
| + base::android::CheckException(env); |
| + |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_dequeueInputBuffer = 0; |
| +static jint Java_MediaCodec_dequeueInputBuffer(JNIEnv* env, jobject obj, jlong |
| + p0) __attribute__ ((unused)); |
| +static jint Java_MediaCodec_dequeueInputBuffer(JNIEnv* env, jobject obj, jlong |
| + p0) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_INSTANCE>( |
| + env, g_MediaCodec_clazz, |
| + "dequeueInputBuffer", |
| + |
| +"(" |
| +"J" |
| +")" |
| +"I", |
| + &g_MediaCodec_dequeueInputBuffer); |
| + |
| + jint ret = |
| + env->CallIntMethod(obj, |
| + method_id, p0); |
| + base::android::CheckException(env); |
| + return ret; |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_dequeueOutputBuffer = 0; |
| +static jint Java_MediaCodec_dequeueOutputBuffer(JNIEnv* env, jobject obj, |
| + jobject p0, |
| + jlong p1) __attribute__ ((unused)); |
| +static jint Java_MediaCodec_dequeueOutputBuffer(JNIEnv* env, jobject obj, |
| + jobject p0, |
| + jlong p1) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_INSTANCE>( |
| + env, g_MediaCodec_clazz, |
| + "dequeueOutputBuffer", |
| + |
| +"(" |
| +"Landroid/media/MediaCodec$BufferInfo;" |
| +"J" |
| +")" |
| +"I", |
| + &g_MediaCodec_dequeueOutputBuffer); |
| + |
| + jint ret = |
| + env->CallIntMethod(obj, |
| + method_id, p0, p1); |
| + base::android::CheckException(env); |
| + return ret; |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_releaseOutputBuffer = 0; |
| +static void Java_MediaCodec_releaseOutputBuffer(JNIEnv* env, jobject obj, jint |
| + p0, |
| + jboolean p1) __attribute__ ((unused)); |
| +static void Java_MediaCodec_releaseOutputBuffer(JNIEnv* env, jobject obj, jint |
| + p0, |
| + jboolean p1) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_INSTANCE>( |
| + env, g_MediaCodec_clazz, |
| + "releaseOutputBuffer", |
| + |
| +"(" |
| +"I" |
| +"Z" |
| +")" |
| +"V", |
| + &g_MediaCodec_releaseOutputBuffer); |
| + |
| + env->CallVoidMethod(obj, |
| + method_id, p0, p1); |
| + base::android::CheckException(env); |
| + |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_getOutputFormat = 0; |
| +static ScopedJavaLocalRef<jobject> Java_MediaCodec_getOutputFormat(JNIEnv* env, |
| + jobject obj) __attribute__ ((unused)); |
| +static ScopedJavaLocalRef<jobject> Java_MediaCodec_getOutputFormat(JNIEnv* env, |
| + jobject obj) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_INSTANCE>( |
| + env, g_MediaCodec_clazz, |
| + "getOutputFormat", |
| + |
| +"(" |
| +")" |
| +"Landroid/media/MediaFormat;", |
| + &g_MediaCodec_getOutputFormat); |
| + |
| + jobject ret = |
| + env->CallObjectMethod(obj, |
| + method_id); |
| + base::android::CheckException(env); |
| + return ScopedJavaLocalRef<jobject>(env, ret); |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_getInputBuffers = 0; |
| +static ScopedJavaLocalRef<jobjectArray> Java_MediaCodec_getInputBuffers(JNIEnv* |
| + env, jobject obj) __attribute__ ((unused)); |
| +static ScopedJavaLocalRef<jobjectArray> Java_MediaCodec_getInputBuffers(JNIEnv* |
| + env, jobject obj) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_INSTANCE>( |
| + env, g_MediaCodec_clazz, |
| + "getInputBuffers", |
| + |
| +"(" |
| +")" |
| +"[Ljava/nio/ByteBuffer;", |
| + &g_MediaCodec_getInputBuffers); |
| + |
| + jobjectArray ret = |
| + static_cast<jobjectArray>(env->CallObjectMethod(obj, |
| + method_id)); |
| + base::android::CheckException(env); |
| + return ScopedJavaLocalRef<jobjectArray>(env, ret); |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_getOutputBuffers = 0; |
| +static ScopedJavaLocalRef<jobjectArray> Java_MediaCodec_getOutputBuffers(JNIEnv* |
| + env, jobject obj) __attribute__ ((unused)); |
| +static ScopedJavaLocalRef<jobjectArray> Java_MediaCodec_getOutputBuffers(JNIEnv* |
| + env, jobject obj) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_INSTANCE>( |
| + env, g_MediaCodec_clazz, |
| + "getOutputBuffers", |
| + |
| +"(" |
| +")" |
| +"[Ljava/nio/ByteBuffer;", |
| + &g_MediaCodec_getOutputBuffers); |
| + |
| + jobjectArray ret = |
| + static_cast<jobjectArray>(env->CallObjectMethod(obj, |
| + method_id)); |
| + base::android::CheckException(env); |
| + return ScopedJavaLocalRef<jobjectArray>(env, ret); |
| +} |
| + |
| +static base::subtle::AtomicWord g_MediaCodec_setVideoScalingMode = 0; |
| +static void Java_MediaCodec_setVideoScalingMode(JNIEnv* env, jobject obj, jint |
| + p0) __attribute__ ((unused)); |
| +static void Java_MediaCodec_setVideoScalingMode(JNIEnv* env, jobject obj, jint |
| + p0) { |
| + /* Must call RegisterNativesImpl() */ |
| + DCHECK(g_MediaCodec_clazz); |
| + jmethodID method_id = |
| + base::android::MethodID::LazyGet< |
| + base::android::MethodID::TYPE_INSTANCE>( |
| + env, g_MediaCodec_clazz, |
| + "setVideoScalingMode", |
| + |
| +"(" |
| +"I" |
| +")" |
| +"V", |
| + &g_MediaCodec_setVideoScalingMode); |
| + |
| + env->CallVoidMethod(obj, |
| + method_id, p0); |
| + base::android::CheckException(env); |
| + |
| +} |
| + |
| +// Step 3: RegisterNatives. |
| + |
| +static bool RegisterNativesImpl(JNIEnv* env) { |
| + |
| + g_MediaCodec_clazz = reinterpret_cast<jclass>(env->NewGlobalRef( |
| + base::android::GetUnscopedClass(env, kMediaCodecClassPath))); |
| + return true; |
| +} |
| +} // namespace JNI_MediaCodec |
| + |
| +#endif // android_media_MediaCodec_JNI |