| Index: media/filters/gpu_video_decoder.h | 
| diff --git a/media/filters/gpu_video_decoder.h b/media/filters/gpu_video_decoder.h | 
| index 271d2fb7339c89476c5522236189462f430dba75..065ac38d068abecdea8bdc5b769fd6fbec54f915 100644 | 
| --- a/media/filters/gpu_video_decoder.h | 
| +++ b/media/filters/gpu_video_decoder.h | 
| @@ -58,6 +58,7 @@ class MEDIA_EXPORT GpuVideoDecoder | 
| int GetMaxDecodeRequests() const override; | 
|  | 
| // VideoDecodeAccelerator::Client implementation. | 
| +  void NotifyCdmAttached(bool success) override; | 
| void ProvidePictureBuffers(uint32 count, | 
| const gfx::Size& size, | 
| uint32 texture_target) override; | 
| @@ -102,6 +103,10 @@ class MEDIA_EXPORT GpuVideoDecoder | 
|  | 
| typedef std::map<int32, PictureBuffer> PictureBufferMap; | 
|  | 
| +  // Callback to set CDM. |cdm_attached_cb| is called when the decryptor in the | 
| +  // CDM has been completely attached to the pipeline. | 
| +  void SetCdm(CdmContext* cdm_context, const CdmAttachedCB& cdm_attached_cb); | 
| + | 
| void DeliverFrame(const scoped_refptr<VideoFrame>& frame); | 
|  | 
| // Static method is to allow it to run even after GVD is deleted. | 
| @@ -145,6 +150,7 @@ class MEDIA_EXPORT GpuVideoDecoder | 
| // occurs. | 
| scoped_ptr<VideoDecodeAccelerator> vda_; | 
|  | 
| +  InitCB init_cb_; | 
| OutputCB output_cb_; | 
|  | 
| DecodeCB eos_decode_cb_; | 
| @@ -156,6 +162,10 @@ class MEDIA_EXPORT GpuVideoDecoder | 
|  | 
| VideoDecoderConfig config_; | 
|  | 
| +  // Callback to request/cancel CDM ready notification. | 
| +  SetCdmReadyCB set_cdm_ready_cb_; | 
| +  CdmAttachedCB cdm_attached_cb_; | 
| + | 
| // Shared-memory buffer pool.  Since allocating SHM segments requires a | 
| // round-trip to the browser process, we keep allocation out of the | 
| // steady-state of the decoder. | 
|  |