summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hangyu Kuang <hkuang@google.com> 2020-11-14 23:43:45 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-11-14 23:43:45 +0000
commit671688d3d427b0edaa8c75a3174ff06668abd42b (patch)
tree6ceb3babfd3102a3cea955a01d611ee8216cfb11
parente6daf83a8d54576e6b8ba67a3ee957e5466f92a6 (diff)
parent396906c975f15f5be274b3d97f945d67b87c3a93 (diff)
Merge "transcoding: Unhide setClientCapabilities."
-rw-r--r--core/api/system-current.txt2
-rw-r--r--media/java/android/media/MediaTranscodeManager.java33
-rw-r--r--media/tests/MediaTranscodingTest/src/com/android/mediatranscodingtest/MediaTranscodeManagerTest.java5
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))