diff options
author | qinmin@chromium.org <qinmin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-20 18:59:27 +0000 |
---|---|---|
committer | qinmin@chromium.org <qinmin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-20 18:59:27 +0000 |
commit | 40793524e51cc6c9d15450e80e5398856e9d7f36 (patch) | |
tree | 9cc6d7bfbe9bde705d8d88c72cab68e5acdec8cb /media | |
parent | cfea01761f1f5ef0e7019966e7ed129ded81de92 (diff) | |
download | chromium_src-40793524e51cc6c9d15450e80e5398856e9d7f36.zip chromium_src-40793524e51cc6c9d15450e80e5398856e9d7f36.tar.gz chromium_src-40793524e51cc6c9d15450e80e5398856e9d7f36.tar.bz2 |
Fix an browser crash after video decoder failed to get created
If we fail to create the java MediaCodec, we should early return in VideoCodecBridge::CreateDecoder(). Otherwise, we will hit NPE.
BUG=329742
Review URL: https://codereview.chromium.org/99423010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242129 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/base/android/media_codec_bridge.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/media/base/android/media_codec_bridge.cc b/media/base/android/media_codec_bridge.cc index 4ba492a..6e7987f 100644 --- a/media/base/android/media_codec_bridge.cc +++ b/media/base/android/media_codec_bridge.cc @@ -636,6 +636,8 @@ VideoCodecBridge* VideoCodecBridge::CreateDecoder(const VideoCodec& codec, scoped_ptr<VideoCodecBridge> bridge( new VideoCodecBridge(mime, is_secure, MEDIA_CODEC_DECODER)); + if (!bridge->media_codec()) + return NULL; ScopedJavaLocalRef<jstring> j_mime = ConvertUTF8ToJavaString(env, mime); ScopedJavaLocalRef<jobject> j_format( @@ -667,6 +669,8 @@ VideoCodecBridge* VideoCodecBridge::CreateEncoder(const VideoCodec& codec, scoped_ptr<VideoCodecBridge> bridge( new VideoCodecBridge(mime, false, MEDIA_CODEC_ENCODER)); + if (!bridge->media_codec()) + return NULL; ScopedJavaLocalRef<jstring> j_mime = ConvertUTF8ToJavaString(env, mime); ScopedJavaLocalRef<jobject> j_format( |