Index: ppapi/api/ppb_video_frame.idl |
diff --git a/ppapi/api/ppb_video_frame.idl b/ppapi/api/ppb_video_frame.idl |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e929badfa533cd8d692d235da63df18b429efa9c |
--- /dev/null |
+++ b/ppapi/api/ppb_video_frame.idl |
@@ -0,0 +1,121 @@ |
+/* Copyright (c) 2013 The Chromium Authors. All rights reserved. |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+/** |
+ * Defines the <code>PPB_VideoFrame</code> interface. |
+ */ |
+label Chrome { |
+ [channel=dev] M34 = 0.1 |
+}; |
+ |
+enum PP_VideoFrame_Format { |
+ /** |
+ * Unknown format value. |
+ */ |
+ PP_VIDEOFRAME_FORMAT_UNKNOWN = 0, |
+ |
+ /** |
+ * 12bpp YVU planar 1x1 Y, 2x2 VU samples. |
+ */ |
+ PP_VIDEOFRAME_FORMAT_YV12 = 1, |
+ |
+ /** |
+ * 16bpp YVU planar 1x1 Y, 2x1 VU samples. |
+ */ |
+ PP_VIDEOFRAME_FORMAT_YV16 = 2, |
+ |
+ /** |
+ * 12bpp YVU planar 1x1 Y, 2x2 VU samples. |
+ */ |
+ PP_VIDEOFRAME_FORMAT_I420 = 3, |
+ |
+ /** |
+ * 20bpp YVU planar 1x1 Y, 2x2 VU, 1x1 A samples. |
+ */ |
+ PP_VIDEOFRAME_FORMAT_YV12A = 4, |
+ |
+ /** |
+ * JPEG color range version of YV12. |
+ */ |
+ PP_VIDEOFRAME_FORMAT_YV12J = 5 |
+}; |
+ |
+interface PPB_VideoFrame { |
+ /** |
+ * Determines if a resource is a VideoFrame resource. |
+ * |
+ * @param[in] resource The <code>PP_Resource</code> to test. |
+ * |
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> if the given |
+ * resource is a VideoFrame resource or <code>PP_FALSE</code> otherwise. |
+ */ |
+ PP_Bool IsVideoFrame([in] PP_Resource resource); |
+ |
+ /** |
+ * Gets timestamp of the video frame. |
bbudge
2013/12/27 22:04:18
s/timestamp/the timestamp
Peng
2013/12/30 14:49:45
Done.
|
+ * |
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame |
+ * resource. |
+ * |
+ * @return A <code>PP_TimeDelta</code> containing timestamp of the video |
bbudge
2013/12/27 22:04:18
s/timestamp/the timestamp
Peng
2013/12/30 14:49:45
Done.
|
+ * frame. Given in seconds since the start of the containing video stream. |
+ */ |
+ PP_TimeDelta GetTimestamp([in] PP_Resource frame); |
+ |
+ /** |
+ * Sets the timestamp of the video frame. Given in seconds since the |
+ * start of the containing video stream. |
+ * |
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame |
+ * resource. |
+ * @param[in] timestamp A <code>PP_TimeDelta</code> containing the timestamp |
+ * of the video frame. Given in seconds since the start of the containing |
+ * video stream. |
+ */ |
+ void SetTimestamp([in] PP_Resource frame, [in] PP_TimeDelta timestamp); |
+ |
+ /** |
+ * Gets format of the video frame. |
bbudge
2013/12/27 22:04:18
s/format/the format
Peng
2013/12/30 14:49:45
Done.
|
+ * |
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame |
+ * resource. |
+ * |
+ * @return A <code>PP_VideoFrame_Format</code> containing the format of the |
+ * video frame. |
+ */ |
+ PP_VideoFrame_Format GetFormat([in] PP_Resource frame); |
+ |
+ /** |
+ * Gets size of the video frame. |
bbudge
2013/12/27 22:04:18
s/size/the size
Peng
2013/12/30 14:49:45
Done.
|
+ * |
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame |
+ * resource. |
+ * @param[out] size A <code>PP_Size</code>. |
+ * |
+ * @return A <code>PP_Bool</code> with <code>PP_TRUE</code> on success or |
+ * <code>PP_FALSE</code> on failure. |
+ */ |
+ PP_Bool GetSize([in] PP_Resource frame, [out] PP_Size size); |
+ |
+ /** |
+ * Gets data buffer for video frame pixels. |
bbudge
2013/12/27 22:04:18
s/data buffer/the data buffer
Peng
2013/12/30 14:49:45
Done.
|
+ * |
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame |
+ * resource. |
+ * |
+ * @return A pointer to the beginning of data buffer. |
bbudge
2013/12/27 22:04:18
s/data/the data
Peng
2013/12/30 14:49:45
Done.
|
+ */ |
+ mem_t GetDataBuffer([in] PP_Resource frame); |
+ |
+ /** |
+ * Gets size of data buffer. |
bbudge
2013/12/27 22:04:18
s/size/the size
Peng
2013/12/30 14:49:45
Done.
|
+ * |
+ * @param[in] frame A <code>PP_Resource</code> corresponding to a video frame |
+ * resource. |
+ * |
+ * @return The size of the data buffer. |
+ */ |
+ uint32_t GetDataBufferSize([in] PP_Resource frame); |
+}; |