Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(764)

Unified Diff: media/base/android/java/src/org/chromium/media/MediaCodecBridge.java

Issue 2461523003: Android MediaCodec: catch exceptions to stop() and other methods. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/android/java/src/org/chromium/media/MediaCodecBridge.java
diff --git a/media/base/android/java/src/org/chromium/media/MediaCodecBridge.java b/media/base/android/java/src/org/chromium/media/MediaCodecBridge.java
index ecc90018c2082a81a8690e084c629be3028ee3b7..089581cea862eabc44ac432ae0901d5fb7be156b 100644
--- a/media/base/android/java/src/org/chromium/media/MediaCodecBridge.java
+++ b/media/base/android/java/src/org/chromium/media/MediaCodecBridge.java
@@ -296,13 +296,23 @@ class MediaCodecBridge {
@CalledByNative
private void stop() {
- mMediaCodec.stop();
+ try {
+ mMediaCodec.stop();
+ } catch (IllegalStateException e) {
+ Log.e(TAG, "Failed to stop MediaCodec", e);
+ }
watk 2016/10/28 21:49:56 Should we be returning MEDIA_CODEC_ERROR like for
braveyao 2016/10/28 22:12:57 'stop()' will be only called in AndroidVideoEncode
watk 2016/10/28 22:17:57 ok, sg for stop().
}
@TargetApi(Build.VERSION_CODES.KITKAT)
@CalledByNative
private String getName() {
- return mMediaCodec.getName();
+ String codecName = "unknown";
+ try {
+ codecName = mMediaCodec.getName();
+ } catch (IllegalStateException e) {
+ Log.e(TAG, "Cannot get codec name", e);
+ }
+ return codecName;
}
@CalledByNative
@@ -370,7 +380,11 @@ class MediaCodecBridge {
Bundle b = new Bundle();
b.putInt(MediaCodec.PARAMETER_KEY_VIDEO_BITRATE, targetBps);
- mMediaCodec.setParameters(b);
+ try {
+ mMediaCodec.setParameters(b);
+ } catch (IllegalStateException e) {
+ Log.e(TAG, "Failed to set MediaCodec parameters", e);
watk 2016/10/28 22:17:57 I feel like this should return an error? If the co
braveyao 2016/10/28 22:34:43 Yes these two are tricky. Personally I feel it's O
watk 2016/10/28 22:37:39 Sure, I defer to your judgement on these ones. I'm
+ }
Log.v(TAG,
"setVideoBitrate: input " + bps + "bps@" + frameRate + ", targetBps " + targetBps);
}
@@ -380,7 +394,11 @@ class MediaCodecBridge {
private void requestKeyFrameSoon() {
Bundle b = new Bundle();
b.putInt(MediaCodec.PARAMETER_KEY_REQUEST_SYNC_FRAME, 0);
- mMediaCodec.setParameters(b);
+ try {
+ mMediaCodec.setParameters(b);
+ } catch (IllegalStateException e) {
+ Log.e(TAG, "Failed to set MediaCodec parameters", e);
watk 2016/10/28 22:17:57 I feel like this should return an error too.
braveyao 2016/10/28 22:34:43 ditto
+ }
}
@CalledByNative
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698