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

Commit 243e5ab2 authored by Ray Essick's avatar Ray Essick Committed by Xin Li
Browse files

Rename android.media.MediaTranscodeManager -> MediaTranscodingManager

renamed to avoid conflict with existing copy in the R framework.jar.
The framework.jar copy was removed during S development

Bug: 195608856
Test: build
Test: cts-tradefed run cts -m CtsMediaTranscodingTestCases
Merged-In: I40ab066cd61be8d278f21cc788016f2edd6bb86e
Change-Id: I40ab066cd61be8d278f21cc788016f2edd6bb86e
parent 1606b7d3
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -120,7 +120,7 @@ filegroup {
    srcs: [
    srcs: [
        "java/android/media/ApplicationMediaCapabilities.java",
        "java/android/media/ApplicationMediaCapabilities.java",
        "java/android/media/MediaFeature.java",
        "java/android/media/MediaFeature.java",
        "java/android/media/MediaTranscodeManager.java",
        "java/android/media/MediaTranscodingManager.java",
    ],
    ],
    path: "java",
    path: "java",
}
}
+19 −19
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 MediaTranscodeManager {
  public final class MediaTranscodingManager {
    method @Nullable public android.media.MediaTranscodeManager.TranscodingSession enqueueRequest(@NonNull android.media.MediaTranscodeManager.TranscodingRequest, @NonNull java.util.concurrent.Executor, @NonNull android.media.MediaTranscodeManager.OnTranscodingFinishedListener);
    method @Nullable public android.media.MediaTranscodingManager.TranscodingSession enqueueRequest(@NonNull android.media.MediaTranscodingManager.TranscodingRequest, @NonNull java.util.concurrent.Executor, @NonNull android.media.MediaTranscodingManager.OnTranscodingFinishedListener);
  }
  }


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


  public abstract static class MediaTranscodeManager.TranscodingRequest {
  public abstract static class MediaTranscodingManager.TranscodingRequest {
    method public int getClientPid();
    method public int getClientPid();
    method public int getClientUid();
    method public int getClientUid();
    method @Nullable public android.os.ParcelFileDescriptor getDestinationFileDescriptor();
    method @Nullable public android.os.ParcelFileDescriptor getDestinationFileDescriptor();
@@ -18,13 +18,13 @@ package android.media {
    method @NonNull public android.net.Uri getSourceUri();
    method @NonNull public android.net.Uri getSourceUri();
  }
  }


  public static class MediaTranscodeManager.TranscodingRequest.VideoFormatResolver {
  public static class MediaTranscodingManager.TranscodingRequest.VideoFormatResolver {
    ctor public MediaTranscodeManager.TranscodingRequest.VideoFormatResolver(@NonNull android.media.ApplicationMediaCapabilities, @NonNull android.media.MediaFormat);
    ctor public MediaTranscodingManager.TranscodingRequest.VideoFormatResolver(@NonNull android.media.ApplicationMediaCapabilities, @NonNull android.media.MediaFormat);
    method @Nullable public android.media.MediaFormat resolveVideoFormat();
    method @Nullable public android.media.MediaFormat resolveVideoFormat();
    method public boolean shouldTranscode();
    method public boolean shouldTranscode();
  }
  }


  public static final class MediaTranscodeManager.TranscodingSession {
  public static final class MediaTranscodingManager.TranscodingSession {
    method public boolean addClientUid(int);
    method public boolean addClientUid(int);
    method public void cancel();
    method public void cancel();
    method @NonNull public java.util.List<java.lang.Integer> getClientUids();
    method @NonNull public java.util.List<java.lang.Integer> getClientUids();
@@ -33,7 +33,7 @@ package android.media {
    method public int getResult();
    method public int getResult();
    method public int getSessionId();
    method public int getSessionId();
    method public int getStatus();
    method public int getStatus();
    method public void setOnProgressUpdateListener(@NonNull java.util.concurrent.Executor, @Nullable android.media.MediaTranscodeManager.TranscodingSession.OnProgressUpdateListener);
    method public void setOnProgressUpdateListener(@NonNull java.util.concurrent.Executor, @Nullable android.media.MediaTranscodingManager.TranscodingSession.OnProgressUpdateListener);
    field public static final int ERROR_DROPPED_BY_SERVICE = 1; // 0x1
    field public static final int ERROR_DROPPED_BY_SERVICE = 1; // 0x1
    field public static final int ERROR_NONE = 0; // 0x0
    field public static final int ERROR_NONE = 0; // 0x0
    field public static final int ERROR_SERVICE_DIED = 2; // 0x2
    field public static final int ERROR_SERVICE_DIED = 2; // 0x2
@@ -47,21 +47,21 @@ package android.media {
    field public static final int STATUS_RUNNING = 2; // 0x2
    field public static final int STATUS_RUNNING = 2; // 0x2
  }
  }


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


  public static final class MediaTranscodeManager.VideoTranscodingRequest extends android.media.MediaTranscodeManager.TranscodingRequest {
  public static final class MediaTranscodingManager.VideoTranscodingRequest extends android.media.MediaTranscodingManager.TranscodingRequest {
    method @NonNull public android.media.MediaFormat getVideoTrackFormat();
    method @NonNull public android.media.MediaFormat getVideoTrackFormat();
  }
  }


  public static final class MediaTranscodeManager.VideoTranscodingRequest.Builder {
  public static final class MediaTranscodingManager.VideoTranscodingRequest.Builder {
    ctor public MediaTranscodeManager.VideoTranscodingRequest.Builder(@NonNull android.net.Uri, @NonNull android.net.Uri, @NonNull android.media.MediaFormat);
    ctor public MediaTranscodingManager.VideoTranscodingRequest.Builder(@NonNull android.net.Uri, @NonNull android.net.Uri, @NonNull android.media.MediaFormat);
    method @NonNull public android.media.MediaTranscodeManager.VideoTranscodingRequest build();
    method @NonNull public android.media.MediaTranscodingManager.VideoTranscodingRequest build();
    method @NonNull public android.media.MediaTranscodeManager.VideoTranscodingRequest.Builder setClientPid(int);
    method @NonNull public android.media.MediaTranscodingManager.VideoTranscodingRequest.Builder setClientPid(int);
    method @NonNull public android.media.MediaTranscodeManager.VideoTranscodingRequest.Builder setClientUid(int);
    method @NonNull public android.media.MediaTranscodingManager.VideoTranscodingRequest.Builder setClientUid(int);
    method @NonNull public android.media.MediaTranscodeManager.VideoTranscodingRequest.Builder setDestinationFileDescriptor(@NonNull android.os.ParcelFileDescriptor);
    method @NonNull public android.media.MediaTranscodingManager.VideoTranscodingRequest.Builder setDestinationFileDescriptor(@NonNull android.os.ParcelFileDescriptor);
    method @NonNull public android.media.MediaTranscodeManager.VideoTranscodingRequest.Builder setSourceFileDescriptor(@NonNull android.os.ParcelFileDescriptor);
    method @NonNull public android.media.MediaTranscodingManager.VideoTranscodingRequest.Builder setSourceFileDescriptor(@NonNull android.os.ParcelFileDescriptor);
  }
  }


}
}
+2 −2
Original line number Original line Diff line number Diff line
@@ -75,8 +75,8 @@ public class MediaFrameworkInitializer {
    public static void registerServiceWrappers() {
    public static void registerServiceWrappers() {
        SystemServiceRegistry.registerContextAwareService(
        SystemServiceRegistry.registerContextAwareService(
                Context.MEDIA_TRANSCODING_SERVICE,
                Context.MEDIA_TRANSCODING_SERVICE,
                MediaTranscodeManager.class,
                MediaTranscodingManager.class,
                context -> new MediaTranscodeManager(context)
                context -> new MediaTranscodingManager(context)
        );
        );
        if (SdkLevel.isAtLeastS()) {
        if (SdkLevel.isAtLeastS()) {
            SystemServiceRegistry.registerContextAwareService(
            SystemServiceRegistry.registerContextAwareService(
+11 −11
Original line number Original line Diff line number Diff line
@@ -54,7 +54,7 @@ import java.util.concurrent.Executors;
/**
/**
 Android 12 introduces Compatible media transcoding feature.  See
 Android 12 introduces Compatible media transcoding feature.  See
 <a href="https://developer.android.com/about/versions/12/features#compatible_media_transcoding">
 <a href="https://developer.android.com/about/versions/12/features#compatible_media_transcoding">
 Compatible media transcoding</a>. MediaTranscodeManager provides an interface to the system's media
 Compatible media transcoding</a>. MediaTranscodingManager provides an interface to the system's media
 transcoding service and can be used to transcode media files, e.g. transcoding a video from HEVC to
 transcoding service and can be used to transcode media files, e.g. transcoding a video from HEVC to
 AVC.
 AVC.


@@ -69,7 +69,7 @@ import java.util.concurrent.Executors;
 <p>
 <p>
 To transcode a media file, first create a {@link TranscodingRequest} through its builder class
 To transcode a media file, first create a {@link TranscodingRequest} through its builder class
 {@link VideoTranscodingRequest.Builder}. Transcode requests are then enqueue to the manager through
 {@link VideoTranscodingRequest.Builder}. Transcode requests are then enqueue to the manager through
 {@link MediaTranscodeManager#enqueueRequest(
 {@link MediaTranscodingManager#enqueueRequest(
         TranscodingRequest, Executor, OnTranscodingFinishedListener)}
         TranscodingRequest, Executor, OnTranscodingFinishedListener)}
 TranscodeRequest are processed based on client process's priority and request priority. When a
 TranscodeRequest are processed based on client process's priority and request priority. When a
 transcode operation is completed the caller is notified via its
 transcode operation is completed the caller is notified via its
@@ -87,8 +87,8 @@ import java.util.concurrent.Executors;
 */
 */
@MinSdk(Build.VERSION_CODES.S)
@MinSdk(Build.VERSION_CODES.S)
@SystemApi
@SystemApi
public final class MediaTranscodeManager {
public final class MediaTranscodingManager {
    private static final String TAG = "MediaTranscodeManager";
    private static final String TAG = "MediaTranscodingManager";


    /** Maximum number of retry to connect to the service. */
    /** Maximum number of retry to connect to the service. */
    private static final int CONNECT_SERVICE_RETRY_COUNT = 100;
    private static final int CONNECT_SERVICE_RETRY_COUNT = 100;
@@ -127,7 +127,7 @@ public final class MediaTranscodeManager {
    private final Object mLock = new Object();
    private final Object mLock = new Object();
    @GuardedBy("mLock")
    @GuardedBy("mLock")
    @NonNull private ITranscodingClient mTranscodingClient = null;
    @NonNull private ITranscodingClient mTranscodingClient = null;
    private static MediaTranscodeManager sMediaTranscodeManager;
    private static MediaTranscodingManager sMediaTranscodingManager;


    private void handleTranscodingFinished(int sessionId, TranscodingResultParcel result) {
    private void handleTranscodingFinished(int sessionId, TranscodingResultParcel result) {
        synchronized (mPendingTranscodingSessions) {
        synchronized (mPendingTranscodingSessions) {
@@ -306,7 +306,7 @@ public final class MediaTranscodeManager {
                }
                }


                try {
                try {
                    // Do not set hasRetried for retry initiated by MediaTranscodeManager.
                    // Do not set hasRetried for retry initiated by MediaTranscodingManager.
                    session.retryInternal(false /*setHasRetried*/);
                    session.retryInternal(false /*setHasRetried*/);
                } catch (Exception re) {
                } catch (Exception re) {
                    // TODO(hkuang): Return correct error code to the client.
                    // TODO(hkuang): Return correct error code to the client.
@@ -423,7 +423,7 @@ public final class MediaTranscodeManager {
    /**
    /**
     * @hide
     * @hide
     */
     */
    public MediaTranscodeManager(@NonNull Context context) {
    public MediaTranscodingManager(@NonNull Context context) {
        mContext = context;
        mContext = context;
        mContentResolver = mContext.getContentResolver();
        mContentResolver = mContext.getContentResolver();
        mPackageName = mContext.getPackageName();
        mPackageName = mContext.getPackageName();
@@ -1348,7 +1348,7 @@ public final class MediaTranscodeManager {
                    @IntRange(from = 0, to = 100) int progress);
                    @IntRange(from = 0, to = 100) int progress);
        }
        }


        private final MediaTranscodeManager mManager;
        private final MediaTranscodingManager mManager;
        private Executor mListenerExecutor;
        private Executor mListenerExecutor;
        private OnTranscodingFinishedListener mListener;
        private OnTranscodingFinishedListener mListener;
        private int mSessionId = -1;
        private int mSessionId = -1;
@@ -1374,7 +1374,7 @@ public final class MediaTranscodeManager {
        private final TranscodingRequest mRequest;
        private final TranscodingRequest mRequest;


        private TranscodingSession(
        private TranscodingSession(
                @NonNull MediaTranscodeManager manager,
                @NonNull MediaTranscodingManager manager,
                @NonNull TranscodingRequest request,
                @NonNull TranscodingRequest request,
                @NonNull TranscodingSessionParcel parcel,
                @NonNull TranscodingSessionParcel parcel,
                @NonNull @CallbackExecutor Executor executor,
                @NonNull @CallbackExecutor Executor executor,
@@ -1675,10 +1675,10 @@ public final class MediaTranscodeManager {


    /**
    /**
     * Enqueues a TranscodingRequest for execution.
     * Enqueues a TranscodingRequest for execution.
     * <p> Upon successfully accepting the request, MediaTranscodeManager will return a
     * <p> Upon successfully accepting the request, MediaTranscodingManager will return a
     * {@link TranscodingSession} to the client. Client should use {@link TranscodingSession} to
     * {@link TranscodingSession} to the client. Client should use {@link TranscodingSession} to
     * track the progress and get the result.
     * track the progress and get the result.
     * <p> MediaTranscodeManager will return null if fails to accept the request due to service
     * <p> MediaTranscodingManager will return null if fails to accept the request due to service
     * rebooting. Client could retry again after receiving null.
     * rebooting. Client could retry again after receiving null.
     *
     *
     * @param transcodingRequest The TranscodingRequest to enqueue.
     * @param transcodingRequest The TranscodingRequest to enqueue.
+2 −2
Original line number Original line Diff line number Diff line
@@ -4464,11 +4464,11 @@ public abstract class Context {


    /**
    /**
     * Use with {@link #getSystemService(String)} to retrieve a {@link
     * Use with {@link #getSystemService(String)} to retrieve a {@link
     * android.media.MediaTranscodeManager} for transcoding media.
     * android.media.MediaTranscodingManager} for transcoding media.
     *
     *
     * @hide
     * @hide
     * @see #getSystemService(String)
     * @see #getSystemService(String)
     * @see android.media.MediaTranscodeManager
     * @see android.media.MediaTranscodingManager
     */
     */
    @SystemApi
    @SystemApi
    public static final String MEDIA_TRANSCODING_SERVICE = "media_transcoding";
    public static final String MEDIA_TRANSCODING_SERVICE = "media_transcoding";