summaryrefslogtreecommitdiffstats
path: root/media/jni/android_media_MediaMetadataRetriever.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'media/jni/android_media_MediaMetadataRetriever.cpp')
-rw-r--r--media/jni/android_media_MediaMetadataRetriever.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/media/jni/android_media_MediaMetadataRetriever.cpp b/media/jni/android_media_MediaMetadataRetriever.cpp
index a52b24d..c2694f1 100644
--- a/media/jni/android_media_MediaMetadataRetriever.cpp
+++ b/media/jni/android_media_MediaMetadataRetriever.cpp
@@ -245,7 +245,7 @@ static jobject android_media_MediaMetadataRetriever_getFrameAtTime(JNIEnv *env,
fields.createConfigMethod,
SkBitmap::kRGB_565_Config);
- size_t width, height;
+ uint32_t width, height;
bool swapWidthAndHeight = false;
if (videoFrame->mRotationAngle == 90 || videoFrame->mRotationAngle == 270) {
width = videoFrame->mHeight;
@@ -262,6 +262,13 @@ static jobject android_media_MediaMetadataRetriever_getFrameAtTime(JNIEnv *env,
width,
height,
config);
+ if (jBitmap == NULL) {
+ if (env->ExceptionCheck()) {
+ env->ExceptionClear();
+ }
+ ALOGE("getFrameAtTime: create Bitmap failed!");
+ return NULL;
+ }
SkBitmap *bitmap =
(SkBitmap *) env->GetLongField(jBitmap, fields.nativeBitmap);
@@ -276,8 +283,8 @@ static jobject android_media_MediaMetadataRetriever_getFrameAtTime(JNIEnv *env,
if (videoFrame->mDisplayWidth != videoFrame->mWidth ||
videoFrame->mDisplayHeight != videoFrame->mHeight) {
- size_t displayWidth = videoFrame->mDisplayWidth;
- size_t displayHeight = videoFrame->mDisplayHeight;
+ uint32_t displayWidth = videoFrame->mDisplayWidth;
+ uint32_t displayHeight = videoFrame->mDisplayHeight;
if (swapWidthAndHeight) {
displayWidth = videoFrame->mDisplayHeight;
displayHeight = videoFrame->mDisplayWidth;