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

Commit 864d0b72 authored by Chong Zhang's avatar Chong Zhang
Browse files

transcoding: move MediaTranscodeManager to apex

bug: 159172726
test: builds; presubmit; manual testing transcoding locally.
Change-Id: I727912a04cf4f7f03fdf5fa0a74e522f69dca66f
parent 880a0215
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -626,7 +626,6 @@ java_defaults {
        // in favor of an API stubs dependency in java_library "framework" below.
        // in favor of an API stubs dependency in java_library "framework" below.
        "mimemap",
        "mimemap",
        "av-types-aidl-java",
        "av-types-aidl-java",
        "mediatranscoding_aidl_interface-java",
        "soundtrigger_middleware-aidl-java",
        "soundtrigger_middleware-aidl-java",
        "modules-utils-os",
        "modules-utils-os",
    ],
    ],
+15 −1
Original line number Original line Diff line number Diff line
@@ -36,7 +36,8 @@ java_library {
        "framework_media_annotation",
        "framework_media_annotation",
    ],
    ],
    static_libs: [
    static_libs: [
        "exoplayer2-extractor"
        "exoplayer2-extractor",
        "mediatranscoding_aidl_interface-java",
    ],
    ],
    jarjar_rules: "jarjar_rules.txt",
    jarjar_rules: "jarjar_rules.txt",


@@ -53,10 +54,12 @@ java_library {
filegroup {
filegroup {
    name: "updatable-media-srcs",
    name: "updatable-media-srcs",
    srcs: [
    srcs: [
        "java/android/media/MediaFrameworkInitializer.java",
        ":media-aidl-srcs",
        ":media-aidl-srcs",
        ":mediaparceledlistslice-java-srcs",
        ":mediaparceledlistslice-java-srcs",
        ":mediaparser-srcs",
        ":mediaparser-srcs",
        ":mediasession2-java-srcs",
        ":mediasession2-java-srcs",
        ":mediatranscoding-srcs",
    ],
    ],
}
}


@@ -93,6 +96,17 @@ filegroup {
    path: "java",
    path: "java",
}
}


filegroup {
    name: "mediatranscoding-srcs",
    srcs: [
        "java/android/media/ApplicationMediaCapabilities.java",
        "java/android/media/MediaFeature.java",
        "java/android/media/MediaTranscodeManager.java",
        "java/android/media/MediaTranscodingException.java",
    ],
    path: "java",
}

