diff options
| author | 2020-11-14 23:43:45 +0000 | |
|---|---|---|
| committer | 2020-11-14 23:43:45 +0000 | |
| commit | 671688d3d427b0edaa8c75a3174ff06668abd42b (patch) | |
| tree | 6ceb3babfd3102a3cea955a01d611ee8216cfb11 | |
| parent | e6daf83a8d54576e6b8ba67a3ee957e5466f92a6 (diff) | |
| parent | 396906c975f15f5be274b3d97f945d67b87c3a93 (diff) | |
Merge "transcoding: Unhide setClientCapabilities."
3 files changed, 17 insertions, 23 deletions
diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 0d362f66601a..71dbca0ac828 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -4433,9 +4433,9 @@ package android.media { 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(); - field public static final String CAPS_SUPPORTS_HEVC = "support-hevc"; } public static final class MediaTranscodeManager.TranscodingSession { diff --git a/media/java/android/media/MediaTranscodeManager.java b/media/java/android/media/MediaTranscodeManager.java index 39511a573da2..4544d049e09f 100644 --- a/media/java/android/media/MediaTranscodeManager.java +++ b/media/java/android/media/MediaTranscodeManager.java @@ -26,7 +26,6 @@ import android.content.ContentResolver; import android.content.Context; import android.content.res.AssetFileDescriptor; import android.net.Uri; -import android.os.Bundle; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.os.ServiceManager; @@ -901,29 +900,19 @@ public final class MediaTranscodeManager { private MediaFormat mSrcVideoFormatHint; private MediaFormat mSrcAudioFormatHint; - private Bundle mClientCaps; - - /** - * A key describing whether the client supports HEVC-encoded video. - * - * The value associated with this key is a boolean. If unspecified, it's up to - * the MediaFormatResolver to determine the default. - * - * @see #setClientCapabilities(Bundle) - */ - public static final String CAPS_SUPPORTS_HEVC = "support-hevc"; + private ApplicationMediaCapabilities mClientCaps; /** * Sets the abilities of the client consuming the media. Must be called * before {@link #shouldTranscode()} or {@link #resolveVideoFormat()}. * - * @param clientCaps A Bundle object containing the client's capabilities, such as - * {@link #CAPS_SUPPORTS_HEVC}. + * @param clientCaps An ApplicationMediaCapabilities object containing the client's + * capabilities. * @return the same VideoFormatResolver instance. - * @hide */ @NonNull - public MediaFormatResolver setClientCapabilities(@NonNull Bundle clientCaps) { + public MediaFormatResolver setClientCapabilities( + @NonNull ApplicationMediaCapabilities clientCaps) { mClientCaps = clientCaps; return this; } @@ -964,7 +953,8 @@ public final class MediaTranscodeManager { * Returns whether the source content should be transcoded. * * @return true if the source should be transcoded. - * @throws UnsupportedOperationException if {@link #setClientCapabilities(Bundle)} + * @throws UnsupportedOperationException + * if {@link #setClientCapabilities(ApplicationMediaCapabilities)} * or {@link #setSourceVideoFormatHint(MediaFormat)} was not called. */ public boolean shouldTranscode() { @@ -977,7 +967,8 @@ public final class MediaTranscodeManager { throw new UnsupportedOperationException( "Source video format hint must be set!"); } - boolean supportHevc = mClientCaps.getBoolean(CAPS_SUPPORTS_HEVC, false); + boolean supportHevc = mClientCaps.isVideoMimeTypeSupported( + MediaFormat.MIMETYPE_VIDEO_HEVC); if (!supportHevc && MediaFormat.MIMETYPE_VIDEO_HEVC.equals( mSrcVideoFormatHint.getString(MediaFormat.KEY_MIME))) { return true; @@ -992,7 +983,8 @@ public final class MediaTranscodeManager { * * @return the video track format to be used if transcoding should be performed, * and null otherwise. - * @throws UnsupportedOperationException if {@link #setClientCapabilities(Bundle)} + * @throws UnsupportedOperationException + * if {@link #setClientCapabilities(ApplicationMediaCapabilities)} * or {@link #setSourceVideoFormatHint(MediaFormat)} was not called. */ @Nullable @@ -1013,7 +1005,8 @@ public final class MediaTranscodeManager { * * @return the audio track format to be used if transcoding should be performed, and * null otherwise. - * @throws UnsupportedOperationException if {@link #setClientCapabilities(Bundle)} + * @throws UnsupportedOperationException + * if {@link #setClientCapabilities(ApplicationMediaCapabilities)} * or {@link #setSourceVideoFormatHint(MediaFormat)} was not called. * @hide */ diff --git a/media/tests/MediaTranscodingTest/src/com/android/mediatranscodingtest/MediaTranscodeManagerTest.java b/media/tests/MediaTranscodingTest/src/com/android/mediatranscodingtest/MediaTranscodeManagerTest.java index f12ecd5bb3c3..8231988e1241 100644 --- a/media/tests/MediaTranscodingTest/src/com/android/mediatranscodingtest/MediaTranscodeManagerTest.java +++ b/media/tests/MediaTranscodingTest/src/com/android/mediatranscodingtest/MediaTranscodeManagerTest.java @@ -20,6 +20,7 @@ import static org.testng.Assert.assertThrows; import android.content.ContentResolver; import android.content.Context; +import android.media.ApplicationMediaCapabilities; import android.media.MediaFormat; import android.media.MediaTranscodeManager; import android.media.MediaTranscodeManager.TranscodingRequest; @@ -454,8 +455,8 @@ public class MediaTranscodeManagerTest Uri destinationUri = Uri.parse(ContentResolver.SCHEME_FILE + "://" + mContext.getCacheDir().getAbsolutePath() + "/HevcTranscode.mp4"); - Bundle clientCaps = new Bundle(); - clientCaps.putBoolean(MediaFormatResolver.CAPS_SUPPORTS_HEVC, false); + ApplicationMediaCapabilities clientCaps = + new ApplicationMediaCapabilities.Builder().build(); MediaFormatResolver resolver = new MediaFormatResolver() .setSourceVideoFormatHint(MediaFormat.createVideoFormat( MediaFormat.MIMETYPE_VIDEO_HEVC, WIDTH, HEIGHT)) |