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 */
31struct 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};
49PP_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