| Index: media/mojo/clients/mojo_decryptor.cc
 | 
| diff --git a/media/mojo/clients/mojo_decryptor.cc b/media/mojo/clients/mojo_decryptor.cc
 | 
| index 2a08ae57d7a929cba637fe330d6abbd03ba7fe24..4b57ed9a1545a0497106356d349851b920116cda 100644
 | 
| --- a/media/mojo/clients/mojo_decryptor.cc
 | 
| +++ b/media/mojo/clients/mojo_decryptor.cc
 | 
| @@ -224,27 +224,20 @@ void MojoDecryptor::OnAudioDecoded(
 | 
|  
 | 
|  void MojoDecryptor::OnVideoDecoded(const VideoDecodeCB& video_decode_cb,
 | 
|                                     Status status,
 | 
| -                                   mojom::VideoFramePtr video_frame,
 | 
| +                                   const scoped_refptr<VideoFrame>& video_frame,
 | 
|                                     mojom::FrameResourceReleaserPtr releaser) {
 | 
|    DVLOG_IF(1, status != kSuccess) << __func__ << "(" << status << ")";
 | 
|    DVLOG_IF(3, status == kSuccess) << __func__;
 | 
|    DCHECK(thread_checker_.CalledOnValidThread());
 | 
|  
 | 
| -  if (video_frame.is_null()) {
 | 
| -    video_decode_cb.Run(status, nullptr);
 | 
| -    return;
 | 
| -  }
 | 
| -
 | 
| -  scoped_refptr<VideoFrame> frame(video_frame.To<scoped_refptr<VideoFrame>>());
 | 
| -
 | 
|    // If using shared memory, ensure that |releaser| is closed when
 | 
|    // |frame| is destroyed.
 | 
| -  if (releaser) {
 | 
| -    frame->AddDestructionObserver(
 | 
| +  if (video_frame && releaser) {
 | 
| +    video_frame->AddDestructionObserver(
 | 
|          base::Bind(&ReleaseFrameResource, base::Passed(&releaser)));
 | 
|    }
 | 
|  
 | 
| -  video_decode_cb.Run(status, frame);
 | 
| +  video_decode_cb.Run(status, video_frame);
 | 
|  }
 | 
|  
 | 
|  }  // namespace media
 | 
| 
 |