Roll src/third_party/WebKit ef7cfd7:80927b2 (svn 194570:194575)
[chromium-blink-merge.git] / ppapi / c / private / pp_video_frame_private.h
blob8c64476b3fd1843eff9442bab5710a5f9c450f0a
1 /* Copyright (c) 2013 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 */
6 /* From private/pp_video_frame_private.idl modified Wed Apr 24 11:49:01 2013. */
8 #ifndef PPAPI_C_PRIVATE_PP_VIDEO_FRAME_PRIVATE_H_
9 #define PPAPI_C_PRIVATE_PP_VIDEO_FRAME_PRIVATE_H_
11 #include "ppapi/c/pp_macros.h"
12 #include "ppapi/c/pp_resource.h"
13 #include "ppapi/c/pp_stdint.h"
14 #include "ppapi/c/pp_time.h"
16 /**
17 * @file
18 * This file defines the struct used to hold a video frame.
22 /**
23 * @addtogroup Structs
24 * @{
26 /**
27 * The <code>PP_VideoFrame_Private</code> struct represents a video frame.
28 * Video sources and destinations use frames to transfer video to and from
29 * the browser.
31 struct PP_VideoFrame_Private {
32 /**
33 * A timestamp placing the frame in a video stream.
35 PP_TimeTicks timestamp;
36 /**
37 * An image data resource to hold the video frame.
39 PP_Resource image_data;
40 /**
41 * Ensure that this struct is 16-bytes wide by padding the end. In some
42 * compilers, PP_TimeTicks is 8-byte aligned, so those compilers align this
43 * struct on 8-byte boundaries as well and pad it to 8 bytes even without this
44 * padding attribute. This padding makes its size consistent across
45 * compilers.
47 int32_t padding;
49 PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_VideoFrame_Private, 16);
50 /**
51 * @}
54 #endif /* PPAPI_C_PRIVATE_PP_VIDEO_FRAME_PRIVATE_H_ */