Chromium Code Reviews| Index: media/gpu/android_video_decode_accelerator.cc |
| diff --git a/media/gpu/android_video_decode_accelerator.cc b/media/gpu/android_video_decode_accelerator.cc |
| index 5b8c856701c5645cd6324720a9d1086ba9b0532c..774e19960476ed094ef85b060a29a1b88c977d7b 100644 |
| --- a/media/gpu/android_video_decode_accelerator.cc |
| +++ b/media/gpu/android_video_decode_accelerator.cc |
| @@ -963,6 +963,7 @@ void AndroidVideoDecodeAccelerator::SendDecodedFrameToClient( |
| void AndroidVideoDecodeAccelerator::Decode( |
| const BitstreamBuffer& bitstream_buffer) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| + no_decode_timeout_.Stop(); |
|
liberato (no reviews please)
2016/07/13 05:25:55
i think that you also need to stop the timer in Re
DaleCurtis
2016/07/13 21:12:21
Done.
|
| // If we previously deferred a codec restart, take care of it now. This can |
| // happen on older devices where configuration changes require a codec reset. |
| @@ -1202,7 +1203,8 @@ void AndroidVideoDecodeAccelerator::OnCodecConfigured( |
| } |
| state_ = NO_ERROR; |
| - |
| + no_decode_timeout_.Start(FROM_HERE, base::TimeDelta::FromSeconds(2), this, |
|
liberato (no reviews please)
2016/07/13 05:25:55
2 => kSomethingSomething
DaleCurtis
2016/07/13 21:12:21
Done.
|
| + &AndroidVideoDecodeAccelerator::CloseIdleCodec); |
| ManageTimer(true); |
| } |
| @@ -1311,7 +1313,7 @@ void AndroidVideoDecodeAccelerator::ResetCodecState() { |
| // Prior to JB-MR2, flush() had several bugs (b/8125974, b/8347958) so we must |
| // delete the MediaCodec and create a new one. The full reconfigure is much |
| // slower and may cause visible freezing if done mid-stream. |
| - if (!did_codec_error_happen && |
| + if (!did_codec_error_happen && media_codec_ && |
| base::android::BuildInfo::GetInstance()->sdk_int() >= 18) { |
| DVLOG(3) << __FUNCTION__ << " Flushing MediaCodec."; |
| media_codec_->Flush(); |
| @@ -1786,4 +1788,11 @@ bool AndroidVideoDecodeAccelerator::IsMediaCodecSoftwareDecodingForbidden() |
| codec_config_->codec_ == media::kCodecVP9); |
| } |
| +void AndroidVideoDecodeAccelerator::CloseIdleCodec() { |
| + if (media_codec_) { |
|
liberato (no reviews please)
2016/07/13 05:25:55
please consider early out.
DaleCurtis
2016/07/13 21:12:21
Done.
|
| + ReleaseMediaCodec(); |
| + codec_needs_reset_ = true; |
| + } |
| +} |
| + |
| } // namespace media |