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

Side by Side 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // 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. =)
6 // base/android/jni_generator/jni_generator.py
7 // For
8 // 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
9
10 #ifndef android_media_MediaCodec_JNI
11 #define android_media_MediaCodec_JNI
12
13 #include <jni.h>
14
15 #include "base/android/jni_android.h"
16 #include "base/android/scoped_java_ref.h"
17 #include "base/basictypes.h"
18 #include "base/logging.h"
19
20 using base::android::ScopedJavaLocalRef;
21
22 // Step 1: forward declarations.
23 namespace {
24 const char kMediaCodecClassPath[] = "android/media/MediaCodec";
25 // Leaking this jclass as we cannot use LazyInstance from some threads.
26 jclass g_MediaCodec_clazz = NULL;
27 } // namespace
28
29 namespace JNI_MediaCodec {
30
31 // Step 2: method stubs.
32
33 static base::subtle::AtomicWord g_MediaCodec_createDecoderByType = 0;
34 static ScopedJavaLocalRef<jobject> Java_MediaCodec_createDecoderByType(JNIEnv*
35 env, jstring p0) __attribute__ ((unused));
36 static ScopedJavaLocalRef<jobject> Java_MediaCodec_createDecoderByType(JNIEnv*
37 env, jstring p0) {
38 /* Must call RegisterNativesImpl() */
39 DCHECK(g_MediaCodec_clazz);
40 jmethodID method_id =
41 base::android::MethodID::LazyGet<
42 base::android::MethodID::TYPE_STATIC>(
43 env, g_MediaCodec_clazz,
44 "createDecoderByType",
45
46 "("
47 "Ljava/lang/String;"
48 ")"
49 "Landroid/media/MediaCodec;",
50 &g_MediaCodec_createDecoderByType);
51
52 jobject ret =
53 env->CallStaticObjectMethod(g_MediaCodec_clazz,
54 method_id, p0);
55 base::android::CheckException(env);
56 return ScopedJavaLocalRef<jobject>(env, ret);
57 }
58
59 static base::subtle::AtomicWord g_MediaCodec_createEncoderByType = 0;
60 static ScopedJavaLocalRef<jobject> Java_MediaCodec_createEncoderByType(JNIEnv*
61 env, jstring p0) __attribute__ ((unused));
62 static ScopedJavaLocalRef<jobject> Java_MediaCodec_createEncoderByType(JNIEnv*
63 env, jstring p0) {
64 /* Must call RegisterNativesImpl() */
65 DCHECK(g_MediaCodec_clazz);
66 jmethodID method_id =
67 base::android::MethodID::LazyGet<
68 base::android::MethodID::TYPE_STATIC>(
69 env, g_MediaCodec_clazz,
70 "createEncoderByType",
71
72 "("
73 "Ljava/lang/String;"
74 ")"
75 "Landroid/media/MediaCodec;",
76 &g_MediaCodec_createEncoderByType);
77
78 jobject ret =
79 env->CallStaticObjectMethod(g_MediaCodec_clazz,
80 method_id, p0);
81 base::android::CheckException(env);
82 return ScopedJavaLocalRef<jobject>(env, ret);
83 }
84
85 static base::subtle::AtomicWord g_MediaCodec_createByCodecName = 0;
86 static ScopedJavaLocalRef<jobject> Java_MediaCodec_createByCodecName(JNIEnv*
87 env, jstring p0) __attribute__ ((unused));
88 static ScopedJavaLocalRef<jobject> Java_MediaCodec_createByCodecName(JNIEnv*
89 env, jstring p0) {
90 /* Must call RegisterNativesImpl() */
91 DCHECK(g_MediaCodec_clazz);
92 jmethodID method_id =
93 base::android::MethodID::LazyGet<
94 base::android::MethodID::TYPE_STATIC>(
95 env, g_MediaCodec_clazz,
96 "createByCodecName",
97
98 "("
99 "Ljava/lang/String;"
100 ")"
101 "Landroid/media/MediaCodec;",
102 &g_MediaCodec_createByCodecName);
103
104 jobject ret =
105 env->CallStaticObjectMethod(g_MediaCodec_clazz,
106 method_id, p0);
107 base::android::CheckException(env);
108 return ScopedJavaLocalRef<jobject>(env, ret);
109 }
110
111 static base::subtle::AtomicWord g_MediaCodec_finalize = 0;
112 static void Java_MediaCodec_finalize(JNIEnv* env, jobject obj) __attribute__
113 ((unused));
114 static void Java_MediaCodec_finalize(JNIEnv* env, jobject obj) {
115 /* Must call RegisterNativesImpl() */
116 DCHECK(g_MediaCodec_clazz);
117 jmethodID method_id =
118 base::android::MethodID::LazyGet<
119 base::android::MethodID::TYPE_INSTANCE>(
120 env, g_MediaCodec_clazz,
121 "finalize",
122
123 "("
124 ")"
125 "V",
126 &g_MediaCodec_finalize);
127
128 env->CallVoidMethod(obj,
129 method_id);
130 base::android::CheckException(env);
131
132 }
133
134 static base::subtle::AtomicWord g_MediaCodec_release = 0;
135 static void Java_MediaCodec_release(JNIEnv* env, jobject obj) __attribute__
136 ((unused));
137 static void Java_MediaCodec_release(JNIEnv* env, jobject obj) {
138 /* Must call RegisterNativesImpl() */
139 DCHECK(g_MediaCodec_clazz);
140 jmethodID method_id =
141 base::android::MethodID::LazyGet<
142 base::android::MethodID::TYPE_INSTANCE>(
143 env, g_MediaCodec_clazz,
144 "release",
145
146 "("
147 ")"
148 "V",
149 &g_MediaCodec_release);
150
151 env->CallVoidMethod(obj,
152 method_id);
153 base::android::CheckException(env);
154
155 }
156
157 static base::subtle::AtomicWord g_MediaCodec_configure = 0;
158 static void Java_MediaCodec_configure(JNIEnv* env, jobject obj, jobject p0,
159 jobject p1,
160 jobject p2,
161 jint p3) __attribute__ ((unused));
162 static void Java_MediaCodec_configure(JNIEnv* env, jobject obj, jobject p0,
163 jobject p1,
164 jobject p2,
165 jint p3) {
166 /* Must call RegisterNativesImpl() */
167 DCHECK(g_MediaCodec_clazz);
168 jmethodID method_id =
169 base::android::MethodID::LazyGet<
170 base::android::MethodID::TYPE_INSTANCE>(
171 env, g_MediaCodec_clazz,
172 "configure",
173
174 "("
175 "Landroid/media/MediaFormat;"
176 "Landroid/view/Surface;"
177 "Landroid/media/MediaCrypto;"
178 "I"
179 ")"
180 "V",
181 &g_MediaCodec_configure);
182
183 env->CallVoidMethod(obj,
184 method_id, p0, p1, p2, p3);
185 base::android::CheckException(env);
186
187 }
188
189 static base::subtle::AtomicWord g_MediaCodec_start = 0;
190 static void Java_MediaCodec_start(JNIEnv* env, jobject obj) __attribute__
191 ((unused));
192 static void Java_MediaCodec_start(JNIEnv* env, jobject obj) {
193 /* Must call RegisterNativesImpl() */
194 DCHECK(g_MediaCodec_clazz);
195 jmethodID method_id =
196 base::android::MethodID::LazyGet<
197 base::android::MethodID::TYPE_INSTANCE>(
198 env, g_MediaCodec_clazz,
199 "start",
200
201 "("
202 ")"
203 "V",
204 &g_MediaCodec_start);
205
206 env->CallVoidMethod(obj,
207 method_id);
208 base::android::CheckException(env);
209
210 }
211
212 static base::subtle::AtomicWord g_MediaCodec_stop = 0;
213 static void Java_MediaCodec_stop(JNIEnv* env, jobject obj) __attribute__
214 ((unused));
215 static void Java_MediaCodec_stop(JNIEnv* env, jobject obj) {
216 /* Must call RegisterNativesImpl() */
217 DCHECK(g_MediaCodec_clazz);
218 jmethodID method_id =
219 base::android::MethodID::LazyGet<
220 base::android::MethodID::TYPE_INSTANCE>(
221 env, g_MediaCodec_clazz,
222 "stop",
223
224 "("
225 ")"
226 "V",
227 &g_MediaCodec_stop);
228
229 env->CallVoidMethod(obj,
230 method_id);
231 base::android::CheckException(env);
232
233 }
234
235 static base::subtle::AtomicWord g_MediaCodec_flush = 0;
236 static void Java_MediaCodec_flush(JNIEnv* env, jobject obj) __attribute__
237 ((unused));
238 static void Java_MediaCodec_flush(JNIEnv* env, jobject obj) {
239 /* Must call RegisterNativesImpl() */
240 DCHECK(g_MediaCodec_clazz);
241 jmethodID method_id =
242 base::android::MethodID::LazyGet<
243 base::android::MethodID::TYPE_INSTANCE>(
244 env, g_MediaCodec_clazz,
245 "flush",
246
247 "("
248 ")"
249 "V",
250 &g_MediaCodec_flush);
251
252 env->CallVoidMethod(obj,
253 method_id);
254 base::android::CheckException(env);
255
256 }
257
258 static base::subtle::AtomicWord g_MediaCodec_queueInputBuffer = 0;
259 static void Java_MediaCodec_queueInputBuffer(JNIEnv* env, jobject obj, jint p0,
260 jint p1,
261 jint p2,
262 jlong p3,
263 jint p4) __attribute__ ((unused));
264 static void Java_MediaCodec_queueInputBuffer(JNIEnv* env, jobject obj, jint p0,
265 jint p1,
266 jint p2,
267 jlong p3,
268 jint p4) {
269 /* Must call RegisterNativesImpl() */
270 DCHECK(g_MediaCodec_clazz);
271 jmethodID method_id =
272 base::android::MethodID::LazyGet<
273 base::android::MethodID::TYPE_INSTANCE>(
274 env, g_MediaCodec_clazz,
275 "queueInputBuffer",
276
277 "("
278 "I"
279 "I"
280 "I"
281 "J"
282 "I"
283 ")"
284 "V",
285 &g_MediaCodec_queueInputBuffer);
286
287 env->CallVoidMethod(obj,
288 method_id, p0, p1, p2, p3, p4);
289 base::android::CheckException(env);
290
291 }
292
293 static base::subtle::AtomicWord g_MediaCodec_queueSecureInputBuffer = 0;
294 static void Java_MediaCodec_queueSecureInputBuffer(JNIEnv* env, jobject obj,
295 jint p0,
296 jint p1,
297 jobject p2,
298 jlong p3,
299 jint p4) __attribute__ ((unused));
300 static void Java_MediaCodec_queueSecureInputBuffer(JNIEnv* env, jobject obj,
301 jint p0,
302 jint p1,
303 jobject p2,
304 jlong p3,
305 jint p4) {
306 /* Must call RegisterNativesImpl() */
307 DCHECK(g_MediaCodec_clazz);
308 jmethodID method_id =
309 base::android::MethodID::LazyGet<
310 base::android::MethodID::TYPE_INSTANCE>(
311 env, g_MediaCodec_clazz,
312 "queueSecureInputBuffer",
313
314 "("
315 "I"
316 "I"
317 "Landroid/media/MediaCodec$CryptoInfo;"
318 "J"
319 "I"
320 ")"
321 "V",
322 &g_MediaCodec_queueSecureInputBuffer);
323
324 env->CallVoidMethod(obj,
325 method_id, p0, p1, p2, p3, p4);
326 base::android::CheckException(env);
327
328 }
329
330 static base::subtle::AtomicWord g_MediaCodec_dequeueInputBuffer = 0;
331 static jint Java_MediaCodec_dequeueInputBuffer(JNIEnv* env, jobject obj, jlong
332 p0) __attribute__ ((unused));
333 static jint Java_MediaCodec_dequeueInputBuffer(JNIEnv* env, jobject obj, jlong
334 p0) {
335 /* Must call RegisterNativesImpl() */
336 DCHECK(g_MediaCodec_clazz);
337 jmethodID method_id =
338 base::android::MethodID::LazyGet<
339 base::android::MethodID::TYPE_INSTANCE>(
340 env, g_MediaCodec_clazz,
341 "dequeueInputBuffer",
342
343 "("
344 "J"
345 ")"
346 "I",
347 &g_MediaCodec_dequeueInputBuffer);
348
349 jint ret =
350 env->CallIntMethod(obj,
351 method_id, p0);
352 base::android::CheckException(env);
353 return ret;
354 }
355
356 static base::subtle::AtomicWord g_MediaCodec_dequeueOutputBuffer = 0;
357 static jint Java_MediaCodec_dequeueOutputBuffer(JNIEnv* env, jobject obj,
358 jobject p0,
359 jlong p1) __attribute__ ((unused));
360 static jint Java_MediaCodec_dequeueOutputBuffer(JNIEnv* env, jobject obj,
361 jobject p0,
362 jlong p1) {
363 /* Must call RegisterNativesImpl() */
364 DCHECK(g_MediaCodec_clazz);
365 jmethodID method_id =
366 base::android::MethodID::LazyGet<
367 base::android::MethodID::TYPE_INSTANCE>(
368 env, g_MediaCodec_clazz,
369 "dequeueOutputBuffer",
370
371 "("
372 "Landroid/media/MediaCodec$BufferInfo;"
373 "J"
374 ")"
375 "I",
376 &g_MediaCodec_dequeueOutputBuffer);
377
378 jint ret =
379 env->CallIntMethod(obj,
380 method_id, p0, p1);
381 base::android::CheckException(env);
382 return ret;
383 }
384
385 static base::subtle::AtomicWord g_MediaCodec_releaseOutputBuffer = 0;
386 static void Java_MediaCodec_releaseOutputBuffer(JNIEnv* env, jobject obj, jint
387 p0,
388 jboolean p1) __attribute__ ((unused));
389 static void Java_MediaCodec_releaseOutputBuffer(JNIEnv* env, jobject obj, jint
390 p0,
391 jboolean p1) {
392 /* Must call RegisterNativesImpl() */
393 DCHECK(g_MediaCodec_clazz);
394 jmethodID method_id =
395 base::android::MethodID::LazyGet<
396 base::android::MethodID::TYPE_INSTANCE>(
397 env, g_MediaCodec_clazz,
398 "releaseOutputBuffer",
399
400 "("
401 "I"
402 "Z"
403 ")"
404 "V",
405 &g_MediaCodec_releaseOutputBuffer);
406
407 env->CallVoidMethod(obj,
408 method_id, p0, p1);
409 base::android::CheckException(env);
410
411 }
412
413 static base::subtle::AtomicWord g_MediaCodec_getOutputFormat = 0;
414 static ScopedJavaLocalRef<jobject> Java_MediaCodec_getOutputFormat(JNIEnv* env,
415 jobject obj) __attribute__ ((unused));
416 static ScopedJavaLocalRef<jobject> Java_MediaCodec_getOutputFormat(JNIEnv* env,
417 jobject obj) {
418 /* Must call RegisterNativesImpl() */
419 DCHECK(g_MediaCodec_clazz);
420 jmethodID method_id =
421 base::android::MethodID::LazyGet<
422 base::android::MethodID::TYPE_INSTANCE>(
423 env, g_MediaCodec_clazz,
424 "getOutputFormat",
425
426 "("
427 ")"
428 "Landroid/media/MediaFormat;",
429 &g_MediaCodec_getOutputFormat);
430
431 jobject ret =
432 env->CallObjectMethod(obj,
433 method_id);
434 base::android::CheckException(env);
435 return ScopedJavaLocalRef<jobject>(env, ret);
436 }
437
438 static base::subtle::AtomicWord g_MediaCodec_getInputBuffers = 0;
439 static ScopedJavaLocalRef<jobjectArray> Java_MediaCodec_getInputBuffers(JNIEnv*
440 env, jobject obj) __attribute__ ((unused));
441 static ScopedJavaLocalRef<jobjectArray> Java_MediaCodec_getInputBuffers(JNIEnv*
442 env, jobject obj) {
443 /* Must call RegisterNativesImpl() */
444 DCHECK(g_MediaCodec_clazz);
445 jmethodID method_id =
446 base::android::MethodID::LazyGet<
447 base::android::MethodID::TYPE_INSTANCE>(
448 env, g_MediaCodec_clazz,
449 "getInputBuffers",
450
451 "("
452 ")"
453 "[Ljava/nio/ByteBuffer;",
454 &g_MediaCodec_getInputBuffers);
455
456 jobjectArray ret =
457 static_cast<jobjectArray>(env->CallObjectMethod(obj,
458 method_id));
459 base::android::CheckException(env);
460 return ScopedJavaLocalRef<jobjectArray>(env, ret);
461 }
462
463 static base::subtle::AtomicWord g_MediaCodec_getOutputBuffers = 0;
464 static ScopedJavaLocalRef<jobjectArray> Java_MediaCodec_getOutputBuffers(JNIEnv*
465 env, jobject obj) __attribute__ ((unused));
466 static ScopedJavaLocalRef<jobjectArray> Java_MediaCodec_getOutputBuffers(JNIEnv*
467 env, jobject obj) {
468 /* Must call RegisterNativesImpl() */
469 DCHECK(g_MediaCodec_clazz);
470 jmethodID method_id =
471 base::android::MethodID::LazyGet<
472 base::android::MethodID::TYPE_INSTANCE>(
473 env, g_MediaCodec_clazz,
474 "getOutputBuffers",
475
476 "("
477 ")"
478 "[Ljava/nio/ByteBuffer;",
479 &g_MediaCodec_getOutputBuffers);
480
481 jobjectArray ret =
482 static_cast<jobjectArray>(env->CallObjectMethod(obj,
483 method_id));
484 base::android::CheckException(env);
485 return ScopedJavaLocalRef<jobjectArray>(env, ret);
486 }
487
488 static base::subtle::AtomicWord g_MediaCodec_setVideoScalingMode = 0;
489 static void Java_MediaCodec_setVideoScalingMode(JNIEnv* env, jobject obj, jint
490 p0) __attribute__ ((unused));
491 static void Java_MediaCodec_setVideoScalingMode(JNIEnv* env, jobject obj, jint
492 p0) {
493 /* Must call RegisterNativesImpl() */
494 DCHECK(g_MediaCodec_clazz);
495 jmethodID method_id =
496 base::android::MethodID::LazyGet<
497 base::android::MethodID::TYPE_INSTANCE>(
498 env, g_MediaCodec_clazz,
499 "setVideoScalingMode",
500
501 "("
502 "I"
503 ")"
504 "V",
505 &g_MediaCodec_setVideoScalingMode);
506
507 env->CallVoidMethod(obj,
508 method_id, p0);
509 base::android::CheckException(env);
510
511 }
512
513 // Step 3: RegisterNatives.
514
515 static bool RegisterNativesImpl(JNIEnv* env) {
516
517 g_MediaCodec_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
518 base::android::GetUnscopedClass(env, kMediaCodecClassPath)));
519 return true;
520 }
521 } // namespace JNI_MediaCodec
522
523 #endif // android_media_MediaCodec_JNI
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698