From aafe1677ffd4851e0f84a37ad3e989ad2ad5d309 Mon Sep 17 00:00:00 2001 From: "xhwang@chromium.org" Date: Thu, 26 Jun 2014 06:29:06 +0000 Subject: Handle android.media.ResourceBusyException in MediaDrm::openSession(). Based on Android MediaDrm API documentation: https://developer.android.com/reference/android/media/MediaDrm.html#openSession() openSession() could actually throw ResourceBusyException. This is added in API level 19. To be compatible with both API level 18 and 19, we cannot catch ResourceBusyException directly. Instead, we catch NotProvisionedException explicitly, and catch all other MediaDrmExceptions together. TBR=qinmin@chromium.org BUG=387763 Review URL: https://codereview.chromium.org/353743009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@279929 0039d316-1c4b-4281-b951-d872f2087c98 --- .../base/android/java/src/org/chromium/media/MediaDrmBridge.java | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'media') diff --git a/media/base/android/java/src/org/chromium/media/MediaDrmBridge.java b/media/base/android/java/src/org/chromium/media/MediaDrmBridge.java index e890236..87f48879 100644 --- a/media/base/android/java/src/org/chromium/media/MediaDrmBridge.java +++ b/media/base/android/java/src/org/chromium/media/MediaDrmBridge.java @@ -238,6 +238,15 @@ public class MediaDrmBridge { Log.e(TAG, "Cannot open a new session", e); release(); return null; + } catch (android.media.NotProvisionedException e) { + // Throw NotProvisionedException so that we can startProvisioning(). + throw e; + } catch (android.media.MediaDrmException e) { + // Other MediaDrmExceptions (e.g. ResourceBusyException) are not + // recoverable. + Log.e(TAG, "Cannot open a new session", e); + release(); + return null; } } -- cgit v1.1