Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 99f80723 authored by Lajos Molnar's avatar Lajos Molnar
Browse files

media: add annotations to low-level Media* classes

Also remove explicit runtime exception added to
MediaExtractor.setDataSource, as other methods don't
explicitly declare it.

Includes MediaCodec, Crypto, Drm, Extractor, Muxer, Sync.

Bug: 19756615
Bug: 19967103
Bug: 16906375
Change-Id: If511d85af7f61808fbe63fbdc6e04a3d2e7e262c
parent b5665c99
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -15733,7 +15733,7 @@ package android.media {
    method public final void release();
    method public final void release();
    method public void seekTo(long, int);
    method public void seekTo(long, int);
    method public void selectTrack(int);
    method public void selectTrack(int);
    method public final void setDataSource(android.media.MediaDataSource) throws java.io.IOException, java.lang.IllegalArgumentException;
    method public final void setDataSource(android.media.MediaDataSource) throws java.io.IOException;
    method public final void setDataSource(android.content.Context, android.net.Uri, java.util.Map<java.lang.String, java.lang.String>) throws java.io.IOException;
    method public final void setDataSource(android.content.Context, android.net.Uri, java.util.Map<java.lang.String, java.lang.String>) throws java.io.IOException;
    method public final void setDataSource(java.lang.String, java.util.Map<java.lang.String, java.lang.String>) throws java.io.IOException;
    method public final void setDataSource(java.lang.String, java.util.Map<java.lang.String, java.lang.String>) throws java.io.IOException;
    method public final void setDataSource(java.lang.String) throws java.io.IOException;
    method public final void setDataSource(java.lang.String) throws java.io.IOException;
+1 −1
Original line number Original line Diff line number Diff line
@@ -16946,7 +16946,7 @@ package android.media {
    method public final void release();
    method public final void release();
    method public void seekTo(long, int);
    method public void seekTo(long, int);
    method public void selectTrack(int);
    method public void selectTrack(int);
    method public final void setDataSource(android.media.MediaDataSource) throws java.io.IOException, java.lang.IllegalArgumentException;
    method public final void setDataSource(android.media.MediaDataSource) throws java.io.IOException;
    method public final void setDataSource(android.content.Context, android.net.Uri, java.util.Map<java.lang.String, java.lang.String>) throws java.io.IOException;
    method public final void setDataSource(android.content.Context, android.net.Uri, java.util.Map<java.lang.String, java.lang.String>) throws java.io.IOException;
    method public final void setDataSource(java.lang.String, java.util.Map<java.lang.String, java.lang.String>) throws java.io.IOException;
    method public final void setDataSource(java.lang.String, java.util.Map<java.lang.String, java.lang.String>) throws java.io.IOException;
    method public final void setDataSource(java.lang.String) throws java.io.IOException;
    method public final void setDataSource(java.lang.String) throws java.io.IOException;
+154 −58

File changed.

Preview size limit exceeded, changes collapsed.

+9 −7
Original line number Original line Diff line number Diff line
@@ -16,6 +16,7 @@


package android.media;
package android.media;


import android.annotation.NonNull;
import android.media.MediaCryptoException;
import android.media.MediaCryptoException;
import java.util.UUID;
import java.util.UUID;


@@ -34,11 +35,12 @@ public final class MediaCrypto {
     * this device.
     * this device.
     * @param uuid The UUID of the crypto scheme.
     * @param uuid The UUID of the crypto scheme.
     */
     */
    public static final boolean isCryptoSchemeSupported(UUID uuid) {
    public static final boolean isCryptoSchemeSupported(@NonNull UUID uuid) {
        return isCryptoSchemeSupportedNative(getByteArrayFromUUID(uuid));
        return isCryptoSchemeSupportedNative(getByteArrayFromUUID(uuid));
    }
    }


    private static final byte[] getByteArrayFromUUID(UUID uuid) {
    @NonNull
    private static final byte[] getByteArrayFromUUID(@NonNull UUID uuid) {
        long msb = uuid.getMostSignificantBits();
        long msb = uuid.getMostSignificantBits();
        long lsb = uuid.getLeastSignificantBits();
        long lsb = uuid.getLeastSignificantBits();


@@ -51,7 +53,7 @@ public final class MediaCrypto {
        return uuidBytes;
        return uuidBytes;
    }
    }


    private static final native boolean isCryptoSchemeSupportedNative(byte[] uuid);
    private static final native boolean isCryptoSchemeSupportedNative(@NonNull byte[] uuid);


    /**
    /**
     * Instantiate a MediaCrypto object using opaque, crypto scheme specific
     * Instantiate a MediaCrypto object using opaque, crypto scheme specific
@@ -59,7 +61,7 @@ public final class MediaCrypto {
     * @param uuid The UUID of the crypto scheme.
     * @param uuid The UUID of the crypto scheme.
     * @param initData Opaque initialization data specific to the crypto scheme.
     * @param initData Opaque initialization data specific to the crypto scheme.
     */
     */
    public MediaCrypto(UUID uuid, byte[] initData) throws MediaCryptoException {
    public MediaCrypto(@NonNull UUID uuid, @NonNull byte[] initData) throws MediaCryptoException {
        native_setup(getByteArrayFromUUID(uuid), initData);
        native_setup(getByteArrayFromUUID(uuid), initData);
    }
    }


@@ -68,7 +70,7 @@ public final class MediaCrypto {
     * to decode data of the given mime type.
     * to decode data of the given mime type.
     * @param mime The mime type of the media data
     * @param mime The mime type of the media data
     */
     */
    public final native boolean requiresSecureDecoderComponent(String mime);
    public final native boolean requiresSecureDecoderComponent(@NonNull String mime);


    /**
    /**
     * Associate a MediaDrm session with this MediaCrypto instance.  The
     * Associate a MediaDrm session with this MediaCrypto instance.  The
@@ -81,7 +83,7 @@ public final class MediaCrypto {
     * MediaCrypto instance
     * MediaCrypto instance
     * @throws MediaCryptoException on failure to set the sessionId
     * @throws MediaCryptoException on failure to set the sessionId
     */
     */
    public final native void setMediaDrmSession(byte[] sessionId)
    public final native void setMediaDrmSession(@NonNull byte[] sessionId)
        throws MediaCryptoException;
        throws MediaCryptoException;


    @Override
    @Override
@@ -92,7 +94,7 @@ public final class MediaCrypto {
    public native final void release();
    public native final void release();
    private static native final void native_init();
    private static native final void native_init();


    private native final void native_setup(byte[] uuid, byte[] initData)
    private native final void native_setup(@NonNull byte[] uuid, @NonNull byte[] initData)
        throws MediaCryptoException;
        throws MediaCryptoException;


    private native final void native_finalize();
    private native final void native_finalize();
+3 −1
Original line number Original line Diff line number Diff line
@@ -16,12 +16,14 @@


package android.media;
package android.media;


import android.annotation.Nullable;

/**
/**
 * Exception thrown if MediaCrypto object could not be instantiated or
 * Exception thrown if MediaCrypto object could not be instantiated or
 * if unable to perform an operation on the MediaCrypto object.
 * if unable to perform an operation on the MediaCrypto object.
 */
 */
public final class MediaCryptoException extends Exception {
public final class MediaCryptoException extends Exception {
    public MediaCryptoException(String detailMessage) {
    public MediaCryptoException(@Nullable String detailMessage) {
        super(detailMessage);
        super(detailMessage);
    }
    }
}
}
Loading