| Index: media/filters/ffmpeg_video_decoder.cc
 | 
| diff --git a/media/filters/ffmpeg_video_decoder.cc b/media/filters/ffmpeg_video_decoder.cc
 | 
| index f8931e0eae42dcd17a83f995ae7da063f737f76c..ca26e8eb3730403068abc3129ad45e00e31ebe2d 100644
 | 
| --- a/media/filters/ffmpeg_video_decoder.cc
 | 
| +++ b/media/filters/ffmpeg_video_decoder.cc
 | 
| @@ -235,6 +235,9 @@ void FFmpegVideoDecoder::Stop(const base::Closure& closure) {
 | 
|      return;
 | 
|    }
 | 
|  
 | 
| +  if (decryptor_)
 | 
| +    decryptor_->Stop();
 | 
| +
 | 
|    stop_cb_ = closure;
 | 
|  
 | 
|    // Defer stopping if a read is pending.
 | 
| @@ -358,7 +361,8 @@ void FFmpegVideoDecoder::DoBufferDecrypted(
 | 
|      return;
 | 
|    }
 | 
|  
 | 
| -  if (decrypt_status == Decryptor::kError) {
 | 
| +  if (decrypt_status == Decryptor::kNoKey ||
 | 
| +      decrypt_status == Decryptor::kError) {
 | 
|      state_ = kDecodeFinished;
 | 
|      base::ResetAndReturn(&read_cb_).Run(kDecryptError, NULL);
 | 
|      return;
 | 
| 
 |