• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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  */
5 
6 /* From private/pp_video_frame_private.idl modified Wed Apr 24 11:49:01 2013. */
7 
8 #ifndef PPAPI_C_PRIVATE_PP_VIDEO_FRAME_PRIVATE_H_
9 #define PPAPI_C_PRIVATE_PP_VIDEO_FRAME_PRIVATE_H_
10 
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"
15 
16 /**
17  * @file
18  * This file defines the struct used to hold a video frame.
19  */
20 
21 
22 /**
23  * @addtogroup Structs
24  * @{
25  */
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.
30  */
31 struct PP_VideoFrame_Private {
32   /**
33    * A timestamp placing the frame in a video stream.
34    */
35   PP_TimeTicks timestamp;
36   /**
37    * An image data resource to hold the video frame.
38    */
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.
46    */
47   int32_t padding;
48 };
49 PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_VideoFrame_Private, 16);
50 /**
51  * @}
52  */
53 
54 #endif  /* PPAPI_C_PRIVATE_PP_VIDEO_FRAME_PRIVATE_H_ */
55 
56