Index: media/gpu/android_video_decode_accelerator.h |
diff --git a/media/gpu/android_video_decode_accelerator.h b/media/gpu/android_video_decode_accelerator.h |
index fd99ebc0ff8a7ca2e74a4bd047c212cbbece37d8..87e004a3150fb21d1a8d9356ebb865cb202ae114 100644 |
--- a/media/gpu/android_video_decode_accelerator.h |
+++ b/media/gpu/android_video_decode_accelerator.h |
@@ -371,6 +371,10 @@ class MEDIA_GPU_EXPORT AndroidVideoDecodeAccelerator |
// have safer versions elsewhere. |
bool IsMediaCodecSoftwareDecodingForbidden() const; |
+ // Closes idle MediaCodec instances if no Decode() call is received within a |
+ // few seconds. |
+ void CloseIdleCodec(); |
+ |
// Used to DCHECK that we are called on the correct thread. |
base::ThreadChecker thread_checker_; |
@@ -484,6 +488,11 @@ class MEDIA_GPU_EXPORT AndroidVideoDecodeAccelerator |
OnDestroyingSurfaceCallback on_destroying_surface_cb_; |
+ // Timer used to destroy the MediaCodec if no Decode() call is received after |
+ // a seconds of idle activity. This prevents older devices from falling over |
liberato (no reviews please)
2016/07/13 05:25:55
"a seconds"
|
+ // when too many MediaCodec instances are outstanding. |
+ base::OneShotTimer no_decode_timeout_; |
+ |
// WeakPtrFactory for posting tasks back to |this|. |
base::WeakPtrFactory<AndroidVideoDecodeAccelerator> weak_this_factory_; |