Home | History | Annotate | Download | only in proxy
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // 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_VIDEO_FRAME_RESOURCE_H_
      6 #define PPAPI_PROXY_VIDEO_FRAME_RESOURCE_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/compiler_specific.h"
     10 #include "ppapi/proxy/ppapi_proxy_export.h"
     11 #include "ppapi/shared_impl/media_stream_buffer.h"
     12 #include "ppapi/shared_impl/resource.h"
     13 #include "ppapi/thunk/ppb_video_frame_api.h"
     14 
     15 namespace ppapi {
     16 namespace proxy {
     17 
     18 class PPAPI_PROXY_EXPORT VideoFrameResource : public Resource,
     19                                               public thunk::PPB_VideoFrame_API {
     20  public:
     21   VideoFrameResource(PP_Instance instance,
     22                      int32_t index,
     23                      MediaStreamBuffer* buffer);
     24 
     25   virtual ~VideoFrameResource();
     26 
     27   // PluginResource overrides:
     28   virtual thunk::PPB_VideoFrame_API* AsPPB_VideoFrame_API() OVERRIDE;
     29 
     30   // PPB_VideoFrame_API overrides:
     31   virtual PP_TimeDelta GetTimestamp() OVERRIDE;
     32   virtual void SetTimestamp(PP_TimeDelta timestamp) OVERRIDE;
     33   virtual PP_VideoFrame_Format GetFormat() OVERRIDE;
     34   virtual PP_Bool GetSize(PP_Size* size) OVERRIDE;
     35   virtual void* GetDataBuffer() OVERRIDE;
     36   virtual uint32_t GetDataBufferSize() OVERRIDE;
     37   virtual MediaStreamBuffer* GetBuffer() OVERRIDE;
     38   virtual int32_t GetBufferIndex() OVERRIDE;
     39   virtual void Invalidate() OVERRIDE;
     40 
     41   // Frame index
     42   int32_t index_;
     43 
     44   MediaStreamBuffer* buffer_;
     45 
     46   DISALLOW_COPY_AND_ASSIGN(VideoFrameResource);
     47 };
     48 
     49 }  // namespace proxy
     50 }  // namespace ppapi
     51 
     52 #endif  // PPAPI_PROXY_VIDEO_FRAME_RESOURCE_H_
     53