blob: c4b23ef8031ddb58218932277fd4834c8fa61f15 [file] [log] [blame]
[email protected]c80a0ba2012-01-13 00:02:291// Copyright (c) 2012 The Chromium Authors. All rights reserved.
[email protected]7ace8ad2011-08-06 03:23:582// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef PPAPI_PROXY_PPP_VIDEO_DECODER_PROXY_H_
6#define PPAPI_PROXY_PPP_VIDEO_DECODER_PROXY_H_
7
avie029c4132015-12-23 06:45:228#include <stdint.h>
9
10#include "base/macros.h"
[email protected]7ace8ad2011-08-06 03:23:5811#include "ppapi/c/dev/ppp_video_decoder_dev.h"
12#include "ppapi/c/pp_instance.h"
[email protected]7ace8ad2011-08-06 03:23:5813#include "ppapi/proxy/interface_proxy.h"
[email protected]be0a84b2011-08-13 04:18:4414#include "ppapi/shared_impl/host_resource.h"
[email protected]7ace8ad2011-08-06 03:23:5815
16struct PP_Picture_Dev;
17struct PP_Size;
18
[email protected]4d2efd22011-08-18 21:58:0219namespace ppapi {
[email protected]7ace8ad2011-08-06 03:23:5820namespace proxy {
21
22class PPP_VideoDecoder_Proxy : public InterfaceProxy {
23 public:
[email protected]5c966022011-09-13 18:09:3724 PPP_VideoDecoder_Proxy(Dispatcher* dispatcher);
[email protected]7ace8ad2011-08-06 03:23:5825 virtual ~PPP_VideoDecoder_Proxy();
26
[email protected]6642ebf2013-12-17 20:49:3027 static const PPP_VideoDecoder_Dev* GetProxyInterface();
[email protected]7ace8ad2011-08-06 03:23:5828
[email protected]7ace8ad2011-08-06 03:23:5829 // InterfaceProxy implementation.
30 virtual bool OnMessageReceived(const IPC::Message& msg);
31
32 private:
33 // Message handlers.
[email protected]be0a84b2011-08-13 04:18:4434 void OnMsgProvidePictureBuffers(const ppapi::HostResource& decoder,
[email protected]7ace8ad2011-08-06 03:23:5835 uint32_t req_num_of_buffers,
[email protected]08bab532012-06-08 19:39:4536 const PP_Size& dimensions,
37 uint32_t texture_target);
[email protected]be0a84b2011-08-13 04:18:4438 void OnMsgDismissPictureBuffer(const ppapi::HostResource& decoder,
[email protected]7ace8ad2011-08-06 03:23:5839 int32_t picture_id);
[email protected]be0a84b2011-08-13 04:18:4440 void OnMsgPictureReady(const ppapi::HostResource& decoder,
41 const PP_Picture_Dev& picture_buffer);
[email protected]be0a84b2011-08-13 04:18:4442 void OnMsgNotifyError(const ppapi::HostResource& decoder,
[email protected]7ace8ad2011-08-06 03:23:5843 PP_VideoDecodeError_Dev error);
44
[email protected]5c966022011-09-13 18:09:3745 // When this proxy is in the plugin side, this value caches the interface
46 // pointer so we don't have to retrieve it from the dispatcher each time.
47 // In the host, this value is always NULL.
48 const PPP_VideoDecoder_Dev* ppp_video_decoder_impl_;
49
[email protected]7ace8ad2011-08-06 03:23:5850 DISALLOW_COPY_AND_ASSIGN(PPP_VideoDecoder_Proxy);
51};
52
53} // namespace proxy
[email protected]4d2efd22011-08-18 21:58:0254} // namespace ppapi
[email protected]7ace8ad2011-08-06 03:23:5855
56#endif // PPAPI_PROXY_PPP_VIDEO_DECODER_PROXY_H_