Chromium Code Reviews| 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; |
| } |
| /** |