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