Index: media/video/video_decode_accelerator.h |
diff --git a/media/video/video_decode_accelerator.h b/media/video/video_decode_accelerator.h |
index 85eef242f4229de69a2dbd8194caa414b5dddd4a..55d1ad12e188dbbfc3e462cfbe88ba4ea858dafc 100644 |
--- a/media/video/video_decode_accelerator.h |
+++ b/media/video/video_decode_accelerator.h |
@@ -161,10 +161,12 @@ enum VideoColorFormat { |
// Video decoder interface. |
// This interface is extended by the various components that ultimately |
// implement the backend of PPB_VideoDecode_Dev. |
-class VideoDecodeAccelerator { |
+// |
+// No thread-safety guarantees are implied by the use of RefCountedThreadSafe |
+// below. |
+class VideoDecodeAccelerator |
+ : public base::RefCountedThreadSafe<VideoDecodeAccelerator> { |
public: |
- virtual ~VideoDecodeAccelerator(); |
- |
// Enumeration of potential errors generated by the API. |
// TODO(fischman): these errors are a bad match for both what OMX generates |
// and for what the plugin wants. Overhaul this list with a more useful set. |
@@ -226,9 +228,6 @@ class VideoDecodeAccelerator { |
// Reset completion callback. |
virtual void NotifyResetDone() = 0; |
- // Destroy completion callback. |
- virtual void NotifyDestroyDone() = 0; |
- |
// Callback to notify about decoding errors. |
virtual void NotifyError(Error error) = 0; |
}; |
@@ -279,11 +278,14 @@ class VideoDecodeAccelerator { |
virtual void Reset() = 0; |
// Destroys the decoder: all pending inputs are dropped immediately and the |
- // component is freed, followed by NotifyDestroyDone being called on the |
- // client. After this is called no other calls may be made on the decoder, |
- // and after NotifyDestroyDone is called no callbacks will be made by the |
- // decoder on the client. |
+ // component is freed. This call may asynchornously free system resources, |
+ // but its client-visible effects are synchronous. After this method returns |
+ // no more callbacks will be made on the client. |
virtual void Destroy() = 0; |
+ |
+ protected: |
+ friend class base::RefCountedThreadSafe<VideoDecodeAccelerator>; |
+ virtual ~VideoDecodeAccelerator(); |
}; |
} // namespace media |