| Index: content/common/gpu/media/v4l2_slice_video_decode_accelerator.h
 | 
| diff --git a/content/common/gpu/media/v4l2_slice_video_decode_accelerator.h b/content/common/gpu/media/v4l2_slice_video_decode_accelerator.h
 | 
| index 87fe1967d1fa19cf5cc8e82a2c0dfecd13ffc0a6..9171e442b8cc1adad2af47b8f3d0bc52920c9e93 100644
 | 
| --- a/content/common/gpu/media/v4l2_slice_video_decode_accelerator.h
 | 
| +++ b/content/common/gpu/media/v4l2_slice_video_decode_accelerator.h
 | 
| @@ -19,6 +19,7 @@
 | 
|  #include "base/synchronization/waitable_event.h"
 | 
|  #include "base/threading/thread.h"
 | 
|  #include "content/common/content_export.h"
 | 
| +#include "content/common/gpu/media/gpu_video_decode_accelerator_helpers.h"
 | 
|  #include "content/common/gpu/media/h264_decoder.h"
 | 
|  #include "content/common/gpu/media/v4l2_device.h"
 | 
|  #include "content/common/gpu/media/vp8_decoder.h"
 | 
| @@ -38,10 +39,8 @@ class CONTENT_EXPORT V4L2SliceVideoDecodeAccelerator
 | 
|    V4L2SliceVideoDecodeAccelerator(
 | 
|        const scoped_refptr<V4L2Device>& device,
 | 
|        EGLDisplay egl_display,
 | 
| -      EGLContext egl_context,
 | 
| -      const base::WeakPtr<Client>& io_client_,
 | 
| -      const base::Callback<bool(void)>& make_context_current,
 | 
| -      const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner);
 | 
| +      const GetGLContextCallback& get_gl_context_cb,
 | 
| +      const MakeGLContextCurrentCallback& make_context_current_cb);
 | 
|    ~V4L2SliceVideoDecodeAccelerator() override;
 | 
|  
 | 
|    // media::VideoDecodeAccelerator implementation.
 | 
| @@ -53,7 +52,10 @@ class CONTENT_EXPORT V4L2SliceVideoDecodeAccelerator
 | 
|    void Flush() override;
 | 
|    void Reset() override;
 | 
|    void Destroy() override;
 | 
| -  bool CanDecodeOnIOThread() override;
 | 
| +  bool TryToSetupDecodeOnSeparateThread(
 | 
| +      const base::WeakPtr<Client>& decode_client,
 | 
| +      const scoped_refptr<base::SingleThreadTaskRunner>& decode_task_runner)
 | 
| +      override;
 | 
|  
 | 
|    static media::VideoDecodeAccelerator::SupportedProfiles
 | 
|        GetSupportedProfiles();
 | 
| @@ -303,8 +305,8 @@ class CONTENT_EXPORT V4L2SliceVideoDecodeAccelerator
 | 
|    // GPU Child thread task runner.
 | 
|    const scoped_refptr<base::SingleThreadTaskRunner> child_task_runner_;
 | 
|  
 | 
| -  // IO thread task runner.
 | 
| -  scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
 | 
| +  // Task runner Decode() and PictureReady() run on.
 | 
| +  scoped_refptr<base::SingleThreadTaskRunner> decode_task_runner_;
 | 
|  
 | 
|    // WeakPtr<> pointing to |this| for use in posting tasks from the decoder or
 | 
|    // device worker threads back to the child thread.
 | 
| @@ -316,8 +318,8 @@ class CONTENT_EXPORT V4L2SliceVideoDecodeAccelerator
 | 
|    scoped_ptr<base::WeakPtrFactory<VideoDecodeAccelerator::Client>>
 | 
|        client_ptr_factory_;
 | 
|    base::WeakPtr<VideoDecodeAccelerator::Client> client_;
 | 
| -  // Callbacks to |io_client_| must be executed on |io_task_runner_|.
 | 
| -  base::WeakPtr<Client> io_client_;
 | 
| +  // Callbacks to |decode_client_| must be executed on |decode_task_runner_|.
 | 
| +  base::WeakPtr<Client> decode_client_;
 | 
|  
 | 
|    // V4L2 device in use.
 | 
|    scoped_refptr<V4L2Device> device_;
 | 
| @@ -398,12 +400,13 @@ class CONTENT_EXPORT V4L2SliceVideoDecodeAccelerator
 | 
|    // The number of pictures that are sent to PictureReady and will be cleared.
 | 
|    int picture_clearing_count_;
 | 
|  
 | 
| -  // Make the GL context current callback.
 | 
| -  base::Callback<bool(void)> make_context_current_;
 | 
| -
 | 
|    // EGL state
 | 
|    EGLDisplay egl_display_;
 | 
| -  EGLContext egl_context_;
 | 
| +
 | 
| +  // Callback to get current GLContext.
 | 
| +  GetGLContextCallback get_gl_context_cb_;
 | 
| +  // Callback to set the correct gl context.
 | 
| +  MakeGLContextCurrentCallback make_context_current_cb_;
 | 
|  
 | 
|    // The WeakPtrFactory for |weak_this_|.
 | 
|    base::WeakPtrFactory<V4L2SliceVideoDecodeAccelerator> weak_this_factory_;
 | 
| 
 |