| Index: media/filters/vpx_video_decoder.cc
|
| diff --git a/media/filters/vpx_video_decoder.cc b/media/filters/vpx_video_decoder.cc
|
| index 40814bb273ad5a3f5cc18e96ea9172f9fd4e929b..343c65842c0d7277f98ae51e6a492311189332e3 100644
|
| --- a/media/filters/vpx_video_decoder.cc
|
| +++ b/media/filters/vpx_video_decoder.cc
|
| @@ -592,8 +592,10 @@ bool VpxVideoDecoder::CopyVpxImageToVideoFrame(
|
| vpx_image->planes[VPX_PLANE_U],
|
| vpx_image->planes[VPX_PLANE_V],
|
| kNoTimestamp());
|
| - video_frame->get()->AddDestructionObserver(
|
| - memory_pool_->CreateFrameCallback(vpx_image->fb_priv));
|
| + if (*video_frame) {
|
| + video_frame->get()->AddDestructionObserver(
|
| + memory_pool_->CreateFrameCallback(vpx_image->fb_priv));
|
| + }
|
|
|
| UMA_HISTOGRAM_COUNTS("Media.Vpx.VideoDecoderBuffersInUseByDecoder",
|
| memory_pool_->NumberOfFrameBuffersInUseByDecoder());
|
| @@ -610,6 +612,8 @@ bool VpxVideoDecoder::CopyVpxImageToVideoFrame(
|
| *video_frame = frame_pool_.CreateFrame(
|
| codec_format, visible_size, gfx::Rect(visible_size),
|
| config_.natural_size(), kNoTimestamp());
|
| + if (!(*video_frame))
|
| + return false;
|
|
|
| libyuv::I420Copy(
|
| vpx_image->planes[VPX_PLANE_Y], vpx_image->stride[VPX_PLANE_Y],
|
|
|