summaryrefslogtreecommitdiffstats
path: root/media/jni
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2013-04-08 23:39:29 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-04-08 23:39:29 +0000
commitc4ad3cb07ed76c5697c60285456d9c49675174d9 (patch)
tree3eb0fa618bc21df3ff96f084ad4491755e8d360e /media/jni
parent0eee410e473c1546af80c63ec866655a28833f33 (diff)
parente20a6d5c479909f37af748a81a6e5a5deb7b6e2c (diff)
downloadframeworks_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.cpp6
-rw-r--r--media/jni/android_media_MediaExtractor.cpp35
-rw-r--r--media/jni/android_media_MediaExtractor.h2
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);