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; |