Home | History | Annotate | Download | only in private
      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