Pepper_47_C_interfaces
ppb_video_frame.h
Go to the documentation of this file.
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 
6 /* From ppb_video_frame.idl modified Thu Oct 20 13:57:04 2016. */
7 
8 #ifndef PPAPI_C_PPB_VIDEO_FRAME_H_
9 #define PPAPI_C_PPB_VIDEO_FRAME_H_
10 
11 #include "ppapi/c/pp_bool.h"
12 #include "ppapi/c/pp_macros.h"
13 #include "ppapi/c/pp_resource.h"
14 #include "ppapi/c/pp_size.h"
15 #include "ppapi/c/pp_stdint.h"
16 #include "ppapi/c/pp_time.h"
17 
18 #define PPB_VIDEOFRAME_INTERFACE_0_1 "PPB_VideoFrame;0.1"
19 #define PPB_VIDEOFRAME_INTERFACE PPB_VIDEOFRAME_INTERFACE_0_1
20 
21 /**
22  * @file
23  * Defines the <code>PPB_VideoFrame</code> interface.
24  */
25 
26 
27 /**
28  * @addtogroup Enums
29  * @{
30  */
31 typedef enum {
32  /**
33  * Unknown format value.
34  */
36  /**
37  * 12bpp YVU planar 1x1 Y, 2x2 VU samples.
38  */
40  /**
41  * 12bpp YUV planar 1x1 Y, 2x2 UV samples.
42  */
44  /**
45  * 32bpp BGRA.
46  */
48  /**
49  * The last format.
50  */
53 /**
54  * @}
55  */
56 
57 /**
58  * @addtogroup Interfaces
59  * @{
60  */
62  /**
63  * Determines if a resource is a VideoFrame resource.
64  *
65  * @param[in] resource The <code>PP_Resource</code> to test.
66  *
67  * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given
68  * resource is a VideoFrame resource or <code>PP_FALSE</code> otherwise.
69  */
71  /**
72  * Gets the timestamp of the video frame.
73  *
74  * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
75  * resource.
76  *
77  * @return A <code>PP_TimeDelta</code> containing the timestamp of the video
78  * frame. Given in seconds since the start of the containing video stream.
79  */
81  /**
82  * Sets the timestamp of the video frame. Given in seconds since the
83  * start of the containing video stream.
84  *
85  * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
86  * resource.
87  * @param[in] timestamp A <code>PP_TimeDelta</code> containing the timestamp
88  * of the video frame. Given in seconds since the start of the containing
89  * video stream.
90  */
91  void (*SetTimestamp)(PP_Resource frame, PP_TimeDelta timestamp);
92  /**
93  * Gets the format of the video frame.
94  *
95  * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
96  * resource.
97  *
98  * @return A <code>PP_VideoFrame_Format</code> containing the format of the
99  * video frame.
100  */
102  /**
103  * Gets the size of the video frame.
104  *
105  * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
106  * resource.
107  * @param[out] size A <code>PP_Size</code>.
108  *
109  * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> on success or
110  * <code>PP_FALSE</code> on failure.
111  */
112  PP_Bool (*GetSize)(PP_Resource frame, struct PP_Size* size);
113  /**
114  * Gets the data buffer for video frame pixels.
115  *
116  * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
117  * resource.
118  *
119  * @return A pointer to the beginning of the data buffer.
120  */
121  void* (*GetDataBuffer)(PP_Resource frame);
122  /**
123  * Gets the size of data buffer.
124  *
125  * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame
126  * resource.
127  *
128  * @return The size of the data buffer.
129  */
130  uint32_t (*GetDataBufferSize)(PP_Resource frame);
131 };
132 
134 /**
135  * @}
136  */
137 
138 #endif /* PPAPI_C_PPB_VIDEO_FRAME_H_ */
139 
PP_Bool(* IsVideoFrame)(PP_Resource resource)
PP_VideoFrame_Format(* GetFormat)(PP_Resource frame)
PP_TimeDelta(* GetTimestamp)(PP_Resource frame)
int32_t PP_Resource
Definition: pp_resource.h:40
PP_VideoFrame_Format
PP_Bool(* GetSize)(PP_Resource frame, struct PP_Size *size)
void(* SetTimestamp)(PP_Resource frame, PP_TimeDelta timestamp)
PP_Bool
Definition: pp_bool.h:30
double PP_TimeDelta
Definition: pp_time.h:49
uint32_t(* GetDataBufferSize)(PP_Resource frame)