| Index: media/gpu/dxva_video_decode_accelerator_win.h | 
| diff --git a/media/gpu/dxva_video_decode_accelerator_win.h b/media/gpu/dxva_video_decode_accelerator_win.h | 
| index a1962307c6e62debf8b08613ece38560792f519a..dc02f98c95c6a2bcda2f9aaf2126ce3437f6fa6c 100644 | 
| --- a/media/gpu/dxva_video_decode_accelerator_win.h | 
| +++ b/media/gpu/dxva_video_decode_accelerator_win.h | 
| @@ -144,6 +144,7 @@ class MEDIA_GPU_EXPORT DXVAVideoDecodeAccelerator | 
|  | 
| private: | 
| friend class DXVAPictureBuffer; | 
| +  friend class EGLStreamDelayedCopyPictureBuffer; | 
| friend class EGLStreamCopyPictureBuffer; | 
| friend class EGLStreamPictureBuffer; | 
| friend class PbufferPictureBuffer; | 
| @@ -151,6 +152,22 @@ class MEDIA_GPU_EXPORT DXVAVideoDecodeAccelerator | 
| typedef void* EGLSurface; | 
| typedef std::list<base::win::ScopedComPtr<IMFSample>> PendingInputs; | 
|  | 
| +  enum class PictureBufferMechanism { | 
| +    // Copy to either a BGRA8 or FP16 texture using the video processor. | 
| +    COPY_TO_RGB, | 
| + | 
| +    // Copy to another NV12 texture that can be used in ANGLE. | 
| +    COPY_TO_NV12, | 
| + | 
| +    // Bind the resulting GLImage to the NV12 texture. If the texture's used | 
| +    // in a an overlay than use it directly, otherwise copy it to another NV12 | 
| +    // texture when necessary. | 
| +    DELAYED_COPY_TO_NV12, | 
| + | 
| +    // Bind the NV12 decoder texture directly to the texture used in ANGLE. | 
| +    BIND | 
| +  }; | 
| + | 
| // Returns the minimum resolution for the |profile| passed in. | 
| static std::pair<int, int> GetMinResolution(const VideoCodecProfile profile); | 
|  | 
| @@ -375,6 +392,8 @@ class MEDIA_GPU_EXPORT DXVAVideoDecodeAccelerator | 
|  | 
| uint32_t GetTextureTarget() const; | 
|  | 
| +  PictureBufferMechanism GetPictureBufferMechanism() const; | 
| +  bool ShouldUseANGLEDevice() const; | 
| ID3D11Device* D3D11Device() const; | 
|  | 
| // To expose client callbacks from VideoDecodeAccelerator. | 
| @@ -517,10 +536,12 @@ class MEDIA_GPU_EXPORT DXVAVideoDecodeAccelerator | 
| // Use CODECAPI_AVLowLatencyMode. | 
| bool enable_low_latency_; | 
|  | 
| -  bool share_nv12_textures_; | 
| +  // Supports sharing the decoded NV12 textures with ANGLE | 
| +  bool support_share_nv12_textures_; | 
|  | 
| -  // Copy NV12 texture to another NV12 texture. | 
| -  bool copy_nv12_textures_; | 
| +  // Supports copying the NV12 texture to another NV12 texture to use in | 
| +  // ANGLE. | 
| +  bool support_copy_nv12_textures_; | 
|  | 
| // Copy video to FP16 scRGB textures. | 
| bool use_fp16_ = false; | 
|  |