1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* Copyright (c) 2013 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/** 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * This file defines the struct used to hold a video frame. 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/** 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * The <code>PP_VideoFrame_Private</code> struct represents a video frame. 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Video sources and destinations use frames to transfer video to and from 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * the browser. 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)[assert_size(16)] 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)struct PP_VideoFrame_Private { 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) /** 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * A timestamp placing the frame in a video stream. 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) PP_TimeTicks timestamp; 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) /** 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * An image data resource to hold the video frame. 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) PP_Resource image_data; 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) /** 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Ensure that this struct is 16-bytes wide by padding the end. In some 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * compilers, PP_TimeTicks is 8-byte aligned, so those compilers align this 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * struct on 8-byte boundaries as well and pad it to 8 bytes even without this 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * padding attribute. This padding makes its size consistent across 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * compilers. 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int32_t padding; 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 37