summaryrefslogtreecommitdiffstats
path: root/dom/media/VideoFrameContainer.cpp
diff options
context:
space:
mode:
authorsotaro <sotaro.ikeda.g@gmail.com>2019-03-23 13:01:13 +0100
committerwolfbeast <mcwerewolf@wolfbeast.com>2019-03-23 13:01:13 +0100
commit5ddaf2aef8cb71ec6692f2522b1c628196c6f05b (patch)
tree971fccefe5dbd1fc45556715e1e5816b7d705070 /dom/media/VideoFrameContainer.cpp
parent68acc67ddbbd1c7a9577498ad41d079e6b9e3eac (diff)
downloadUXP-5ddaf2aef8cb71ec6692f2522b1c628196c6f05b.tar
UXP-5ddaf2aef8cb71ec6692f2522b1c628196c6f05b.tar.gz
UXP-5ddaf2aef8cb71ec6692f2522b1c628196c6f05b.tar.lz
UXP-5ddaf2aef8cb71ec6692f2522b1c628196c6f05b.tar.xz
UXP-5ddaf2aef8cb71ec6692f2522b1c628196c6f05b.zip
Check if CopyData succeeded.
Diffstat (limited to 'dom/media/VideoFrameContainer.cpp')
-rw-r--r--dom/media/VideoFrameContainer.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/dom/media/VideoFrameContainer.cpp b/dom/media/VideoFrameContainer.cpp
index 2b1965766..56aea9d27 100644
--- a/dom/media/VideoFrameContainer.cpp
+++ b/dom/media/VideoFrameContainer.cpp
@@ -61,7 +61,7 @@ void VideoFrameContainer::UpdatePrincipalHandleForFrameIDLocked(const PrincipalH
mFrameIDForPendingPrincipalHandle = aFrameID;
}
-static void
+static bool
SetImageToBlackPixel(PlanarYCbCrImage* aImage)
{
uint8_t blackPixel[] = { 0x10, 0x80, 0x80 };
@@ -72,7 +72,7 @@ SetImageToBlackPixel(PlanarYCbCrImage* aImage)
data.mCrChannel = blackPixel + 2;
data.mYStride = data.mCbCrStride = 1;
data.mPicSize = data.mYSize = data.mCbCrSize = gfx::IntSize(1, 1);
- aImage->CopyData(data);
+ return aImage->CopyData(data);
}
class VideoFrameContainerInvalidateRunnable : public Runnable {
@@ -122,11 +122,13 @@ void VideoFrameContainer::SetCurrentFrames(const VideoSegment& aSegment)
if (frame->GetForceBlack()) {
if (!mBlackImage) {
- mBlackImage = GetImageContainer()->CreatePlanarYCbCrImage();
- if (mBlackImage) {
+ RefPtr<Image> blackImage = GetImageContainer()->CreatePlanarYCbCrImage();
+ if (blackImage) {
// Sets the image to a single black pixel, which will be scaled to
// fill the rendered size.
- SetImageToBlackPixel(mBlackImage->AsPlanarYCbCrImage());
+ if (SetImageToBlackPixel(blackImage->AsPlanarYCbCrImage())) {
+ mBlackImage = blackImage;
+ }
}
}
if (mBlackImage) {