Pepper_56_C_interfaces
Pepper_56_C_interfaces
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
pp_media_codecs_samsung.h
Go to the documentation of this file.
1 /* Copyright (c) 2016 Samsung Electronics. All rights reserved.
2  */
3 
4 /* From samsung/pp_media_codecs_samsung.idl,
5  * modified Tue Nov 15 13:36:56 2016.
6  */
7 
8 #ifndef PPAPI_C_SAMSUNG_PP_MEDIA_CODECS_SAMSUNG_H_
9 #define PPAPI_C_SAMSUNG_PP_MEDIA_CODECS_SAMSUNG_H_
10 
11 #include "ppapi/c/pp_macros.h"
12 
27 /* Enum describing audio codec types.
28  * Do not change their ordinal values. When deleting a codec replace it
29  * with a dummy value; when adding a codec, do so at the bottom
30  * before PP_AUDIOCODEC_TYPE_SAMSUNG_MAX.
31  */
32 typedef enum {
33  PP_AUDIOCODEC_TYPE_SAMSUNG_UNKNOWN = 0,
34  PP_AUDIOCODEC_TYPE_SAMSUNG_AAC = 1,
35  PP_AUDIOCODEC_TYPE_SAMSUNG_MP3 = 2,
36  PP_AUDIOCODEC_TYPE_SAMSUNG_PCM = 3,
37  PP_AUDIOCODEC_TYPE_SAMSUNG_VORBIS = 4,
38  PP_AUDIOCODEC_TYPE_SAMSUNG_FLAC = 5,
39  PP_AUDIOCODEC_TYPE_SAMSUNG_AMR_NB = 6,
40  PP_AUDIOCODEC_TYPE_SAMSUNG_AMR_WB = 7,
41  PP_AUDIOCODEC_TYPE_SAMSUNG_PCM_MULAW = 8,
42  PP_AUDIOCODEC_TYPE_SAMSUNG_GSM_MS = 9,
43  PP_AUDIOCODEC_TYPE_SAMSUNG_PCM_S16BE = 10,
44  PP_AUDIOCODEC_TYPE_SAMSUNG_PCM_S24BE = 11,
45  PP_AUDIOCODEC_TYPE_SAMSUNG_OPUS = 12,
46  PP_AUDIOCODEC_TYPE_SAMSUNG_EAC3 = 13,
47  PP_AUDIOCODEC_TYPE_SAMSUNG_MP2 = 14,
48  PP_AUDIOCODEC_TYPE_SAMSUNG_DTS = 15,
49  PP_AUDIOCODEC_TYPE_SAMSUNG_AC3 = 16,
50  PP_AUDIOCODEC_TYPE_SAMSUNG_WMAV1 = 17,
51  PP_AUDIOCODEC_TYPE_SAMSUNG_WMAV2 = 18,
52  /* Must always be last! */
53  PP_AUDIOCODEC_TYPE_SAMSUNG_MAX
54 } PP_AudioCodec_Type_Samsung;
55 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_AudioCodec_Type_Samsung, 4);
56 
57 /* Enum describing Audio Codec Profiles. */
58 typedef enum {
59  PP_AUDIOCODEC_PROFILE_SAMSUNG_UNKNOWN = -1,
60  PP_AUDIOCODEC_PROFILE_SAMSUNG_AAC_MAIN = 0,
61  PP_AUDIOCODEC_PROFILE_SAMSUNG_AAC_LOW = 1,
62  PP_AUDIOCODEC_PROFILE_SAMSUNG_AAC_SSR = 2,
63  PP_AUDIOCODEC_PROFILE_SAMSUNG_AAC_LTP = 3,
64  PP_AUDIOCODEC_PROFILE_SAMSUNG_AAC_HE = 4,
65  PP_AUDIOCODEC_PROFILE_SAMSUNG_AAC_HE_V2 = 5,
66  PP_AUDIOCODEC_PROFILE_SAMSUNG_AAC_LD = 6,
67  PP_AUDIOCODEC_PROFILE_SAMSUNG_AAC_ELD = 7,
68  PP_AUDIOCODEC_PROFILE_SAMSUNG_MPEG2_AAC_LOW = 8,
69  PP_AUDIOCODEC_PROFILE_SAMSUNG_MPEG2_AAC_HE = 9,
70  PP_AUDIOCODEC_PROFILE_SAMSUNG_DTS = 10,
71  PP_AUDIOCODEC_PROFILE_SAMSUNG_DTS_ES = 11,
72  PP_AUDIOCODEC_PROFILE_SAMSUNG_DTS_96_24 = 12,
73  PP_AUDIOCODEC_PROFILE_SAMSUNG_DTS_HD_HRA = 13,
74  PP_AUDIOCODEC_PROFILE_SAMSUNG_DTS_HD_MA = 14,
75  /* this is the really last profile, could be used for checking supported
76  * profile sets.
77  */
78  PP_AUDIOCODEC_PROFILE_SAMSUNG_LAST = PP_AUDIOCODEC_PROFILE_SAMSUNG_DTS_HD_MA
79 } PP_AudioCodec_Profile_Samsung;
80 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_AudioCodec_Profile_Samsung, 4);
81 
82 /* Enum describing Samples format. */
83 typedef enum {
84  PP_SAMPLEFORMAT_SAMSUNG_UNKNOWN = 0,
85  /* Unsigned 8-bit w/ bias of 128. */
86  PP_SAMPLEFORMAT_SAMSUNG_U8 = 1,
87  /* Signed 16-bit. */
88  PP_SAMPLEFORMAT_SAMSUNG_S16 = 2,
89  /* Signed 32-bit. */
90  PP_SAMPLEFORMAT_SAMSUNG_S32 = 3,
91  /* Float 32-bit. */
92  PP_SAMPLEFORMAT_SAMSUNG_F32 = 4,
93  /* Signed 16-bit planar. */
94  PP_SAMPLEFORMAT_SAMSUNG_PLANARS16 = 5,
95  /* Float 32-bit planar. */
96  PP_SAMPLEFORMAT_SAMSUNG_PLANARF32 = 6,
97  /* Must always be last! */
98  PP_SAMPLEFORMAT_SAMSUNG_MAX
99 } PP_SampleFormat_Samsung;
100 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_SampleFormat_Samsung, 4);
101 
102 /* Enumerates the various representations of the ordering of audio channels.
103  * Logged to UMA, so never reuse a value, always add new/greater ones!
104  */
105 typedef enum {
106  PP_CHANNEL_LAYOUT_SAMSUNG_NONE = 0,
107  PP_CHANNEL_LAYOUT_SAMSUNG_UNSUPPORTED = 1,
108  /* Front C */
109  PP_CHANNEL_LAYOUT_SAMSUNG_MONO = 2,
110  /* Front L, Front R */
111  PP_CHANNEL_LAYOUT_SAMSUNG_STEREO = 3,
112  /* Front L, Front R, Back C */
113  PP_CHANNEL_LAYOUT_SAMSUNG_2_1 = 4,
114  /* Front L, Front R, Front C */
115  PP_CHANNEL_LAYOUT_SAMSUNG_SURROUND = 5,
116  /* Front L, Front R, Front C, Back C */
117  PP_CHANNEL_LAYOUT_SAMSUNG_4_0 = 6,
118  /* Front L, Front R, Side L, Side R */
119  PP_CHANNEL_LAYOUT_SAMSUNG_2_2 = 7,
120  /* Front L, Front R, Back L, Back R */
121  PP_CHANNEL_LAYOUT_SAMSUNG_QUAD = 8,
122  /* Front L, Front R, Front C, Side L, Side R */
123  PP_CHANNEL_LAYOUT_SAMSUNG_5_0 = 9,
124  /* Front L, Front R, Front C, Side L, Side R, LFE */
125  PP_CHANNEL_LAYOUT_SAMSUNG_5_1 = 10,
126  /* Front L, Front R, Front C, Back L, Back R */
127  PP_CHANNEL_LAYOUT_SAMSUNG_5_0_BACK = 11,
128  /* Front L, Front R, Front C, Back L, Back R, LFE */
129  PP_CHANNEL_LAYOUT_SAMSUNG_5_1_BACK = 12,
130  /* Front L, Front R, Front C, Side L, Side R, Back L, Back R */
131  PP_CHANNEL_LAYOUT_SAMSUNG_7_0 = 13,
132  /* Front L, Front R, Front C, Side L, Side R, LFE, Back L, Back R */
133  PP_CHANNEL_LAYOUT_SAMSUNG_7_1 = 14,
134  /* Front L, Front R, Front C, Side L, Side R, LFE, Front LofC, Front RofC */
135  PP_CHANNEL_LAYOUT_SAMSUNG_7_1_WIDE = 15,
136  /* Stereo L, Stereo R */
137  PP_CHANNEL_LAYOUT_SAMSUNG_STEREO_DOWNMIX = 16,
138  /* Stereo L, Stereo R, LFE */
139  PP_CHANNEL_LAYOUT_SAMSUNG_2POINT1 = 17,
140  /* Stereo L, Stereo R, Front C, LFE */
141  PP_CHANNEL_LAYOUT_SAMSUNG_3_1 = 18,
142  /* Stereo L, Stereo R, Front C, Rear C, LFE */
143  PP_CHANNEL_LAYOUT_SAMSUNG_4_1 = 19,
144  /* Stereo L, Stereo R, Front C, Side L, Side R, Back C */
145  PP_CHANNEL_LAYOUT_SAMSUNG_6_0 = 20,
146  /* Stereo L, Stereo R, Side L, Side R, Front LofC, Front RofC */
147  PP_CHANNEL_LAYOUT_SAMSUNG_6_0_FRONT = 21,
148  /* Stereo L, Stereo R, Side L, Side R, Front C, Rear C. */
149  PP_CHANNEL_LAYOUT_SAMSUNG_HEXAGONAL = 22,
150  /* Stereo L, Stereo R, Side L, Side R, Front C, Rear Center, LFE */
151  PP_CHANNEL_LAYOUT_SAMSUNG_6_1 = 23,
152  /* Stereo L, Stereo R, Back L, Back R, Front C, Rear Center, LFE */
153  PP_CHANNEL_LAYOUT_SAMSUNG_6_1_BACK = 24,
154  /* Stereo L, Stereo R, Side L, Side R, Front LofC, Front RofC, LFE */
155  PP_CHANNEL_LAYOUT_SAMSUNG_6_1_FRONT = 25,
156  /* Front L, Front R, Front C, Side L, Side R, Front LofC, Front RofC */
157  PP_CHANNEL_LAYOUT_SAMSUNG_7_0_FRONT = 26,
158  /* Front L, Front R, Front C, Back L, Back R, LFE, Front LofC, Front RofC */
159  PP_CHANNEL_LAYOUT_SAMSUNG_7_1_WIDE_BACK = 27,
160  /* Front L, Front R, Front C, Side L, Side R, Rear C, Back L, Back R. */
161  PP_CHANNEL_LAYOUT_SAMSUNG_OCTAGONAL = 28,
162  /* Channels are not explicitly mapped to speakers. */
163  PP_CHANNEL_LAYOUT_SAMSUNG_DISCRETE = 29,
164  /* Total number of layouts.
165  * Must always be last!
166  */
167  PP_CHANNEL_LAYOUT_SAMSUNG_MAX
168 } PP_ChannelLayout_Samsung;
169 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_ChannelLayout_Samsung, 4);
170 
171 /* Enum describing video codecs type. */
172 typedef enum {
173  PP_VIDEOCODEC_TYPE_SAMSUNG_UNKNOWN = 0,
174  PP_VIDEOCODEC_TYPE_SAMSUNG_H264 = 1,
175  PP_VIDEOCODEC_TYPE_SAMSUNG_VC1 = 2,
176  PP_VIDEOCODEC_TYPE_SAMSUNG_MPEG2 = 3,
177  PP_VIDEOCODEC_TYPE_SAMSUNG_MPEG4 = 4,
178  PP_VIDEOCODEC_TYPE_SAMSUNG_THEORA = 5,
179  PP_VIDEOCODEC_TYPE_SAMSUNG_VP8 = 6,
180  PP_VIDEOCODEC_TYPE_SAMSUNG_VP9 = 7,
181  PP_VIDEOCODEC_TYPE_SAMSUNG_H263 = 8,
182  PP_VIDEOCODEC_TYPE_SAMSUNG_WMV1 = 9,
183  PP_VIDEOCODEC_TYPE_SAMSUNG_WMV2 = 10,
184  PP_VIDEOCODEC_TYPE_SAMSUNG_WMV3 = 11,
185  PP_VIDEOCODEC_TYPE_SAMSUNG_INDEO3 = 12,
186  PP_VIDEOCODEC_TYPE_SAMSUNG_H265 = 13,
187  /* PP_VIDEOCODEC_TYPE_SAMSUNG_MAX - last codec from chromium's set.
188  */
189  PP_VIDEOCODEC_TYPE_SAMSUNG_MAX = PP_VIDEOCODEC_TYPE_SAMSUNG_VP9,
190  /* Must equal the last "real" codec above.
191  * Used to determine absolute set size.
192  */
193  PP_VIDEOCODEC_TYPE_SAMSUNG_LAST = PP_VIDEOCODEC_TYPE_SAMSUNG_H265
194 } PP_VideoCodec_Type_Samsung;
195 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_VideoCodec_Type_Samsung, 4);
196 
197 /* Video stream profile.
198  * Keep the values in this enum unique, as they imply format (h.264 vs. VP8,
199  * for example), and keep the values for a particular format grouped
200  * together for clarity.
201  */
202 typedef enum {
203  PP_VIDEOCODEC_PROFILE_SAMSUNG_UNKNOWN = -1,
204  PP_VIDEOCODEC_PROFILE_SAMSUNG_H264_MIN = 0,
205  PP_VIDEOCODEC_PROFILE_SAMSUNG_H264_BASELINE =
206  PP_VIDEOCODEC_PROFILE_SAMSUNG_H264_MIN,
207  PP_VIDEOCODEC_PROFILE_SAMSUNG_H264_MAIN = 1,
208  PP_VIDEOCODEC_PROFILE_SAMSUNG_H264_EXTENDED = 2,
209  PP_VIDEOCODEC_PROFILE_SAMSUNG_H264_HIGH = 3,
210  PP_VIDEOCODEC_PROFILE_SAMSUNG_H264_HIGH10 = 4,
211  PP_VIDEOCODEC_PROFILE_SAMSUNG_H264_HIGH422 = 5,
212  PP_VIDEOCODEC_PROFILE_SAMSUNG_H264_HIGH444PREDICTIVE = 6,
213  PP_VIDEOCODEC_PROFILE_SAMSUNG_H264_SCALABLEBASELINE = 7,
214  PP_VIDEOCODEC_PROFILE_SAMSUNG_H264_SCALABLEHIGH = 8,
215  PP_VIDEOCODEC_PROFILE_SAMSUNG_H264_STEREOHIGH = 9,
216  PP_VIDEOCODEC_PROFILE_SAMSUNG_H264_MULTIVIEWHIGH = 10,
217  PP_VIDEOCODEC_PROFILE_SAMSUNG_H264_MAX =
218  PP_VIDEOCODEC_PROFILE_SAMSUNG_H264_MULTIVIEWHIGH,
219  PP_VIDEOCODEC_PROFILE_SAMSUNG_VP8_MIN = 11,
220  PP_VIDEOCODEC_PROFILE_SAMSUNG_VP8_MAIN =
221  PP_VIDEOCODEC_PROFILE_SAMSUNG_VP8_MIN,
222  PP_VIDEOCODEC_PROFILE_SAMSUNG_VP8_MAX =
223  PP_VIDEOCODEC_PROFILE_SAMSUNG_VP8_MAIN,
224  PP_VIDEOCODEC_PROFILE_SAMSUNG_VP9_MIN = 12,
225  PP_VIDEOCODEC_PROFILE_SAMSUNG_VP9_MAIN =
226  PP_VIDEOCODEC_PROFILE_SAMSUNG_VP9_MIN,
227  PP_VIDEOCODEC_PROFILE_SAMSUNG_VP9_MAX =
228  PP_VIDEOCODEC_PROFILE_SAMSUNG_VP9_MAIN,
229  /* next profile means last from Chromium profiles set */
230  PP_VIDEOCODEC_PROFILE_SAMSUNG_MAX = PP_VIDEOCODEC_PROFILE_SAMSUNG_VP9_MAX,
231  /* Next profiles expand Chromium set
232  * and they are intentionally above PROFILE_MAX.
233  */
234  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG2_MIN = 13,
235  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG2_422 =
236  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG2_MIN,
237  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG2_HIGH = 14,
238  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG2_SS = 15,
239  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG2_SNR_SCALABLE = 16,
240  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG2_MAIN = 17,
241  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG2_SIMPLE = 18,
242  PP_VIDEOCODEC_PROFILE_SAMSUNG_VC1_SIMPLE = 19,
243  PP_VIDEOCODEC_PROFILE_SAMSUNG_VC1_MAIN = 20,
244  PP_VIDEOCODEC_PROFILE_SAMSUNG_VC1_COMPLEX = 21,
245  PP_VIDEOCODEC_PROFILE_SAMSUNG_VC1_ADVANCED = 22,
246  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_SIMPLE = 23,
247  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_SIMPLE_SCALABLE = 24,
248  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_CORE = 25,
249  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_MAIN = 26,
250  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_N_BIT = 27,
251  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_SCALABLE_TEXTURE = 28,
252  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_SIMPLE_FACE_ANIMATION = 29,
253  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_BASIC_ANIMATED_TEXTURE = 30,
254  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_HYBRID = 31,
255  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_ADVANCED_REAL_TIME = 32,
256  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_CORE_SCALABLE = 33,
257  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_ADVANCED_CODING = 34,
258  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_ADVANCED_CORE = 35,
259  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_ADVANCED_SCALABLE_TEXTURE = 36,
260  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_SIMPLE_STUDIO = 37,
261  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_ADVANCED_SIMPLE = 38,
262  /* this is the really last profile, it's could be used for checking
263  * supported profile sets.
264  */
265  PP_VIDEOCODEC_PROFILE_SAMSUNG_LAST =
266  PP_VIDEOCODEC_PROFILE_SAMSUNG_MPEG4_ADVANCED_SIMPLE
267 } PP_VideoCodec_Profile_Samsung;
268 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_VideoCodec_Profile_Samsung, 4);
269 
270 /* Enum describing video frames formats. */
271 typedef enum {
272  /* Invalid format value. Used for error reporting. */
273  PP_VIDEOFRAME_FORMAT_SAMSUNG_INVALID = 0,
274  /* 32bpp RGB packed with extra byte 8:8:8 */
275  PP_VIDEOFRAME_FORMAT_SAMSUNG_RGB32 = 4,
276  /* 12bpp YVU planar 1x1 Y, 2x2 VU samples */
277  PP_VIDEOFRAME_FORMAT_SAMSUNG_YV12 = 6,
278  /* 16bpp YVU planar 1x1 Y, 2x1 VU samples */
279  PP_VIDEOFRAME_FORMAT_SAMSUNG_YV16 = 7,
280  /* An empty frame. */
281  PP_VIDEOFRAME_FORMAT_SAMSUNG_EMPTY = 9,
282  /* 12bpp YVU planar 1x1 Y, 2x2 UV samples. */
283  PP_VIDEOFRAME_FORMAT_SAMSUNG_I420 = 11,
284  /* Native texture. Pixel-format agnostic. */
285  PP_VIDEOFRAME_FORMAT_SAMSUNG_NATIVE_TEXTURE = 12,
286  /* Hole frame. */
287  PP_VIDEOFRAME_FORMAT_SAMSUNG_HOLE = 13,
288  /* 20bpp YUVA planar 1x1 Y, 2x2 VU, 1x1 A samples. */
289  PP_VIDEOFRAME_FORMAT_SAMSUNG_YV12A = 14,
290  PP_VIDEOFRAME_FORMAT_SAMSUNG_LAST = PP_VIDEOFRAME_FORMAT_SAMSUNG_YV12A
291 } PP_VideoFrame_Format_Samsung;
292 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_VideoFrame_Format_Samsung, 4);
297 #endif /* PPAPI_C_SAMSUNG_PP_MEDIA_CODECS_SAMSUNG_H_ */
298