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