diff --git a/dom/media/MediaInfo.h b/dom/media/MediaInfo.h index 7f5dfc42d064..e139c8b1b85d 100644 --- a/dom/media/MediaInfo.h +++ b/dom/media/MediaInfo.h @@ -289,11 +289,18 @@ public: !mImage.height) { return ImageRect(); } + gfx::IntRect imageRect = ImageRect(); + int64_t w = (aWidth * imageRect.Width()) / mImage.width; + int64_t h = (aHeight * imageRect.Height()) / mImage.height; + if (!w || !h) { + return imageRect; + } + imageRect.x = (imageRect.x * aWidth) / mImage.width; imageRect.y = (imageRect.y * aHeight) / mImage.height; - imageRect.SetWidth((aWidth * imageRect.Width()) / mImage.width); - imageRect.SetHeight((aHeight * imageRect.Height()) / mImage.height); + imageRect.SetWidth(w); + imageRect.SetHeight(h); return imageRect; }