Loading core/api/current.txt +3 −1 Original line number Diff line number Diff line Loading @@ -21980,7 +21980,7 @@ package android.media { ctor public MediaDrmResetException(String); } public final class MediaExtractor { public final class MediaExtractor implements android.media.metrics.PlaybackComponent { ctor public MediaExtractor(); method public boolean advance(); method protected void finalize(); Loading @@ -21989,6 +21989,7 @@ package android.media { method public android.media.MediaExtractor.CasInfo getCasInfo(int); method public android.media.DrmInitData getDrmInitData(); method public android.os.PersistableBundle getMetrics(); method @NonNull public String getPlaybackId(); method @Nullable public java.util.Map<java.util.UUID,byte[]> getPsshInfo(); method public boolean getSampleCryptoInfo(@NonNull android.media.MediaCodec.CryptoInfo); method public int getSampleFlags(); Loading @@ -22010,6 +22011,7 @@ package android.media { method public void setDataSource(@NonNull java.io.FileDescriptor) throws java.io.IOException; method public void setDataSource(@NonNull java.io.FileDescriptor, long, long) throws java.io.IOException; method public void setMediaCas(@NonNull android.media.MediaCas); method public void setPlaybackId(@NonNull String); method public void unselectTrack(int); field public static final int SAMPLE_FLAG_ENCRYPTED = 2; // 0x2 field public static final int SAMPLE_FLAG_PARTIAL_FRAME = 4; // 0x4 media/java/android/media/MediaExtractor.java +19 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.annotation.Nullable; import android.content.ContentResolver; import android.content.Context; import android.content.res.AssetFileDescriptor; import android.media.metrics.PlaybackComponent; import android.net.Uri; import android.os.IBinder; import android.os.IHwBinder; Loading @@ -40,6 +41,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.UUID; import java.util.stream.Collectors; Loading Loading @@ -73,8 +75,10 @@ import java.util.stream.Collectors; * <p>This class requires the {@link android.Manifest.permission#INTERNET} permission * when used with network-based content. */ final public class MediaExtractor { public final class MediaExtractor implements PlaybackComponent { public MediaExtractor() { mPlaybackId = ""; native_setup(); } Loading Loading @@ -767,6 +771,18 @@ final public class MediaExtractor { */ public native boolean hasCacheReachedEndOfStream(); @Override public void setPlaybackId(@NonNull String playbackId) { mPlaybackId = Objects.requireNonNull(playbackId); native_setPlaybackId(playbackId); } @NonNull @Override public String getPlaybackId() { return mPlaybackId; } /** * Return Metrics data about the current media container. * Loading @@ -784,6 +800,7 @@ final public class MediaExtractor { return bundle; } private native void native_setPlaybackId(String playbackId); private native PersistableBundle native_getMetrics(); private static native final void native_init(); Loading @@ -796,6 +813,7 @@ final public class MediaExtractor { } private MediaCas mMediaCas; private String mPlaybackId; private long mNativeContext; Loading media/jni/android_media_MediaExtractor.cpp +24 −1 Original line number Diff line number Diff line Loading @@ -282,7 +282,6 @@ status_t JMediaExtractor::getMetrics(Parcel *reply) const { return status; } status_t JMediaExtractor::getSampleMeta(sp<MetaData> *sampleMeta) { return mImpl->getSampleMeta(sampleMeta); } Loading @@ -295,6 +294,10 @@ status_t JMediaExtractor::getAudioPresentations(size_t trackIdx, AudioPresentationCollection *presentations) const { return mImpl->getAudioPresentations(trackIdx, presentations); } status_t JMediaExtractor::setPlaybackId(const String8 &playbackId) { return mImpl->setPlaybackId(playbackId); } } // namespace android //////////////////////////////////////////////////////////////////////////////// Loading Loading @@ -920,6 +923,23 @@ android_media_MediaExtractor_native_getMetrics(JNIEnv * env, jobject thiz) return mybundle; } static void android_media_MediaExtractor_native_setPlaybackId( JNIEnv * env, jobject thiz, jstring playbackIdJString) { ALOGV("android_media_MediaExtractor_native_setPlaybackId"); sp<JMediaExtractor> extractor = getMediaExtractor(env, thiz); if (extractor == nullptr) { jniThrowException(env, "java/lang/IllegalStateException", nullptr); } const char* playbackId = env->GetStringUTFChars(playbackIdJString, nullptr); if (extractor->setPlaybackId(String8(playbackId)) != OK) { ALOGE("setPlaybackId failed"); } env->ReleaseStringUTFChars(playbackIdJString, playbackId); } static const JNINativeMethod gMethods[] = { { "release", "()V", (void *)android_media_MediaExtractor_release }, Loading Loading @@ -990,6 +1010,9 @@ static const JNINativeMethod gMethods[] = { {"native_getMetrics", "()Landroid/os/PersistableBundle;", (void *)android_media_MediaExtractor_native_getMetrics}, { "native_setPlaybackId", "(Ljava/lang/String;)V", (void *)android_media_MediaExtractor_native_setPlaybackId}, { "native_getAudioPresentations", "(I)Ljava/util/List;", (void *)android_media_MediaExtractor_getAudioPresentations }, }; Loading media/jni/android_media_MediaExtractor.h +2 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,8 @@ struct JMediaExtractor : public RefBase { status_t getAudioPresentations(size_t trackIdx, AudioPresentationCollection *presentations) const; status_t setPlaybackId(const String8& playbackId); protected: virtual ~JMediaExtractor(); Loading Loading
core/api/current.txt +3 −1 Original line number Diff line number Diff line Loading @@ -21980,7 +21980,7 @@ package android.media { ctor public MediaDrmResetException(String); } public final class MediaExtractor { public final class MediaExtractor implements android.media.metrics.PlaybackComponent { ctor public MediaExtractor(); method public boolean advance(); method protected void finalize(); Loading @@ -21989,6 +21989,7 @@ package android.media { method public android.media.MediaExtractor.CasInfo getCasInfo(int); method public android.media.DrmInitData getDrmInitData(); method public android.os.PersistableBundle getMetrics(); method @NonNull public String getPlaybackId(); method @Nullable public java.util.Map<java.util.UUID,byte[]> getPsshInfo(); method public boolean getSampleCryptoInfo(@NonNull android.media.MediaCodec.CryptoInfo); method public int getSampleFlags(); Loading @@ -22010,6 +22011,7 @@ package android.media { method public void setDataSource(@NonNull java.io.FileDescriptor) throws java.io.IOException; method public void setDataSource(@NonNull java.io.FileDescriptor, long, long) throws java.io.IOException; method public void setMediaCas(@NonNull android.media.MediaCas); method public void setPlaybackId(@NonNull String); method public void unselectTrack(int); field public static final int SAMPLE_FLAG_ENCRYPTED = 2; // 0x2 field public static final int SAMPLE_FLAG_PARTIAL_FRAME = 4; // 0x4
media/java/android/media/MediaExtractor.java +19 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.annotation.Nullable; import android.content.ContentResolver; import android.content.Context; import android.content.res.AssetFileDescriptor; import android.media.metrics.PlaybackComponent; import android.net.Uri; import android.os.IBinder; import android.os.IHwBinder; Loading @@ -40,6 +41,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.UUID; import java.util.stream.Collectors; Loading Loading @@ -73,8 +75,10 @@ import java.util.stream.Collectors; * <p>This class requires the {@link android.Manifest.permission#INTERNET} permission * when used with network-based content. */ final public class MediaExtractor { public final class MediaExtractor implements PlaybackComponent { public MediaExtractor() { mPlaybackId = ""; native_setup(); } Loading Loading @@ -767,6 +771,18 @@ final public class MediaExtractor { */ public native boolean hasCacheReachedEndOfStream(); @Override public void setPlaybackId(@NonNull String playbackId) { mPlaybackId = Objects.requireNonNull(playbackId); native_setPlaybackId(playbackId); } @NonNull @Override public String getPlaybackId() { return mPlaybackId; } /** * Return Metrics data about the current media container. * Loading @@ -784,6 +800,7 @@ final public class MediaExtractor { return bundle; } private native void native_setPlaybackId(String playbackId); private native PersistableBundle native_getMetrics(); private static native final void native_init(); Loading @@ -796,6 +813,7 @@ final public class MediaExtractor { } private MediaCas mMediaCas; private String mPlaybackId; private long mNativeContext; Loading
media/jni/android_media_MediaExtractor.cpp +24 −1 Original line number Diff line number Diff line Loading @@ -282,7 +282,6 @@ status_t JMediaExtractor::getMetrics(Parcel *reply) const { return status; } status_t JMediaExtractor::getSampleMeta(sp<MetaData> *sampleMeta) { return mImpl->getSampleMeta(sampleMeta); } Loading @@ -295,6 +294,10 @@ status_t JMediaExtractor::getAudioPresentations(size_t trackIdx, AudioPresentationCollection *presentations) const { return mImpl->getAudioPresentations(trackIdx, presentations); } status_t JMediaExtractor::setPlaybackId(const String8 &playbackId) { return mImpl->setPlaybackId(playbackId); } } // namespace android //////////////////////////////////////////////////////////////////////////////// Loading Loading @@ -920,6 +923,23 @@ android_media_MediaExtractor_native_getMetrics(JNIEnv * env, jobject thiz) return mybundle; } static void android_media_MediaExtractor_native_setPlaybackId( JNIEnv * env, jobject thiz, jstring playbackIdJString) { ALOGV("android_media_MediaExtractor_native_setPlaybackId"); sp<JMediaExtractor> extractor = getMediaExtractor(env, thiz); if (extractor == nullptr) { jniThrowException(env, "java/lang/IllegalStateException", nullptr); } const char* playbackId = env->GetStringUTFChars(playbackIdJString, nullptr); if (extractor->setPlaybackId(String8(playbackId)) != OK) { ALOGE("setPlaybackId failed"); } env->ReleaseStringUTFChars(playbackIdJString, playbackId); } static const JNINativeMethod gMethods[] = { { "release", "()V", (void *)android_media_MediaExtractor_release }, Loading Loading @@ -990,6 +1010,9 @@ static const JNINativeMethod gMethods[] = { {"native_getMetrics", "()Landroid/os/PersistableBundle;", (void *)android_media_MediaExtractor_native_getMetrics}, { "native_setPlaybackId", "(Ljava/lang/String;)V", (void *)android_media_MediaExtractor_native_setPlaybackId}, { "native_getAudioPresentations", "(I)Ljava/util/List;", (void *)android_media_MediaExtractor_getAudioPresentations }, }; Loading
media/jni/android_media_MediaExtractor.h +2 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,8 @@ struct JMediaExtractor : public RefBase { status_t getAudioPresentations(size_t trackIdx, AudioPresentationCollection *presentations) const; status_t setPlaybackId(const String8& playbackId); protected: virtual ~JMediaExtractor(); Loading