Chromium Code Reviews| Index: media/gpu/media_foundation_video_encode_accelerator_win.h |
| diff --git a/media/gpu/media_foundation_video_encode_accelerator_win.h b/media/gpu/media_foundation_video_encode_accelerator_win.h |
| index 3060abb194cdedaa5900e5e63c78e331d8f51ccb..d0f8ba454b36c2d58e4af0e4878c665087c90ccb 100644 |
| --- a/media/gpu/media_foundation_video_encode_accelerator_win.h |
| +++ b/media/gpu/media_foundation_video_encode_accelerator_win.h |
| @@ -28,10 +28,11 @@ namespace media { |
| // Media Foundation implementation of the VideoEncodeAccelerator interface for |
| // Windows. |
| // This class saves the task runner on which it is constructed and returns |
| -// encoded data to the client using that same task runner. This class has |
| -// DCHECKs to makes sure that methods are called in sequence. It starts an |
| -// internal encoder thread on which VideoEncodeAccelerator implementation tasks |
| -// are posted. |
| +// encoded data to the client using that same task runner. If |
| +// TryToSetupEncodeOnSeparateThread() is called, it use=s the given |
|
sandersd (OOO until July 31)
2016/10/21 01:01:00
Remove '='
emircan
2016/10/24 19:44:53
Done.
|
| +// |encode_task_runner| instead. This class has DCHECKs to makes sure that |
| +// methods are called in sequence. It starts an internal encoder thread on which |
| +// VideoEncodeAccelerator implementation tasks are posted. |
| class MEDIA_GPU_EXPORT MediaFoundationVideoEncodeAccelerator |
| : public VideoEncodeAccelerator { |
| public: |
| @@ -50,6 +51,10 @@ class MEDIA_GPU_EXPORT MediaFoundationVideoEncodeAccelerator |
| void RequestEncodingParametersChange(uint32_t bitrate, |
| uint32_t framerate) override; |
| void Destroy() override; |
| + bool TryToSetupEncodeOnSeparateThread( |
| + const base::WeakPtr<Client>& encode_client, |
| + const scoped_refptr<base::SingleThreadTaskRunner>& encode_task_runner) |
| + override; |
| // Preload dlls required for encoding. |
| static void PreSandboxInitialization(); |
| @@ -130,9 +135,15 @@ class MEDIA_GPU_EXPORT MediaFoundationVideoEncodeAccelerator |
| std::unique_ptr<base::WeakPtrFactory<Client>> client_ptr_factory_; |
| // Our original calling task runner for the child thread. |
| - const scoped_refptr<base::SequencedTaskRunner> client_task_runner_; |
| - // Sequence checker to enforce that the methods of this object are called in |
| - // sequence. |
| + scoped_refptr<base::SequencedTaskRunner> client_task_runner_; |
| + |
| + // Thread checker to enforce that this object created, initialized and |
| + // destroyed on a specific thread. It is pinned on the thread where object is |
| + // created. |
| + base::ThreadChecker thread_checker_; |
| + |
| + // Sequence checker to enforce that the encode tasks of this object are called |
| + // in sequence. |
| base::SequenceChecker sequence_checker_; |
| // This thread services tasks posted from the VEA API entry points by the |