Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(742)

Unified Diff: media/base/android/MediaCodec_jni.h

Issue 11973010: AndroidVDA by using Android's MediaCodec API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698