Handle IOException from MediaCodec factory methods
Bug: 11364276 Change-Id: I930f37e8c2cba77e1da3d6a6878186182282b51e Signed-off-by: Andy Hung <hunga@google.com>
This commit is contained in:
@@ -37,6 +37,7 @@ import java.util.ListIterator;
|
|||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
import java.io.IOException;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.lang.Exception;
|
import java.lang.Exception;
|
||||||
import java.lang.InterruptedException;
|
import java.lang.InterruptedException;
|
||||||
@@ -188,8 +189,7 @@ public class MediaDrmAPITest extends Activity {
|
|||||||
try {
|
try {
|
||||||
mDrm = new MediaDrm(kWidevineScheme);
|
mDrm = new MediaDrm(kWidevineScheme);
|
||||||
} catch (MediaDrmException e) {
|
} catch (MediaDrmException e) {
|
||||||
Log.e(TAG, "Failed to create MediaDrm: " + e.getMessage());
|
Log.e(TAG, "Failed to create MediaDrm", e);
|
||||||
e.printStackTrace();
|
|
||||||
mTestFailed = true;
|
mTestFailed = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -235,7 +235,7 @@ public class MediaDrmAPITest extends Activity {
|
|||||||
|
|
||||||
private void stopDrm(MediaDrm drm) {
|
private void stopDrm(MediaDrm drm) {
|
||||||
if (drm != mDrm) {
|
if (drm != mDrm) {
|
||||||
Log.e(TAG, "invalid drm specified in stopDrm");
|
Log.e(TAG, "Invalid drm specified in stopDrm");
|
||||||
mTestFailed = true;
|
mTestFailed = true;
|
||||||
}
|
}
|
||||||
mLooper.quit();
|
mLooper.quit();
|
||||||
@@ -582,18 +582,23 @@ public class MediaDrmAPITest extends Activity {
|
|||||||
try {
|
try {
|
||||||
crypto = new MediaCrypto(kWidevineScheme, getTestModeSessionId(sessionId));
|
crypto = new MediaCrypto(kWidevineScheme, getTestModeSessionId(sessionId));
|
||||||
} catch (MediaCryptoException e) {
|
} catch (MediaCryptoException e) {
|
||||||
Log.e(TAG, "test failed due to exception: " + e.getMessage());
|
Log.e(TAG, "Failed to create MediaCrypto", e);
|
||||||
e.printStackTrace();
|
|
||||||
mTestFailed = true;
|
mTestFailed = true;
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
String mime = "video/avc";
|
String mime = "video/avc";
|
||||||
MediaCodec codec;
|
MediaCodec codec = null;
|
||||||
if (crypto.requiresSecureDecoderComponent(mime)) {
|
try {
|
||||||
codec = MediaCodec.createByCodecName(getSecureDecoderNameForMime(mime));
|
if (crypto.requiresSecureDecoderComponent(mime)) {
|
||||||
} else {
|
codec = MediaCodec.createByCodecName(getSecureDecoderNameForMime(mime));
|
||||||
codec = MediaCodec.createDecoderByType(mime);
|
} else {
|
||||||
|
codec = MediaCodec.createDecoderByType(mime);
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
Log.e(TAG, "Failed to create " + mime + " codec", e);
|
||||||
|
mTestFailed = true;
|
||||||
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
MediaFormat format = MediaFormat.createVideoFormat(mime, 1280, 720);
|
MediaFormat format = MediaFormat.createVideoFormat(mime, 1280, 720);
|
||||||
@@ -732,20 +737,26 @@ public class MediaDrmAPITest extends Activity {
|
|||||||
try {
|
try {
|
||||||
crypto = new MediaCrypto(kWidevineScheme, getTestModeSessionId(sessionId));
|
crypto = new MediaCrypto(kWidevineScheme, getTestModeSessionId(sessionId));
|
||||||
} catch (MediaCryptoException e) {
|
} catch (MediaCryptoException e) {
|
||||||
Log.e(TAG, "test failed due to exception: " + e.getMessage());
|
Log.e(TAG, "Failed to create MediaCrypto", e);
|
||||||
e.printStackTrace();
|
|
||||||
mTestFailed = true;
|
mTestFailed = true;
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
String mime = "video/avc";
|
String mime = "video/avc";
|
||||||
MediaCodec codec;
|
MediaCodec codec = null;
|
||||||
boolean secure = false;
|
boolean secure = false;
|
||||||
if (crypto.requiresSecureDecoderComponent(mime)) {
|
|
||||||
codec = MediaCodec.createByCodecName(getSecureDecoderNameForMime(mime));
|
try {
|
||||||
secure = true;
|
if (crypto.requiresSecureDecoderComponent(mime)) {
|
||||||
} else {
|
codec = MediaCodec.createByCodecName(getSecureDecoderNameForMime(mime));
|
||||||
codec = MediaCodec.createDecoderByType(mime);
|
secure = true;
|
||||||
|
} else {
|
||||||
|
codec = MediaCodec.createDecoderByType(mime);
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
Log.e(TAG, "Failed to create " + mime + " codec", e);
|
||||||
|
mTestFailed = true;
|
||||||
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
// make sure the surface view has been created
|
// make sure the surface view has been created
|
||||||
|
|||||||
@@ -499,7 +499,8 @@ class MediaCodecView extends SurfaceView
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void addTrack(
|
private void addTrack(
|
||||||
int trackIndex, MediaFormat format, boolean encrypted) {
|
int trackIndex, MediaFormat format, boolean encrypted)
|
||||||
|
throws IOException {
|
||||||
String mime = format.getString(MediaFormat.KEY_MIME);
|
String mime = format.getString(MediaFormat.KEY_MIME);
|
||||||
|
|
||||||
boolean isVideo = mime.startsWith("video/");
|
boolean isVideo = mime.startsWith("video/");
|
||||||
|
|||||||
Reference in New Issue
Block a user