Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / ppapi / api / pp_codecs.idl
1 /* Copyright (c) 2014 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 /**
7  * Video profiles.
8  */
9 enum PP_VideoProfile {
10   PP_VIDEOPROFILE_H264BASELINE = 0,
11   PP_VIDEOPROFILE_H264MAIN = 1,
12   PP_VIDEOPROFILE_H264EXTENDED = 2,
13   PP_VIDEOPROFILE_H264HIGH = 3,
14   PP_VIDEOPROFILE_H264HIGH10PROFILE = 4,
15   PP_VIDEOPROFILE_H264HIGH422PROFILE = 5,
16   PP_VIDEOPROFILE_H264HIGH444PREDICTIVEPROFILE = 6,
17   PP_VIDEOPROFILE_H264SCALABLEBASELINE = 7,
18   PP_VIDEOPROFILE_H264SCALABLEHIGH = 8,
19   PP_VIDEOPROFILE_H264STEREOHIGH = 9,
20   PP_VIDEOPROFILE_H264MULTIVIEWHIGH = 10,
21   PP_VIDEOPROFILE_VP8_ANY = 11,
22   PP_VIDEOPROFILE_VP9_ANY = 12,
23   PP_VIDEOPROFILE_MAX = PP_VIDEOPROFILE_VP9_ANY
24 };
25
26 /**
27  * Hardware acceleration options.
28  */
29 enum PP_HardwareAcceleration {
30   /** Create a hardware accelerated resource only. */
31   PP_HARDWAREACCELERATION_ONLY = 0,
32
33   /**
34    * Create a hardware accelerated resource if possible. Otherwise, fall back
35    * to the software implementation.
36    */
37   PP_HARDWAREACCELERATION_WITHFALLBACK = 1,
38
39   /** Create the software implementation only. */
40   PP_HARDWAREACCELERATION_NONE = 2,
41
42   PP_HARDWAREACCELERATION_LAST = PP_HARDWAREACCELERATION_NONE
43 };
44
45 /**
46  * Struct describing a decoded video picture. The decoded picture data is stored
47  * in the GL texture corresponding to |texture_id|. The plugin can determine
48  * which Decode call generated the picture using |decode_id|.
49  */
50 struct PP_VideoPicture {
51   /**
52    * |decode_id| parameter of the Decode call which generated this picture.
53    * See the PPB_VideoDecoder function Decode() for more details.
54    */
55   uint32_t decode_id;
56
57   /**
58    * Texture ID in the plugin's GL context. The plugin can use this to render
59    * the decoded picture.
60    */
61   uint32_t texture_id;
62
63   /**
64    * The GL texture target for the decoded picture. Possible values are:
65    *   GL_TEXTURE_2D
66    *   GL_TEXTURE_RECTANGLE_ARB
67    *   GL_TEXTURE_EXTERNAL_OES
68    *
69    * The pixel format of the texture is GL_RGBA.
70    */
71   uint32_t texture_target;
72
73   /**
74    * Dimensions of the texture holding the decoded picture.
75    */
76   PP_Size texture_size;
77 };