Index: media/base/android/java/src/org/chromium/media/MediaDrmBridge.java |
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 b5191067dec0cc45dcbb50c07da23694e6026426..777d06c3140a80726378f9f85be558c623c9a11b 100644 |
--- a/media/base/android/java/src/org/chromium/media/MediaDrmBridge.java |
+++ b/media/base/android/java/src/org/chromium/media/MediaDrmBridge.java |
@@ -59,20 +59,15 @@ class MediaDrmBridge { |
return new UUID(mostSigBits, leastSigBits); |
} |
- private MediaDrmBridge(UUID schemeUUID, String securityLevel, int nativeMediaDrmBridge) { |
- try { |
- mSchemeUUID = schemeUUID; |
- mMediaDrm = new MediaDrm(schemeUUID); |
- mHandler = new Handler(); |
- mNativeMediaDrmBridge = nativeMediaDrmBridge; |
- mMediaDrm.setOnEventListener(new MediaDrmListener()); |
- mMediaDrm.setPropertyString(PRIVACY_MODE, "enable"); |
- mMediaDrm.setPropertyString(SECURITY_LEVEL, securityLevel); |
- } catch (android.media.UnsupportedSchemeException e) { |
- Log.e(TAG, "Unsupported DRM scheme: " + e.toString()); |
- } catch (java.lang.IllegalArgumentException e) { |
- Log.e(TAG, "Failed to set DRM properties: " + e.toString()); |
- } |
+ private MediaDrmBridge(UUID schemeUUID, String securityLevel, int nativeMediaDrmBridge) |
+ throws android.media.UnsupportedSchemeException { |
+ mSchemeUUID = schemeUUID; |
+ mMediaDrm = new MediaDrm(schemeUUID); |
+ mHandler = new Handler(); |
+ mNativeMediaDrmBridge = nativeMediaDrmBridge; |
+ mMediaDrm.setOnEventListener(new MediaDrmListener()); |
+ mMediaDrm.setPropertyString(PRIVACY_MODE, "enable"); |
+ mMediaDrm.setPropertyString(SECURITY_LEVEL, securityLevel); |
} |
/** |
@@ -136,7 +131,7 @@ class MediaDrmBridge { |
} |
/** |
- * Create a new MediaDrmBridge from the crypto scheme UUID. |
+ * Create a new from the crypto scheme UUID. |
qinmin
2013/09/05 22:15:31
s/new/new MediaDrmBridge/
xhwang
2013/09/06 02:17:47
Not sure how I changed this. Reverted.
|
* |
* @param schemeUUID Crypto scheme UUID. |
* @param securityLevel Security level to be used. |
@@ -146,10 +141,21 @@ class MediaDrmBridge { |
private static MediaDrmBridge create( |
byte[] schemeUUID, String securityLevel, int nativeMediaDrmBridge) { |
UUID cryptoScheme = getUUIDFromBytes(schemeUUID); |
- if (cryptoScheme != null && MediaDrm.isCryptoSchemeSupported(cryptoScheme)) { |
- return new MediaDrmBridge(cryptoScheme, securityLevel, nativeMediaDrmBridge); |
+ if (cryptoScheme == null || !MediaDrm.isCryptoSchemeSupported(cryptoScheme)) { |
+ return null; |
+ } |
+ |
+ MediaDrmBridge media_drm_bridge = null; |
+ try { |
+ media_drm_bridge = new MediaDrmBridge( |
+ cryptoScheme, securityLevel, nativeMediaDrmBridge); |
+ } catch (android.media.UnsupportedSchemeException e) { |
+ Log.e(TAG, "Unsupported DRM scheme: " + e.toString()); |
+ } catch (java.lang.IllegalArgumentException e) { |
+ Log.e(TAG, "Failed to set DRM properties: " + e.toString()); |
qinmin
2013/09/05 22:15:31
There is no set DRM properties call inside this fu
xhwang
2013/09/06 02:17:47
How about changing this error message?
|
} |
- return null; |
+ |
+ return media_drm_bridge; |
} |
/** |
@@ -167,6 +173,7 @@ class MediaDrmBridge { |
private void release() { |
if (mMediaCrypto != null) { |
mMediaCrypto.release(); |
+ mMediaCrypto = null; |
} |
if (mSessionId != null) { |
try { |
@@ -175,9 +182,12 @@ class MediaDrmBridge { |
} catch (java.io.UnsupportedEncodingException e) { |
Log.e(TAG, "Failed to close session: " + e.toString()); |
} |
+ mSessionId = null; |
+ } |
+ if (mMediaDrm != null) { |
+ mMediaDrm.release(); |
+ mMediaDrm = null; |
} |
- mMediaDrm.release(); |
- mMediaDrm = null; |
} |
/** |