diff options
author | Marco Nelissen <marcone@google.com> | 2013-04-08 23:39:29 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-04-08 23:39:29 +0000 |
commit | c4ad3cb07ed76c5697c60285456d9c49675174d9 (patch) | |
tree | 3eb0fa618bc21df3ff96f084ad4491755e8d360e /media/jni | |
parent | 0eee410e473c1546af80c63ec866655a28833f33 (diff) | |
parent | e20a6d5c479909f37af748a81a6e5a5deb7b6e2c (diff) | |
download | frameworks_base-c4ad3cb07ed76c5697c60285456d9c49675174d9.zip frameworks_base-c4ad3cb07ed76c5697c60285456d9c49675174d9.tar.gz frameworks_base-c4ad3cb07ed76c5697c60285456d9c49675174d9.tar.bz2 |
Merge "Add support for common encryption" into jb-mr2-dev
Diffstat (limited to 'media/jni')
-rw-r--r-- | media/jni/android_media_MediaCodec.cpp | 6 | ||||
-rw-r--r-- | media/jni/android_media_MediaExtractor.cpp | 35 | ||||
-rw-r--r-- | media/jni/android_media_MediaExtractor.h | 2 |
3 files changed, 40 insertions, 3 deletions
diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp index 3a42db2..cd1d9ce 100644 --- a/media/jni/android_media_MediaCodec.cpp +++ b/media/jni/android_media_MediaCodec.cpp @@ -372,7 +372,7 @@ static jint throwExceptionAsNecessary( default: { - jniThrowException(env, "java/lang/IllegalStateException", NULL); + jniThrowException(env, "java/lang/IllegalStateException", msg); break; } } @@ -455,13 +455,13 @@ static void android_media_MediaCodec_start(JNIEnv *env, jobject thiz) { sp<JMediaCodec> codec = getMediaCodec(env, thiz); if (codec == NULL) { - jniThrowException(env, "java/lang/IllegalStateException", NULL); + jniThrowException(env, "java/lang/IllegalStateException", "no codec found"); return; } status_t err = codec->start(); - throwExceptionAsNecessary(env, err); + throwExceptionAsNecessary(env, err, "start failed"); } static void android_media_MediaCodec_stop(JNIEnv *env, jobject thiz) { diff --git a/media/jni/android_media_MediaExtractor.cpp b/media/jni/android_media_MediaExtractor.cpp index 23949fa..1704d5c 100644 --- a/media/jni/android_media_MediaExtractor.cpp +++ b/media/jni/android_media_MediaExtractor.cpp @@ -162,6 +162,18 @@ status_t JMediaExtractor::getTrackFormat(size_t index, jobject *format) const { return ConvertMessageToMap(env, msg, format); } +status_t JMediaExtractor::getFileFormat(jobject *format) const { + sp<AMessage> msg; + status_t err; + if ((err = mImpl->getFileFormat(&msg)) != OK) { + return err; + } + + JNIEnv *env = AndroidRuntime::getJNIEnv(); + + return ConvertMessageToMap(env, msg, format); +} + status_t JMediaExtractor::selectTrack(size_t index) { return mImpl->selectTrack(index); } @@ -339,6 +351,26 @@ static jobject android_media_MediaExtractor_getTrackFormatNative( return format; } +static jobject android_media_MediaExtractor_getFileFormatNative( + JNIEnv *env, jobject thiz) { + sp<JMediaExtractor> extractor = getMediaExtractor(env, thiz); + + if (extractor == NULL) { + jniThrowException(env, "java/lang/IllegalStateException", NULL); + return NULL; + } + + jobject format; + status_t err = extractor->getFileFormat(&format); + + if (err != OK) { + jniThrowException(env, "java/lang/IllegalArgumentException", NULL); + return NULL; + } + + return format; +} + static void android_media_MediaExtractor_selectTrack( JNIEnv *env, jobject thiz, jint index) { sp<JMediaExtractor> extractor = getMediaExtractor(env, thiz); @@ -768,6 +800,9 @@ static JNINativeMethod gMethods[] = { { "getTrackCount", "()I", (void *)android_media_MediaExtractor_getTrackCount }, + { "getFileFormatNative", "()Ljava/util/Map;", + (void *)android_media_MediaExtractor_getFileFormatNative }, + { "getTrackFormatNative", "(I)Ljava/util/Map;", (void *)android_media_MediaExtractor_getTrackFormatNative }, diff --git a/media/jni/android_media_MediaExtractor.h b/media/jni/android_media_MediaExtractor.h index 03900db..ccbad8c 100644 --- a/media/jni/android_media_MediaExtractor.h +++ b/media/jni/android_media_MediaExtractor.h @@ -45,6 +45,8 @@ struct JMediaExtractor : public RefBase { size_t countTracks() const; status_t getTrackFormat(size_t index, jobject *format) const; + status_t getFileFormat(jobject *format) const; + status_t selectTrack(size_t index); status_t unselectTrack(size_t index); |