Index: media/base/android/media_decoder_job.cc |
diff --git a/media/base/android/media_decoder_job.cc b/media/base/android/media_decoder_job.cc |
index 9eb7facdc3149780e40ef6e9ee805ee129d97987..61df5c07e1987f48a13ca3f0a70a1a31824946b8 100644 |
--- a/media/base/android/media_decoder_job.cc |
+++ b/media/base/android/media_decoder_job.cc |
@@ -118,14 +118,9 @@ bool MediaDecoderJob::Decode( |
DCHECK(data_received_cb_.is_null()); |
DCHECK(ui_task_runner_->BelongsToCurrentThread()); |
if (!media_codec_bridge_ || need_to_reconfig_decoder_job_) { |
+ if (drain_decoder_) |
+ OnDecoderDrained(); |
need_to_reconfig_decoder_job_ = !CreateMediaCodecBridge(); |
- if (drain_decoder_) { |
- // Decoder has been recreated, stop draining. |
- drain_decoder_ = false; |
- input_eos_encountered_ = false; |
- output_eos_encountered_ = false; |
- access_unit_index_[current_demuxer_data_index_]++; |
- } |
skip_eos_enqueue_ = true; |
if (need_to_reconfig_decoder_job_) |
return false; |