Pepper_31_C_interfaces
pp_stream_parser_samsung.h
Go to the documentation of this file.
1 /**
2  * This file defines the common part of
3  * <code>PP[PB]_StreamParser_Samsung</code> interface.
4  *
5  * All enums defined here, shoud be synchronized with corresponding enums
6  * in chromium's media namespace
7  */
8 
9 /* From samsung/pp_stream_parser_samsung.idl,
10  * modified Mon Jan 13 14:27:13 2014.
11  */
12 
13 #ifndef PPAPI_C_SAMSUNG_PP_STREAM_PARSER_SAMSUNG_H_
14 #define PPAPI_C_SAMSUNG_PP_STREAM_PARSER_SAMSUNG_H_
15 
16 #include "ppapi/c/pp_bool.h"
17 #include "ppapi/c/pp_macros.h"
18 #include "ppapi/c/pp_stdint.h"
19 #include "ppapi/c/pp_var.h"
20 #include "ppapi/c/samsung/pp_media_common_samsung.h"
21 
22 /**
23  * @file
24  *
25  * ToDo: analyze AudioCodec, VideoCodec and similiar enum's
26  * for capability to combination together
27  */
28 
29 
30 /**
31  * @addtogroup Enums
32  * @{
33  */
34 typedef enum {
35  /* These values are histogrammed over time; do not change their ordinal
36  * values. When deleting a codec replace it with a dummy value; when adding a
37  * codec, do so at the bottom before PP_AUDIOCODEC_TYPE_MAX. */
52  /* enlargement */
58  /* DO NOT ADD RANDOM AUDIO CODECS!
59  *
60  * The only acceptable time to add a new codec is if there is production code
61  * that uses said codec in the same CL. */
62  /* Must always be last! */
66 
67 typedef enum {
84  /* this is the really last profile, it's could be used for checking
85  * supported profile sets */
89 
90 typedef enum {
91  /* These values are histogrammed over time; do not change their ordinal
92  * values. When deleting a sample format replace it with a dummy value; when
93  * adding a sample format, do so at the bottom before PP_SAMPLEFORMAT_Max. */
95  /* Unsigned 8-bit w/ bias of 128. */
97  /* Signed 16-bit. */
99  /* Signed 32-bit. */
101  /* Float 32-bit. */
103  /* Signed 16-bit planar. */
105  /* Float 32-bit planar. */
107  /* Must always be last! */
111 
112 /* Enumerates the various representations of the ordering of audio channels.
113  * Logged to UMA, so never reuse a value, always add new/greater ones! */
114 typedef enum {
117  /* Front C */
119  /* Front L, Front R */
121  /* Front L, Front R, Back C */
123  /* Front L, Front R, Front C */
125  /* Front L, Front R, Front C, Back C */
127  /* Front L, Front R, Side L, Side R */
129  /* Front L, Front R, Back L, Back R */
131  /* Front L, Front R, Front C, Side L, Side R */
133  /* Front L, Front R, Front C, Side L, Side R, LFE */
135  /* Front L, Front R, Front C, Back L, Back R */
137  /* Front L, Front R, Front C, Back L, Back R, LFE */
139  /* Front L, Front R, Front C, Side L, Side R, Back L, Back R */
141  /* Front L, Front R, Front C, Side L, Side R, LFE, Back L, Back R */
143  /* Front L, Front R, Front C, Side L, Side R, LFE, Front LofC, Front RofC */
145  /* Stereo L, Stereo R */
147  /* Stereo L, Stereo R, LFE */
149  /* Stereo L, Stereo R, Front C, LFE */
151  /* Stereo L, Stereo R, Front C, Rear C, LFE */
153  /* Stereo L, Stereo R, Front C, Side L, Side R, Back C */
155  /* Stereo L, Stereo R, Side L, Side R, Front LofC, Front RofC */
157  /* Stereo L, Stereo R, Side L, Side R, Front C, Rear C. */
159  /* Stereo L, Stereo R, Side L, Side R, Front C, Rear Center, LFE */
161  /* Stereo L, Stereo R, Back L, Back R, Front C, Rear Center, LFE */
163  /* Stereo L, Stereo R, Side L, Side R, Front LofC, Front RofC, LFE */
165  /* Front L, Front R, Front C, Side L, Side R, Front LofC, Front RofC */
167  /* Front L, Front R, Front C, Back L, Back R, LFE, Front LofC, Front RofC */
169  /* Front L, Front R, Front C, Side L, Side R, Rear C, Back L, Back R. */
171  /* Channels are not explicitly mapped to speakers. */
173  /* Total number of layouts.
174  * Must always be last! */
178 
179 typedef enum {
180  /* These values are histogrammed over time; do not change their ordinal
181  * values. When deleting a codec replace it with a dummy value; when adding a
182  * codec, do so at the bottom (and update PP_VIDEOCODEC_VideoCodecMax). */
191  /* enlargement */
197  /* DO NOT ADD RANDOM VIDEO CODECS!
198  *
199  * The only acceptable time to add a new codec is if there is production code
200  * that uses said codec in the same CL. */
201  /* Must equal the last "real" codec above. */
205 
206 /* Video stream profile. This *must* match PP_VideoDecoder_Profile.
207  * (enforced in webkit/plugins/ppapi/ppb_video_decoder_impl.cc) */
208 typedef enum {
209  /* Keep the values in this enum unique, as they imply format (h.264 vs. VP8,
210  * for example), and keep the values for a particular format grouped
211  * together for clarity. */
232  /* next profile means last from Chromium profiles set */
234  /* Next profiles expand Chromium set
235  * and they are intentionally above PROFILE_MAX */
263  /* this is the really last profile, it's could be used for checking
264  * supported profile sets */
268 
269 typedef enum {
270  /* Invalid format value. Used for error reporting. */
272  /* 32bpp RGB packed with extra byte 8:8:8 */
274  /* 12bpp YVU planar 1x1 Y, 2x2 VU samples */
276  /* 16bpp YVU planar 1x1 Y, 2x1 VU samples */
278  /* An empty frame. */
280  /* 12bpp YVU planar 1x1 Y, 2x2 UV samples. */
282  /* Native texture. Pixel-format agnostic. */
284  /* Hole frame. */
286  /* 20bpp YUVA planar 1x1 Y, 2x2 VU, 1x1 A samples. */
290 
291 typedef enum {
295 } PP_StreamType;
297 /**
298  * @}
299  */
300 
301 /**
302  * @addtogroup Structs
303  * @{
304  */
305 /* width and height of video frame */
306 struct PP_GFXSize {
307  int32_t width;
308  int32_t height;
309 };
311 
312 /* To describe rectangle */
313 struct PP_GFXRect {
314  int32_t x;
315  int32_t y;
316  int32_t width;
317  int32_t height;
318 };
320 
321 /**
322  * Structure described audio stream configuration
323  */
326  /* profile is optional, only for some codesc */
336  /* |extra_data| is an extra information stored in the stream, and used
337  * to transmitt for example initialization vector for encryption.
338  * It's type is PP_VARTYPE_ARRAY_BUFFER or PP_VARTYPE_NULL in case when
339  * there is no extra data.
340  *
341  */
343 };
345 
346 /**
347  * Structure described video stream configuration
348  */
351  /* profile is optional, only for some codecs */
358  /* |extra_data| is an extra information stored in the stream, and used
359  * to transmitt for example initialization vector for encryption.
360  * It's type is PP_VARTYPE_ARRAY_BUFFER or PP_VARTYPE_NULL in case when
361  * there is no extra data.
362  */
364 };
366 
367 /**
368  * Structure described frames
369  */
370 struct PP_Frames {
371  /** Size of frame data */
372  int32_t size;
373  /** Does buffer contains key frame */
375  /** Decompression Timestamp */
377  /** Presentation Timesatmp */
379  /** Duration of given packet */
381 };
383 /**
384  * @}
385  */
386 
387 #endif /* PPAPI_C_SAMSUNG_PP_STREAM_PARSER_SAMSUNG_H_ */
388 
PP_MicrosecondsDelta dts
PP_MicrosecondsDelta pts
int64_t PP_MicrosecondsDelta
PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_AudioCodec_Type, 4)
PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_GFXSize, 8)
Definition: pp_var.h:155
PP_MicrosecondsDelta duration
PP_Bool
Definition: pp_bool.h:30