1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/* Copyright (c) 2014 The Chromium Authors. All rights reserved. 2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be 3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * found in the LICENSE file. 4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/* From pp_codecs.idl modified Fri Aug 22 13:39:56 2014. */ 7010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#ifndef PPAPI_C_PP_CODECS_H_ 9010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#define PPAPI_C_PP_CODECS_H_ 10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "ppapi/c/pp_macros.h" 12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "ppapi/c/pp_size.h" 13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "ppapi/c/pp_stdint.h" 14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** 16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * @file 17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * Video profiles. 18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** 22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * @addtogroup Enums 23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * @{ 24010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)typedef enum { 26010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) PP_VIDEOPROFILE_H264BASELINE = 0, 27010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) PP_VIDEOPROFILE_H264MAIN = 1, 28010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) PP_VIDEOPROFILE_H264EXTENDED = 2, 29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) PP_VIDEOPROFILE_H264HIGH = 3, 30010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) PP_VIDEOPROFILE_H264HIGH10PROFILE = 4, 31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) PP_VIDEOPROFILE_H264HIGH422PROFILE = 5, 32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) PP_VIDEOPROFILE_H264HIGH444PREDICTIVEPROFILE = 6, 33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) PP_VIDEOPROFILE_H264SCALABLEBASELINE = 7, 34010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) PP_VIDEOPROFILE_H264SCALABLEHIGH = 8, 35010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) PP_VIDEOPROFILE_H264STEREOHIGH = 9, 36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) PP_VIDEOPROFILE_H264MULTIVIEWHIGH = 10, 376e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) PP_VIDEOPROFILE_VP8_ANY = 11, 386e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) PP_VIDEOPROFILE_VP9_ANY = 12, 396e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) PP_VIDEOPROFILE_MAX = PP_VIDEOPROFILE_VP9_ANY 40010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} PP_VideoProfile; 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/** 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Hardware acceleration options. 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccitypedef enum { 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** Create a hardware accelerated resource only. */ 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci PP_HARDWAREACCELERATION_ONLY = 0, 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Create a hardware accelerated resource if possible. Otherwise, fall back 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * to the software implementation. 511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci PP_HARDWAREACCELERATION_WITHFALLBACK = 1, 531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** Create the software implementation only. */ 541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci PP_HARDWAREACCELERATION_NONE = 2, 551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci PP_HARDWAREACCELERATION_LAST = PP_HARDWAREACCELERATION_NONE 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} PP_HardwareAcceleration; 57010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** 58010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * @} 59010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 60010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 61010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** 62010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * @addtogroup Structs 63010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * @{ 64010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 65010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** 66010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * Struct describing a decoded video picture. The decoded picture data is stored 67010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * in the GL texture corresponding to |texture_id|. The plugin can determine 68010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * which Decode call generated the picture using |decode_id|. 69010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 70010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)struct PP_VideoPicture { 71010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) /** 72010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * |decode_id| parameter of the Decode call which generated this picture. 73010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * See the PPB_VideoDecoder function Decode() for more details. 74010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 75010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) uint32_t decode_id; 76010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) /** 77010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * Texture ID in the plugin's GL context. The plugin can use this to render 78010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * the decoded picture. 79010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 80010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) uint32_t texture_id; 81010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) /** 82010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * The GL texture target for the decoded picture. Possible values are: 83116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch * GL_TEXTURE_2D 84116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch * GL_TEXTURE_RECTANGLE_ARB 85116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch * GL_TEXTURE_EXTERNAL_OES 86010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * 87f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) * The pixel format of the texture is GL_RGBA. 88010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 89010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) uint32_t texture_target; 90010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) /** 91010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * Dimensions of the texture holding the decoded picture. 92010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 93010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) struct PP_Size texture_size; 94010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}; 95010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)/** 96010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) * @} 97010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) */ 98010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 99010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#endif /* PPAPI_C_PP_CODECS_H_ */ 100010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 101