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_THUNK_PPB_VIDEO_FRAME_API_H_
6#define PPAPI_THUNK_PPB_VIDEO_FRAME_API_H_
7
8#include "ppapi/c/ppb_video_frame.h"
9#include "ppapi/thunk/ppapi_thunk_export.h"
10
11namespace ppapi {
12
13union MediaStreamBuffer;
14
15namespace thunk {
16
17class PPAPI_THUNK_EXPORT PPB_VideoFrame_API {
18 public:
19  virtual ~PPB_VideoFrame_API() {}
20  virtual PP_TimeDelta GetTimestamp() = 0;
21  virtual void SetTimestamp(PP_TimeDelta timestamp) = 0;
22  virtual PP_VideoFrame_Format GetFormat() = 0;
23  virtual PP_Bool GetSize(PP_Size* size) = 0;
24  virtual void* GetDataBuffer() = 0;
25  virtual uint32_t GetDataBufferSize() = 0;
26
27  // Methods used by Pepper internal implementation only.
28  virtual MediaStreamBuffer* GetBuffer() = 0;
29  virtual int32_t GetBufferIndex() = 0;
30  virtual void Invalidate() = 0;
31};
32
33}  // namespace thunk
34}  // namespace ppapi
35
36#endif  // PPAPI_THUNK_PPB_VIDEO_FRAME_API_H_
37