Loading api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -21992,6 +21992,7 @@ package android.media { method public boolean advance(); method public long getCachedDuration(); method public android.media.DrmInitData getDrmInitData(); method public android.os.Bundle getMetrics(); method public java.util.Map<java.util.UUID, byte[]> getPsshInfo(); method public boolean getSampleCryptoInfo(android.media.MediaCodec.CryptoInfo); method public int getSampleFlags(); api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -23612,6 +23612,7 @@ package android.media { method public boolean advance(); method public long getCachedDuration(); method public android.media.DrmInitData getDrmInitData(); method public android.os.Bundle getMetrics(); method public java.util.Map<java.util.UUID, byte[]> getPsshInfo(); method public boolean getSampleCryptoInfo(android.media.MediaCodec.CryptoInfo); method public int getSampleFlags(); api/test-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -22084,6 +22084,7 @@ package android.media { method public boolean advance(); method public long getCachedDuration(); method public android.media.DrmInitData getDrmInitData(); method public android.os.Bundle getMetrics(); method public java.util.Map<java.util.UUID, byte[]> getPsshInfo(); method public boolean getSampleCryptoInfo(android.media.MediaCodec.CryptoInfo); method public int getSampleFlags(); media/java/android/media/MediaExtractor.java +11 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.media.MediaCodec; import android.media.MediaFormat; import android.media.MediaHTTPService; import android.net.Uri; import android.os.Bundle; import android.os.IBinder; import com.android.internal.util.Preconditions; Loading Loading @@ -598,6 +599,16 @@ final public class MediaExtractor { */ public native boolean hasCacheReachedEndOfStream(); /** * Returns Analytics/Metrics data about the current media container. * * @return the set of keys and values available for the media being * handled by this instance of MediaExtractor * */ public native Bundle getMetrics(); private static native final void native_init(); private native final void native_setup(); private native final void native_finalize(); Loading media/jni/android_media_MediaExtractor.cpp +43 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <utils/Log.h> #include "android_media_MediaExtractor.h" #include "android_media_MediaMetricsJNI.h" #include "android_media_Utils.h" #include "android_runtime/AndroidRuntime.h" Loading Loading @@ -240,6 +241,13 @@ status_t JMediaExtractor::getSampleFlags(uint32_t *sampleFlags) { return OK; } status_t JMediaExtractor::getMetrics(Parcel *reply) const { status_t status = mImpl->getMetrics(reply); return status; } status_t JMediaExtractor::getSampleMeta(sp<MetaData> *sampleMeta) { return mImpl->getSampleMeta(sampleMeta); } Loading Loading @@ -767,6 +775,38 @@ static void android_media_MediaExtractor_native_finalize( android_media_MediaExtractor_release(env, thiz); } static jobject android_media_MediaExtractor_getMetrics(JNIEnv * env, jobject thiz) { ALOGV("android_media_MediaExtractor_getMetrics"); sp<JMediaExtractor> extractor = getMediaExtractor(env, thiz); if (extractor == NULL ) { jniThrowException(env, "java/lang/IllegalStateException", NULL); return NULL; } // get what we have for the metrics from the codec Parcel reply; status_t err = extractor->getMetrics(&reply); if (err != OK) { ALOGE("getMetrics failed"); return (jobject) NULL; } // build and return the Bundle MediaAnalyticsItem *item = new MediaAnalyticsItem; item->readFromParcel(reply); jobject mybundle = MediaMetricsJNI::writeMetricsToBundle(env, item, NULL); // housekeeping delete item; item = NULL; return mybundle; } static const JNINativeMethod gMethods[] = { { "release", "()V", (void *)android_media_MediaExtractor_release }, Loading Loading @@ -826,6 +866,9 @@ static const JNINativeMethod gMethods[] = { { "hasCacheReachedEndOfStream", "()Z", (void *)android_media_MediaExtractor_hasCacheReachedEOS }, {"getMetrics", "()Landroid/os/Bundle;", (void *)android_media_MediaExtractor_getMetrics}, }; int register_android_media_MediaExtractor(JNIEnv *env) { Loading Loading
api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -21992,6 +21992,7 @@ package android.media { method public boolean advance(); method public long getCachedDuration(); method public android.media.DrmInitData getDrmInitData(); method public android.os.Bundle getMetrics(); method public java.util.Map<java.util.UUID, byte[]> getPsshInfo(); method public boolean getSampleCryptoInfo(android.media.MediaCodec.CryptoInfo); method public int getSampleFlags();
api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -23612,6 +23612,7 @@ package android.media { method public boolean advance(); method public long getCachedDuration(); method public android.media.DrmInitData getDrmInitData(); method public android.os.Bundle getMetrics(); method public java.util.Map<java.util.UUID, byte[]> getPsshInfo(); method public boolean getSampleCryptoInfo(android.media.MediaCodec.CryptoInfo); method public int getSampleFlags();
api/test-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -22084,6 +22084,7 @@ package android.media { method public boolean advance(); method public long getCachedDuration(); method public android.media.DrmInitData getDrmInitData(); method public android.os.Bundle getMetrics(); method public java.util.Map<java.util.UUID, byte[]> getPsshInfo(); method public boolean getSampleCryptoInfo(android.media.MediaCodec.CryptoInfo); method public int getSampleFlags();
media/java/android/media/MediaExtractor.java +11 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.media.MediaCodec; import android.media.MediaFormat; import android.media.MediaHTTPService; import android.net.Uri; import android.os.Bundle; import android.os.IBinder; import com.android.internal.util.Preconditions; Loading Loading @@ -598,6 +599,16 @@ final public class MediaExtractor { */ public native boolean hasCacheReachedEndOfStream(); /** * Returns Analytics/Metrics data about the current media container. * * @return the set of keys and values available for the media being * handled by this instance of MediaExtractor * */ public native Bundle getMetrics(); private static native final void native_init(); private native final void native_setup(); private native final void native_finalize(); Loading
media/jni/android_media_MediaExtractor.cpp +43 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <utils/Log.h> #include "android_media_MediaExtractor.h" #include "android_media_MediaMetricsJNI.h" #include "android_media_Utils.h" #include "android_runtime/AndroidRuntime.h" Loading Loading @@ -240,6 +241,13 @@ status_t JMediaExtractor::getSampleFlags(uint32_t *sampleFlags) { return OK; } status_t JMediaExtractor::getMetrics(Parcel *reply) const { status_t status = mImpl->getMetrics(reply); return status; } status_t JMediaExtractor::getSampleMeta(sp<MetaData> *sampleMeta) { return mImpl->getSampleMeta(sampleMeta); } Loading Loading @@ -767,6 +775,38 @@ static void android_media_MediaExtractor_native_finalize( android_media_MediaExtractor_release(env, thiz); } static jobject android_media_MediaExtractor_getMetrics(JNIEnv * env, jobject thiz) { ALOGV("android_media_MediaExtractor_getMetrics"); sp<JMediaExtractor> extractor = getMediaExtractor(env, thiz); if (extractor == NULL ) { jniThrowException(env, "java/lang/IllegalStateException", NULL); return NULL; } // get what we have for the metrics from the codec Parcel reply; status_t err = extractor->getMetrics(&reply); if (err != OK) { ALOGE("getMetrics failed"); return (jobject) NULL; } // build and return the Bundle MediaAnalyticsItem *item = new MediaAnalyticsItem; item->readFromParcel(reply); jobject mybundle = MediaMetricsJNI::writeMetricsToBundle(env, item, NULL); // housekeeping delete item; item = NULL; return mybundle; } static const JNINativeMethod gMethods[] = { { "release", "()V", (void *)android_media_MediaExtractor_release }, Loading Loading @@ -826,6 +866,9 @@ static const JNINativeMethod gMethods[] = { { "hasCacheReachedEndOfStream", "()Z", (void *)android_media_MediaExtractor_hasCacheReachedEOS }, {"getMetrics", "()Landroid/os/Bundle;", (void *)android_media_MediaExtractor_getMetrics}, }; int register_android_media_MediaExtractor(JNIEnv *env) { Loading