java_sdk_library {
java_sdk_library {
    name: "framework-media",
    name: "framework-media",
    defaults: ["framework-module-defaults"],
    defaults: ["framework-module-defaults"],
+37 −0
Original line number Original line Diff line number Diff line
// Signature format: 2.0
// Signature format: 2.0
package android.media {
package android.media {


  public final class ApplicationMediaCapabilities implements android.os.Parcelable {
    method @NonNull public static android.media.ApplicationMediaCapabilities createFromXml(@NonNull org.xmlpull.v1.XmlPullParser);
    method public int describeContents();
    method @NonNull public java.util.List<java.lang.String> getSupportedHdrTypes();
    method @NonNull public java.util.List<java.lang.String> getSupportedVideoMimeTypes();
    method public boolean isHdrTypeSupported(@NonNull String);
    method public boolean isSlowMotionSupported();
    method public boolean isVideoMimeTypeSupported(@NonNull String);
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.media.ApplicationMediaCapabilities> CREATOR;
  }

  public static final class ApplicationMediaCapabilities.Builder {
    ctor public ApplicationMediaCapabilities.Builder();
    method @NonNull public android.media.ApplicationMediaCapabilities.Builder addSupportedHdrType(@NonNull String);
    method @NonNull public android.media.ApplicationMediaCapabilities.Builder addSupportedVideoMimeType(@NonNull String);
    method @NonNull public android.media.ApplicationMediaCapabilities build();
    method @NonNull public android.media.ApplicationMediaCapabilities.Builder setSlowMotionSupported(boolean);
  }

  public class MediaController2 implements java.lang.AutoCloseable {
  public class MediaController2 implements java.lang.AutoCloseable {
    method public void cancelSessionCommand(@NonNull Object);
    method public void cancelSessionCommand(@NonNull Object);
    method public void close();
    method public void close();
@@ -25,6 +45,17 @@ package android.media {
    method @Nullable public android.media.Session2Command.Result onSessionCommand(@NonNull android.media.MediaController2, @NonNull android.media.Session2Command, @Nullable android.os.Bundle);
    method @Nullable public android.media.Session2Command.Result onSessionCommand(@NonNull android.media.MediaController2, @NonNull android.media.Session2Command, @Nullable android.os.Bundle);
  }
  }


  public final class MediaFeature {
    ctor public MediaFeature();
  }

  public static final class MediaFeature.HdrType {
    field public static final String DOLBY_VISION = "android.media.feature.hdr.dolby_vision";
    field public static final String HDR10 = "android.media.feature.hdr.hdr10";
    field public static final String HDR10_PLUS = "android.media.feature.hdr.hdr10_plus";
    field public static final String HLG = "android.media.feature.hdr.hlg";
  }

  public final class MediaParser {
  public final class MediaParser {
    method public boolean advance(@NonNull android.media.MediaParser.SeekableInputReader) throws java.io.IOException;
    method public boolean advance(@NonNull android.media.MediaParser.SeekableInputReader) throws java.io.IOException;
    method @NonNull public static android.media.MediaParser create(@NonNull android.media.MediaParser.OutputConsumer, @NonNull java.lang.String...);
    method @NonNull public static android.media.MediaParser create(@NonNull android.media.MediaParser.OutputConsumer, @NonNull java.lang.String...);
@@ -170,6 +201,12 @@ package android.media {
    method public int getNotificationId();
    method public int getNotificationId();
  }
  }


  public class MediaTranscodingException extends java.lang.Exception {
  }

  public static final class MediaTranscodingException.ServiceNotAvailableException extends android.media.MediaTranscodingException {
  }

  public final class Session2Command implements android.os.Parcelable {
  public final class Session2Command implements android.os.Parcelable {
    ctor public Session2Command(int);
    ctor public Session2Command(int);
    ctor public Session2Command(@NonNull String, @Nullable android.os.Bundle);
    ctor public Session2Command(@NonNull String, @Nullable android.os.Bundle);
+5 −0
Original line number Original line Diff line number Diff line
// Signature format: 2.0
// Signature format: 2.0
package android.media {
package android.media {


  public class MediaFrameworkInitializer {
    method public static void registerServiceWrappers();
    method public static void setMediaServiceManager(@NonNull android.media.MediaServiceManager);
  }

  @Deprecated public final class MediaParceledListSlice<T extends android.os.Parcelable> implements android.os.Parcelable {
  @Deprecated public final class MediaParceledListSlice<T extends android.os.Parcelable> implements android.os.Parcelable {
    ctor @Deprecated public MediaParceledListSlice(@NonNull java.util.List<T>);
    ctor @Deprecated public MediaParceledListSlice(@NonNull java.util.List<T>);
    method @Deprecated public int describeContents();
    method @Deprecated public int describeContents();
+66 −0
Original line number Original line Diff line number Diff line
// Signature format: 2.0
// Signature format: 2.0
package android.media {

  public final class MediaTranscodeManager {
    method @NonNull public android.media.MediaTranscodeManager.TranscodingSession enqueueRequest(@NonNull android.media.MediaTranscodeManager.TranscodingRequest, @NonNull java.util.concurrent.Executor, @NonNull android.media.MediaTranscodeManager.OnTranscodingFinishedListener) throws java.io.FileNotFoundException, android.media.MediaTranscodingException.ServiceNotAvailableException;
    field public static final int PRIORITY_REALTIME = 1; // 0x1
    field public static final int TRANSCODING_TYPE_VIDEO = 1; // 0x1
  }

  @java.lang.FunctionalInterface public static interface MediaTranscodeManager.OnTranscodingFinishedListener {
    method public void onTranscodingFinished(@NonNull android.media.MediaTranscodeManager.TranscodingSession);
  }

  public static final class MediaTranscodeManager.TranscodingRequest {
    method public int getClientPid();
    method public int getClientUid();
    method @NonNull public android.net.Uri getDestinationUri();
    method public int getPriority();
    method @NonNull public android.net.Uri getSourceUri();
    method public int getType();
    method @Nullable public android.media.MediaFormat getVideoTrackFormat();
  }

  public static final class MediaTranscodeManager.TranscodingRequest.Builder {
    ctor public MediaTranscodeManager.TranscodingRequest.Builder();
    method @NonNull public android.media.MediaTranscodeManager.TranscodingRequest build();
    method @NonNull public android.media.MediaTranscodeManager.TranscodingRequest.Builder setClientPid(int);
    method @NonNull public android.media.MediaTranscodeManager.TranscodingRequest.Builder setClientUid(int);
    method @NonNull public android.media.MediaTranscodeManager.TranscodingRequest.Builder setDestinationUri(@NonNull android.net.Uri);
    method @NonNull public android.media.MediaTranscodeManager.TranscodingRequest.Builder setPriority(int);
    method @NonNull public android.media.MediaTranscodeManager.TranscodingRequest.Builder setSourceUri(@NonNull android.net.Uri);
    method @NonNull public android.media.MediaTranscodeManager.TranscodingRequest.Builder setType(int);
    method @NonNull public android.media.MediaTranscodeManager.TranscodingRequest.Builder setVideoTrackFormat(@NonNull android.media.MediaFormat);
  }

  public static class MediaTranscodeManager.TranscodingRequest.MediaFormatResolver {
    ctor public MediaTranscodeManager.TranscodingRequest.MediaFormatResolver();
    method @Nullable public android.media.MediaFormat resolveVideoFormat();
    method @NonNull public android.media.MediaTranscodeManager.TranscodingRequest.MediaFormatResolver setClientCapabilities(@NonNull android.media.ApplicationMediaCapabilities);
    method @NonNull public android.media.MediaTranscodeManager.TranscodingRequest.MediaFormatResolver setSourceVideoFormatHint(@NonNull android.media.MediaFormat);
    method public boolean shouldTranscode();
  }

  public static final class MediaTranscodeManager.TranscodingSession {
    method public void cancel();
    method @IntRange(from=0, to=100) public int getProgress();
    method public int getResult();
    method public int getSessionId();
    method public int getStatus();
    method public void setOnProgressUpdateListener(@NonNull java.util.concurrent.Executor, @Nullable android.media.MediaTranscodeManager.TranscodingSession.OnProgressUpdateListener);
    method public void setOnProgressUpdateListener(int, @NonNull java.util.concurrent.Executor, @Nullable android.media.MediaTranscodeManager.TranscodingSession.OnProgressUpdateListener);
    field public static final int RESULT_CANCELED = 4; // 0x4
    field public static final int RESULT_ERROR = 3; // 0x3
    field public static final int RESULT_NONE = 1; // 0x1
    field public static final int RESULT_SUCCESS = 2; // 0x2
    field public static final int STATUS_FINISHED = 3; // 0x3
    field public static final int STATUS_PAUSED = 4; // 0x4
    field public static final int STATUS_PENDING = 1; // 0x1
    field public static final int STATUS_RUNNING = 2; // 0x2
  }

  @java.lang.FunctionalInterface public static interface MediaTranscodeManager.TranscodingSession.OnProgressUpdateListener {
    method public void onProgressUpdate(@NonNull android.media.MediaTranscodeManager.TranscodingSession, @IntRange(from=0, to=100) int);
  }

}
Loading